pinets 0.9.7 → 0.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/pinets.min.browser.es.js +14 -14
- package/dist/pinets.min.browser.es.js.map +1 -1
- package/dist/pinets.min.browser.js +43 -43
- package/dist/pinets.min.browser.js.map +1 -1
- package/dist/pinets.min.cjs +14 -14
- package/dist/pinets.min.cjs.map +1 -1
- package/dist/pinets.min.es.js +43 -43
- package/dist/pinets.min.es.js.map +1 -1
- package/dist/types/Context.class.d.ts +2 -1
- package/dist/types/namespaces/box/BoxHelper.d.ts +1 -1
- package/dist/types/namespaces/box/BoxObject.d.ts +1 -0
- package/dist/types/namespaces/label/LabelHelper.d.ts +1 -1
- package/dist/types/namespaces/line/LineHelper.d.ts +1 -1
- package/dist/types/namespaces/linefill/LinefillHelper.d.ts +1 -1
- package/dist/types/namespaces/linefill/LinefillObject.d.ts +1 -0
- package/dist/types/namespaces/matrix/methods/mult.d.ts +1 -1
- package/dist/types/namespaces/polyline/PolylineHelper.d.ts +1 -1
- package/dist/types/namespaces/polyline/PolylineObject.d.ts +1 -0
- package/dist/types/namespaces/table/TableHelper.d.ts +6 -1
- package/dist/types/namespaces/table/TableObject.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
var pn=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239],Yr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489],fn="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",Xr="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",wi={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},Si="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",dn={5:Si,"5module":Si+" export import",6:Si+" const class extends export import super"},Qr=/^in(stanceof)?$/,mn=new RegExp("["+Xr+"]"),gn=new RegExp("["+Xr+fn+"]");function Di(t,e){for(var i=65536,r=0;r<e.length;r+=2){if(i+=e[r],i>t)return!1;if(i+=e[r+1],i>=t)return!0}return!1}function ze(t,e){return t<65?t===36:t<91?!0:t<97?t===95:t<123?!0:t<=65535?t>=170&&mn.test(String.fromCharCode(t)):e===!1?!1:Di(t,Yr)}function ct(t,e){return t<48?t===36:t<58?!0:t<65?!1:t<91?!0:t<97?t===95:t<123?!0:t<=65535?t>=170&&gn.test(String.fromCharCode(t)):e===!1?!1:Di(t,Yr)||Di(t,pn)}var U=function(e,i){i===void 0&&(i={}),this.label=e,this.keyword=i.keyword,this.beforeExpr=!!i.beforeExpr,this.startsExpr=!!i.startsExpr,this.isLoop=!!i.isLoop,this.isAssign=!!i.isAssign,this.prefix=!!i.prefix,this.postfix=!!i.postfix,this.binop=i.binop||null,this.updateContext=null};function ke(t,e){return new U(t,{beforeExpr:!0,binop:e})}var Ae={beforeExpr:!0},ye={startsExpr:!0},qi={};function F(t,e){return e===void 0&&(e={}),e.keyword=t,qi[t]=new U(t,e)}var d={num:new U("num",ye),regexp:new U("regexp",ye),string:new U("string",ye),name:new U("name",ye),privateId:new U("privateId",ye),eof:new U("eof"),bracketL:new U("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new U("]"),braceL:new U("{",{beforeExpr:!0,startsExpr:!0}),braceR:new U("}"),parenL:new U("(",{beforeExpr:!0,startsExpr:!0}),parenR:new U(")"),comma:new U(",",Ae),semi:new U(";",Ae),colon:new U(":",Ae),dot:new U("."),question:new U("?",Ae),questionDot:new U("?."),arrow:new U("=>",Ae),template:new U("template"),invalidTemplate:new U("invalidTemplate"),ellipsis:new U("...",Ae),backQuote:new U("`",ye),dollarBraceL:new U("${",{beforeExpr:!0,startsExpr:!0}),eq:new U("=",{beforeExpr:!0,isAssign:!0}),assign:new U("_=",{beforeExpr:!0,isAssign:!0}),incDec:new U("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new U("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:ke("||",1),logicalAND:ke("&&",2),bitwiseOR:ke("|",3),bitwiseXOR:ke("^",4),bitwiseAND:ke("&",5),equality:ke("==/!=/===/!==",6),relational:ke("</>/<=/>=",7),bitShift:ke("<</>>/>>>",8),plusMin:new U("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:ke("%",10),star:ke("*",10),slash:ke("/",10),starstar:new U("**",{beforeExpr:!0}),coalesce:ke("??",1),_break:F("break"),_case:F("case",Ae),_catch:F("catch"),_continue:F("continue"),_debugger:F("debugger"),_default:F("default",Ae),_do:F("do",{isLoop:!0,beforeExpr:!0}),_else:F("else",Ae),_finally:F("finally"),_for:F("for",{isLoop:!0}),_function:F("function",ye),_if:F("if"),_return:F("return",Ae),_switch:F("switch"),_throw:F("throw",Ae),_try:F("try"),_var:F("var"),_const:F("const"),_while:F("while",{isLoop:!0}),_with:F("with"),_new:F("new",{beforeExpr:!0,startsExpr:!0}),_this:F("this",ye),_super:F("super",ye),_class:F("class",ye),_extends:F("extends",Ae),_export:F("export"),_import:F("import",ye),_null:F("null",ye),_true:F("true",ye),_false:F("false",ye),_in:F("in",{beforeExpr:!0,binop:7}),_instanceof:F("instanceof",{beforeExpr:!0,binop:7}),_typeof:F("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:F("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:F("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},ve=/\r\n?|\n|\u2028|\u2029/,yn=new RegExp(ve.source,"g");function Dt(t){return t===10||t===13||t===8232||t===8233}function Zr(t,e,i){i===void 0&&(i=t.length);for(var r=e;r<i;r++){var s=t.charCodeAt(r);if(Dt(s))return r<i-1&&s===13&&t.charCodeAt(r+1)===10?r+2:r+1}return-1}var Jr=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,he=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,es=Object.prototype,xn=es.hasOwnProperty,_n=es.toString,Mt=Object.hasOwn||(function(t,e){return xn.call(t,e)}),ar=Array.isArray||(function(t){return _n.call(t)==="[object Array]"}),or=Object.create(null);function lt(t){return or[t]||(or[t]=new RegExp("^(?:"+t.replace(/ /g,"|")+")$"))}function Je(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}var bn=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,Ut=function(e,i){this.line=e,this.column=i};Ut.prototype.offset=function(e){return new Ut(this.line,this.column+e)};var di=function(e,i,r){this.start=i,this.end=r,e.sourceFile!==null&&(this.source=e.sourceFile)};function ts(t,e){for(var i=1,r=0;;){var s=Zr(t,r,e);if(s<0)return new Ut(i,e-r);++i,r=s}}var Mi={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},lr=!1;function vn(t){var e={};for(var i in Mi)e[i]=t&&Mt(t,i)?t[i]:Mi[i];if(e.ecmaVersion==="latest"?e.ecmaVersion=1e8:e.ecmaVersion==null?(!lr&&typeof console=="object"&&console.warn&&(lr=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required.
|
|
2
|
-
Defaulting to 2020, but this will stop working in the future.`)),e.ecmaVersion=11):e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),e.allowReserved==null&&(e.allowReserved=e.ecmaVersion<5),(!t||t.allowHashBang==null)&&(e.allowHashBang=e.ecmaVersion>=14),ar(e.onToken)){var r=e.onToken;e.onToken=function(s){return r.push(s)}}if(ar(e.onComment)&&(e.onComment=
|
|
3
|
-
`,r-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(ve).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=d.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=e.sourceType==="module",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&e.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(this.options.sourceType==="commonjs"?gt:mt),this.regexpState=null,this.privateNameStack=[]},Re={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowReturn:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},allowUsing:{configurable:!0},inClassStaticBlock:{configurable:!0}};ie.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};Re.inFunction.get=function(){return(this.currentVarScope().flags>)>0};Re.inGenerator.get=function(){return(this.currentVarScope().flags&is)>0};Re.inAsync.get=function(){return(this.currentVarScope().flags&Ki)>0};Re.canAwait.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t],i=e.flags;if(i&(yt|qt))return!1;if(i>)return(i&Ki)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction};Re.allowReturn.get=function(){return!!(this.inFunction||this.options.allowReturnOutsideFunction&&this.currentVarScope().flags&mt)};Re.allowSuper.get=function(){var t=this.currentThisScope(),e=t.flags;return(e&mi)>0||this.options.allowSuperOutsideMethod};Re.allowDirectSuper.get=function(){return(this.currentThisScope().flags&ss)>0};Re.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};Re.allowNewDotTarget.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t],i=e.flags;if(i&(yt|qt)||i>&&!(i&zi))return!0}return!1};Re.allowUsing.get=function(){var t=this.currentScope(),e=t.flags;return!(e&ns||!this.inModule&&e&mt)};Re.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&yt)>0};ie.extend=function(){for(var e=[],i=arguments.length;i--;)e[i]=arguments[i];for(var r=this,s=0;s<e.length;s++)r=e[s](r);return r};ie.parse=function(e,i){return new this(i,e).parse()};ie.parseExpressionAt=function(e,i,r){var s=new this(r,e,i);return s.nextToken(),s.parseExpression()};ie.tokenizer=function(e,i){return new this(i,e)};Object.defineProperties(ie.prototype,Re);var ge=ie.prototype,Sn=/^(?:'((?:\\[^]|[^'\\])*?)'|"((?:\\[^]|[^"\\])*?)")/;ge.strictDirective=function(t){if(this.options.ecmaVersion<5)return!1;for(;;){he.lastIndex=t,t+=he.exec(this.input)[0].length;var e=Sn.exec(this.input.slice(t));if(!e)return!1;if((e[1]||e[2])==="use strict"){he.lastIndex=t+e[0].length;var i=he.exec(this.input),r=i.index+i[0].length,s=this.input.charAt(r);return s===";"||s==="}"||ve.test(i[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(s)||s==="!"&&this.input.charAt(r+1)==="=")}t+=e[0].length,he.lastIndex=t,t+=he.exec(this.input)[0].length,this.input[t]===";"&&t++}};ge.eat=function(t){return this.type===t?(this.next(),!0):!1};ge.isContextual=function(t){return this.type===d.name&&this.value===t&&!this.containsEsc};ge.eatContextual=function(t){return this.isContextual(t)?(this.next(),!0):!1};ge.expectContextual=function(t){this.eatContextual(t)||this.unexpected()};ge.canInsertSemicolon=function(){return this.type===d.eof||this.type===d.braceR||ve.test(this.input.slice(this.lastTokEnd,this.start))};ge.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};ge.semicolon=function(){!this.eat(d.semi)&&!this.insertSemicolon()&&this.unexpected()};ge.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0};ge.expect=function(t){this.eat(t)||this.unexpected()};ge.unexpected=function(t){this.raise(t??this.start,"Unexpected token")};var yi=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};ge.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var i=e?t.parenthesizedAssign:t.parenthesizedBind;i>-1&&this.raiseRecoverable(i,e?"Assigning to rvalue":"Parenthesized pattern")}};ge.checkExpressionErrors=function(t,e){if(!t)return!1;var i=t.shorthandAssign,r=t.doubleProto;if(!e)return i>=0||r>=0;i>=0&&this.raise(i,"Shorthand property assignments are valid only in destructuring patterns"),r>=0&&this.raiseRecoverable(r,"Redefinition of __proto__ property")};ge.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")};ge.isSimpleAssignTarget=function(t){return t.type==="ParenthesizedExpression"?this.isSimpleAssignTarget(t.expression):t.type==="Identifier"||t.type==="MemberExpression"};var A=ie.prototype;A.parseTopLevel=function(t){var e=Object.create(null);for(t.body||(t.body=[]);this.type!==d.eof;){var i=this.parseStatement(null,!0,e);t.body.push(i)}if(this.inModule)for(var r=0,s=Object.keys(this.undefinedExports);r<s.length;r+=1){var a=s[r];this.raiseRecoverable(this.undefinedExports[a].start,"Export '"+a+"' is not defined")}return this.adaptDirectivePrologue(t.body),this.next(),t.sourceType=this.options.sourceType==="commonjs"?"script":this.options.sourceType,this.finishNode(t,"Program")};var Yi={kind:"loop"},En={kind:"switch"};A.isLet=function(t){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;he.lastIndex=this.pos;var e=he.exec(this.input),i=this.pos+e[0].length,r=this.fullCharCodeAt(i);if(r===91||r===92)return!0;if(t)return!1;if(r===123)return!0;if(ze(r)){var s=i;do i+=r<=65535?1:2;while(ct(r=this.fullCharCodeAt(i)));if(r===92)return!0;var a=this.input.slice(s,i);if(!Qr.test(a))return!0}return!1};A.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;he.lastIndex=this.pos;var t=he.exec(this.input),e=this.pos+t[0].length,i;return!ve.test(this.input.slice(this.pos,e))&&this.input.slice(e,e+8)==="function"&&(e+8===this.input.length||!(ct(i=this.fullCharCodeAt(e+8))||i===92))};A.isUsingKeyword=function(t,e){if(this.options.ecmaVersion<17||!this.isContextual(t?"await":"using"))return!1;he.lastIndex=this.pos;var i=he.exec(this.input),r=this.pos+i[0].length;if(ve.test(this.input.slice(this.pos,r)))return!1;if(t){var s=r+5,a;if(this.input.slice(r,s)!=="using"||s===this.input.length||ct(a=this.fullCharCodeAt(s))||a===92)return!1;he.lastIndex=s;var n=he.exec(this.input);if(r=s+n[0].length,n&&ve.test(this.input.slice(s,r)))return!1}var o=this.fullCharCodeAt(r);if(!ze(o)&&o!==92)return!1;var l=r;do r+=o<=65535?1:2;while(ct(o=this.fullCharCodeAt(r)));if(o===92)return!0;var c=this.input.slice(l,r);return!(Qr.test(c)||e&&c==="of")};A.isAwaitUsing=function(t){return this.isUsingKeyword(!0,t)};A.isUsing=function(t){return this.isUsingKeyword(!1,t)};A.parseStatement=function(t,e,i){var r=this.type,s=this.startNode(),a;switch(this.isLet(t)&&(r=d._var,a="let"),r){case d._break:case d._continue:return this.parseBreakContinueStatement(s,r.keyword);case d._debugger:return this.parseDebuggerStatement(s);case d._do:return this.parseDoStatement(s);case d._for:return this.parseForStatement(s);case d._function:return t&&(this.strict||t!=="if"&&t!=="label")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(s,!1,!t);case d._class:return t&&this.unexpected(),this.parseClass(s,!0);case d._if:return this.parseIfStatement(s);case d._return:return this.parseReturnStatement(s);case d._switch:return this.parseSwitchStatement(s);case d._throw:return this.parseThrowStatement(s);case d._try:return this.parseTryStatement(s);case d._const:case d._var:return a=a||this.value,t&&a!=="var"&&this.unexpected(),this.parseVarStatement(s,a);case d._while:return this.parseWhileStatement(s);case d._with:return this.parseWithStatement(s);case d.braceL:return this.parseBlock(!0,s);case d.semi:return this.parseEmptyStatement(s);case d._export:case d._import:if(this.options.ecmaVersion>10&&r===d._import){he.lastIndex=this.pos;var n=he.exec(this.input),o=this.pos+n[0].length,l=this.input.charCodeAt(o);if(l===40||l===46)return this.parseExpressionStatement(s,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),r===d._import?this.parseImport(s):this.parseExport(s,i);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(s,!0,!t);var c=this.isAwaitUsing(!1)?"await using":this.isUsing(!1)?"using":null;if(c)return this.allowUsing||this.raise(this.start,"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement"),c==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.next(),this.parseVar(s,!1,c),this.semicolon(),this.finishNode(s,"VariableDeclaration");var h=this.value,p=this.parseExpression();return r===d.name&&p.type==="Identifier"&&this.eat(d.colon)?this.parseLabeledStatement(s,h,p,t):this.parseExpressionStatement(s,p)}};A.parseBreakContinueStatement=function(t,e){var i=e==="break";this.next(),this.eat(d.semi)||this.insertSemicolon()?t.label=null:this.type!==d.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var r=0;r<this.labels.length;++r){var s=this.labels[r];if((t.label==null||s.name===t.label.name)&&(s.kind!=null&&(i||s.kind==="loop")||t.label&&i))break}return r===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,i?"BreakStatement":"ContinueStatement")};A.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")};A.parseDoStatement=function(t){return this.next(),this.labels.push(Yi),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(d._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(d.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")};A.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(Yi),this.enterScope(0),this.expect(d.parenL),this.type===d.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var i=this.isLet();if(this.type===d._var||this.type===d._const||i){var r=this.startNode(),s=i?"let":this.value;return this.next(),this.parseVar(r,!0,s),this.finishNode(r,"VariableDeclaration"),this.parseForAfterInit(t,r,e)}var a=this.isContextual("let"),n=!1,o=this.isUsing(!0)?"using":this.isAwaitUsing(!0)?"await using":null;if(o){var l=this.startNode();return this.next(),o==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.parseVar(l,!0,o),this.finishNode(l,"VariableDeclaration"),this.parseForAfterInit(t,l,e)}var c=this.containsEsc,h=new yi,p=this.start,u=e>-1?this.parseExprSubscripts(h,"await"):this.parseExpression(!0,h);return this.type===d._in||(n=this.options.ecmaVersion>=6&&this.isContextual("of"))?(e>-1?(this.type===d._in&&this.unexpected(e),t.await=!0):n&&this.options.ecmaVersion>=8&&(u.start===p&&!c&&u.type==="Identifier"&&u.name==="async"?this.unexpected():this.options.ecmaVersion>=9&&(t.await=!1)),a&&n&&this.raise(u.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(u,!1,h),this.checkLValPattern(u),this.parseForIn(t,u)):(this.checkExpressionErrors(h,!0),e>-1&&this.unexpected(e),this.parseFor(t,u))};A.parseForAfterInit=function(t,e,i){return(this.type===d._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&e.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===d._in?i>-1&&this.unexpected(i):t.await=i>-1),this.parseForIn(t,e)):(i>-1&&this.unexpected(i),this.parseFor(t,e))};A.parseFunctionStatement=function(t,e,i){return this.next(),this.parseFunction(t,$t|(i?0:Ri),!1,e)};A.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(d._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")};A.parseReturnStatement=function(t){return this.allowReturn||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(d.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")};A.parseSwitchStatement=function(t){this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(d.braceL),this.labels.push(En),this.enterScope(ns);for(var e,i=!1;this.type!==d.braceR;)if(this.type===d._case||this.type===d._default){var r=this.type===d._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),r?e.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),i=!0,e.test=null),this.expect(d.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")};A.parseThrowStatement=function(t){return this.next(),ve.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var Nn=[];A.parseCatchClauseParam=function(){var t=this.parseBindingAtom(),e=t.type==="Identifier";return this.enterScope(e?rs:0),this.checkLValPattern(t,e?os:tt),this.expect(d.parenR),t};A.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===d._catch){var e=this.startNode();this.next(),this.eat(d.parenL)?e.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0)),e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(d._finally)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")};A.parseVarStatement=function(t,e,i){return this.next(),this.parseVar(t,!1,e,i),this.semicolon(),this.finishNode(t,"VariableDeclaration")};A.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(Yi),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")};A.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")};A.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")};A.parseLabeledStatement=function(t,e,i,r){for(var s=0,a=this.labels;s<a.length;s+=1){var n=a[s];n.name===e&&this.raise(i.start,"Label '"+e+"' is already declared")}for(var o=this.type.isLoop?"loop":this.type===d._switch?"switch":null,l=this.labels.length-1;l>=0;l--){var c=this.labels[l];if(c.statementStart===t.start)c.statementStart=this.start,c.kind=o;else break}return this.labels.push({name:e,kind:o,statementStart:this.start}),t.body=this.parseStatement(r?r.indexOf("label")===-1?r+"label":r:"label"),this.labels.pop(),t.label=i,this.finishNode(t,"LabeledStatement")};A.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")};A.parseBlock=function(t,e,i){for(t===void 0&&(t=!0),e===void 0&&(e=this.startNode()),e.body=[],this.expect(d.braceL),t&&this.enterScope(0);this.type!==d.braceR;){var r=this.parseStatement(null);e.body.push(r)}return i&&(this.strict=!1),this.next(),t&&this.exitScope(),this.finishNode(e,"BlockStatement")};A.parseFor=function(t,e){return t.init=e,this.expect(d.semi),t.test=this.type===d.semi?null:this.parseExpression(),this.expect(d.semi),t.update=this.type===d.parenR?null:this.parseExpression(),this.expect(d.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,"ForStatement")};A.parseForIn=function(t,e){var i=this.type===d._in;return this.next(),e.type==="VariableDeclaration"&&e.declarations[0].init!=null&&(!i||this.options.ecmaVersion<8||this.strict||e.kind!=="var"||e.declarations[0].id.type!=="Identifier")&&this.raise(e.start,(i?"for-in":"for-of")+" loop variable declaration may not have an initializer"),t.left=e,t.right=i?this.parseExpression():this.parseMaybeAssign(),this.expect(d.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,i?"ForInStatement":"ForOfStatement")};A.parseVar=function(t,e,i,r){for(t.declarations=[],t.kind=i;;){var s=this.startNode();if(this.parseVarId(s,i),this.eat(d.eq)?s.init=this.parseMaybeAssign(e):!r&&i==="const"&&!(this.type===d._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():!r&&(i==="using"||i==="await using")&&this.options.ecmaVersion>=17&&this.type!==d._in&&!this.isContextual("of")?this.raise(this.lastTokEnd,"Missing initializer in "+i+" declaration"):!r&&s.id.type!=="Identifier"&&!(e&&(this.type===d._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):s.init=null,t.declarations.push(this.finishNode(s,"VariableDeclarator")),!this.eat(d.comma))break}return t};A.parseVarId=function(t,e){t.id=e==="using"||e==="await using"?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(t.id,e==="var"?Gi:tt,!1)};var $t=1,Ri=2,cs=4;A.parseFunction=function(t,e,i,r,s){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!r)&&(this.type===d.star&&e&Ri&&this.unexpected(),t.generator=this.eat(d.star)),this.options.ecmaVersion>=8&&(t.async=!!r),e&$t&&(t.id=e&cs&&this.type!==d.name?null:this.parseIdent(),t.id&&!(e&Ri)&&this.checkLValSimple(t.id,this.strict||t.generator||t.async?this.treatFunctionsAsVar?Gi:tt:as));var a=this.yieldPos,n=this.awaitPos,o=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Hi(t.async,t.generator)),e&$t||(t.id=this.type===d.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,i,!1,s),this.yieldPos=a,this.awaitPos=n,this.awaitIdentPos=o,this.finishNode(t,e&$t?"FunctionDeclaration":"FunctionExpression")};A.parseFunctionParams=function(t){this.expect(d.parenL),t.params=this.parseBindingList(d.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()};A.parseClass=function(t,e){this.next();var i=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var r=this.enterClassBody(),s=this.startNode(),a=!1;for(s.body=[],this.expect(d.braceL);this.type!==d.braceR;){var n=this.parseClassElement(t.superClass!==null);n&&(s.body.push(n),n.type==="MethodDefinition"&&n.kind==="constructor"?(a&&this.raiseRecoverable(n.start,"Duplicate constructor in the same class"),a=!0):n.key&&n.key.type==="PrivateIdentifier"&&Cn(r,n)&&this.raiseRecoverable(n.key.start,"Identifier '#"+n.key.name+"' has already been declared"))}return this.strict=i,this.next(),t.body=this.finishNode(s,"ClassBody"),this.exitClassBody(),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")};A.parseClassElement=function(t){if(this.eat(d.semi))return null;var e=this.options.ecmaVersion,i=this.startNode(),r="",s=!1,a=!1,n="method",o=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(d.braceL))return this.parseClassStaticBlock(i),i;this.isClassElementNameStart()||this.type===d.star?o=!0:r="static"}if(i.static=o,!r&&e>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===d.star)&&!this.canInsertSemicolon()?a=!0:r="async"),!r&&(e>=9||!a)&&this.eat(d.star)&&(s=!0),!r&&!a&&!s){var l=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?n=l:r=l)}if(r?(i.computed=!1,i.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),i.key.name=r,this.finishNode(i.key,"Identifier")):this.parseClassElementName(i),e<13||this.type===d.parenL||n!=="method"||s||a){var c=!i.static&&ai(i,"constructor"),h=c&&t;c&&n!=="method"&&this.raise(i.key.start,"Constructor can't have get/set modifier"),i.kind=c?"constructor":n,this.parseClassMethod(i,s,a,h)}else this.parseClassField(i);return i};A.isClassElementNameStart=function(){return this.type===d.name||this.type===d.privateId||this.type===d.num||this.type===d.string||this.type===d.bracketL||this.type.keyword};A.parseClassElementName=function(t){this.type===d.privateId?(this.value==="constructor"&&this.raise(this.start,"Classes can't have an element named '#constructor'"),t.computed=!1,t.key=this.parsePrivateIdent()):this.parsePropertyName(t)};A.parseClassMethod=function(t,e,i,r){var s=t.key;t.kind==="constructor"?(e&&this.raise(s.start,"Constructor can't be a generator"),i&&this.raise(s.start,"Constructor can't be an async method")):t.static&&ai(t,"prototype")&&this.raise(s.start,"Classes may not have a static property named prototype");var a=t.value=this.parseMethod(e,i,r);return t.kind==="get"&&a.params.length!==0&&this.raiseRecoverable(a.start,"getter should have no params"),t.kind==="set"&&a.params.length!==1&&this.raiseRecoverable(a.start,"setter should have exactly one param"),t.kind==="set"&&a.params[0].type==="RestElement"&&this.raiseRecoverable(a.params[0].start,"Setter cannot use rest params"),this.finishNode(t,"MethodDefinition")};A.parseClassField=function(t){return ai(t,"constructor")?this.raise(t.key.start,"Classes can't have a field named 'constructor'"):t.static&&ai(t,"prototype")&&this.raise(t.key.start,"Classes can't have a static field named 'prototype'"),this.eat(d.eq)?(this.enterScope(qt|mi),t.value=this.parseMaybeAssign(),this.exitScope()):t.value=null,this.semicolon(),this.finishNode(t,"PropertyDefinition")};A.parseClassStaticBlock=function(t){t.body=[];var e=this.labels;for(this.labels=[],this.enterScope(yt|mi);this.type!==d.braceR;){var i=this.parseStatement(null);t.body.push(i)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(t,"StaticBlock")};A.parseClassId=function(t,e){this.type===d.name?(t.id=this.parseIdent(),e&&this.checkLValSimple(t.id,tt,!1)):(e===!0&&this.unexpected(),t.id=null)};A.parseClassSuper=function(t){t.superClass=this.eat(d._extends)?this.parseExprSubscripts(null,!1):null};A.enterClassBody=function(){var t={declared:Object.create(null),used:[]};return this.privateNameStack.push(t),t.declared};A.exitClassBody=function(){var t=this.privateNameStack.pop(),e=t.declared,i=t.used;if(this.options.checkPrivateFields)for(var r=this.privateNameStack.length,s=r===0?null:this.privateNameStack[r-1],a=0;a<i.length;++a){var n=i[a];Mt(e,n.name)||(s?s.used.push(n):this.raiseRecoverable(n.start,"Private field '#"+n.name+"' must be declared in an enclosing class"))}};function Cn(t,e){var i=e.key.name,r=t[i],s="true";return e.type==="MethodDefinition"&&(e.kind==="get"||e.kind==="set")&&(s=(e.static?"s":"i")+e.kind),r==="iget"&&s==="iset"||r==="iset"&&s==="iget"||r==="sget"&&s==="sset"||r==="sset"&&s==="sget"?(t[i]="true",!1):r?!0:(t[i]=s,!1)}function ai(t,e){var i=t.computed,r=t.key;return!i&&(r.type==="Identifier"&&r.name===e||r.type==="Literal"&&r.value===e)}A.parseExportAllDeclaration=function(t,e){return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(t.exported=this.parseModuleExportName(),this.checkExport(e,t.exported,this.lastTokStart)):t.exported=null),this.expectContextual("from"),this.type!==d.string&&this.unexpected(),t.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(t.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")};A.parseExport=function(t,e){if(this.next(),this.eat(d.star))return this.parseExportAllDeclaration(t,e);if(this.eat(d._default))return this.checkExport(e,"default",this.lastTokStart),t.declaration=this.parseExportDefaultDeclaration(),this.finishNode(t,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())t.declaration=this.parseExportDeclaration(t),t.declaration.type==="VariableDeclaration"?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id,t.declaration.id.start),t.specifiers=[],t.source=null,this.options.ecmaVersion>=16&&(t.attributes=[]);else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==d.string&&this.unexpected(),t.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(t.attributes=this.parseWithClause());else{for(var i=0,r=t.specifiers;i<r.length;i+=1){var s=r[i];this.checkUnreserved(s.local),this.checkLocalExport(s.local),s.local.type==="Literal"&&this.raise(s.local.start,"A string literal cannot be used as an exported binding without `from`.")}t.source=null,this.options.ecmaVersion>=16&&(t.attributes=[])}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")};A.parseExportDeclaration=function(t){return this.parseStatement(null)};A.parseExportDefaultDeclaration=function(){var t;if(this.type===d._function||(t=this.isAsyncFunction())){var e=this.startNode();return this.next(),t&&this.next(),this.parseFunction(e,$t|cs,!1,t)}else if(this.type===d._class){var i=this.startNode();return this.parseClass(i,"nullableID")}else{var r=this.parseMaybeAssign();return this.semicolon(),r}};A.checkExport=function(t,e,i){t&&(typeof e!="string"&&(e=e.type==="Identifier"?e.name:e.value),Mt(t,e)&&this.raiseRecoverable(i,"Duplicate export '"+e+"'"),t[e]=!0)};A.checkPatternExport=function(t,e){var i=e.type;if(i==="Identifier")this.checkExport(t,e,e.start);else if(i==="ObjectPattern")for(var r=0,s=e.properties;r<s.length;r+=1){var a=s[r];this.checkPatternExport(t,a)}else if(i==="ArrayPattern")for(var n=0,o=e.elements;n<o.length;n+=1){var l=o[n];l&&this.checkPatternExport(t,l)}else i==="Property"?this.checkPatternExport(t,e.value):i==="AssignmentPattern"?this.checkPatternExport(t,e.left):i==="RestElement"&&this.checkPatternExport(t,e.argument)};A.checkVariableExport=function(t,e){if(t)for(var i=0,r=e;i<r.length;i+=1){var s=r[i];this.checkPatternExport(t,s.id)}};A.shouldParseExportStatement=function(){return this.type.keyword==="var"||this.type.keyword==="const"||this.type.keyword==="class"||this.type.keyword==="function"||this.isLet()||this.isAsyncFunction()};A.parseExportSpecifier=function(t){var e=this.startNode();return e.local=this.parseModuleExportName(),e.exported=this.eatContextual("as")?this.parseModuleExportName():e.local,this.checkExport(t,e.exported,e.exported.start),this.finishNode(e,"ExportSpecifier")};A.parseExportSpecifiers=function(t){var e=[],i=!0;for(this.expect(d.braceL);!this.eat(d.braceR);){if(i)i=!1;else if(this.expect(d.comma),this.afterTrailingComma(d.braceR))break;e.push(this.parseExportSpecifier(t))}return e};A.parseImport=function(t){return this.next(),this.type===d.string?(t.specifiers=Nn,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===d.string?this.parseExprAtom():this.unexpected()),this.options.ecmaVersion>=16&&(t.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(t,"ImportDeclaration")};A.parseImportSpecifier=function(){var t=this.startNode();return t.imported=this.parseModuleExportName(),this.eatContextual("as")?t.local=this.parseIdent():(this.checkUnreserved(t.imported),t.local=t.imported),this.checkLValSimple(t.local,tt),this.finishNode(t,"ImportSpecifier")};A.parseImportDefaultSpecifier=function(){var t=this.startNode();return t.local=this.parseIdent(),this.checkLValSimple(t.local,tt),this.finishNode(t,"ImportDefaultSpecifier")};A.parseImportNamespaceSpecifier=function(){var t=this.startNode();return this.next(),this.expectContextual("as"),t.local=this.parseIdent(),this.checkLValSimple(t.local,tt),this.finishNode(t,"ImportNamespaceSpecifier")};A.parseImportSpecifiers=function(){var t=[],e=!0;if(this.type===d.name&&(t.push(this.parseImportDefaultSpecifier()),!this.eat(d.comma)))return t;if(this.type===d.star)return t.push(this.parseImportNamespaceSpecifier()),t;for(this.expect(d.braceL);!this.eat(d.braceR);){if(e)e=!1;else if(this.expect(d.comma),this.afterTrailingComma(d.braceR))break;t.push(this.parseImportSpecifier())}return t};A.parseWithClause=function(){var t=[];if(!this.eat(d._with))return t;this.expect(d.braceL);for(var e={},i=!0;!this.eat(d.braceR);){if(i)i=!1;else if(this.expect(d.comma),this.afterTrailingComma(d.braceR))break;var r=this.parseImportAttribute(),s=r.key.type==="Identifier"?r.key.name:r.key.value;Mt(e,s)&&this.raiseRecoverable(r.key.start,"Duplicate attribute key '"+s+"'"),e[s]=!0,t.push(r)}return t};A.parseImportAttribute=function(){var t=this.startNode();return t.key=this.type===d.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never"),this.expect(d.colon),this.type!==d.string&&this.unexpected(),t.value=this.parseExprAtom(),this.finishNode(t,"ImportAttribute")};A.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===d.string){var t=this.parseLiteral(this.value);return bn.test(t.value)&&this.raise(t.start,"An export name cannot include a lone surrogate."),t}return this.parseIdent(!0)};A.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)};A.isDirectiveCandidate=function(t){return this.options.ecmaVersion>=5&&t.type==="ExpressionStatement"&&t.expression.type==="Literal"&&typeof t.expression.value=="string"&&(this.input[t.start]==='"'||this.input[t.start]==="'")};var Oe=ie.prototype;Oe.toAssignable=function(t,e,i){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&t.name==="await"&&this.raise(t.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",i&&this.checkPatternErrors(i,!0);for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];this.toAssignable(a,e),a.type==="RestElement"&&(a.argument.type==="ArrayPattern"||a.argument.type==="ObjectPattern")&&this.raise(a.argument.start,"Unexpected token")}break;case"Property":t.kind!=="init"&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",i&&this.checkPatternErrors(i,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),t.argument.type==="AssignmentPattern"&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":t.operator!=="="&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);break;case"ParenthesizedExpression":this.toAssignable(t.expression,e,i);break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else i&&this.checkPatternErrors(i,!0);return t};Oe.toAssignableList=function(t,e){for(var i=t.length,r=0;r<i;r++){var s=t[r];s&&this.toAssignable(s,e)}if(i){var a=t[i-1];this.options.ecmaVersion===6&&e&&a&&a.type==="RestElement"&&a.argument.type!=="Identifier"&&this.unexpected(a.argument.start)}return t};Oe.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")};Oe.parseRestBinding=function(){var t=this.startNode();return this.next(),this.options.ecmaVersion===6&&this.type!==d.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")};Oe.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case d.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(d.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case d.braceL:return this.parseObj(!0)}return this.parseIdent()};Oe.parseBindingList=function(t,e,i,r){for(var s=[],a=!0;!this.eat(t);)if(a?a=!1:this.expect(d.comma),e&&this.type===d.comma)s.push(null);else{if(i&&this.afterTrailingComma(t))break;if(this.type===d.ellipsis){var n=this.parseRestBinding();this.parseBindingListItem(n),s.push(n),this.type===d.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.expect(t);break}else s.push(this.parseAssignableListItem(r))}return s};Oe.parseAssignableListItem=function(t){var e=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(e),e};Oe.parseBindingListItem=function(t){return t};Oe.parseMaybeDefault=function(t,e,i){if(i=i||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(d.eq))return i;var r=this.startNodeAt(t,e);return r.left=i,r.right=this.parseMaybeAssign(),this.finishNode(r,"AssignmentPattern")};Oe.checkLValSimple=function(t,e,i){e===void 0&&(e=ni);var r=e!==ni;switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(r?"Binding ":"Assigning to ")+t.name+" in strict mode"),r&&(e===tt&&t.name==="let"&&this.raiseRecoverable(t.start,"let is disallowed as a lexically bound name"),i&&(Mt(i,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),i[t.name]=!0),e!==ls&&this.declareName(t.name,e,t.start));break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":r&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ParenthesizedExpression":return r&&this.raiseRecoverable(t.start,"Binding parenthesized expression"),this.checkLValSimple(t.expression,e,i);default:this.raise(t.start,(r?"Binding":"Assigning to")+" rvalue")}};Oe.checkLValPattern=function(t,e,i){switch(e===void 0&&(e=ni),t.type){case"ObjectPattern":for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];this.checkLValInnerPattern(a,e,i)}break;case"ArrayPattern":for(var n=0,o=t.elements;n<o.length;n+=1){var l=o[n];l&&this.checkLValInnerPattern(l,e,i)}break;default:this.checkLValSimple(t,e,i)}};Oe.checkLValInnerPattern=function(t,e,i){switch(e===void 0&&(e=ni),t.type){case"Property":this.checkLValInnerPattern(t.value,e,i);break;case"AssignmentPattern":this.checkLValPattern(t.left,e,i);break;case"RestElement":this.checkLValPattern(t.argument,e,i);break;default:this.checkLValPattern(t,e,i)}};var $e=function(e,i,r,s,a){this.token=e,this.isExpr=!!i,this.preserveSpace=!!r,this.override=s,this.generator=!!a},G={b_stat:new $e("{",!1),b_expr:new $e("{",!0),b_tmpl:new $e("${",!1),p_stat:new $e("(",!1),p_expr:new $e("(",!0),q_tmpl:new $e("`",!0,!0,function(t){return t.tryReadTemplateToken()}),f_stat:new $e("function",!1),f_expr:new $e("function",!0),f_expr_gen:new $e("function",!0,!1,null,!0),f_gen:new $e("function",!1,!1,null,!0)},Rt=ie.prototype;Rt.initialContext=function(){return[G.b_stat]};Rt.curContext=function(){return this.context[this.context.length-1]};Rt.braceIsBlock=function(t){var e=this.curContext();return e===G.f_expr||e===G.f_stat?!0:t===d.colon&&(e===G.b_stat||e===G.b_expr)?!e.isExpr:t===d._return||t===d.name&&this.exprAllowed?ve.test(this.input.slice(this.lastTokEnd,this.start)):t===d._else||t===d.semi||t===d.eof||t===d.parenR||t===d.arrow?!0:t===d.braceL?e===G.b_stat:t===d._var||t===d._const||t===d.name?!1:!this.exprAllowed};Rt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if(e.token==="function")return e.generator}return!1};Rt.updateContext=function(t){var e,i=this.type;i.keyword&&t===d.dot?this.exprAllowed=!1:(e=i.updateContext)?e.call(this,t):this.exprAllowed=i.beforeExpr};Rt.overrideContext=function(t){this.curContext()!==t&&(this.context[this.context.length-1]=t)};d.parenR.updateContext=d.braceR.updateContext=function(){if(this.context.length===1){this.exprAllowed=!0;return}var t=this.context.pop();t===G.b_stat&&this.curContext().token==="function"&&(t=this.context.pop()),this.exprAllowed=!t.isExpr};d.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?G.b_stat:G.b_expr),this.exprAllowed=!0};d.dollarBraceL.updateContext=function(){this.context.push(G.b_tmpl),this.exprAllowed=!0};d.parenL.updateContext=function(t){var e=t===d._if||t===d._for||t===d._with||t===d._while;this.context.push(e?G.p_stat:G.p_expr),this.exprAllowed=!0};d.incDec.updateContext=function(){};d._function.updateContext=d._class.updateContext=function(t){t.beforeExpr&&t!==d._else&&!(t===d.semi&&this.curContext()!==G.p_stat)&&!(t===d._return&&ve.test(this.input.slice(this.lastTokEnd,this.start)))&&!((t===d.colon||t===d.braceL)&&this.curContext()===G.b_stat)?this.context.push(G.f_expr):this.context.push(G.f_stat),this.exprAllowed=!1};d.colon.updateContext=function(){this.curContext().token==="function"&&this.context.pop(),this.exprAllowed=!0};d.backQuote.updateContext=function(){this.curContext()===G.q_tmpl?this.context.pop():this.context.push(G.q_tmpl),this.exprAllowed=!1};d.star.updateContext=function(t){if(t===d._function){var e=this.context.length-1;this.context[e]===G.f_expr?this.context[e]=G.f_expr_gen:this.context[e]=G.f_gen}this.exprAllowed=!0};d.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==d.dot&&(this.value==="of"&&!this.exprAllowed||this.value==="yield"&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var M=ie.prototype;M.checkPropClash=function(t,e,i){if(!(this.options.ecmaVersion>=9&&t.type==="SpreadElement")&&!(this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var r=t.key,s;switch(r.type){case"Identifier":s=r.name;break;case"Literal":s=String(r.value);break;default:return}var a=t.kind;if(this.options.ecmaVersion>=6){s==="__proto__"&&a==="init"&&(e.proto&&(i?i.doubleProto<0&&(i.doubleProto=r.start):this.raiseRecoverable(r.start,"Redefinition of __proto__ property")),e.proto=!0);return}s="$"+s;var n=e[s];if(n){var o;a==="init"?o=this.strict&&n.init||n.get||n.set:o=n.init||n[a],o&&this.raiseRecoverable(r.start,"Redefinition of property")}else n=e[s]={init:!1,get:!1,set:!1};n[a]=!0}};M.parseExpression=function(t,e){var i=this.start,r=this.startLoc,s=this.parseMaybeAssign(t,e);if(this.type===d.comma){var a=this.startNodeAt(i,r);for(a.expressions=[s];this.eat(d.comma);)a.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(a,"SequenceExpression")}return s};M.parseMaybeAssign=function(t,e,i){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(t);this.exprAllowed=!1}var r=!1,s=-1,a=-1,n=-1;e?(s=e.parenthesizedAssign,a=e.trailingComma,n=e.doubleProto,e.parenthesizedAssign=e.trailingComma=-1):(e=new yi,r=!0);var o=this.start,l=this.startLoc;(this.type===d.parenL||this.type===d.name)&&(this.potentialArrowAt=this.start,this.potentialArrowInForAwait=t==="await");var c=this.parseMaybeConditional(t,e);if(i&&(c=i.call(this,c,o,l)),this.type.isAssign){var h=this.startNodeAt(o,l);return h.operator=this.value,this.type===d.eq&&(c=this.toAssignable(c,!1,e)),r||(e.parenthesizedAssign=e.trailingComma=e.doubleProto=-1),e.shorthandAssign>=c.start&&(e.shorthandAssign=-1),this.type===d.eq?this.checkLValPattern(c):this.checkLValSimple(c),h.left=c,this.next(),h.right=this.parseMaybeAssign(t),n>-1&&(e.doubleProto=n),this.finishNode(h,"AssignmentExpression")}else r&&this.checkExpressionErrors(e,!0);return s>-1&&(e.parenthesizedAssign=s),a>-1&&(e.trailingComma=a),c};M.parseMaybeConditional=function(t,e){var i=this.start,r=this.startLoc,s=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return s;if(this.eat(d.question)){var a=this.startNodeAt(i,r);return a.test=s,a.consequent=this.parseMaybeAssign(),this.expect(d.colon),a.alternate=this.parseMaybeAssign(t),this.finishNode(a,"ConditionalExpression")}return s};M.parseExprOps=function(t,e){var i=this.start,r=this.startLoc,s=this.parseMaybeUnary(e,!1,!1,t);return this.checkExpressionErrors(e)||s.start===i&&s.type==="ArrowFunctionExpression"?s:this.parseExprOp(s,i,r,-1,t)};M.parseExprOp=function(t,e,i,r,s){var a=this.type.binop;if(a!=null&&(!s||this.type!==d._in)&&a>r){var n=this.type===d.logicalOR||this.type===d.logicalAND,o=this.type===d.coalesce;o&&(a=d.logicalAND.binop);var l=this.value;this.next();var c=this.start,h=this.startLoc,p=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,s),c,h,a,s),u=this.buildBinary(e,i,t,p,l,n||o);return(n&&this.type===d.coalesce||o&&(this.type===d.logicalOR||this.type===d.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(u,e,i,r,s)}return t};M.buildBinary=function(t,e,i,r,s,a){r.type==="PrivateIdentifier"&&this.raise(r.start,"Private identifier can only be left side of binary expression");var n=this.startNodeAt(t,e);return n.left=i,n.operator=s,n.right=r,this.finishNode(n,a?"LogicalExpression":"BinaryExpression")};M.parseMaybeUnary=function(t,e,i,r){var s=this.start,a=this.startLoc,n;if(this.isContextual("await")&&this.canAwait)n=this.parseAwait(r),e=!0;else if(this.type.prefix){var o=this.startNode(),l=this.type===d.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0,l,r),this.checkExpressionErrors(t,!0),l?this.checkLValSimple(o.argument):this.strict&&o.operator==="delete"&&hs(o.argument)?this.raiseRecoverable(o.start,"Deleting local variable in strict mode"):o.operator==="delete"&&Oi(o.argument)?this.raiseRecoverable(o.start,"Private fields can not be deleted"):e=!0,n=this.finishNode(o,l?"UpdateExpression":"UnaryExpression")}else if(!e&&this.type===d.privateId)(r||this.privateNameStack.length===0)&&this.options.checkPrivateFields&&this.unexpected(),n=this.parsePrivateIdent(),this.type!==d._in&&this.unexpected();else{if(n=this.parseExprSubscripts(t,r),this.checkExpressionErrors(t))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var c=this.startNodeAt(s,a);c.operator=this.value,c.prefix=!1,c.argument=n,this.checkLValSimple(n),this.next(),n=this.finishNode(c,"UpdateExpression")}}if(!i&&this.eat(d.starstar))if(e)this.unexpected(this.lastTokStart);else return this.buildBinary(s,a,n,this.parseMaybeUnary(null,!1,!1,r),"**",!1);else return n};function hs(t){return t.type==="Identifier"||t.type==="ParenthesizedExpression"&&hs(t.expression)}function Oi(t){return t.type==="MemberExpression"&&t.property.type==="PrivateIdentifier"||t.type==="ChainExpression"&&Oi(t.expression)||t.type==="ParenthesizedExpression"&&Oi(t.expression)}M.parseExprSubscripts=function(t,e){var i=this.start,r=this.startLoc,s=this.parseExprAtom(t,e);if(s.type==="ArrowFunctionExpression"&&this.input.slice(this.lastTokStart,this.lastTokEnd)!==")")return s;var a=this.parseSubscripts(s,i,r,!1,e);return t&&a.type==="MemberExpression"&&(t.parenthesizedAssign>=a.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=a.start&&(t.parenthesizedBind=-1),t.trailingComma>=a.start&&(t.trailingComma=-1)),a};M.parseSubscripts=function(t,e,i,r,s){for(var a=this.options.ecmaVersion>=8&&t.type==="Identifier"&&t.name==="async"&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&this.potentialArrowAt===t.start,n=!1;;){var o=this.parseSubscript(t,e,i,r,a,n,s);if(o.optional&&(n=!0),o===t||o.type==="ArrowFunctionExpression"){if(n){var l=this.startNodeAt(e,i);l.expression=o,o=this.finishNode(l,"ChainExpression")}return o}t=o}};M.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(d.arrow)};M.parseSubscriptAsyncArrow=function(t,e,i,r){return this.parseArrowExpression(this.startNodeAt(t,e),i,!0,r)};M.parseSubscript=function(t,e,i,r,s,a,n){var o=this.options.ecmaVersion>=11,l=o&&this.eat(d.questionDot);r&&l&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var c=this.eat(d.bracketL);if(c||l&&this.type!==d.parenL&&this.type!==d.backQuote||this.eat(d.dot)){var h=this.startNodeAt(e,i);h.object=t,c?(h.property=this.parseExpression(),this.expect(d.bracketR)):this.type===d.privateId&&t.type!=="Super"?h.property=this.parsePrivateIdent():h.property=this.parseIdent(this.options.allowReserved!=="never"),h.computed=!!c,o&&(h.optional=l),t=this.finishNode(h,"MemberExpression")}else if(!r&&this.eat(d.parenL)){var p=new yi,u=this.yieldPos,f=this.awaitPos,m=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var x=this.parseExprList(d.parenR,this.options.ecmaVersion>=8,!1,p);if(s&&!l&&this.shouldParseAsyncArrow())return this.checkPatternErrors(p,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=u,this.awaitPos=f,this.awaitIdentPos=m,this.parseSubscriptAsyncArrow(e,i,x,n);this.checkExpressionErrors(p,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=f||this.awaitPos,this.awaitIdentPos=m||this.awaitIdentPos;var _=this.startNodeAt(e,i);_.callee=t,_.arguments=x,o&&(_.optional=l),t=this.finishNode(_,"CallExpression")}else if(this.type===d.backQuote){(l||a)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var b=this.startNodeAt(e,i);b.tag=t,b.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(b,"TaggedTemplateExpression")}return t};M.parseExprAtom=function(t,e,i){this.type===d.slash&&this.readRegexp();var r,s=this.potentialArrowAt===this.start;switch(this.type){case d._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),r=this.startNode(),this.next(),this.type===d.parenL&&!this.allowDirectSuper&&this.raise(r.start,"super() call outside constructor of a subclass"),this.type!==d.dot&&this.type!==d.bracketL&&this.type!==d.parenL&&this.unexpected(),this.finishNode(r,"Super");case d._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case d.name:var a=this.start,n=this.startLoc,o=this.containsEsc,l=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!o&&l.name==="async"&&!this.canInsertSemicolon()&&this.eat(d._function))return this.overrideContext(G.f_expr),this.parseFunction(this.startNodeAt(a,n),0,!1,!0,e);if(s&&!this.canInsertSemicolon()){if(this.eat(d.arrow))return this.parseArrowExpression(this.startNodeAt(a,n),[l],!1,e);if(this.options.ecmaVersion>=8&&l.name==="async"&&this.type===d.name&&!o&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return l=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(d.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,n),[l],!0,e)}return l;case d.regexp:var c=this.value;return r=this.parseLiteral(c.value),r.regex={pattern:c.pattern,flags:c.flags},r;case d.num:case d.string:return this.parseLiteral(this.value);case d._null:case d._true:case d._false:return r=this.startNode(),r.value=this.type===d._null?null:this.type===d._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,"Literal");case d.parenL:var h=this.start,p=this.parseParenAndDistinguishExpression(s,e);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(p)&&(t.parenthesizedAssign=h),t.parenthesizedBind<0&&(t.parenthesizedBind=h)),p;case d.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(d.bracketR,!0,!0,t),this.finishNode(r,"ArrayExpression");case d.braceL:return this.overrideContext(G.b_expr),this.parseObj(!1,t);case d._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case d._class:return this.parseClass(this.startNode(),!1);case d._new:return this.parseNew();case d.backQuote:return this.parseTemplate();case d._import:return this.options.ecmaVersion>=11?this.parseExprImport(i):this.unexpected();default:return this.parseExprAtomDefault()}};M.parseExprAtomDefault=function(){this.unexpected()};M.parseExprImport=function(t){var e=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import"),this.next(),this.type===d.parenL&&!t)return this.parseDynamicImport(e);if(this.type===d.dot){var i=this.startNodeAt(e.start,e.loc&&e.loc.start);return i.name="import",e.meta=this.finishNode(i,"Identifier"),this.parseImportMeta(e)}else this.unexpected()};M.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(d.parenR)?t.options=null:(this.expect(d.comma),this.afterTrailingComma(d.parenR)?t.options=null:(t.options=this.parseMaybeAssign(),this.eat(d.parenR)||(this.expect(d.comma),this.afterTrailingComma(d.parenR)||this.unexpected())));else if(!this.eat(d.parenR)){var e=this.start;this.eat(d.comma)&&this.eat(d.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(t,"ImportExpression")};M.parseImportMeta=function(t){this.next();var e=this.containsEsc;return t.property=this.parseIdent(!0),t.property.name!=="meta"&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(t.start,"'import.meta' must not contain escaped characters"),this.options.sourceType!=="module"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(t.start,"Cannot use 'import.meta' outside a module"),this.finishNode(t,"MetaProperty")};M.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),e.raw.charCodeAt(e.raw.length-1)===110&&(e.bigint=e.value!=null?e.value.toString():e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")};M.parseParenExpression=function(){this.expect(d.parenL);var t=this.parseExpression();return this.expect(d.parenR),t};M.shouldParseArrow=function(t){return!this.canInsertSemicolon()};M.parseParenAndDistinguishExpression=function(t,e){var i=this.start,r=this.startLoc,s,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var n=this.start,o=this.startLoc,l=[],c=!0,h=!1,p=new yi,u=this.yieldPos,f=this.awaitPos,m;for(this.yieldPos=0,this.awaitPos=0;this.type!==d.parenR;)if(c?c=!1:this.expect(d.comma),a&&this.afterTrailingComma(d.parenR,!0)){h=!0;break}else if(this.type===d.ellipsis){m=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===d.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}else l.push(this.parseMaybeAssign(!1,p,this.parseParenItem));var x=this.lastTokEnd,_=this.lastTokEndLoc;if(this.expect(d.parenR),t&&this.shouldParseArrow(l)&&this.eat(d.arrow))return this.checkPatternErrors(p,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=u,this.awaitPos=f,this.parseParenArrowList(i,r,l,e);(!l.length||h)&&this.unexpected(this.lastTokStart),m&&this.unexpected(m),this.checkExpressionErrors(p,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=f||this.awaitPos,l.length>1?(s=this.startNodeAt(n,o),s.expressions=l,this.finishNodeAt(s,"SequenceExpression",x,_)):s=l[0]}else s=this.parseParenExpression();if(this.options.preserveParens){var b=this.startNodeAt(i,r);return b.expression=s,this.finishNode(b,"ParenthesizedExpression")}else return s};M.parseParenItem=function(t){return t};M.parseParenArrowList=function(t,e,i,r){return this.parseArrowExpression(this.startNodeAt(t,e),i,!1,r)};var In=[];M.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var t=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===d.dot){var e=this.startNodeAt(t.start,t.loc&&t.loc.start);e.name="new",t.meta=this.finishNode(e,"Identifier"),this.next();var i=this.containsEsc;return t.property=this.parseIdent(!0),t.property.name!=="target"&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is 'new.target'"),i&&this.raiseRecoverable(t.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(t.start,"'new.target' can only be used in functions and class static block"),this.finishNode(t,"MetaProperty")}var r=this.start,s=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),r,s,!0,!1),this.eat(d.parenL)?t.arguments=this.parseExprList(d.parenR,this.options.ecmaVersion>=8,!1):t.arguments=In,this.finishNode(t,"NewExpression")};M.parseTemplateElement=function(t){var e=t.isTagged,i=this.startNode();return this.type===d.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),i.value={raw:this.value.replace(/\r\n?/g,`
|
|
1
|
+
var hn=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239],Hr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489],un="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",Gr="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",wi={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},Si="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",pn={5:Si,"5module":Si+" export import",6:Si+" const class extends export import super"},Yr=/^in(stanceof)?$/,fn=new RegExp("["+Gr+"]"),dn=new RegExp("["+Gr+un+"]");function Di(t,e){for(var i=65536,r=0;r<e.length;r+=2){if(i+=e[r],i>t)return!1;if(i+=e[r+1],i>=t)return!0}return!1}function ze(t,e){return t<65?t===36:t<91?!0:t<97?t===95:t<123?!0:t<=65535?t>=170&&fn.test(String.fromCharCode(t)):e===!1?!1:Di(t,Hr)}function ct(t,e){return t<48?t===36:t<58?!0:t<65?!1:t<91?!0:t<97?t===95:t<123?!0:t<=65535?t>=170&&dn.test(String.fromCharCode(t)):e===!1?!1:Di(t,Hr)||Di(t,hn)}var U=function(e,i){i===void 0&&(i={}),this.label=e,this.keyword=i.keyword,this.beforeExpr=!!i.beforeExpr,this.startsExpr=!!i.startsExpr,this.isLoop=!!i.isLoop,this.isAssign=!!i.isAssign,this.prefix=!!i.prefix,this.postfix=!!i.postfix,this.binop=i.binop||null,this.updateContext=null};function Ae(t,e){return new U(t,{beforeExpr:!0,binop:e})}var Te={beforeExpr:!0},ye={startsExpr:!0},qi={};function F(t,e){return e===void 0&&(e={}),e.keyword=t,qi[t]=new U(t,e)}var d={num:new U("num",ye),regexp:new U("regexp",ye),string:new U("string",ye),name:new U("name",ye),privateId:new U("privateId",ye),eof:new U("eof"),bracketL:new U("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new U("]"),braceL:new U("{",{beforeExpr:!0,startsExpr:!0}),braceR:new U("}"),parenL:new U("(",{beforeExpr:!0,startsExpr:!0}),parenR:new U(")"),comma:new U(",",Te),semi:new U(";",Te),colon:new U(":",Te),dot:new U("."),question:new U("?",Te),questionDot:new U("?."),arrow:new U("=>",Te),template:new U("template"),invalidTemplate:new U("invalidTemplate"),ellipsis:new U("...",Te),backQuote:new U("`",ye),dollarBraceL:new U("${",{beforeExpr:!0,startsExpr:!0}),eq:new U("=",{beforeExpr:!0,isAssign:!0}),assign:new U("_=",{beforeExpr:!0,isAssign:!0}),incDec:new U("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new U("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ae("||",1),logicalAND:Ae("&&",2),bitwiseOR:Ae("|",3),bitwiseXOR:Ae("^",4),bitwiseAND:Ae("&",5),equality:Ae("==/!=/===/!==",6),relational:Ae("</>/<=/>=",7),bitShift:Ae("<</>>/>>>",8),plusMin:new U("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ae("%",10),star:Ae("*",10),slash:Ae("/",10),starstar:new U("**",{beforeExpr:!0}),coalesce:Ae("??",1),_break:F("break"),_case:F("case",Te),_catch:F("catch"),_continue:F("continue"),_debugger:F("debugger"),_default:F("default",Te),_do:F("do",{isLoop:!0,beforeExpr:!0}),_else:F("else",Te),_finally:F("finally"),_for:F("for",{isLoop:!0}),_function:F("function",ye),_if:F("if"),_return:F("return",Te),_switch:F("switch"),_throw:F("throw",Te),_try:F("try"),_var:F("var"),_const:F("const"),_while:F("while",{isLoop:!0}),_with:F("with"),_new:F("new",{beforeExpr:!0,startsExpr:!0}),_this:F("this",ye),_super:F("super",ye),_class:F("class",ye),_extends:F("extends",Te),_export:F("export"),_import:F("import",ye),_null:F("null",ye),_true:F("true",ye),_false:F("false",ye),_in:F("in",{beforeExpr:!0,binop:7}),_instanceof:F("instanceof",{beforeExpr:!0,binop:7}),_typeof:F("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:F("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:F("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},ve=/\r\n?|\n|\u2028|\u2029/,mn=new RegExp(ve.source,"g");function Dt(t){return t===10||t===13||t===8232||t===8233}function Xr(t,e,i){i===void 0&&(i=t.length);for(var r=e;r<i;r++){var s=t.charCodeAt(r);if(Dt(s))return r<i-1&&s===13&&t.charCodeAt(r+1)===10?r+2:r+1}return-1}var Qr=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,he=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Zr=Object.prototype,gn=Zr.hasOwnProperty,yn=Zr.toString,Mt=Object.hasOwn||(function(t,e){return gn.call(t,e)}),ar=Array.isArray||(function(t){return yn.call(t)==="[object Array]"}),or=Object.create(null);function lt(t){return or[t]||(or[t]=new RegExp("^(?:"+t.replace(/ /g,"|")+")$"))}function Je(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}var xn=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,Ut=function(e,i){this.line=e,this.column=i};Ut.prototype.offset=function(e){return new Ut(this.line,this.column+e)};var di=function(e,i,r){this.start=i,this.end=r,e.sourceFile!==null&&(this.source=e.sourceFile)};function Jr(t,e){for(var i=1,r=0;;){var s=Xr(t,r,e);if(s<0)return new Ut(i,e-r);++i,r=s}}var Mi={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},lr=!1;function _n(t){var e={};for(var i in Mi)e[i]=t&&Mt(t,i)?t[i]:Mi[i];if(e.ecmaVersion==="latest"?e.ecmaVersion=1e8:e.ecmaVersion==null?(!lr&&typeof console=="object"&&console.warn&&(lr=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required.
|
|
2
|
+
Defaulting to 2020, but this will stop working in the future.`)),e.ecmaVersion=11):e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),e.allowReserved==null&&(e.allowReserved=e.ecmaVersion<5),(!t||t.allowHashBang==null)&&(e.allowHashBang=e.ecmaVersion>=14),ar(e.onToken)){var r=e.onToken;e.onToken=function(s){return r.push(s)}}if(ar(e.onComment)&&(e.onComment=bn(e,e.onComment)),e.sourceType==="commonjs"&&e.allowAwaitOutsideFunction)throw new Error("Cannot use allowAwaitOutsideFunction with sourceType: commonjs");return e}function bn(t,e){return function(i,r,s,a,n,o){var l={type:i?"Block":"Line",value:r,start:s,end:a};t.locations&&(l.loc=new di(this,n,o)),t.ranges&&(l.range=[s,a]),e.push(l)}}var mt=1,gt=2,Ki=4,es=8,zi=16,ts=32,mi=64,is=128,yt=256,qt=512,rs=1024,gi=mt|gt|yt;function Hi(t,e){return gt|(t?Ki:0)|(e?es:0)}var ni=0,Gi=1,tt=2,ss=3,ns=4,as=5,ie=function(e,i,r){this.options=e=_n(e),this.sourceFile=e.sourceFile,this.keywords=lt(pn[e.ecmaVersion>=6?6:e.sourceType==="module"?"5module":5]);var s="";e.allowReserved!==!0&&(s=wi[e.ecmaVersion>=6?6:e.ecmaVersion===5?5:3],e.sourceType==="module"&&(s+=" await")),this.reservedWords=lt(s);var a=(s?s+" ":"")+wi.strict;this.reservedWordsStrict=lt(a),this.reservedWordsStrictBind=lt(a+" "+wi.strictBind),this.input=String(i),this.containsEsc=!1,r?(this.pos=r,this.lineStart=this.input.lastIndexOf(`
|
|
3
|
+
`,r-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(ve).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=d.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=e.sourceType==="module",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&e.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(this.options.sourceType==="commonjs"?gt:mt),this.regexpState=null,this.privateNameStack=[]},Oe={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowReturn:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},allowUsing:{configurable:!0},inClassStaticBlock:{configurable:!0}};ie.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};Oe.inFunction.get=function(){return(this.currentVarScope().flags>)>0};Oe.inGenerator.get=function(){return(this.currentVarScope().flags&es)>0};Oe.inAsync.get=function(){return(this.currentVarScope().flags&Ki)>0};Oe.canAwait.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t],i=e.flags;if(i&(yt|qt))return!1;if(i>)return(i&Ki)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction};Oe.allowReturn.get=function(){return!!(this.inFunction||this.options.allowReturnOutsideFunction&&this.currentVarScope().flags&mt)};Oe.allowSuper.get=function(){var t=this.currentThisScope(),e=t.flags;return(e&mi)>0||this.options.allowSuperOutsideMethod};Oe.allowDirectSuper.get=function(){return(this.currentThisScope().flags&is)>0};Oe.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};Oe.allowNewDotTarget.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t],i=e.flags;if(i&(yt|qt)||i>&&!(i&zi))return!0}return!1};Oe.allowUsing.get=function(){var t=this.currentScope(),e=t.flags;return!(e&rs||!this.inModule&&e&mt)};Oe.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&yt)>0};ie.extend=function(){for(var e=[],i=arguments.length;i--;)e[i]=arguments[i];for(var r=this,s=0;s<e.length;s++)r=e[s](r);return r};ie.parse=function(e,i){return new this(i,e).parse()};ie.parseExpressionAt=function(e,i,r){var s=new this(r,e,i);return s.nextToken(),s.parseExpression()};ie.tokenizer=function(e,i){return new this(i,e)};Object.defineProperties(ie.prototype,Oe);var ge=ie.prototype,vn=/^(?:'((?:\\[^]|[^'\\])*?)'|"((?:\\[^]|[^"\\])*?)")/;ge.strictDirective=function(t){if(this.options.ecmaVersion<5)return!1;for(;;){he.lastIndex=t,t+=he.exec(this.input)[0].length;var e=vn.exec(this.input.slice(t));if(!e)return!1;if((e[1]||e[2])==="use strict"){he.lastIndex=t+e[0].length;var i=he.exec(this.input),r=i.index+i[0].length,s=this.input.charAt(r);return s===";"||s==="}"||ve.test(i[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(s)||s==="!"&&this.input.charAt(r+1)==="=")}t+=e[0].length,he.lastIndex=t,t+=he.exec(this.input)[0].length,this.input[t]===";"&&t++}};ge.eat=function(t){return this.type===t?(this.next(),!0):!1};ge.isContextual=function(t){return this.type===d.name&&this.value===t&&!this.containsEsc};ge.eatContextual=function(t){return this.isContextual(t)?(this.next(),!0):!1};ge.expectContextual=function(t){this.eatContextual(t)||this.unexpected()};ge.canInsertSemicolon=function(){return this.type===d.eof||this.type===d.braceR||ve.test(this.input.slice(this.lastTokEnd,this.start))};ge.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};ge.semicolon=function(){!this.eat(d.semi)&&!this.insertSemicolon()&&this.unexpected()};ge.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0};ge.expect=function(t){this.eat(t)||this.unexpected()};ge.unexpected=function(t){this.raise(t??this.start,"Unexpected token")};var yi=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};ge.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var i=e?t.parenthesizedAssign:t.parenthesizedBind;i>-1&&this.raiseRecoverable(i,e?"Assigning to rvalue":"Parenthesized pattern")}};ge.checkExpressionErrors=function(t,e){if(!t)return!1;var i=t.shorthandAssign,r=t.doubleProto;if(!e)return i>=0||r>=0;i>=0&&this.raise(i,"Shorthand property assignments are valid only in destructuring patterns"),r>=0&&this.raiseRecoverable(r,"Redefinition of __proto__ property")};ge.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")};ge.isSimpleAssignTarget=function(t){return t.type==="ParenthesizedExpression"?this.isSimpleAssignTarget(t.expression):t.type==="Identifier"||t.type==="MemberExpression"};var A=ie.prototype;A.parseTopLevel=function(t){var e=Object.create(null);for(t.body||(t.body=[]);this.type!==d.eof;){var i=this.parseStatement(null,!0,e);t.body.push(i)}if(this.inModule)for(var r=0,s=Object.keys(this.undefinedExports);r<s.length;r+=1){var a=s[r];this.raiseRecoverable(this.undefinedExports[a].start,"Export '"+a+"' is not defined")}return this.adaptDirectivePrologue(t.body),this.next(),t.sourceType=this.options.sourceType==="commonjs"?"script":this.options.sourceType,this.finishNode(t,"Program")};var Yi={kind:"loop"},wn={kind:"switch"};A.isLet=function(t){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;he.lastIndex=this.pos;var e=he.exec(this.input),i=this.pos+e[0].length,r=this.fullCharCodeAt(i);if(r===91||r===92)return!0;if(t)return!1;if(r===123)return!0;if(ze(r)){var s=i;do i+=r<=65535?1:2;while(ct(r=this.fullCharCodeAt(i)));if(r===92)return!0;var a=this.input.slice(s,i);if(!Yr.test(a))return!0}return!1};A.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;he.lastIndex=this.pos;var t=he.exec(this.input),e=this.pos+t[0].length,i;return!ve.test(this.input.slice(this.pos,e))&&this.input.slice(e,e+8)==="function"&&(e+8===this.input.length||!(ct(i=this.fullCharCodeAt(e+8))||i===92))};A.isUsingKeyword=function(t,e){if(this.options.ecmaVersion<17||!this.isContextual(t?"await":"using"))return!1;he.lastIndex=this.pos;var i=he.exec(this.input),r=this.pos+i[0].length;if(ve.test(this.input.slice(this.pos,r)))return!1;if(t){var s=r+5,a;if(this.input.slice(r,s)!=="using"||s===this.input.length||ct(a=this.fullCharCodeAt(s))||a===92)return!1;he.lastIndex=s;var n=he.exec(this.input);if(r=s+n[0].length,n&&ve.test(this.input.slice(s,r)))return!1}var o=this.fullCharCodeAt(r);if(!ze(o)&&o!==92)return!1;var l=r;do r+=o<=65535?1:2;while(ct(o=this.fullCharCodeAt(r)));if(o===92)return!0;var c=this.input.slice(l,r);return!(Yr.test(c)||e&&c==="of")};A.isAwaitUsing=function(t){return this.isUsingKeyword(!0,t)};A.isUsing=function(t){return this.isUsingKeyword(!1,t)};A.parseStatement=function(t,e,i){var r=this.type,s=this.startNode(),a;switch(this.isLet(t)&&(r=d._var,a="let"),r){case d._break:case d._continue:return this.parseBreakContinueStatement(s,r.keyword);case d._debugger:return this.parseDebuggerStatement(s);case d._do:return this.parseDoStatement(s);case d._for:return this.parseForStatement(s);case d._function:return t&&(this.strict||t!=="if"&&t!=="label")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(s,!1,!t);case d._class:return t&&this.unexpected(),this.parseClass(s,!0);case d._if:return this.parseIfStatement(s);case d._return:return this.parseReturnStatement(s);case d._switch:return this.parseSwitchStatement(s);case d._throw:return this.parseThrowStatement(s);case d._try:return this.parseTryStatement(s);case d._const:case d._var:return a=a||this.value,t&&a!=="var"&&this.unexpected(),this.parseVarStatement(s,a);case d._while:return this.parseWhileStatement(s);case d._with:return this.parseWithStatement(s);case d.braceL:return this.parseBlock(!0,s);case d.semi:return this.parseEmptyStatement(s);case d._export:case d._import:if(this.options.ecmaVersion>10&&r===d._import){he.lastIndex=this.pos;var n=he.exec(this.input),o=this.pos+n[0].length,l=this.input.charCodeAt(o);if(l===40||l===46)return this.parseExpressionStatement(s,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),r===d._import?this.parseImport(s):this.parseExport(s,i);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(s,!0,!t);var c=this.isAwaitUsing(!1)?"await using":this.isUsing(!1)?"using":null;if(c)return this.allowUsing||this.raise(this.start,"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement"),c==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.next(),this.parseVar(s,!1,c),this.semicolon(),this.finishNode(s,"VariableDeclaration");var h=this.value,p=this.parseExpression();return r===d.name&&p.type==="Identifier"&&this.eat(d.colon)?this.parseLabeledStatement(s,h,p,t):this.parseExpressionStatement(s,p)}};A.parseBreakContinueStatement=function(t,e){var i=e==="break";this.next(),this.eat(d.semi)||this.insertSemicolon()?t.label=null:this.type!==d.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var r=0;r<this.labels.length;++r){var s=this.labels[r];if((t.label==null||s.name===t.label.name)&&(s.kind!=null&&(i||s.kind==="loop")||t.label&&i))break}return r===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,i?"BreakStatement":"ContinueStatement")};A.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")};A.parseDoStatement=function(t){return this.next(),this.labels.push(Yi),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(d._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(d.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")};A.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(Yi),this.enterScope(0),this.expect(d.parenL),this.type===d.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var i=this.isLet();if(this.type===d._var||this.type===d._const||i){var r=this.startNode(),s=i?"let":this.value;return this.next(),this.parseVar(r,!0,s),this.finishNode(r,"VariableDeclaration"),this.parseForAfterInit(t,r,e)}var a=this.isContextual("let"),n=!1,o=this.isUsing(!0)?"using":this.isAwaitUsing(!0)?"await using":null;if(o){var l=this.startNode();return this.next(),o==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.parseVar(l,!0,o),this.finishNode(l,"VariableDeclaration"),this.parseForAfterInit(t,l,e)}var c=this.containsEsc,h=new yi,p=this.start,u=e>-1?this.parseExprSubscripts(h,"await"):this.parseExpression(!0,h);return this.type===d._in||(n=this.options.ecmaVersion>=6&&this.isContextual("of"))?(e>-1?(this.type===d._in&&this.unexpected(e),t.await=!0):n&&this.options.ecmaVersion>=8&&(u.start===p&&!c&&u.type==="Identifier"&&u.name==="async"?this.unexpected():this.options.ecmaVersion>=9&&(t.await=!1)),a&&n&&this.raise(u.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(u,!1,h),this.checkLValPattern(u),this.parseForIn(t,u)):(this.checkExpressionErrors(h,!0),e>-1&&this.unexpected(e),this.parseFor(t,u))};A.parseForAfterInit=function(t,e,i){return(this.type===d._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&e.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===d._in?i>-1&&this.unexpected(i):t.await=i>-1),this.parseForIn(t,e)):(i>-1&&this.unexpected(i),this.parseFor(t,e))};A.parseFunctionStatement=function(t,e,i){return this.next(),this.parseFunction(t,$t|(i?0:Ri),!1,e)};A.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(d._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")};A.parseReturnStatement=function(t){return this.allowReturn||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(d.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")};A.parseSwitchStatement=function(t){this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(d.braceL),this.labels.push(wn),this.enterScope(rs);for(var e,i=!1;this.type!==d.braceR;)if(this.type===d._case||this.type===d._default){var r=this.type===d._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),r?e.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),i=!0,e.test=null),this.expect(d.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")};A.parseThrowStatement=function(t){return this.next(),ve.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var Sn=[];A.parseCatchClauseParam=function(){var t=this.parseBindingAtom(),e=t.type==="Identifier";return this.enterScope(e?ts:0),this.checkLValPattern(t,e?ns:tt),this.expect(d.parenR),t};A.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===d._catch){var e=this.startNode();this.next(),this.eat(d.parenL)?e.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0)),e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(d._finally)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")};A.parseVarStatement=function(t,e,i){return this.next(),this.parseVar(t,!1,e,i),this.semicolon(),this.finishNode(t,"VariableDeclaration")};A.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(Yi),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")};A.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")};A.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")};A.parseLabeledStatement=function(t,e,i,r){for(var s=0,a=this.labels;s<a.length;s+=1){var n=a[s];n.name===e&&this.raise(i.start,"Label '"+e+"' is already declared")}for(var o=this.type.isLoop?"loop":this.type===d._switch?"switch":null,l=this.labels.length-1;l>=0;l--){var c=this.labels[l];if(c.statementStart===t.start)c.statementStart=this.start,c.kind=o;else break}return this.labels.push({name:e,kind:o,statementStart:this.start}),t.body=this.parseStatement(r?r.indexOf("label")===-1?r+"label":r:"label"),this.labels.pop(),t.label=i,this.finishNode(t,"LabeledStatement")};A.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")};A.parseBlock=function(t,e,i){for(t===void 0&&(t=!0),e===void 0&&(e=this.startNode()),e.body=[],this.expect(d.braceL),t&&this.enterScope(0);this.type!==d.braceR;){var r=this.parseStatement(null);e.body.push(r)}return i&&(this.strict=!1),this.next(),t&&this.exitScope(),this.finishNode(e,"BlockStatement")};A.parseFor=function(t,e){return t.init=e,this.expect(d.semi),t.test=this.type===d.semi?null:this.parseExpression(),this.expect(d.semi),t.update=this.type===d.parenR?null:this.parseExpression(),this.expect(d.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,"ForStatement")};A.parseForIn=function(t,e){var i=this.type===d._in;return this.next(),e.type==="VariableDeclaration"&&e.declarations[0].init!=null&&(!i||this.options.ecmaVersion<8||this.strict||e.kind!=="var"||e.declarations[0].id.type!=="Identifier")&&this.raise(e.start,(i?"for-in":"for-of")+" loop variable declaration may not have an initializer"),t.left=e,t.right=i?this.parseExpression():this.parseMaybeAssign(),this.expect(d.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,i?"ForInStatement":"ForOfStatement")};A.parseVar=function(t,e,i,r){for(t.declarations=[],t.kind=i;;){var s=this.startNode();if(this.parseVarId(s,i),this.eat(d.eq)?s.init=this.parseMaybeAssign(e):!r&&i==="const"&&!(this.type===d._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():!r&&(i==="using"||i==="await using")&&this.options.ecmaVersion>=17&&this.type!==d._in&&!this.isContextual("of")?this.raise(this.lastTokEnd,"Missing initializer in "+i+" declaration"):!r&&s.id.type!=="Identifier"&&!(e&&(this.type===d._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):s.init=null,t.declarations.push(this.finishNode(s,"VariableDeclarator")),!this.eat(d.comma))break}return t};A.parseVarId=function(t,e){t.id=e==="using"||e==="await using"?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(t.id,e==="var"?Gi:tt,!1)};var $t=1,Ri=2,os=4;A.parseFunction=function(t,e,i,r,s){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!r)&&(this.type===d.star&&e&Ri&&this.unexpected(),t.generator=this.eat(d.star)),this.options.ecmaVersion>=8&&(t.async=!!r),e&$t&&(t.id=e&os&&this.type!==d.name?null:this.parseIdent(),t.id&&!(e&Ri)&&this.checkLValSimple(t.id,this.strict||t.generator||t.async?this.treatFunctionsAsVar?Gi:tt:ss));var a=this.yieldPos,n=this.awaitPos,o=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Hi(t.async,t.generator)),e&$t||(t.id=this.type===d.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,i,!1,s),this.yieldPos=a,this.awaitPos=n,this.awaitIdentPos=o,this.finishNode(t,e&$t?"FunctionDeclaration":"FunctionExpression")};A.parseFunctionParams=function(t){this.expect(d.parenL),t.params=this.parseBindingList(d.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()};A.parseClass=function(t,e){this.next();var i=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var r=this.enterClassBody(),s=this.startNode(),a=!1;for(s.body=[],this.expect(d.braceL);this.type!==d.braceR;){var n=this.parseClassElement(t.superClass!==null);n&&(s.body.push(n),n.type==="MethodDefinition"&&n.kind==="constructor"?(a&&this.raiseRecoverable(n.start,"Duplicate constructor in the same class"),a=!0):n.key&&n.key.type==="PrivateIdentifier"&&En(r,n)&&this.raiseRecoverable(n.key.start,"Identifier '#"+n.key.name+"' has already been declared"))}return this.strict=i,this.next(),t.body=this.finishNode(s,"ClassBody"),this.exitClassBody(),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")};A.parseClassElement=function(t){if(this.eat(d.semi))return null;var e=this.options.ecmaVersion,i=this.startNode(),r="",s=!1,a=!1,n="method",o=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(d.braceL))return this.parseClassStaticBlock(i),i;this.isClassElementNameStart()||this.type===d.star?o=!0:r="static"}if(i.static=o,!r&&e>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===d.star)&&!this.canInsertSemicolon()?a=!0:r="async"),!r&&(e>=9||!a)&&this.eat(d.star)&&(s=!0),!r&&!a&&!s){var l=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?n=l:r=l)}if(r?(i.computed=!1,i.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),i.key.name=r,this.finishNode(i.key,"Identifier")):this.parseClassElementName(i),e<13||this.type===d.parenL||n!=="method"||s||a){var c=!i.static&&ai(i,"constructor"),h=c&&t;c&&n!=="method"&&this.raise(i.key.start,"Constructor can't have get/set modifier"),i.kind=c?"constructor":n,this.parseClassMethod(i,s,a,h)}else this.parseClassField(i);return i};A.isClassElementNameStart=function(){return this.type===d.name||this.type===d.privateId||this.type===d.num||this.type===d.string||this.type===d.bracketL||this.type.keyword};A.parseClassElementName=function(t){this.type===d.privateId?(this.value==="constructor"&&this.raise(this.start,"Classes can't have an element named '#constructor'"),t.computed=!1,t.key=this.parsePrivateIdent()):this.parsePropertyName(t)};A.parseClassMethod=function(t,e,i,r){var s=t.key;t.kind==="constructor"?(e&&this.raise(s.start,"Constructor can't be a generator"),i&&this.raise(s.start,"Constructor can't be an async method")):t.static&&ai(t,"prototype")&&this.raise(s.start,"Classes may not have a static property named prototype");var a=t.value=this.parseMethod(e,i,r);return t.kind==="get"&&a.params.length!==0&&this.raiseRecoverable(a.start,"getter should have no params"),t.kind==="set"&&a.params.length!==1&&this.raiseRecoverable(a.start,"setter should have exactly one param"),t.kind==="set"&&a.params[0].type==="RestElement"&&this.raiseRecoverable(a.params[0].start,"Setter cannot use rest params"),this.finishNode(t,"MethodDefinition")};A.parseClassField=function(t){return ai(t,"constructor")?this.raise(t.key.start,"Classes can't have a field named 'constructor'"):t.static&&ai(t,"prototype")&&this.raise(t.key.start,"Classes can't have a static field named 'prototype'"),this.eat(d.eq)?(this.enterScope(qt|mi),t.value=this.parseMaybeAssign(),this.exitScope()):t.value=null,this.semicolon(),this.finishNode(t,"PropertyDefinition")};A.parseClassStaticBlock=function(t){t.body=[];var e=this.labels;for(this.labels=[],this.enterScope(yt|mi);this.type!==d.braceR;){var i=this.parseStatement(null);t.body.push(i)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(t,"StaticBlock")};A.parseClassId=function(t,e){this.type===d.name?(t.id=this.parseIdent(),e&&this.checkLValSimple(t.id,tt,!1)):(e===!0&&this.unexpected(),t.id=null)};A.parseClassSuper=function(t){t.superClass=this.eat(d._extends)?this.parseExprSubscripts(null,!1):null};A.enterClassBody=function(){var t={declared:Object.create(null),used:[]};return this.privateNameStack.push(t),t.declared};A.exitClassBody=function(){var t=this.privateNameStack.pop(),e=t.declared,i=t.used;if(this.options.checkPrivateFields)for(var r=this.privateNameStack.length,s=r===0?null:this.privateNameStack[r-1],a=0;a<i.length;++a){var n=i[a];Mt(e,n.name)||(s?s.used.push(n):this.raiseRecoverable(n.start,"Private field '#"+n.name+"' must be declared in an enclosing class"))}};function En(t,e){var i=e.key.name,r=t[i],s="true";return e.type==="MethodDefinition"&&(e.kind==="get"||e.kind==="set")&&(s=(e.static?"s":"i")+e.kind),r==="iget"&&s==="iset"||r==="iset"&&s==="iget"||r==="sget"&&s==="sset"||r==="sset"&&s==="sget"?(t[i]="true",!1):r?!0:(t[i]=s,!1)}function ai(t,e){var i=t.computed,r=t.key;return!i&&(r.type==="Identifier"&&r.name===e||r.type==="Literal"&&r.value===e)}A.parseExportAllDeclaration=function(t,e){return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(t.exported=this.parseModuleExportName(),this.checkExport(e,t.exported,this.lastTokStart)):t.exported=null),this.expectContextual("from"),this.type!==d.string&&this.unexpected(),t.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(t.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")};A.parseExport=function(t,e){if(this.next(),this.eat(d.star))return this.parseExportAllDeclaration(t,e);if(this.eat(d._default))return this.checkExport(e,"default",this.lastTokStart),t.declaration=this.parseExportDefaultDeclaration(),this.finishNode(t,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())t.declaration=this.parseExportDeclaration(t),t.declaration.type==="VariableDeclaration"?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id,t.declaration.id.start),t.specifiers=[],t.source=null,this.options.ecmaVersion>=16&&(t.attributes=[]);else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==d.string&&this.unexpected(),t.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(t.attributes=this.parseWithClause());else{for(var i=0,r=t.specifiers;i<r.length;i+=1){var s=r[i];this.checkUnreserved(s.local),this.checkLocalExport(s.local),s.local.type==="Literal"&&this.raise(s.local.start,"A string literal cannot be used as an exported binding without `from`.")}t.source=null,this.options.ecmaVersion>=16&&(t.attributes=[])}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")};A.parseExportDeclaration=function(t){return this.parseStatement(null)};A.parseExportDefaultDeclaration=function(){var t;if(this.type===d._function||(t=this.isAsyncFunction())){var e=this.startNode();return this.next(),t&&this.next(),this.parseFunction(e,$t|os,!1,t)}else if(this.type===d._class){var i=this.startNode();return this.parseClass(i,"nullableID")}else{var r=this.parseMaybeAssign();return this.semicolon(),r}};A.checkExport=function(t,e,i){t&&(typeof e!="string"&&(e=e.type==="Identifier"?e.name:e.value),Mt(t,e)&&this.raiseRecoverable(i,"Duplicate export '"+e+"'"),t[e]=!0)};A.checkPatternExport=function(t,e){var i=e.type;if(i==="Identifier")this.checkExport(t,e,e.start);else if(i==="ObjectPattern")for(var r=0,s=e.properties;r<s.length;r+=1){var a=s[r];this.checkPatternExport(t,a)}else if(i==="ArrayPattern")for(var n=0,o=e.elements;n<o.length;n+=1){var l=o[n];l&&this.checkPatternExport(t,l)}else i==="Property"?this.checkPatternExport(t,e.value):i==="AssignmentPattern"?this.checkPatternExport(t,e.left):i==="RestElement"&&this.checkPatternExport(t,e.argument)};A.checkVariableExport=function(t,e){if(t)for(var i=0,r=e;i<r.length;i+=1){var s=r[i];this.checkPatternExport(t,s.id)}};A.shouldParseExportStatement=function(){return this.type.keyword==="var"||this.type.keyword==="const"||this.type.keyword==="class"||this.type.keyword==="function"||this.isLet()||this.isAsyncFunction()};A.parseExportSpecifier=function(t){var e=this.startNode();return e.local=this.parseModuleExportName(),e.exported=this.eatContextual("as")?this.parseModuleExportName():e.local,this.checkExport(t,e.exported,e.exported.start),this.finishNode(e,"ExportSpecifier")};A.parseExportSpecifiers=function(t){var e=[],i=!0;for(this.expect(d.braceL);!this.eat(d.braceR);){if(i)i=!1;else if(this.expect(d.comma),this.afterTrailingComma(d.braceR))break;e.push(this.parseExportSpecifier(t))}return e};A.parseImport=function(t){return this.next(),this.type===d.string?(t.specifiers=Sn,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===d.string?this.parseExprAtom():this.unexpected()),this.options.ecmaVersion>=16&&(t.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(t,"ImportDeclaration")};A.parseImportSpecifier=function(){var t=this.startNode();return t.imported=this.parseModuleExportName(),this.eatContextual("as")?t.local=this.parseIdent():(this.checkUnreserved(t.imported),t.local=t.imported),this.checkLValSimple(t.local,tt),this.finishNode(t,"ImportSpecifier")};A.parseImportDefaultSpecifier=function(){var t=this.startNode();return t.local=this.parseIdent(),this.checkLValSimple(t.local,tt),this.finishNode(t,"ImportDefaultSpecifier")};A.parseImportNamespaceSpecifier=function(){var t=this.startNode();return this.next(),this.expectContextual("as"),t.local=this.parseIdent(),this.checkLValSimple(t.local,tt),this.finishNode(t,"ImportNamespaceSpecifier")};A.parseImportSpecifiers=function(){var t=[],e=!0;if(this.type===d.name&&(t.push(this.parseImportDefaultSpecifier()),!this.eat(d.comma)))return t;if(this.type===d.star)return t.push(this.parseImportNamespaceSpecifier()),t;for(this.expect(d.braceL);!this.eat(d.braceR);){if(e)e=!1;else if(this.expect(d.comma),this.afterTrailingComma(d.braceR))break;t.push(this.parseImportSpecifier())}return t};A.parseWithClause=function(){var t=[];if(!this.eat(d._with))return t;this.expect(d.braceL);for(var e={},i=!0;!this.eat(d.braceR);){if(i)i=!1;else if(this.expect(d.comma),this.afterTrailingComma(d.braceR))break;var r=this.parseImportAttribute(),s=r.key.type==="Identifier"?r.key.name:r.key.value;Mt(e,s)&&this.raiseRecoverable(r.key.start,"Duplicate attribute key '"+s+"'"),e[s]=!0,t.push(r)}return t};A.parseImportAttribute=function(){var t=this.startNode();return t.key=this.type===d.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never"),this.expect(d.colon),this.type!==d.string&&this.unexpected(),t.value=this.parseExprAtom(),this.finishNode(t,"ImportAttribute")};A.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===d.string){var t=this.parseLiteral(this.value);return xn.test(t.value)&&this.raise(t.start,"An export name cannot include a lone surrogate."),t}return this.parseIdent(!0)};A.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)};A.isDirectiveCandidate=function(t){return this.options.ecmaVersion>=5&&t.type==="ExpressionStatement"&&t.expression.type==="Literal"&&typeof t.expression.value=="string"&&(this.input[t.start]==='"'||this.input[t.start]==="'")};var Ve=ie.prototype;Ve.toAssignable=function(t,e,i){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&t.name==="await"&&this.raise(t.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",i&&this.checkPatternErrors(i,!0);for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];this.toAssignable(a,e),a.type==="RestElement"&&(a.argument.type==="ArrayPattern"||a.argument.type==="ObjectPattern")&&this.raise(a.argument.start,"Unexpected token")}break;case"Property":t.kind!=="init"&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",i&&this.checkPatternErrors(i,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),t.argument.type==="AssignmentPattern"&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":t.operator!=="="&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);break;case"ParenthesizedExpression":this.toAssignable(t.expression,e,i);break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else i&&this.checkPatternErrors(i,!0);return t};Ve.toAssignableList=function(t,e){for(var i=t.length,r=0;r<i;r++){var s=t[r];s&&this.toAssignable(s,e)}if(i){var a=t[i-1];this.options.ecmaVersion===6&&e&&a&&a.type==="RestElement"&&a.argument.type!=="Identifier"&&this.unexpected(a.argument.start)}return t};Ve.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")};Ve.parseRestBinding=function(){var t=this.startNode();return this.next(),this.options.ecmaVersion===6&&this.type!==d.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")};Ve.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case d.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(d.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case d.braceL:return this.parseObj(!0)}return this.parseIdent()};Ve.parseBindingList=function(t,e,i,r){for(var s=[],a=!0;!this.eat(t);)if(a?a=!1:this.expect(d.comma),e&&this.type===d.comma)s.push(null);else{if(i&&this.afterTrailingComma(t))break;if(this.type===d.ellipsis){var n=this.parseRestBinding();this.parseBindingListItem(n),s.push(n),this.type===d.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.expect(t);break}else s.push(this.parseAssignableListItem(r))}return s};Ve.parseAssignableListItem=function(t){var e=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(e),e};Ve.parseBindingListItem=function(t){return t};Ve.parseMaybeDefault=function(t,e,i){if(i=i||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(d.eq))return i;var r=this.startNodeAt(t,e);return r.left=i,r.right=this.parseMaybeAssign(),this.finishNode(r,"AssignmentPattern")};Ve.checkLValSimple=function(t,e,i){e===void 0&&(e=ni);var r=e!==ni;switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(r?"Binding ":"Assigning to ")+t.name+" in strict mode"),r&&(e===tt&&t.name==="let"&&this.raiseRecoverable(t.start,"let is disallowed as a lexically bound name"),i&&(Mt(i,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),i[t.name]=!0),e!==as&&this.declareName(t.name,e,t.start));break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":r&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ParenthesizedExpression":return r&&this.raiseRecoverable(t.start,"Binding parenthesized expression"),this.checkLValSimple(t.expression,e,i);default:this.raise(t.start,(r?"Binding":"Assigning to")+" rvalue")}};Ve.checkLValPattern=function(t,e,i){switch(e===void 0&&(e=ni),t.type){case"ObjectPattern":for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];this.checkLValInnerPattern(a,e,i)}break;case"ArrayPattern":for(var n=0,o=t.elements;n<o.length;n+=1){var l=o[n];l&&this.checkLValInnerPattern(l,e,i)}break;default:this.checkLValSimple(t,e,i)}};Ve.checkLValInnerPattern=function(t,e,i){switch(e===void 0&&(e=ni),t.type){case"Property":this.checkLValInnerPattern(t.value,e,i);break;case"AssignmentPattern":this.checkLValPattern(t.left,e,i);break;case"RestElement":this.checkLValPattern(t.argument,e,i);break;default:this.checkLValPattern(t,e,i)}};var $e=function(e,i,r,s,a){this.token=e,this.isExpr=!!i,this.preserveSpace=!!r,this.override=s,this.generator=!!a},G={b_stat:new $e("{",!1),b_expr:new $e("{",!0),b_tmpl:new $e("${",!1),p_stat:new $e("(",!1),p_expr:new $e("(",!0),q_tmpl:new $e("`",!0,!0,function(t){return t.tryReadTemplateToken()}),f_stat:new $e("function",!1),f_expr:new $e("function",!0),f_expr_gen:new $e("function",!0,!1,null,!0),f_gen:new $e("function",!1,!1,null,!0)},Rt=ie.prototype;Rt.initialContext=function(){return[G.b_stat]};Rt.curContext=function(){return this.context[this.context.length-1]};Rt.braceIsBlock=function(t){var e=this.curContext();return e===G.f_expr||e===G.f_stat?!0:t===d.colon&&(e===G.b_stat||e===G.b_expr)?!e.isExpr:t===d._return||t===d.name&&this.exprAllowed?ve.test(this.input.slice(this.lastTokEnd,this.start)):t===d._else||t===d.semi||t===d.eof||t===d.parenR||t===d.arrow?!0:t===d.braceL?e===G.b_stat:t===d._var||t===d._const||t===d.name?!1:!this.exprAllowed};Rt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if(e.token==="function")return e.generator}return!1};Rt.updateContext=function(t){var e,i=this.type;i.keyword&&t===d.dot?this.exprAllowed=!1:(e=i.updateContext)?e.call(this,t):this.exprAllowed=i.beforeExpr};Rt.overrideContext=function(t){this.curContext()!==t&&(this.context[this.context.length-1]=t)};d.parenR.updateContext=d.braceR.updateContext=function(){if(this.context.length===1){this.exprAllowed=!0;return}var t=this.context.pop();t===G.b_stat&&this.curContext().token==="function"&&(t=this.context.pop()),this.exprAllowed=!t.isExpr};d.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?G.b_stat:G.b_expr),this.exprAllowed=!0};d.dollarBraceL.updateContext=function(){this.context.push(G.b_tmpl),this.exprAllowed=!0};d.parenL.updateContext=function(t){var e=t===d._if||t===d._for||t===d._with||t===d._while;this.context.push(e?G.p_stat:G.p_expr),this.exprAllowed=!0};d.incDec.updateContext=function(){};d._function.updateContext=d._class.updateContext=function(t){t.beforeExpr&&t!==d._else&&!(t===d.semi&&this.curContext()!==G.p_stat)&&!(t===d._return&&ve.test(this.input.slice(this.lastTokEnd,this.start)))&&!((t===d.colon||t===d.braceL)&&this.curContext()===G.b_stat)?this.context.push(G.f_expr):this.context.push(G.f_stat),this.exprAllowed=!1};d.colon.updateContext=function(){this.curContext().token==="function"&&this.context.pop(),this.exprAllowed=!0};d.backQuote.updateContext=function(){this.curContext()===G.q_tmpl?this.context.pop():this.context.push(G.q_tmpl),this.exprAllowed=!1};d.star.updateContext=function(t){if(t===d._function){var e=this.context.length-1;this.context[e]===G.f_expr?this.context[e]=G.f_expr_gen:this.context[e]=G.f_gen}this.exprAllowed=!0};d.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==d.dot&&(this.value==="of"&&!this.exprAllowed||this.value==="yield"&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var M=ie.prototype;M.checkPropClash=function(t,e,i){if(!(this.options.ecmaVersion>=9&&t.type==="SpreadElement")&&!(this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var r=t.key,s;switch(r.type){case"Identifier":s=r.name;break;case"Literal":s=String(r.value);break;default:return}var a=t.kind;if(this.options.ecmaVersion>=6){s==="__proto__"&&a==="init"&&(e.proto&&(i?i.doubleProto<0&&(i.doubleProto=r.start):this.raiseRecoverable(r.start,"Redefinition of __proto__ property")),e.proto=!0);return}s="$"+s;var n=e[s];if(n){var o;a==="init"?o=this.strict&&n.init||n.get||n.set:o=n.init||n[a],o&&this.raiseRecoverable(r.start,"Redefinition of property")}else n=e[s]={init:!1,get:!1,set:!1};n[a]=!0}};M.parseExpression=function(t,e){var i=this.start,r=this.startLoc,s=this.parseMaybeAssign(t,e);if(this.type===d.comma){var a=this.startNodeAt(i,r);for(a.expressions=[s];this.eat(d.comma);)a.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(a,"SequenceExpression")}return s};M.parseMaybeAssign=function(t,e,i){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(t);this.exprAllowed=!1}var r=!1,s=-1,a=-1,n=-1;e?(s=e.parenthesizedAssign,a=e.trailingComma,n=e.doubleProto,e.parenthesizedAssign=e.trailingComma=-1):(e=new yi,r=!0);var o=this.start,l=this.startLoc;(this.type===d.parenL||this.type===d.name)&&(this.potentialArrowAt=this.start,this.potentialArrowInForAwait=t==="await");var c=this.parseMaybeConditional(t,e);if(i&&(c=i.call(this,c,o,l)),this.type.isAssign){var h=this.startNodeAt(o,l);return h.operator=this.value,this.type===d.eq&&(c=this.toAssignable(c,!1,e)),r||(e.parenthesizedAssign=e.trailingComma=e.doubleProto=-1),e.shorthandAssign>=c.start&&(e.shorthandAssign=-1),this.type===d.eq?this.checkLValPattern(c):this.checkLValSimple(c),h.left=c,this.next(),h.right=this.parseMaybeAssign(t),n>-1&&(e.doubleProto=n),this.finishNode(h,"AssignmentExpression")}else r&&this.checkExpressionErrors(e,!0);return s>-1&&(e.parenthesizedAssign=s),a>-1&&(e.trailingComma=a),c};M.parseMaybeConditional=function(t,e){var i=this.start,r=this.startLoc,s=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return s;if(this.eat(d.question)){var a=this.startNodeAt(i,r);return a.test=s,a.consequent=this.parseMaybeAssign(),this.expect(d.colon),a.alternate=this.parseMaybeAssign(t),this.finishNode(a,"ConditionalExpression")}return s};M.parseExprOps=function(t,e){var i=this.start,r=this.startLoc,s=this.parseMaybeUnary(e,!1,!1,t);return this.checkExpressionErrors(e)||s.start===i&&s.type==="ArrowFunctionExpression"?s:this.parseExprOp(s,i,r,-1,t)};M.parseExprOp=function(t,e,i,r,s){var a=this.type.binop;if(a!=null&&(!s||this.type!==d._in)&&a>r){var n=this.type===d.logicalOR||this.type===d.logicalAND,o=this.type===d.coalesce;o&&(a=d.logicalAND.binop);var l=this.value;this.next();var c=this.start,h=this.startLoc,p=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,s),c,h,a,s),u=this.buildBinary(e,i,t,p,l,n||o);return(n&&this.type===d.coalesce||o&&(this.type===d.logicalOR||this.type===d.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(u,e,i,r,s)}return t};M.buildBinary=function(t,e,i,r,s,a){r.type==="PrivateIdentifier"&&this.raise(r.start,"Private identifier can only be left side of binary expression");var n=this.startNodeAt(t,e);return n.left=i,n.operator=s,n.right=r,this.finishNode(n,a?"LogicalExpression":"BinaryExpression")};M.parseMaybeUnary=function(t,e,i,r){var s=this.start,a=this.startLoc,n;if(this.isContextual("await")&&this.canAwait)n=this.parseAwait(r),e=!0;else if(this.type.prefix){var o=this.startNode(),l=this.type===d.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0,l,r),this.checkExpressionErrors(t,!0),l?this.checkLValSimple(o.argument):this.strict&&o.operator==="delete"&&ls(o.argument)?this.raiseRecoverable(o.start,"Deleting local variable in strict mode"):o.operator==="delete"&&Oi(o.argument)?this.raiseRecoverable(o.start,"Private fields can not be deleted"):e=!0,n=this.finishNode(o,l?"UpdateExpression":"UnaryExpression")}else if(!e&&this.type===d.privateId)(r||this.privateNameStack.length===0)&&this.options.checkPrivateFields&&this.unexpected(),n=this.parsePrivateIdent(),this.type!==d._in&&this.unexpected();else{if(n=this.parseExprSubscripts(t,r),this.checkExpressionErrors(t))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var c=this.startNodeAt(s,a);c.operator=this.value,c.prefix=!1,c.argument=n,this.checkLValSimple(n),this.next(),n=this.finishNode(c,"UpdateExpression")}}if(!i&&this.eat(d.starstar))if(e)this.unexpected(this.lastTokStart);else return this.buildBinary(s,a,n,this.parseMaybeUnary(null,!1,!1,r),"**",!1);else return n};function ls(t){return t.type==="Identifier"||t.type==="ParenthesizedExpression"&&ls(t.expression)}function Oi(t){return t.type==="MemberExpression"&&t.property.type==="PrivateIdentifier"||t.type==="ChainExpression"&&Oi(t.expression)||t.type==="ParenthesizedExpression"&&Oi(t.expression)}M.parseExprSubscripts=function(t,e){var i=this.start,r=this.startLoc,s=this.parseExprAtom(t,e);if(s.type==="ArrowFunctionExpression"&&this.input.slice(this.lastTokStart,this.lastTokEnd)!==")")return s;var a=this.parseSubscripts(s,i,r,!1,e);return t&&a.type==="MemberExpression"&&(t.parenthesizedAssign>=a.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=a.start&&(t.parenthesizedBind=-1),t.trailingComma>=a.start&&(t.trailingComma=-1)),a};M.parseSubscripts=function(t,e,i,r,s){for(var a=this.options.ecmaVersion>=8&&t.type==="Identifier"&&t.name==="async"&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&this.potentialArrowAt===t.start,n=!1;;){var o=this.parseSubscript(t,e,i,r,a,n,s);if(o.optional&&(n=!0),o===t||o.type==="ArrowFunctionExpression"){if(n){var l=this.startNodeAt(e,i);l.expression=o,o=this.finishNode(l,"ChainExpression")}return o}t=o}};M.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(d.arrow)};M.parseSubscriptAsyncArrow=function(t,e,i,r){return this.parseArrowExpression(this.startNodeAt(t,e),i,!0,r)};M.parseSubscript=function(t,e,i,r,s,a,n){var o=this.options.ecmaVersion>=11,l=o&&this.eat(d.questionDot);r&&l&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var c=this.eat(d.bracketL);if(c||l&&this.type!==d.parenL&&this.type!==d.backQuote||this.eat(d.dot)){var h=this.startNodeAt(e,i);h.object=t,c?(h.property=this.parseExpression(),this.expect(d.bracketR)):this.type===d.privateId&&t.type!=="Super"?h.property=this.parsePrivateIdent():h.property=this.parseIdent(this.options.allowReserved!=="never"),h.computed=!!c,o&&(h.optional=l),t=this.finishNode(h,"MemberExpression")}else if(!r&&this.eat(d.parenL)){var p=new yi,u=this.yieldPos,f=this.awaitPos,m=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var x=this.parseExprList(d.parenR,this.options.ecmaVersion>=8,!1,p);if(s&&!l&&this.shouldParseAsyncArrow())return this.checkPatternErrors(p,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=u,this.awaitPos=f,this.awaitIdentPos=m,this.parseSubscriptAsyncArrow(e,i,x,n);this.checkExpressionErrors(p,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=f||this.awaitPos,this.awaitIdentPos=m||this.awaitIdentPos;var _=this.startNodeAt(e,i);_.callee=t,_.arguments=x,o&&(_.optional=l),t=this.finishNode(_,"CallExpression")}else if(this.type===d.backQuote){(l||a)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var b=this.startNodeAt(e,i);b.tag=t,b.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(b,"TaggedTemplateExpression")}return t};M.parseExprAtom=function(t,e,i){this.type===d.slash&&this.readRegexp();var r,s=this.potentialArrowAt===this.start;switch(this.type){case d._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),r=this.startNode(),this.next(),this.type===d.parenL&&!this.allowDirectSuper&&this.raise(r.start,"super() call outside constructor of a subclass"),this.type!==d.dot&&this.type!==d.bracketL&&this.type!==d.parenL&&this.unexpected(),this.finishNode(r,"Super");case d._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case d.name:var a=this.start,n=this.startLoc,o=this.containsEsc,l=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!o&&l.name==="async"&&!this.canInsertSemicolon()&&this.eat(d._function))return this.overrideContext(G.f_expr),this.parseFunction(this.startNodeAt(a,n),0,!1,!0,e);if(s&&!this.canInsertSemicolon()){if(this.eat(d.arrow))return this.parseArrowExpression(this.startNodeAt(a,n),[l],!1,e);if(this.options.ecmaVersion>=8&&l.name==="async"&&this.type===d.name&&!o&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return l=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(d.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,n),[l],!0,e)}return l;case d.regexp:var c=this.value;return r=this.parseLiteral(c.value),r.regex={pattern:c.pattern,flags:c.flags},r;case d.num:case d.string:return this.parseLiteral(this.value);case d._null:case d._true:case d._false:return r=this.startNode(),r.value=this.type===d._null?null:this.type===d._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,"Literal");case d.parenL:var h=this.start,p=this.parseParenAndDistinguishExpression(s,e);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(p)&&(t.parenthesizedAssign=h),t.parenthesizedBind<0&&(t.parenthesizedBind=h)),p;case d.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(d.bracketR,!0,!0,t),this.finishNode(r,"ArrayExpression");case d.braceL:return this.overrideContext(G.b_expr),this.parseObj(!1,t);case d._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case d._class:return this.parseClass(this.startNode(),!1);case d._new:return this.parseNew();case d.backQuote:return this.parseTemplate();case d._import:return this.options.ecmaVersion>=11?this.parseExprImport(i):this.unexpected();default:return this.parseExprAtomDefault()}};M.parseExprAtomDefault=function(){this.unexpected()};M.parseExprImport=function(t){var e=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import"),this.next(),this.type===d.parenL&&!t)return this.parseDynamicImport(e);if(this.type===d.dot){var i=this.startNodeAt(e.start,e.loc&&e.loc.start);return i.name="import",e.meta=this.finishNode(i,"Identifier"),this.parseImportMeta(e)}else this.unexpected()};M.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(d.parenR)?t.options=null:(this.expect(d.comma),this.afterTrailingComma(d.parenR)?t.options=null:(t.options=this.parseMaybeAssign(),this.eat(d.parenR)||(this.expect(d.comma),this.afterTrailingComma(d.parenR)||this.unexpected())));else if(!this.eat(d.parenR)){var e=this.start;this.eat(d.comma)&&this.eat(d.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(t,"ImportExpression")};M.parseImportMeta=function(t){this.next();var e=this.containsEsc;return t.property=this.parseIdent(!0),t.property.name!=="meta"&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(t.start,"'import.meta' must not contain escaped characters"),this.options.sourceType!=="module"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(t.start,"Cannot use 'import.meta' outside a module"),this.finishNode(t,"MetaProperty")};M.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),e.raw.charCodeAt(e.raw.length-1)===110&&(e.bigint=e.value!=null?e.value.toString():e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")};M.parseParenExpression=function(){this.expect(d.parenL);var t=this.parseExpression();return this.expect(d.parenR),t};M.shouldParseArrow=function(t){return!this.canInsertSemicolon()};M.parseParenAndDistinguishExpression=function(t,e){var i=this.start,r=this.startLoc,s,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var n=this.start,o=this.startLoc,l=[],c=!0,h=!1,p=new yi,u=this.yieldPos,f=this.awaitPos,m;for(this.yieldPos=0,this.awaitPos=0;this.type!==d.parenR;)if(c?c=!1:this.expect(d.comma),a&&this.afterTrailingComma(d.parenR,!0)){h=!0;break}else if(this.type===d.ellipsis){m=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===d.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}else l.push(this.parseMaybeAssign(!1,p,this.parseParenItem));var x=this.lastTokEnd,_=this.lastTokEndLoc;if(this.expect(d.parenR),t&&this.shouldParseArrow(l)&&this.eat(d.arrow))return this.checkPatternErrors(p,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=u,this.awaitPos=f,this.parseParenArrowList(i,r,l,e);(!l.length||h)&&this.unexpected(this.lastTokStart),m&&this.unexpected(m),this.checkExpressionErrors(p,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=f||this.awaitPos,l.length>1?(s=this.startNodeAt(n,o),s.expressions=l,this.finishNodeAt(s,"SequenceExpression",x,_)):s=l[0]}else s=this.parseParenExpression();if(this.options.preserveParens){var b=this.startNodeAt(i,r);return b.expression=s,this.finishNode(b,"ParenthesizedExpression")}else return s};M.parseParenItem=function(t){return t};M.parseParenArrowList=function(t,e,i,r){return this.parseArrowExpression(this.startNodeAt(t,e),i,!1,r)};var Nn=[];M.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var t=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===d.dot){var e=this.startNodeAt(t.start,t.loc&&t.loc.start);e.name="new",t.meta=this.finishNode(e,"Identifier"),this.next();var i=this.containsEsc;return t.property=this.parseIdent(!0),t.property.name!=="target"&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is 'new.target'"),i&&this.raiseRecoverable(t.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(t.start,"'new.target' can only be used in functions and class static block"),this.finishNode(t,"MetaProperty")}var r=this.start,s=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),r,s,!0,!1),this.eat(d.parenL)?t.arguments=this.parseExprList(d.parenR,this.options.ecmaVersion>=8,!1):t.arguments=Nn,this.finishNode(t,"NewExpression")};M.parseTemplateElement=function(t){var e=t.isTagged,i=this.startNode();return this.type===d.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),i.value={raw:this.value.replace(/\r\n?/g,`
|
|
4
4
|
`),cooked:null}):i.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,`
|
|
5
|
-
`),cooked:this.value},this.next(),i.tail=this.type===d.backQuote,this.finishNode(i,"TemplateElement")};M.parseTemplate=function(t){t===void 0&&(t={});var e=t.isTagged;e===void 0&&(e=!1);var i=this.startNode();this.next(),i.expressions=[];var r=this.parseTemplateElement({isTagged:e});for(i.quasis=[r];!r.tail;)this.type===d.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(d.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(d.braceR),i.quasis.push(r=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(i,"TemplateLiteral")};M.isAsyncProp=function(t){return!t.computed&&t.key.type==="Identifier"&&t.key.name==="async"&&(this.type===d.name||this.type===d.num||this.type===d.string||this.type===d.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===d.star)&&!ve.test(this.input.slice(this.lastTokEnd,this.start))};M.parseObj=function(t,e){var i=this.startNode(),r=!0,s={};for(i.properties=[],this.next();!this.eat(d.braceR);){if(r)r=!1;else if(this.expect(d.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(d.braceR))break;var a=this.parseProperty(t,e);t||this.checkPropClash(a,s,e),i.properties.push(a)}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")};M.parseProperty=function(t,e){var i=this.startNode(),r,s,a,n;if(this.options.ecmaVersion>=9&&this.eat(d.ellipsis))return t?(i.argument=this.parseIdent(!1),this.type===d.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(i,"RestElement")):(i.argument=this.parseMaybeAssign(!1,e),this.type===d.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(i,"SpreadElement"));this.options.ecmaVersion>=6&&(i.method=!1,i.shorthand=!1,(t||e)&&(a=this.start,n=this.startLoc),t||(r=this.eat(d.star)));var o=this.containsEsc;return this.parsePropertyName(i),!t&&!o&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(i)?(s=!0,r=this.options.ecmaVersion>=9&&this.eat(d.star),this.parsePropertyName(i)):s=!1,this.parsePropertyValue(i,t,r,s,a,n,e,o),this.finishNode(i,"Property")};M.parseGetterSetter=function(t){var e=t.key.name;this.parsePropertyName(t),t.value=this.parseMethod(!1),t.kind=e;var i=t.kind==="get"?0:1;if(t.value.params.length!==i){var r=t.value.start;t.kind==="get"?this.raiseRecoverable(r,"getter should have no params"):this.raiseRecoverable(r,"setter should have exactly one param")}else t.kind==="set"&&t.value.params[0].type==="RestElement"&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")};M.parsePropertyValue=function(t,e,i,r,s,a,n,o){(i||r)&&this.type===d.colon&&this.unexpected(),this.eat(d.colon)?(t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,n),t.kind="init"):this.options.ecmaVersion>=6&&this.type===d.parenL?(e&&this.unexpected(),t.method=!0,t.value=this.parseMethod(i,r),t.kind="init"):!e&&!o&&this.options.ecmaVersion>=5&&!t.computed&&t.key.type==="Identifier"&&(t.key.name==="get"||t.key.name==="set")&&this.type!==d.comma&&this.type!==d.braceR&&this.type!==d.eq?((i||r)&&this.unexpected(),this.parseGetterSetter(t)):this.options.ecmaVersion>=6&&!t.computed&&t.key.type==="Identifier"?((i||r)&&this.unexpected(),this.checkUnreserved(t.key),t.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=s),e?t.value=this.parseMaybeDefault(s,a,this.copyNode(t.key)):this.type===d.eq&&n?(n.shorthandAssign<0&&(n.shorthandAssign=this.start),t.value=this.parseMaybeDefault(s,a,this.copyNode(t.key))):t.value=this.copyNode(t.key),t.kind="init",t.shorthand=!0):this.unexpected()};M.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(d.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(d.bracketR),t.key;t.computed=!1}return t.key=this.type===d.num||this.type===d.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")};M.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)};M.parseMethod=function(t,e,i){var r=this.startNode(),s=this.yieldPos,a=this.awaitPos,n=this.awaitIdentPos;return this.initFunction(r),this.options.ecmaVersion>=6&&(r.generator=t),this.options.ecmaVersion>=8&&(r.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Hi(e,r.generator)|mi|(i?ss:0)),this.expect(d.parenL),r.params=this.parseBindingList(d.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(r,!1,!0,!1),this.yieldPos=s,this.awaitPos=a,this.awaitIdentPos=n,this.finishNode(r,"FunctionExpression")};M.parseArrowExpression=function(t,e,i,r){var s=this.yieldPos,a=this.awaitPos,n=this.awaitIdentPos;return this.enterScope(Hi(i,!1)|zi),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!i),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0,!1,r),this.yieldPos=s,this.awaitPos=a,this.awaitIdentPos=n,this.finishNode(t,"ArrowFunctionExpression")};M.parseFunctionBody=function(t,e,i,r){var s=e&&this.type!==d.braceL,a=this.strict,n=!1;if(s)t.body=this.parseMaybeAssign(r),t.expression=!0,this.checkParams(t,!1);else{var o=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);(!a||o)&&(n=this.strictDirective(this.end),n&&o&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var l=this.labels;this.labels=[],n&&(this.strict=!0),this.checkParams(t,!a&&!n&&!e&&!i&&this.isSimpleParamList(t.params)),this.strict&&t.id&&this.checkLValSimple(t.id,ls),t.body=this.parseBlock(!1,void 0,n&&!a),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=l}this.exitScope()};M.isSimpleParamList=function(t){for(var e=0,i=t;e<i.length;e+=1){var r=i[e];if(r.type!=="Identifier")return!1}return!0};M.checkParams=function(t,e){for(var i=Object.create(null),r=0,s=t.params;r<s.length;r+=1){var a=s[r];this.checkLValInnerPattern(a,Gi,e?null:i)}};M.parseExprList=function(t,e,i,r){for(var s=[],a=!0;!this.eat(t);){if(a)a=!1;else if(this.expect(d.comma),e&&this.afterTrailingComma(t))break;var n=void 0;i&&this.type===d.comma?n=null:this.type===d.ellipsis?(n=this.parseSpread(r),r&&this.type===d.comma&&r.trailingComma<0&&(r.trailingComma=this.start)):n=this.parseMaybeAssign(!1,r),s.push(n)}return s};M.checkUnreserved=function(t){var e=t.start,i=t.end,r=t.name;if(this.inGenerator&&r==="yield"&&this.raiseRecoverable(e,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&r==="await"&&this.raiseRecoverable(e,"Cannot use 'await' as identifier inside an async function"),!(this.currentThisScope().flags&gi)&&r==="arguments"&&this.raiseRecoverable(e,"Cannot use 'arguments' in class field initializer"),this.inClassStaticBlock&&(r==="arguments"||r==="await")&&this.raise(e,"Cannot use "+r+" in class static initialization block"),this.keywords.test(r)&&this.raise(e,"Unexpected keyword '"+r+"'"),!(this.options.ecmaVersion<6&&this.input.slice(e,i).indexOf("\\")!==-1)){var s=this.strict?this.reservedWordsStrict:this.reservedWords;s.test(r)&&(!this.inAsync&&r==="await"&&this.raiseRecoverable(e,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+r+"' is reserved"))}};M.parseIdent=function(t){var e=this.parseIdentNode();return this.next(!!t),this.finishNode(e,"Identifier"),t||(this.checkUnreserved(e),e.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=e.start)),e};M.parseIdentNode=function(){var t=this.startNode();return this.type===d.name?t.name=this.value:this.type.keyword?(t.name=this.type.keyword,(t.name==="class"||t.name==="function")&&(this.lastTokEnd!==this.lastTokStart+1||this.input.charCodeAt(this.lastTokStart)!==46)&&this.context.pop(),this.type=d.name):this.unexpected(),t};M.parsePrivateIdent=function(){var t=this.startNode();return this.type===d.privateId?t.name=this.value:this.unexpected(),this.next(),this.finishNode(t,"PrivateIdentifier"),this.options.checkPrivateFields&&(this.privateNameStack.length===0?this.raise(t.start,"Private field '#"+t.name+"' must be declared in an enclosing class"):this.privateNameStack[this.privateNameStack.length-1].used.push(t)),t};M.parseYield=function(t){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type===d.semi||this.canInsertSemicolon()||this.type!==d.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(d.star),e.argument=this.parseMaybeAssign(t)),this.finishNode(e,"YieldExpression")};M.parseAwait=function(t){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0,!1,t),this.finishNode(e,"AwaitExpression")};var oi=ie.prototype;oi.raise=function(t,e){var i=ts(this.input,t);e+=" ("+i.line+":"+i.column+")",this.sourceFile&&(e+=" in "+this.sourceFile);var r=new SyntaxError(e);throw r.pos=t,r.loc=i,r.raisedAt=this.pos,r};oi.raiseRecoverable=oi.raise;oi.curPosition=function(){if(this.options.locations)return new Ut(this.curLine,this.pos-this.lineStart)};var ht=ie.prototype,kn=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};ht.enterScope=function(t){this.scopeStack.push(new kn(t))};ht.exitScope=function(){this.scopeStack.pop()};ht.treatFunctionsAsVarInScope=function(t){return t.flags>||!this.inModule&&t.flags&mt};ht.declareName=function(t,e,i){var r=!1;if(e===tt){var s=this.currentScope();r=s.lexical.indexOf(t)>-1||s.functions.indexOf(t)>-1||s.var.indexOf(t)>-1,s.lexical.push(t),this.inModule&&s.flags&mt&&delete this.undefinedExports[t]}else if(e===os){var a=this.currentScope();a.lexical.push(t)}else if(e===as){var n=this.currentScope();this.treatFunctionsAsVar?r=n.lexical.indexOf(t)>-1:r=n.lexical.indexOf(t)>-1||n.var.indexOf(t)>-1,n.functions.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var l=this.scopeStack[o];if(l.lexical.indexOf(t)>-1&&!(l.flags&rs&&l.lexical[0]===t)||!this.treatFunctionsAsVarInScope(l)&&l.functions.indexOf(t)>-1){r=!0;break}if(l.var.push(t),this.inModule&&l.flags&mt&&delete this.undefinedExports[t],l.flags&gi)break}r&&this.raiseRecoverable(i,"Identifier '"+t+"' has already been declared")};ht.checkLocalExport=function(t){this.scopeStack[0].lexical.indexOf(t.name)===-1&&this.scopeStack[0].var.indexOf(t.name)===-1&&(this.undefinedExports[t.name]=t)};ht.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};ht.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&(gi|qt|yt))return e}};ht.currentThisScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&(gi|qt|yt)&&!(e.flags&zi))return e}};var xi=function(e,i,r){this.type="",this.start=i,this.end=0,e.options.locations&&(this.loc=new di(e,r)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[i,0])},Kt=ie.prototype;Kt.startNode=function(){return new xi(this,this.start,this.startLoc)};Kt.startNodeAt=function(t,e){return new xi(this,t,e)};function us(t,e,i,r){return t.type=e,t.end=i,this.options.locations&&(t.loc.end=r),this.options.ranges&&(t.range[1]=i),t}Kt.finishNode=function(t,e){return us.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)};Kt.finishNodeAt=function(t,e,i,r){return us.call(this,t,e,i,r)};Kt.copyNode=function(t){var e=new xi(this,t.start,this.startLoc);for(var i in t)e[i]=t[i];return e};var An="Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz",ps="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",fs=ps+" Extended_Pictographic",ds=fs,ms=ds+" EBase EComp EMod EPres ExtPict",gs=ms,Tn=gs,Pn={9:ps,10:fs,11:ds,12:ms,13:gs,14:Tn},Dn="Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji",Mn={9:"",10:"",11:"",12:"",13:"",14:Dn},cr="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",ys="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",xs=ys+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",_s=xs+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",bs=_s+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",vs=bs+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Rn=vs+" "+An,On={9:ys,10:xs,11:_s,12:bs,13:vs,14:Rn},ws={};function Vn(t){var e=ws[t]={binary:lt(Pn[t]+" "+cr),binaryOfStrings:lt(Mn[t]),nonBinary:{General_Category:lt(cr),Script:lt(On[t])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}for(var Ei=0,hr=[9,10,11,12,13,14];Ei<hr.length;Ei+=1){var Ln=hr[Ei];Vn(Ln)}var k=ie.prototype,li=function(e,i){this.parent=e,this.base=i||this};li.prototype.separatedFrom=function(e){for(var i=this;i;i=i.parent)for(var r=e;r;r=r.parent)if(i.base===r.base&&i!==r)return!0;return!1};li.prototype.sibling=function(){return new li(this.parent,this.base)};var He=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":"")+(e.options.ecmaVersion>=13?"d":"")+(e.options.ecmaVersion>=15?"v":""),this.unicodeProperties=ws[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};He.prototype.reset=function(e,i,r){var s=r.indexOf("v")!==-1,a=r.indexOf("u")!==-1;this.start=e|0,this.source=i+"",this.flags=r,s&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)};He.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)};He.prototype.at=function(e,i){i===void 0&&(i=!1);var r=this.source,s=r.length;if(e>=s)return-1;var a=r.charCodeAt(e);if(!(i||this.switchU)||a<=55295||a>=57344||e+1>=s)return a;var n=r.charCodeAt(e+1);return n>=56320&&n<=57343?(a<<10)+n-56613888:a};He.prototype.nextIndex=function(e,i){i===void 0&&(i=!1);var r=this.source,s=r.length;if(e>=s)return s;var a=r.charCodeAt(e),n;return!(i||this.switchU)||a<=55295||a>=57344||e+1>=s||(n=r.charCodeAt(e+1))<56320||n>57343?e+1:e+2};He.prototype.current=function(e){return e===void 0&&(e=!1),this.at(this.pos,e)};He.prototype.lookahead=function(e){return e===void 0&&(e=!1),this.at(this.nextIndex(this.pos,e),e)};He.prototype.advance=function(e){e===void 0&&(e=!1),this.pos=this.nextIndex(this.pos,e)};He.prototype.eat=function(e,i){return i===void 0&&(i=!1),this.current(i)===e?(this.advance(i),!0):!1};He.prototype.eatChars=function(e,i){i===void 0&&(i=!1);for(var r=this.pos,s=0,a=e;s<a.length;s+=1){var n=a[s],o=this.at(r,i);if(o===-1||o!==n)return!1;r=this.nextIndex(r,i)}return this.pos=r,!0};k.validateRegExpFlags=function(t){for(var e=t.validFlags,i=t.flags,r=!1,s=!1,a=0;a<i.length;a++){var n=i.charAt(a);e.indexOf(n)===-1&&this.raise(t.start,"Invalid regular expression flag"),i.indexOf(n,a+1)>-1&&this.raise(t.start,"Duplicate regular expression flag"),n==="u"&&(r=!0),n==="v"&&(s=!0)}this.options.ecmaVersion>=15&&r&&s&&this.raise(t.start,"Invalid regular expression flag")};function jn(t){for(var e in t)return!0;return!1}k.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&jn(t.groupNames)&&(t.switchN=!0,this.regexp_pattern(t))};k.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames=Object.create(null),t.backReferenceNames.length=0,t.branchID=null,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,i=t.backReferenceNames;e<i.length;e+=1){var r=i[e];t.groupNames[r]||t.raise("Invalid named capture referenced")}};k.regexp_disjunction=function(t){var e=this.options.ecmaVersion>=16;for(e&&(t.branchID=new li(t.branchID,null)),this.regexp_alternative(t);t.eat(124);)e&&(t.branchID=t.branchID.sibling()),this.regexp_alternative(t);e&&(t.branchID=t.branchID.parent),this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")};k.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););};k.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))?(this.regexp_eatQuantifier(t),!0):!1};k.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var i=!1;if(this.options.ecmaVersion>=9&&(i=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!i,!0}return t.pos=e,!1};k.regexp_eatQuantifier=function(t,e){return e===void 0&&(e=!1),this.regexp_eatQuantifierPrefix(t,e)?(t.eat(63),!0):!1};k.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)};k.regexp_eatBracedQuantifier=function(t,e){var i=t.pos;if(t.eat(123)){var r=0,s=-1;if(this.regexp_eatDecimalDigits(t)&&(r=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(s=t.lastIntValue),t.eat(125)))return s!==-1&&s<r&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=i}return!1};k.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)};k.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1};k.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)){if(this.options.ecmaVersion>=16){var i=this.regexp_eatModifiers(t),r=t.eat(45);if(i||r){for(var s=0;s<i.length;s++){var a=i.charAt(s);i.indexOf(a,s+1)>-1&&t.raise("Duplicate regular expression modifiers")}if(r){var n=this.regexp_eatModifiers(t);!i&&!n&&t.current()===58&&t.raise("Invalid regular expression modifiers");for(var o=0;o<n.length;o++){var l=n.charAt(o);(n.indexOf(l,o+1)>-1||i.indexOf(l)>-1)&&t.raise("Duplicate regular expression modifiers")}}}}if(t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}}t.pos=e}return!1};k.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):t.current()===63&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1};k.regexp_eatModifiers=function(t){for(var e="",i=0;(i=t.current())!==-1&&$n(i);)e+=Je(i),t.advance();return e};function $n(t){return t===105||t===109||t===115}k.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)};k.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1};k.regexp_eatSyntaxCharacter=function(t){var e=t.current();return Ss(e)?(t.lastIntValue=e,t.advance(),!0):!1};function Ss(t){return t===36||t>=40&&t<=43||t===46||t===63||t>=91&&t<=94||t>=123&&t<=125}k.regexp_eatPatternCharacters=function(t){for(var e=t.pos,i=0;(i=t.current())!==-1&&!Ss(i);)t.advance();return t.pos!==e};k.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return e!==-1&&e!==36&&!(e>=40&&e<=43)&&e!==46&&e!==63&&e!==91&&e!==94&&e!==124?(t.advance(),!0):!1};k.regexp_groupSpecifier=function(t){if(t.eat(63)){this.regexp_eatGroupName(t)||t.raise("Invalid group");var e=this.options.ecmaVersion>=16,i=t.groupNames[t.lastStringValue];if(i)if(e)for(var r=0,s=i;r<s.length;r+=1){var a=s[r];a.separatedFrom(t.branchID)||t.raise("Duplicate capture group name")}else t.raise("Duplicate capture group name");e?(i||(t.groupNames[t.lastStringValue]=[])).push(t.branchID):t.groupNames[t.lastStringValue]=!0}};k.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1};k.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=Je(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=Je(t.lastIntValue);return!0}return!1};k.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,i=this.options.ecmaVersion>=11,r=t.current(i);return t.advance(i),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(t,i)&&(r=t.lastIntValue),Bn(r)?(t.lastIntValue=r,!0):(t.pos=e,!1)};function Bn(t){return ze(t,!0)||t===36||t===95}k.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,i=this.options.ecmaVersion>=11,r=t.current(i);return t.advance(i),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(t,i)&&(r=t.lastIntValue),Fn(r)?(t.lastIntValue=r,!0):(t.pos=e,!1)};function Fn(t){return ct(t,!0)||t===36||t===95||t===8204||t===8205}k.regexp_eatAtomEscape=function(t){return this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t)?!0:(t.switchU&&(t.current()===99&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)};k.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var i=t.lastIntValue;if(t.switchU)return i>t.maxBackReference&&(t.maxBackReference=i),!0;if(i<=t.numCapturingParens)return!0;t.pos=e}return!1};k.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1};k.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t,!1)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)};k.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1};k.regexp_eatZero=function(t){return t.current()===48&&!_i(t.lookahead())?(t.lastIntValue=0,t.advance(),!0):!1};k.regexp_eatControlEscape=function(t){var e=t.current();return e===116?(t.lastIntValue=9,t.advance(),!0):e===110?(t.lastIntValue=10,t.advance(),!0):e===118?(t.lastIntValue=11,t.advance(),!0):e===102?(t.lastIntValue=12,t.advance(),!0):e===114?(t.lastIntValue=13,t.advance(),!0):!1};k.regexp_eatControlLetter=function(t){var e=t.current();return Es(e)?(t.lastIntValue=e%32,t.advance(),!0):!1};function Es(t){return t>=65&&t<=90||t>=97&&t<=122}k.regexp_eatRegExpUnicodeEscapeSequence=function(t,e){e===void 0&&(e=!1);var i=t.pos,r=e||t.switchU;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var s=t.lastIntValue;if(r&&s>=55296&&s<=56319){var a=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var n=t.lastIntValue;if(n>=56320&&n<=57343)return t.lastIntValue=(s-55296)*1024+(n-56320)+65536,!0}t.pos=a,t.lastIntValue=s}return!0}if(r&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&Wn(t.lastIntValue))return!0;r&&t.raise("Invalid unicode escape"),t.pos=i}return!1};function Wn(t){return t>=0&&t<=1114111}k.regexp_eatIdentityEscape=function(t){if(t.switchU)return this.regexp_eatSyntaxCharacter(t)?!0:t.eat(47)?(t.lastIntValue=47,!0):!1;var e=t.current();return e!==99&&(!t.switchN||e!==107)?(t.lastIntValue=e,t.advance(),!0):!1};k.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do t.lastIntValue=10*t.lastIntValue+(e-48),t.advance();while((e=t.current())>=48&&e<=57);return!0}return!1};var Ns=0,et=1,De=2;k.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(Un(e))return t.lastIntValue=-1,t.advance(),et;var i=!1;if(t.switchU&&this.options.ecmaVersion>=9&&((i=e===80)||e===112)){t.lastIntValue=-1,t.advance();var r;if(t.eat(123)&&(r=this.regexp_eatUnicodePropertyValueExpression(t))&&t.eat(125))return i&&r===De&&t.raise("Invalid property name"),r;t.raise("Invalid property name")}return Ns};function Un(t){return t===100||t===68||t===115||t===83||t===119||t===87}k.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var i=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var r=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,i,r),et}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var s=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,s)}return Ns};k.regexp_validateUnicodePropertyNameAndValue=function(t,e,i){Mt(t.unicodeProperties.nonBinary,e)||t.raise("Invalid property name"),t.unicodeProperties.nonBinary[e].test(i)||t.raise("Invalid property value")};k.regexp_validateUnicodePropertyNameOrValue=function(t,e){if(t.unicodeProperties.binary.test(e))return et;if(t.switchV&&t.unicodeProperties.binaryOfStrings.test(e))return De;t.raise("Invalid property name")};k.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";Cs(e=t.current());)t.lastStringValue+=Je(e),t.advance();return t.lastStringValue!==""};function Cs(t){return Es(t)||t===95}k.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";qn(e=t.current());)t.lastStringValue+=Je(e),t.advance();return t.lastStringValue!==""};function qn(t){return Cs(t)||_i(t)}k.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)};k.regexp_eatCharacterClass=function(t){if(t.eat(91)){var e=t.eat(94),i=this.regexp_classContents(t);return t.eat(93)||t.raise("Unterminated character class"),e&&i===De&&t.raise("Negated character class may contain strings"),!0}return!1};k.regexp_classContents=function(t){return t.current()===93?et:t.switchV?this.regexp_classSetExpression(t):(this.regexp_nonEmptyClassRanges(t),et)};k.regexp_nonEmptyClassRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var i=t.lastIntValue;t.switchU&&(e===-1||i===-1)&&t.raise("Invalid character class"),e!==-1&&i!==-1&&e>i&&t.raise("Range out of order in character class")}}};k.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var i=t.current();(i===99||As(i))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var r=t.current();return r!==93?(t.lastIntValue=r,t.advance(),!0):!1};k.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)};k.regexp_classSetExpression=function(t){var e=et,i;if(!this.regexp_eatClassSetRange(t))if(i=this.regexp_eatClassSetOperand(t)){i===De&&(e=De);for(var r=t.pos;t.eatChars([38,38]);){if(t.current()!==38&&(i=this.regexp_eatClassSetOperand(t))){i!==De&&(e=et);continue}t.raise("Invalid character in character class")}if(r!==t.pos)return e;for(;t.eatChars([45,45]);)this.regexp_eatClassSetOperand(t)||t.raise("Invalid character in character class");if(r!==t.pos)return e}else t.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(t)){if(i=this.regexp_eatClassSetOperand(t),!i)return e;i===De&&(e=De)}};k.regexp_eatClassSetRange=function(t){var e=t.pos;if(this.regexp_eatClassSetCharacter(t)){var i=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassSetCharacter(t)){var r=t.lastIntValue;return i!==-1&&r!==-1&&i>r&&t.raise("Range out of order in character class"),!0}t.pos=e}return!1};k.regexp_eatClassSetOperand=function(t){return this.regexp_eatClassSetCharacter(t)?et:this.regexp_eatClassStringDisjunction(t)||this.regexp_eatNestedClass(t)};k.regexp_eatNestedClass=function(t){var e=t.pos;if(t.eat(91)){var i=t.eat(94),r=this.regexp_classContents(t);if(t.eat(93))return i&&r===De&&t.raise("Negated character class may contain strings"),r;t.pos=e}if(t.eat(92)){var s=this.regexp_eatCharacterClassEscape(t);if(s)return s;t.pos=e}return null};k.regexp_eatClassStringDisjunction=function(t){var e=t.pos;if(t.eatChars([92,113])){if(t.eat(123)){var i=this.regexp_classStringDisjunctionContents(t);if(t.eat(125))return i}else t.raise("Invalid escape");t.pos=e}return null};k.regexp_classStringDisjunctionContents=function(t){for(var e=this.regexp_classString(t);t.eat(124);)this.regexp_classString(t)===De&&(e=De);return e};k.regexp_classString=function(t){for(var e=0;this.regexp_eatClassSetCharacter(t);)e++;return e===1?et:De};k.regexp_eatClassSetCharacter=function(t){var e=t.pos;if(t.eat(92))return this.regexp_eatCharacterEscape(t)||this.regexp_eatClassSetReservedPunctuator(t)?!0:t.eat(98)?(t.lastIntValue=8,!0):(t.pos=e,!1);var i=t.current();return i<0||i===t.lookahead()&&Kn(i)||zn(i)?!1:(t.advance(),t.lastIntValue=i,!0)};function Kn(t){return t===33||t>=35&&t<=38||t>=42&&t<=44||t===46||t>=58&&t<=64||t===94||t===96||t===126}function zn(t){return t===40||t===41||t===45||t===47||t>=91&&t<=93||t>=123&&t<=125}k.regexp_eatClassSetReservedPunctuator=function(t){var e=t.current();return Hn(e)?(t.lastIntValue=e,t.advance(),!0):!1};function Hn(t){return t===33||t===35||t===37||t===38||t===44||t===45||t>=58&&t<=62||t===64||t===96||t===126}k.regexp_eatClassControlLetter=function(t){var e=t.current();return _i(e)||e===95?(t.lastIntValue=e%32,t.advance(),!0):!1};k.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1};k.regexp_eatDecimalDigits=function(t){var e=t.pos,i=0;for(t.lastIntValue=0;_i(i=t.current());)t.lastIntValue=10*t.lastIntValue+(i-48),t.advance();return t.pos!==e};function _i(t){return t>=48&&t<=57}k.regexp_eatHexDigits=function(t){var e=t.pos,i=0;for(t.lastIntValue=0;Is(i=t.current());)t.lastIntValue=16*t.lastIntValue+ks(i),t.advance();return t.pos!==e};function Is(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function ks(t){return t>=65&&t<=70?10+(t-65):t>=97&&t<=102?10+(t-97):t-48}k.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var i=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=e*64+i*8+t.lastIntValue:t.lastIntValue=e*8+i}else t.lastIntValue=e;return!0}return!1};k.regexp_eatOctalDigit=function(t){var e=t.current();return As(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)};function As(t){return t>=48&&t<=55}k.regexp_eatFixedHexDigits=function(t,e){var i=t.pos;t.lastIntValue=0;for(var r=0;r<e;++r){var s=t.current();if(!Is(s))return t.pos=i,!1;t.lastIntValue=16*t.lastIntValue+ks(s),t.advance()}return!0};var Xi=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new di(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},$=ie.prototype;$.next=function(t){!t&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new Xi(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()};$.getToken=function(){return this.next(),new Xi(this)};typeof Symbol<"u"&&($[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===d.eof,value:e}}}});$.nextToken=function(){var t=this.curContext();if((!t||!t.preserveSpace)&&this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length)return this.finishToken(d.eof);if(t.override)return t.override(this);this.readToken(this.fullCharCodeAtPos())};$.readToken=function(t){return ze(t,this.options.ecmaVersion>=6)||t===92?this.readWord():this.getTokenFromCode(t)};$.fullCharCodeAt=function(t){var e=this.input.charCodeAt(t);if(e<=55295||e>=56320)return e;var i=this.input.charCodeAt(t+1);return i<=56319||i>=57344?e:(e<<10)+i-56613888};$.fullCharCodeAtPos=function(){return this.fullCharCodeAt(this.pos)};$.skipBlockComment=function(){var t=this.options.onComment&&this.curPosition(),e=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(i===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(var r=void 0,s=e;(r=Zr(this.input,s,this.pos))>-1;)++this.curLine,s=this.lineStart=r;this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,i),e,this.pos,t,this.curPosition())};$.skipLineComment=function(t){for(var e=this.pos,i=this.options.onComment&&this.curPosition(),r=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!Dt(r);)r=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,i,this.curPosition())};$.skipSpace=function(){e:for(;this.pos<this.input.length;){var t=this.input.charCodeAt(this.pos);switch(t){case 32:case 160:++this.pos;break;case 13:this.input.charCodeAt(this.pos+1)===10&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(t>8&&t<14||t>=5760&&Jr.test(String.fromCharCode(t)))++this.pos;else break e}}};$.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=t,this.value=e,this.updateContext(i)};$.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&t===46&&e===46?(this.pos+=3,this.finishToken(d.ellipsis)):(++this.pos,this.finishToken(d.dot))};$.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):t===61?this.finishOp(d.assign,2):this.finishOp(d.slash,1)};$.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),i=1,r=t===42?d.star:d.modulo;return this.options.ecmaVersion>=7&&t===42&&e===42&&(++i,r=d.starstar,e=this.input.charCodeAt(this.pos+2)),e===61?this.finishOp(d.assign,i+1):this.finishOp(r,i)};$.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);if(e===t){if(this.options.ecmaVersion>=12){var i=this.input.charCodeAt(this.pos+2);if(i===61)return this.finishOp(d.assign,3)}return this.finishOp(t===124?d.logicalOR:d.logicalAND,2)}return e===61?this.finishOp(d.assign,2):this.finishOp(t===124?d.bitwiseOR:d.bitwiseAND,1)};$.readToken_caret=function(){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(d.assign,2):this.finishOp(d.bitwiseXOR,1)};$.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?e===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||ve.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(d.incDec,2):e===61?this.finishOp(d.assign,2):this.finishOp(d.plusMin,1)};$.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),i=1;return e===t?(i=t===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+i)===61?this.finishOp(d.assign,i+1):this.finishOp(d.bitShift,i)):e===33&&t===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(e===61&&(i=2),this.finishOp(d.relational,i))};$.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(d.equality,this.input.charCodeAt(this.pos+2)===61?3:2):t===61&&e===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(d.arrow)):this.finishOp(t===61?d.eq:d.prefix,1)};$.readToken_question=function(){var t=this.options.ecmaVersion;if(t>=11){var e=this.input.charCodeAt(this.pos+1);if(e===46){var i=this.input.charCodeAt(this.pos+2);if(i<48||i>57)return this.finishOp(d.questionDot,2)}if(e===63){if(t>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(d.assign,3)}return this.finishOp(d.coalesce,2)}}return this.finishOp(d.question,1)};$.readToken_numberSign=function(){var t=this.options.ecmaVersion,e=35;if(t>=13&&(++this.pos,e=this.fullCharCodeAtPos(),ze(e,!0)||e===92))return this.finishToken(d.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+Je(e)+"'")};$.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(d.parenL);case 41:return++this.pos,this.finishToken(d.parenR);case 59:return++this.pos,this.finishToken(d.semi);case 44:return++this.pos,this.finishToken(d.comma);case 91:return++this.pos,this.finishToken(d.bracketL);case 93:return++this.pos,this.finishToken(d.bracketR);case 123:return++this.pos,this.finishToken(d.braceL);case 125:return++this.pos,this.finishToken(d.braceR);case 58:return++this.pos,this.finishToken(d.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(d.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(e===120||e===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(e===111||e===79)return this.readRadixNumber(8);if(e===98||e===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 63:return this.readToken_question();case 126:return this.finishOp(d.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+Je(t)+"'")};$.finishOp=function(t,e){var i=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,i)};$.readRegexp=function(){for(var t,e,i=this.pos;;){this.pos>=this.input.length&&this.raise(i,"Unterminated regular expression");var r=this.input.charAt(this.pos);if(ve.test(r)&&this.raise(i,"Unterminated regular expression"),t)t=!1;else{if(r==="[")e=!0;else if(r==="]"&&e)e=!1;else if(r==="/"&&!e)break;t=r==="\\"}++this.pos}var s=this.input.slice(i,this.pos);++this.pos;var a=this.pos,n=this.readWord1();this.containsEsc&&this.unexpected(a);var o=this.regexpState||(this.regexpState=new He(this));o.reset(i,s,n),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var l=null;try{l=new RegExp(s,n)}catch{}return this.finishToken(d.regexp,{pattern:s,flags:n,value:l})};$.readInt=function(t,e,i){for(var r=this.options.ecmaVersion>=12&&e===void 0,s=i&&this.input.charCodeAt(this.pos)===48,a=this.pos,n=0,o=0,l=0,c=e??1/0;l<c;++l,++this.pos){var h=this.input.charCodeAt(this.pos),p=void 0;if(r&&h===95){s&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),o===95&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),l===0&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),o=h;continue}if(h>=97?p=h-97+10:h>=65?p=h-65+10:h>=48&&h<=57?p=h-48:p=1/0,p>=t)break;o=h,n=n*t+p}return r&&o===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===a||e!=null&&this.pos-a!==e?null:n};function Gn(t,e){return e?parseInt(t,8):parseFloat(t.replace(/_/g,""))}function Ts(t){return typeof BigInt!="function"?null:BigInt(t.replace(/_/g,""))}$.readRadixNumber=function(t){var e=this.pos;this.pos+=2;var i=this.readInt(t);return i==null&&this.raise(this.start+2,"Expected number in radix "+t),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(i=Ts(this.input.slice(e,this.pos)),++this.pos):ze(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(d.num,i)};$.readNumber=function(t){var e=this.pos;!t&&this.readInt(10,void 0,!0)===null&&this.raise(e,"Invalid number");var i=this.pos-e>=2&&this.input.charCodeAt(e)===48;i&&this.strict&&this.raise(e,"Invalid number");var r=this.input.charCodeAt(this.pos);if(!i&&!t&&this.options.ecmaVersion>=11&&r===110){var s=Ts(this.input.slice(e,this.pos));return++this.pos,ze(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(d.num,s)}i&&/[89]/.test(this.input.slice(e,this.pos))&&(i=!1),r===46&&!i&&(++this.pos,this.readInt(10),r=this.input.charCodeAt(this.pos)),(r===69||r===101)&&!i&&(r=this.input.charCodeAt(++this.pos),(r===43||r===45)&&++this.pos,this.readInt(10)===null&&this.raise(e,"Invalid number")),ze(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=Gn(this.input.slice(e,this.pos),i);return this.finishToken(d.num,a)};$.readCodePoint=function(){var t=this.input.charCodeAt(this.pos),e;if(t===123){this.options.ecmaVersion<6&&this.unexpected();var i=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(i,"Code point out of bounds")}else e=this.readHexChar(4);return e};$.readString=function(t){for(var e="",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var r=this.input.charCodeAt(this.pos);if(r===t)break;r===92?(e+=this.input.slice(i,this.pos),e+=this.readEscapedChar(!1),i=this.pos):r===8232||r===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Dt(r)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(i,this.pos++),this.finishToken(d.string,e)};var Ps={};$.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t===Ps)this.readInvalidTemplateToken();else throw t}this.inTemplateElement=!1};$.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Ps;this.raise(t,e)};$.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var i=this.input.charCodeAt(this.pos);if(i===96||i===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===d.template||this.type===d.invalidTemplate)?i===36?(this.pos+=2,this.finishToken(d.dollarBraceL)):(++this.pos,this.finishToken(d.backQuote)):(t+=this.input.slice(e,this.pos),this.finishToken(d.template,t));if(i===92)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(Dt(i)){switch(t+=this.input.slice(e,this.pos),++this.pos,i){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:t+=`
|
|
5
|
+
`),cooked:this.value},this.next(),i.tail=this.type===d.backQuote,this.finishNode(i,"TemplateElement")};M.parseTemplate=function(t){t===void 0&&(t={});var e=t.isTagged;e===void 0&&(e=!1);var i=this.startNode();this.next(),i.expressions=[];var r=this.parseTemplateElement({isTagged:e});for(i.quasis=[r];!r.tail;)this.type===d.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(d.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(d.braceR),i.quasis.push(r=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(i,"TemplateLiteral")};M.isAsyncProp=function(t){return!t.computed&&t.key.type==="Identifier"&&t.key.name==="async"&&(this.type===d.name||this.type===d.num||this.type===d.string||this.type===d.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===d.star)&&!ve.test(this.input.slice(this.lastTokEnd,this.start))};M.parseObj=function(t,e){var i=this.startNode(),r=!0,s={};for(i.properties=[],this.next();!this.eat(d.braceR);){if(r)r=!1;else if(this.expect(d.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(d.braceR))break;var a=this.parseProperty(t,e);t||this.checkPropClash(a,s,e),i.properties.push(a)}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")};M.parseProperty=function(t,e){var i=this.startNode(),r,s,a,n;if(this.options.ecmaVersion>=9&&this.eat(d.ellipsis))return t?(i.argument=this.parseIdent(!1),this.type===d.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(i,"RestElement")):(i.argument=this.parseMaybeAssign(!1,e),this.type===d.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(i,"SpreadElement"));this.options.ecmaVersion>=6&&(i.method=!1,i.shorthand=!1,(t||e)&&(a=this.start,n=this.startLoc),t||(r=this.eat(d.star)));var o=this.containsEsc;return this.parsePropertyName(i),!t&&!o&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(i)?(s=!0,r=this.options.ecmaVersion>=9&&this.eat(d.star),this.parsePropertyName(i)):s=!1,this.parsePropertyValue(i,t,r,s,a,n,e,o),this.finishNode(i,"Property")};M.parseGetterSetter=function(t){var e=t.key.name;this.parsePropertyName(t),t.value=this.parseMethod(!1),t.kind=e;var i=t.kind==="get"?0:1;if(t.value.params.length!==i){var r=t.value.start;t.kind==="get"?this.raiseRecoverable(r,"getter should have no params"):this.raiseRecoverable(r,"setter should have exactly one param")}else t.kind==="set"&&t.value.params[0].type==="RestElement"&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")};M.parsePropertyValue=function(t,e,i,r,s,a,n,o){(i||r)&&this.type===d.colon&&this.unexpected(),this.eat(d.colon)?(t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,n),t.kind="init"):this.options.ecmaVersion>=6&&this.type===d.parenL?(e&&this.unexpected(),t.method=!0,t.value=this.parseMethod(i,r),t.kind="init"):!e&&!o&&this.options.ecmaVersion>=5&&!t.computed&&t.key.type==="Identifier"&&(t.key.name==="get"||t.key.name==="set")&&this.type!==d.comma&&this.type!==d.braceR&&this.type!==d.eq?((i||r)&&this.unexpected(),this.parseGetterSetter(t)):this.options.ecmaVersion>=6&&!t.computed&&t.key.type==="Identifier"?((i||r)&&this.unexpected(),this.checkUnreserved(t.key),t.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=s),e?t.value=this.parseMaybeDefault(s,a,this.copyNode(t.key)):this.type===d.eq&&n?(n.shorthandAssign<0&&(n.shorthandAssign=this.start),t.value=this.parseMaybeDefault(s,a,this.copyNode(t.key))):t.value=this.copyNode(t.key),t.kind="init",t.shorthand=!0):this.unexpected()};M.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(d.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(d.bracketR),t.key;t.computed=!1}return t.key=this.type===d.num||this.type===d.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")};M.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)};M.parseMethod=function(t,e,i){var r=this.startNode(),s=this.yieldPos,a=this.awaitPos,n=this.awaitIdentPos;return this.initFunction(r),this.options.ecmaVersion>=6&&(r.generator=t),this.options.ecmaVersion>=8&&(r.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Hi(e,r.generator)|mi|(i?is:0)),this.expect(d.parenL),r.params=this.parseBindingList(d.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(r,!1,!0,!1),this.yieldPos=s,this.awaitPos=a,this.awaitIdentPos=n,this.finishNode(r,"FunctionExpression")};M.parseArrowExpression=function(t,e,i,r){var s=this.yieldPos,a=this.awaitPos,n=this.awaitIdentPos;return this.enterScope(Hi(i,!1)|zi),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!i),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0,!1,r),this.yieldPos=s,this.awaitPos=a,this.awaitIdentPos=n,this.finishNode(t,"ArrowFunctionExpression")};M.parseFunctionBody=function(t,e,i,r){var s=e&&this.type!==d.braceL,a=this.strict,n=!1;if(s)t.body=this.parseMaybeAssign(r),t.expression=!0,this.checkParams(t,!1);else{var o=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);(!a||o)&&(n=this.strictDirective(this.end),n&&o&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var l=this.labels;this.labels=[],n&&(this.strict=!0),this.checkParams(t,!a&&!n&&!e&&!i&&this.isSimpleParamList(t.params)),this.strict&&t.id&&this.checkLValSimple(t.id,as),t.body=this.parseBlock(!1,void 0,n&&!a),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=l}this.exitScope()};M.isSimpleParamList=function(t){for(var e=0,i=t;e<i.length;e+=1){var r=i[e];if(r.type!=="Identifier")return!1}return!0};M.checkParams=function(t,e){for(var i=Object.create(null),r=0,s=t.params;r<s.length;r+=1){var a=s[r];this.checkLValInnerPattern(a,Gi,e?null:i)}};M.parseExprList=function(t,e,i,r){for(var s=[],a=!0;!this.eat(t);){if(a)a=!1;else if(this.expect(d.comma),e&&this.afterTrailingComma(t))break;var n=void 0;i&&this.type===d.comma?n=null:this.type===d.ellipsis?(n=this.parseSpread(r),r&&this.type===d.comma&&r.trailingComma<0&&(r.trailingComma=this.start)):n=this.parseMaybeAssign(!1,r),s.push(n)}return s};M.checkUnreserved=function(t){var e=t.start,i=t.end,r=t.name;if(this.inGenerator&&r==="yield"&&this.raiseRecoverable(e,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&r==="await"&&this.raiseRecoverable(e,"Cannot use 'await' as identifier inside an async function"),!(this.currentThisScope().flags&gi)&&r==="arguments"&&this.raiseRecoverable(e,"Cannot use 'arguments' in class field initializer"),this.inClassStaticBlock&&(r==="arguments"||r==="await")&&this.raise(e,"Cannot use "+r+" in class static initialization block"),this.keywords.test(r)&&this.raise(e,"Unexpected keyword '"+r+"'"),!(this.options.ecmaVersion<6&&this.input.slice(e,i).indexOf("\\")!==-1)){var s=this.strict?this.reservedWordsStrict:this.reservedWords;s.test(r)&&(!this.inAsync&&r==="await"&&this.raiseRecoverable(e,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+r+"' is reserved"))}};M.parseIdent=function(t){var e=this.parseIdentNode();return this.next(!!t),this.finishNode(e,"Identifier"),t||(this.checkUnreserved(e),e.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=e.start)),e};M.parseIdentNode=function(){var t=this.startNode();return this.type===d.name?t.name=this.value:this.type.keyword?(t.name=this.type.keyword,(t.name==="class"||t.name==="function")&&(this.lastTokEnd!==this.lastTokStart+1||this.input.charCodeAt(this.lastTokStart)!==46)&&this.context.pop(),this.type=d.name):this.unexpected(),t};M.parsePrivateIdent=function(){var t=this.startNode();return this.type===d.privateId?t.name=this.value:this.unexpected(),this.next(),this.finishNode(t,"PrivateIdentifier"),this.options.checkPrivateFields&&(this.privateNameStack.length===0?this.raise(t.start,"Private field '#"+t.name+"' must be declared in an enclosing class"):this.privateNameStack[this.privateNameStack.length-1].used.push(t)),t};M.parseYield=function(t){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type===d.semi||this.canInsertSemicolon()||this.type!==d.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(d.star),e.argument=this.parseMaybeAssign(t)),this.finishNode(e,"YieldExpression")};M.parseAwait=function(t){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0,!1,t),this.finishNode(e,"AwaitExpression")};var oi=ie.prototype;oi.raise=function(t,e){var i=Jr(this.input,t);e+=" ("+i.line+":"+i.column+")",this.sourceFile&&(e+=" in "+this.sourceFile);var r=new SyntaxError(e);throw r.pos=t,r.loc=i,r.raisedAt=this.pos,r};oi.raiseRecoverable=oi.raise;oi.curPosition=function(){if(this.options.locations)return new Ut(this.curLine,this.pos-this.lineStart)};var ht=ie.prototype,Cn=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};ht.enterScope=function(t){this.scopeStack.push(new Cn(t))};ht.exitScope=function(){this.scopeStack.pop()};ht.treatFunctionsAsVarInScope=function(t){return t.flags>||!this.inModule&&t.flags&mt};ht.declareName=function(t,e,i){var r=!1;if(e===tt){var s=this.currentScope();r=s.lexical.indexOf(t)>-1||s.functions.indexOf(t)>-1||s.var.indexOf(t)>-1,s.lexical.push(t),this.inModule&&s.flags&mt&&delete this.undefinedExports[t]}else if(e===ns){var a=this.currentScope();a.lexical.push(t)}else if(e===ss){var n=this.currentScope();this.treatFunctionsAsVar?r=n.lexical.indexOf(t)>-1:r=n.lexical.indexOf(t)>-1||n.var.indexOf(t)>-1,n.functions.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var l=this.scopeStack[o];if(l.lexical.indexOf(t)>-1&&!(l.flags&ts&&l.lexical[0]===t)||!this.treatFunctionsAsVarInScope(l)&&l.functions.indexOf(t)>-1){r=!0;break}if(l.var.push(t),this.inModule&&l.flags&mt&&delete this.undefinedExports[t],l.flags&gi)break}r&&this.raiseRecoverable(i,"Identifier '"+t+"' has already been declared")};ht.checkLocalExport=function(t){this.scopeStack[0].lexical.indexOf(t.name)===-1&&this.scopeStack[0].var.indexOf(t.name)===-1&&(this.undefinedExports[t.name]=t)};ht.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};ht.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&(gi|qt|yt))return e}};ht.currentThisScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&(gi|qt|yt)&&!(e.flags&zi))return e}};var xi=function(e,i,r){this.type="",this.start=i,this.end=0,e.options.locations&&(this.loc=new di(e,r)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[i,0])},Kt=ie.prototype;Kt.startNode=function(){return new xi(this,this.start,this.startLoc)};Kt.startNodeAt=function(t,e){return new xi(this,t,e)};function cs(t,e,i,r){return t.type=e,t.end=i,this.options.locations&&(t.loc.end=r),this.options.ranges&&(t.range[1]=i),t}Kt.finishNode=function(t,e){return cs.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)};Kt.finishNodeAt=function(t,e,i,r){return cs.call(this,t,e,i,r)};Kt.copyNode=function(t){var e=new xi(this,t.start,this.startLoc);for(var i in t)e[i]=t[i];return e};var In="Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz",hs="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",us=hs+" Extended_Pictographic",ps=us,fs=ps+" EBase EComp EMod EPres ExtPict",ds=fs,kn=ds,An={9:hs,10:us,11:ps,12:fs,13:ds,14:kn},Tn="Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji",Pn={9:"",10:"",11:"",12:"",13:"",14:Tn},cr="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",ms="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",gs=ms+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",ys=gs+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",xs=ys+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",_s=xs+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Dn=_s+" "+In,Mn={9:ms,10:gs,11:ys,12:xs,13:_s,14:Dn},bs={};function Rn(t){var e=bs[t]={binary:lt(An[t]+" "+cr),binaryOfStrings:lt(Pn[t]),nonBinary:{General_Category:lt(cr),Script:lt(Mn[t])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}for(var Ei=0,hr=[9,10,11,12,13,14];Ei<hr.length;Ei+=1){var On=hr[Ei];Rn(On)}var k=ie.prototype,li=function(e,i){this.parent=e,this.base=i||this};li.prototype.separatedFrom=function(e){for(var i=this;i;i=i.parent)for(var r=e;r;r=r.parent)if(i.base===r.base&&i!==r)return!0;return!1};li.prototype.sibling=function(){return new li(this.parent,this.base)};var He=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":"")+(e.options.ecmaVersion>=13?"d":"")+(e.options.ecmaVersion>=15?"v":""),this.unicodeProperties=bs[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};He.prototype.reset=function(e,i,r){var s=r.indexOf("v")!==-1,a=r.indexOf("u")!==-1;this.start=e|0,this.source=i+"",this.flags=r,s&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)};He.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)};He.prototype.at=function(e,i){i===void 0&&(i=!1);var r=this.source,s=r.length;if(e>=s)return-1;var a=r.charCodeAt(e);if(!(i||this.switchU)||a<=55295||a>=57344||e+1>=s)return a;var n=r.charCodeAt(e+1);return n>=56320&&n<=57343?(a<<10)+n-56613888:a};He.prototype.nextIndex=function(e,i){i===void 0&&(i=!1);var r=this.source,s=r.length;if(e>=s)return s;var a=r.charCodeAt(e),n;return!(i||this.switchU)||a<=55295||a>=57344||e+1>=s||(n=r.charCodeAt(e+1))<56320||n>57343?e+1:e+2};He.prototype.current=function(e){return e===void 0&&(e=!1),this.at(this.pos,e)};He.prototype.lookahead=function(e){return e===void 0&&(e=!1),this.at(this.nextIndex(this.pos,e),e)};He.prototype.advance=function(e){e===void 0&&(e=!1),this.pos=this.nextIndex(this.pos,e)};He.prototype.eat=function(e,i){return i===void 0&&(i=!1),this.current(i)===e?(this.advance(i),!0):!1};He.prototype.eatChars=function(e,i){i===void 0&&(i=!1);for(var r=this.pos,s=0,a=e;s<a.length;s+=1){var n=a[s],o=this.at(r,i);if(o===-1||o!==n)return!1;r=this.nextIndex(r,i)}return this.pos=r,!0};k.validateRegExpFlags=function(t){for(var e=t.validFlags,i=t.flags,r=!1,s=!1,a=0;a<i.length;a++){var n=i.charAt(a);e.indexOf(n)===-1&&this.raise(t.start,"Invalid regular expression flag"),i.indexOf(n,a+1)>-1&&this.raise(t.start,"Duplicate regular expression flag"),n==="u"&&(r=!0),n==="v"&&(s=!0)}this.options.ecmaVersion>=15&&r&&s&&this.raise(t.start,"Invalid regular expression flag")};function Vn(t){for(var e in t)return!0;return!1}k.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&Vn(t.groupNames)&&(t.switchN=!0,this.regexp_pattern(t))};k.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames=Object.create(null),t.backReferenceNames.length=0,t.branchID=null,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,i=t.backReferenceNames;e<i.length;e+=1){var r=i[e];t.groupNames[r]||t.raise("Invalid named capture referenced")}};k.regexp_disjunction=function(t){var e=this.options.ecmaVersion>=16;for(e&&(t.branchID=new li(t.branchID,null)),this.regexp_alternative(t);t.eat(124);)e&&(t.branchID=t.branchID.sibling()),this.regexp_alternative(t);e&&(t.branchID=t.branchID.parent),this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")};k.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););};k.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))?(this.regexp_eatQuantifier(t),!0):!1};k.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var i=!1;if(this.options.ecmaVersion>=9&&(i=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!i,!0}return t.pos=e,!1};k.regexp_eatQuantifier=function(t,e){return e===void 0&&(e=!1),this.regexp_eatQuantifierPrefix(t,e)?(t.eat(63),!0):!1};k.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)};k.regexp_eatBracedQuantifier=function(t,e){var i=t.pos;if(t.eat(123)){var r=0,s=-1;if(this.regexp_eatDecimalDigits(t)&&(r=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(s=t.lastIntValue),t.eat(125)))return s!==-1&&s<r&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=i}return!1};k.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)};k.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1};k.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)){if(this.options.ecmaVersion>=16){var i=this.regexp_eatModifiers(t),r=t.eat(45);if(i||r){for(var s=0;s<i.length;s++){var a=i.charAt(s);i.indexOf(a,s+1)>-1&&t.raise("Duplicate regular expression modifiers")}if(r){var n=this.regexp_eatModifiers(t);!i&&!n&&t.current()===58&&t.raise("Invalid regular expression modifiers");for(var o=0;o<n.length;o++){var l=n.charAt(o);(n.indexOf(l,o+1)>-1||i.indexOf(l)>-1)&&t.raise("Duplicate regular expression modifiers")}}}}if(t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}}t.pos=e}return!1};k.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):t.current()===63&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1};k.regexp_eatModifiers=function(t){for(var e="",i=0;(i=t.current())!==-1&&Ln(i);)e+=Je(i),t.advance();return e};function Ln(t){return t===105||t===109||t===115}k.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)};k.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1};k.regexp_eatSyntaxCharacter=function(t){var e=t.current();return vs(e)?(t.lastIntValue=e,t.advance(),!0):!1};function vs(t){return t===36||t>=40&&t<=43||t===46||t===63||t>=91&&t<=94||t>=123&&t<=125}k.regexp_eatPatternCharacters=function(t){for(var e=t.pos,i=0;(i=t.current())!==-1&&!vs(i);)t.advance();return t.pos!==e};k.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return e!==-1&&e!==36&&!(e>=40&&e<=43)&&e!==46&&e!==63&&e!==91&&e!==94&&e!==124?(t.advance(),!0):!1};k.regexp_groupSpecifier=function(t){if(t.eat(63)){this.regexp_eatGroupName(t)||t.raise("Invalid group");var e=this.options.ecmaVersion>=16,i=t.groupNames[t.lastStringValue];if(i)if(e)for(var r=0,s=i;r<s.length;r+=1){var a=s[r];a.separatedFrom(t.branchID)||t.raise("Duplicate capture group name")}else t.raise("Duplicate capture group name");e?(i||(t.groupNames[t.lastStringValue]=[])).push(t.branchID):t.groupNames[t.lastStringValue]=!0}};k.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1};k.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=Je(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=Je(t.lastIntValue);return!0}return!1};k.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,i=this.options.ecmaVersion>=11,r=t.current(i);return t.advance(i),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(t,i)&&(r=t.lastIntValue),jn(r)?(t.lastIntValue=r,!0):(t.pos=e,!1)};function jn(t){return ze(t,!0)||t===36||t===95}k.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,i=this.options.ecmaVersion>=11,r=t.current(i);return t.advance(i),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(t,i)&&(r=t.lastIntValue),$n(r)?(t.lastIntValue=r,!0):(t.pos=e,!1)};function $n(t){return ct(t,!0)||t===36||t===95||t===8204||t===8205}k.regexp_eatAtomEscape=function(t){return this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t)?!0:(t.switchU&&(t.current()===99&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)};k.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var i=t.lastIntValue;if(t.switchU)return i>t.maxBackReference&&(t.maxBackReference=i),!0;if(i<=t.numCapturingParens)return!0;t.pos=e}return!1};k.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1};k.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t,!1)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)};k.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1};k.regexp_eatZero=function(t){return t.current()===48&&!_i(t.lookahead())?(t.lastIntValue=0,t.advance(),!0):!1};k.regexp_eatControlEscape=function(t){var e=t.current();return e===116?(t.lastIntValue=9,t.advance(),!0):e===110?(t.lastIntValue=10,t.advance(),!0):e===118?(t.lastIntValue=11,t.advance(),!0):e===102?(t.lastIntValue=12,t.advance(),!0):e===114?(t.lastIntValue=13,t.advance(),!0):!1};k.regexp_eatControlLetter=function(t){var e=t.current();return ws(e)?(t.lastIntValue=e%32,t.advance(),!0):!1};function ws(t){return t>=65&&t<=90||t>=97&&t<=122}k.regexp_eatRegExpUnicodeEscapeSequence=function(t,e){e===void 0&&(e=!1);var i=t.pos,r=e||t.switchU;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var s=t.lastIntValue;if(r&&s>=55296&&s<=56319){var a=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var n=t.lastIntValue;if(n>=56320&&n<=57343)return t.lastIntValue=(s-55296)*1024+(n-56320)+65536,!0}t.pos=a,t.lastIntValue=s}return!0}if(r&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&Bn(t.lastIntValue))return!0;r&&t.raise("Invalid unicode escape"),t.pos=i}return!1};function Bn(t){return t>=0&&t<=1114111}k.regexp_eatIdentityEscape=function(t){if(t.switchU)return this.regexp_eatSyntaxCharacter(t)?!0:t.eat(47)?(t.lastIntValue=47,!0):!1;var e=t.current();return e!==99&&(!t.switchN||e!==107)?(t.lastIntValue=e,t.advance(),!0):!1};k.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do t.lastIntValue=10*t.lastIntValue+(e-48),t.advance();while((e=t.current())>=48&&e<=57);return!0}return!1};var Ss=0,et=1,Me=2;k.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(Fn(e))return t.lastIntValue=-1,t.advance(),et;var i=!1;if(t.switchU&&this.options.ecmaVersion>=9&&((i=e===80)||e===112)){t.lastIntValue=-1,t.advance();var r;if(t.eat(123)&&(r=this.regexp_eatUnicodePropertyValueExpression(t))&&t.eat(125))return i&&r===Me&&t.raise("Invalid property name"),r;t.raise("Invalid property name")}return Ss};function Fn(t){return t===100||t===68||t===115||t===83||t===119||t===87}k.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var i=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var r=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,i,r),et}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var s=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,s)}return Ss};k.regexp_validateUnicodePropertyNameAndValue=function(t,e,i){Mt(t.unicodeProperties.nonBinary,e)||t.raise("Invalid property name"),t.unicodeProperties.nonBinary[e].test(i)||t.raise("Invalid property value")};k.regexp_validateUnicodePropertyNameOrValue=function(t,e){if(t.unicodeProperties.binary.test(e))return et;if(t.switchV&&t.unicodeProperties.binaryOfStrings.test(e))return Me;t.raise("Invalid property name")};k.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";Es(e=t.current());)t.lastStringValue+=Je(e),t.advance();return t.lastStringValue!==""};function Es(t){return ws(t)||t===95}k.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";Wn(e=t.current());)t.lastStringValue+=Je(e),t.advance();return t.lastStringValue!==""};function Wn(t){return Es(t)||_i(t)}k.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)};k.regexp_eatCharacterClass=function(t){if(t.eat(91)){var e=t.eat(94),i=this.regexp_classContents(t);return t.eat(93)||t.raise("Unterminated character class"),e&&i===Me&&t.raise("Negated character class may contain strings"),!0}return!1};k.regexp_classContents=function(t){return t.current()===93?et:t.switchV?this.regexp_classSetExpression(t):(this.regexp_nonEmptyClassRanges(t),et)};k.regexp_nonEmptyClassRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var i=t.lastIntValue;t.switchU&&(e===-1||i===-1)&&t.raise("Invalid character class"),e!==-1&&i!==-1&&e>i&&t.raise("Range out of order in character class")}}};k.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var i=t.current();(i===99||Is(i))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var r=t.current();return r!==93?(t.lastIntValue=r,t.advance(),!0):!1};k.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)};k.regexp_classSetExpression=function(t){var e=et,i;if(!this.regexp_eatClassSetRange(t))if(i=this.regexp_eatClassSetOperand(t)){i===Me&&(e=Me);for(var r=t.pos;t.eatChars([38,38]);){if(t.current()!==38&&(i=this.regexp_eatClassSetOperand(t))){i!==Me&&(e=et);continue}t.raise("Invalid character in character class")}if(r!==t.pos)return e;for(;t.eatChars([45,45]);)this.regexp_eatClassSetOperand(t)||t.raise("Invalid character in character class");if(r!==t.pos)return e}else t.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(t)){if(i=this.regexp_eatClassSetOperand(t),!i)return e;i===Me&&(e=Me)}};k.regexp_eatClassSetRange=function(t){var e=t.pos;if(this.regexp_eatClassSetCharacter(t)){var i=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassSetCharacter(t)){var r=t.lastIntValue;return i!==-1&&r!==-1&&i>r&&t.raise("Range out of order in character class"),!0}t.pos=e}return!1};k.regexp_eatClassSetOperand=function(t){return this.regexp_eatClassSetCharacter(t)?et:this.regexp_eatClassStringDisjunction(t)||this.regexp_eatNestedClass(t)};k.regexp_eatNestedClass=function(t){var e=t.pos;if(t.eat(91)){var i=t.eat(94),r=this.regexp_classContents(t);if(t.eat(93))return i&&r===Me&&t.raise("Negated character class may contain strings"),r;t.pos=e}if(t.eat(92)){var s=this.regexp_eatCharacterClassEscape(t);if(s)return s;t.pos=e}return null};k.regexp_eatClassStringDisjunction=function(t){var e=t.pos;if(t.eatChars([92,113])){if(t.eat(123)){var i=this.regexp_classStringDisjunctionContents(t);if(t.eat(125))return i}else t.raise("Invalid escape");t.pos=e}return null};k.regexp_classStringDisjunctionContents=function(t){for(var e=this.regexp_classString(t);t.eat(124);)this.regexp_classString(t)===Me&&(e=Me);return e};k.regexp_classString=function(t){for(var e=0;this.regexp_eatClassSetCharacter(t);)e++;return e===1?et:Me};k.regexp_eatClassSetCharacter=function(t){var e=t.pos;if(t.eat(92))return this.regexp_eatCharacterEscape(t)||this.regexp_eatClassSetReservedPunctuator(t)?!0:t.eat(98)?(t.lastIntValue=8,!0):(t.pos=e,!1);var i=t.current();return i<0||i===t.lookahead()&&Un(i)||qn(i)?!1:(t.advance(),t.lastIntValue=i,!0)};function Un(t){return t===33||t>=35&&t<=38||t>=42&&t<=44||t===46||t>=58&&t<=64||t===94||t===96||t===126}function qn(t){return t===40||t===41||t===45||t===47||t>=91&&t<=93||t>=123&&t<=125}k.regexp_eatClassSetReservedPunctuator=function(t){var e=t.current();return Kn(e)?(t.lastIntValue=e,t.advance(),!0):!1};function Kn(t){return t===33||t===35||t===37||t===38||t===44||t===45||t>=58&&t<=62||t===64||t===96||t===126}k.regexp_eatClassControlLetter=function(t){var e=t.current();return _i(e)||e===95?(t.lastIntValue=e%32,t.advance(),!0):!1};k.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1};k.regexp_eatDecimalDigits=function(t){var e=t.pos,i=0;for(t.lastIntValue=0;_i(i=t.current());)t.lastIntValue=10*t.lastIntValue+(i-48),t.advance();return t.pos!==e};function _i(t){return t>=48&&t<=57}k.regexp_eatHexDigits=function(t){var e=t.pos,i=0;for(t.lastIntValue=0;Ns(i=t.current());)t.lastIntValue=16*t.lastIntValue+Cs(i),t.advance();return t.pos!==e};function Ns(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function Cs(t){return t>=65&&t<=70?10+(t-65):t>=97&&t<=102?10+(t-97):t-48}k.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var i=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=e*64+i*8+t.lastIntValue:t.lastIntValue=e*8+i}else t.lastIntValue=e;return!0}return!1};k.regexp_eatOctalDigit=function(t){var e=t.current();return Is(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)};function Is(t){return t>=48&&t<=55}k.regexp_eatFixedHexDigits=function(t,e){var i=t.pos;t.lastIntValue=0;for(var r=0;r<e;++r){var s=t.current();if(!Ns(s))return t.pos=i,!1;t.lastIntValue=16*t.lastIntValue+Cs(s),t.advance()}return!0};var Xi=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new di(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},$=ie.prototype;$.next=function(t){!t&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new Xi(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()};$.getToken=function(){return this.next(),new Xi(this)};typeof Symbol<"u"&&($[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===d.eof,value:e}}}});$.nextToken=function(){var t=this.curContext();if((!t||!t.preserveSpace)&&this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length)return this.finishToken(d.eof);if(t.override)return t.override(this);this.readToken(this.fullCharCodeAtPos())};$.readToken=function(t){return ze(t,this.options.ecmaVersion>=6)||t===92?this.readWord():this.getTokenFromCode(t)};$.fullCharCodeAt=function(t){var e=this.input.charCodeAt(t);if(e<=55295||e>=56320)return e;var i=this.input.charCodeAt(t+1);return i<=56319||i>=57344?e:(e<<10)+i-56613888};$.fullCharCodeAtPos=function(){return this.fullCharCodeAt(this.pos)};$.skipBlockComment=function(){var t=this.options.onComment&&this.curPosition(),e=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(i===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(var r=void 0,s=e;(r=Xr(this.input,s,this.pos))>-1;)++this.curLine,s=this.lineStart=r;this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,i),e,this.pos,t,this.curPosition())};$.skipLineComment=function(t){for(var e=this.pos,i=this.options.onComment&&this.curPosition(),r=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!Dt(r);)r=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,i,this.curPosition())};$.skipSpace=function(){e:for(;this.pos<this.input.length;){var t=this.input.charCodeAt(this.pos);switch(t){case 32:case 160:++this.pos;break;case 13:this.input.charCodeAt(this.pos+1)===10&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(t>8&&t<14||t>=5760&&Qr.test(String.fromCharCode(t)))++this.pos;else break e}}};$.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=t,this.value=e,this.updateContext(i)};$.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&t===46&&e===46?(this.pos+=3,this.finishToken(d.ellipsis)):(++this.pos,this.finishToken(d.dot))};$.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):t===61?this.finishOp(d.assign,2):this.finishOp(d.slash,1)};$.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),i=1,r=t===42?d.star:d.modulo;return this.options.ecmaVersion>=7&&t===42&&e===42&&(++i,r=d.starstar,e=this.input.charCodeAt(this.pos+2)),e===61?this.finishOp(d.assign,i+1):this.finishOp(r,i)};$.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);if(e===t){if(this.options.ecmaVersion>=12){var i=this.input.charCodeAt(this.pos+2);if(i===61)return this.finishOp(d.assign,3)}return this.finishOp(t===124?d.logicalOR:d.logicalAND,2)}return e===61?this.finishOp(d.assign,2):this.finishOp(t===124?d.bitwiseOR:d.bitwiseAND,1)};$.readToken_caret=function(){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(d.assign,2):this.finishOp(d.bitwiseXOR,1)};$.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?e===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||ve.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(d.incDec,2):e===61?this.finishOp(d.assign,2):this.finishOp(d.plusMin,1)};$.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),i=1;return e===t?(i=t===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+i)===61?this.finishOp(d.assign,i+1):this.finishOp(d.bitShift,i)):e===33&&t===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(e===61&&(i=2),this.finishOp(d.relational,i))};$.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(d.equality,this.input.charCodeAt(this.pos+2)===61?3:2):t===61&&e===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(d.arrow)):this.finishOp(t===61?d.eq:d.prefix,1)};$.readToken_question=function(){var t=this.options.ecmaVersion;if(t>=11){var e=this.input.charCodeAt(this.pos+1);if(e===46){var i=this.input.charCodeAt(this.pos+2);if(i<48||i>57)return this.finishOp(d.questionDot,2)}if(e===63){if(t>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(d.assign,3)}return this.finishOp(d.coalesce,2)}}return this.finishOp(d.question,1)};$.readToken_numberSign=function(){var t=this.options.ecmaVersion,e=35;if(t>=13&&(++this.pos,e=this.fullCharCodeAtPos(),ze(e,!0)||e===92))return this.finishToken(d.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+Je(e)+"'")};$.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(d.parenL);case 41:return++this.pos,this.finishToken(d.parenR);case 59:return++this.pos,this.finishToken(d.semi);case 44:return++this.pos,this.finishToken(d.comma);case 91:return++this.pos,this.finishToken(d.bracketL);case 93:return++this.pos,this.finishToken(d.bracketR);case 123:return++this.pos,this.finishToken(d.braceL);case 125:return++this.pos,this.finishToken(d.braceR);case 58:return++this.pos,this.finishToken(d.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(d.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(e===120||e===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(e===111||e===79)return this.readRadixNumber(8);if(e===98||e===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 63:return this.readToken_question();case 126:return this.finishOp(d.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+Je(t)+"'")};$.finishOp=function(t,e){var i=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,i)};$.readRegexp=function(){for(var t,e,i=this.pos;;){this.pos>=this.input.length&&this.raise(i,"Unterminated regular expression");var r=this.input.charAt(this.pos);if(ve.test(r)&&this.raise(i,"Unterminated regular expression"),t)t=!1;else{if(r==="[")e=!0;else if(r==="]"&&e)e=!1;else if(r==="/"&&!e)break;t=r==="\\"}++this.pos}var s=this.input.slice(i,this.pos);++this.pos;var a=this.pos,n=this.readWord1();this.containsEsc&&this.unexpected(a);var o=this.regexpState||(this.regexpState=new He(this));o.reset(i,s,n),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var l=null;try{l=new RegExp(s,n)}catch{}return this.finishToken(d.regexp,{pattern:s,flags:n,value:l})};$.readInt=function(t,e,i){for(var r=this.options.ecmaVersion>=12&&e===void 0,s=i&&this.input.charCodeAt(this.pos)===48,a=this.pos,n=0,o=0,l=0,c=e??1/0;l<c;++l,++this.pos){var h=this.input.charCodeAt(this.pos),p=void 0;if(r&&h===95){s&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),o===95&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),l===0&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),o=h;continue}if(h>=97?p=h-97+10:h>=65?p=h-65+10:h>=48&&h<=57?p=h-48:p=1/0,p>=t)break;o=h,n=n*t+p}return r&&o===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===a||e!=null&&this.pos-a!==e?null:n};function zn(t,e){return e?parseInt(t,8):parseFloat(t.replace(/_/g,""))}function ks(t){return typeof BigInt!="function"?null:BigInt(t.replace(/_/g,""))}$.readRadixNumber=function(t){var e=this.pos;this.pos+=2;var i=this.readInt(t);return i==null&&this.raise(this.start+2,"Expected number in radix "+t),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(i=ks(this.input.slice(e,this.pos)),++this.pos):ze(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(d.num,i)};$.readNumber=function(t){var e=this.pos;!t&&this.readInt(10,void 0,!0)===null&&this.raise(e,"Invalid number");var i=this.pos-e>=2&&this.input.charCodeAt(e)===48;i&&this.strict&&this.raise(e,"Invalid number");var r=this.input.charCodeAt(this.pos);if(!i&&!t&&this.options.ecmaVersion>=11&&r===110){var s=ks(this.input.slice(e,this.pos));return++this.pos,ze(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(d.num,s)}i&&/[89]/.test(this.input.slice(e,this.pos))&&(i=!1),r===46&&!i&&(++this.pos,this.readInt(10),r=this.input.charCodeAt(this.pos)),(r===69||r===101)&&!i&&(r=this.input.charCodeAt(++this.pos),(r===43||r===45)&&++this.pos,this.readInt(10)===null&&this.raise(e,"Invalid number")),ze(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=zn(this.input.slice(e,this.pos),i);return this.finishToken(d.num,a)};$.readCodePoint=function(){var t=this.input.charCodeAt(this.pos),e;if(t===123){this.options.ecmaVersion<6&&this.unexpected();var i=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(i,"Code point out of bounds")}else e=this.readHexChar(4);return e};$.readString=function(t){for(var e="",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var r=this.input.charCodeAt(this.pos);if(r===t)break;r===92?(e+=this.input.slice(i,this.pos),e+=this.readEscapedChar(!1),i=this.pos):r===8232||r===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Dt(r)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(i,this.pos++),this.finishToken(d.string,e)};var As={};$.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t===As)this.readInvalidTemplateToken();else throw t}this.inTemplateElement=!1};$.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw As;this.raise(t,e)};$.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var i=this.input.charCodeAt(this.pos);if(i===96||i===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===d.template||this.type===d.invalidTemplate)?i===36?(this.pos+=2,this.finishToken(d.dollarBraceL)):(++this.pos,this.finishToken(d.backQuote)):(t+=this.input.slice(e,this.pos),this.finishToken(d.template,t));if(i===92)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(Dt(i)){switch(t+=this.input.slice(e,this.pos),++this.pos,i){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:t+=`
|
|
6
6
|
`;break;default:t+=String.fromCharCode(i);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}};$.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if(this.input[this.pos+1]!=="{")break;case"`":return this.finishToken(d.invalidTemplate,this.input.slice(this.start,this.pos));case"\r":this.input[this.pos+1]===`
|
|
7
7
|
`&&++this.pos;case`
|
|
8
8
|
`:case"\u2028":case"\u2029":++this.curLine,this.lineStart=this.pos+1;break}this.raise(this.start,"Unterminated template")};$.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos);switch(++this.pos,e){case 110:return`
|
|
9
|
-
`;case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Je(this.readCodePoint());case 116:return" ";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),t){var i=this.pos-1;this.invalidStringToken(i,"Invalid escape sequence in template string")}default:if(e>=48&&e<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],s=parseInt(r,8);return s>255&&(r=r.slice(0,-1),s=parseInt(r,8)),this.pos+=r.length-1,e=this.input.charCodeAt(this.pos),(r!=="0"||e===56||e===57)&&(this.strict||t)&&this.invalidStringToken(this.pos-1-r.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(s)}return Dt(e)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),""):String.fromCharCode(e)}};$.readHexChar=function(t){var e=this.pos,i=this.readInt(16,t);return i===null&&this.invalidStringToken(e,"Bad character escape sequence"),i};$.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,i=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var s=this.fullCharCodeAtPos();if(ct(s,r))this.pos+=s<=65535?1:2;else if(s===92){this.containsEsc=!0,t+=this.input.slice(i,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var n=this.readCodePoint();(e?ze:ct)(n,r)||this.invalidStringToken(a,"Invalid Unicode escape"),t+=Je(n),i=this.pos}else break;e=!1}return t+this.input.slice(i,this.pos)};$.readWord=function(){var t=this.readWord1(),e=d.name;return this.keywords.test(t)&&(e=qi[t]),this.finishToken(e,t)};var
|
|
9
|
+
`;case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Je(this.readCodePoint());case 116:return" ";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),t){var i=this.pos-1;this.invalidStringToken(i,"Invalid escape sequence in template string")}default:if(e>=48&&e<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],s=parseInt(r,8);return s>255&&(r=r.slice(0,-1),s=parseInt(r,8)),this.pos+=r.length-1,e=this.input.charCodeAt(this.pos),(r!=="0"||e===56||e===57)&&(this.strict||t)&&this.invalidStringToken(this.pos-1-r.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(s)}return Dt(e)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),""):String.fromCharCode(e)}};$.readHexChar=function(t){var e=this.pos,i=this.readInt(16,t);return i===null&&this.invalidStringToken(e,"Bad character escape sequence"),i};$.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,i=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var s=this.fullCharCodeAtPos();if(ct(s,r))this.pos+=s<=65535?1:2;else if(s===92){this.containsEsc=!0,t+=this.input.slice(i,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var n=this.readCodePoint();(e?ze:ct)(n,r)||this.invalidStringToken(a,"Invalid Unicode escape"),t+=Je(n),i=this.pos}else break;e=!1}return t+this.input.slice(i,this.pos)};$.readWord=function(){var t=this.readWord1(),e=d.name;return this.keywords.test(t)&&(e=qi[t]),this.finishToken(e,t)};var Hn="8.16.0";ie.acorn={Parser:ie,version:Hn,defaultOptions:Mi,Position:Ut,SourceLocation:di,getLineInfo:Jr,Node:xi,TokenType:U,tokTypes:d,keywordTypes:qi,TokContext:$e,tokContexts:G,isIdentifierChar:ct,isIdentifierStart:ze,Token:Xi,isNewLine:Dt,lineBreak:ve,lineBreakG:mn,nonASCIIwhitespace:Qr};function Ts(t,e){return ie.parse(t,e)}const{stringify:Gn}=JSON;if(!String.prototype.repeat)throw new Error("String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation");if(!String.prototype.endsWith)throw new Error("String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation");const Gt={"||":2,"??":3,"&&":4,"|":5,"^":6,"&":7,"==":8,"!=":8,"===":8,"!==":8,"<":9,">":9,"<=":9,">=":9,in:9,instanceof:9,"<<":10,">>":10,">>>":10,"+":11,"-":11,"*":12,"%":12,"/":12,"**":13},Be=17,Yn={ArrayExpression:20,TaggedTemplateExpression:20,ThisExpression:20,Identifier:20,PrivateIdentifier:20,Literal:18,TemplateLiteral:20,Super:20,SequenceExpression:20,MemberExpression:19,ChainExpression:19,CallExpression:19,NewExpression:19,ArrowFunctionExpression:Be,ClassExpression:Be,FunctionExpression:Be,ObjectExpression:Be,UpdateExpression:16,UnaryExpression:15,AwaitExpression:15,BinaryExpression:14,LogicalExpression:13,ConditionalExpression:4,AssignmentExpression:3,YieldExpression:2,RestElement:1};function wt(t,e){const{generator:i}=t;if(t.write("("),e!=null&&e.length>0){i[e[0].type](e[0],t);const{length:r}=e;for(let s=1;s<r;s++){const a=e[s];t.write(", "),i[a.type](a,t)}}t.write(")")}function Ps(t,e,i,r){const s=t.expressionsPrecedence[e.type];if(s===Be)return!0;const a=t.expressionsPrecedence[i.type];return s!==a?!r&&s===15&&a===14&&i.operator==="**"||s<a:s!==13&&s!==14?!1:e.operator==="**"&&i.operator==="**"?!r:s===13&&a===13&&(e.operator==="??"||i.operator==="??")?!0:r?Gt[e.operator]<=Gt[i.operator]:Gt[e.operator]<Gt[i.operator]}function Yt(t,e,i,r){const{generator:s}=t;Ps(t,e,i,r)?(t.write("("),s[e.type](e,t),t.write(")")):s[e.type](e,t)}function Xn(t,e,i,r){const s=e.split(`
|
|
10
10
|
`),a=s.length-1;if(t.write(s[0].trim()),a>0){t.write(r);for(let n=1;n<a;n++)t.write(i+s[n].trim()+r);t.write(i+s[a].trim())}}function fe(t,e,i,r){const{length:s}=e;for(let a=0;a<s;a++){const n=e[a];t.write(i),n.type[0]==="L"?t.write("// "+n.value.trim()+`
|
|
11
|
-
`,n):(t.write("/*"),Zn(t,n.value,i,r),t.write("*/"+r))}}function Jn(t){let e=t;for(;e!=null;){const{type:i}=e;if(i[0]==="C"&&i[1]==="a")return!0;if(i[0]==="M"&&i[1]==="e"&&i[2]==="m")e=e.object;else return!1}}function Ni(t,e){const{generator:i}=t,{declarations:r}=e;t.write(e.kind+" ");const{length:s}=r;if(s>0){i.VariableDeclarator(r[0],t);for(let a=1;a<s;a++)t.write(", "),i.VariableDeclarator(r[a],t)}}let ur,pr,fr,dr,mr,gr;const Qi={Program(t,e){const i=e.indent.repeat(e.indentLevel),{lineEnd:r,writeComments:s}=e;s&&t.comments!=null&&fe(e,t.comments,i,r);const a=t.body,{length:n}=a;for(let o=0;o<n;o++){const l=a[o];s&&l.comments!=null&&fe(e,l.comments,i,r),e.write(i),this[l.type](l,e),e.write(r)}s&&t.trailingComments!=null&&fe(e,t.trailingComments,i,r)},BlockStatement:gr=function(t,e){const i=e.indent.repeat(e.indentLevel++),{lineEnd:r,writeComments:s}=e,a=i+e.indent;e.write("{");const n=t.body;if(n!=null&&n.length>0){e.write(r),s&&t.comments!=null&&fe(e,t.comments,a,r);const{length:o}=n;for(let l=0;l<o;l++){const c=n[l];s&&c.comments!=null&&fe(e,c.comments,a,r),e.write(a),this[c.type](c,e),e.write(r)}e.write(i)}else s&&t.comments!=null&&(e.write(r),fe(e,t.comments,a,r),e.write(i));s&&t.trailingComments!=null&&fe(e,t.trailingComments,a,r),e.write("}"),e.indentLevel--},ClassBody:gr,StaticBlock(t,e){e.write("static "),this.BlockStatement(t,e)},EmptyStatement(t,e){e.write(";")},ExpressionStatement(t,e){const i=e.expressionsPrecedence[t.expression.type];i===Be||i===3&&t.expression.left.type[0]==="O"?(e.write("("),this[t.expression.type](t.expression,e),e.write(")")):this[t.expression.type](t.expression,e),e.write(";")},IfStatement(t,e){e.write("if ("),this[t.test.type](t.test,e),e.write(") "),this[t.consequent.type](t.consequent,e),t.alternate!=null&&(e.write(" else "),this[t.alternate.type](t.alternate,e))},LabeledStatement(t,e){this[t.label.type](t.label,e),e.write(": "),this[t.body.type](t.body,e)},BreakStatement(t,e){e.write("break"),t.label!=null&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},ContinueStatement(t,e){e.write("continue"),t.label!=null&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},WithStatement(t,e){e.write("with ("),this[t.object.type](t.object,e),e.write(") "),this[t.body.type](t.body,e)},SwitchStatement(t,e){const i=e.indent.repeat(e.indentLevel++),{lineEnd:r,writeComments:s}=e;e.indentLevel++;const a=i+e.indent,n=a+e.indent;e.write("switch ("),this[t.discriminant.type](t.discriminant,e),e.write(") {"+r);const{cases:o}=t,{length:l}=o;for(let c=0;c<l;c++){const h=o[c];s&&h.comments!=null&&fe(e,h.comments,a,r),h.test?(e.write(a+"case "),this[h.test.type](h.test,e),e.write(":"+r)):e.write(a+"default:"+r);const{consequent:p}=h,{length:u}=p;for(let f=0;f<u;f++){const m=p[f];s&&m.comments!=null&&fe(e,m.comments,n,r),e.write(n),this[m.type](m,e),e.write(r)}}e.indentLevel-=2,e.write(i+"}")},ReturnStatement(t,e){e.write("return"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e)),e.write(";")},ThrowStatement(t,e){e.write("throw "),this[t.argument.type](t.argument,e),e.write(";")},TryStatement(t,e){if(e.write("try "),this[t.block.type](t.block,e),t.handler){const{handler:i}=t;i.param==null?e.write(" catch "):(e.write(" catch ("),this[i.param.type](i.param,e),e.write(") ")),this[i.body.type](i.body,e)}t.finalizer&&(e.write(" finally "),this[t.finalizer.type](t.finalizer,e))},WhileStatement(t,e){e.write("while ("),this[t.test.type](t.test,e),e.write(") "),this[t.body.type](t.body,e)},DoWhileStatement(t,e){e.write("do "),this[t.body.type](t.body,e),e.write(" while ("),this[t.test.type](t.test,e),e.write(");")},ForStatement(t,e){if(e.write("for ("),t.init!=null){const{init:i}=t;i.type[0]==="V"?Ni(e,i):this[i.type](i,e)}e.write("; "),t.test&&this[t.test.type](t.test,e),e.write("; "),t.update&&this[t.update.type](t.update,e),e.write(") "),this[t.body.type](t.body,e)},ForInStatement:ur=function(t,e){e.write(`for ${t.await?"await ":""}(`);const{left:i}=t;i.type[0]==="V"?Ni(e,i):this[i.type](i,e),e.write(t.type[3]==="I"?" in ":" of "),this[t.right.type](t.right,e),e.write(") "),this[t.body.type](t.body,e)},ForOfStatement:ur,DebuggerStatement(t,e){e.write("debugger;",t)},FunctionDeclaration:pr=function(t,e){e.write((t.async?"async ":"")+(t.generator?"function* ":"function ")+(t.id?t.id.name:""),t),wt(e,t.params),e.write(" "),this[t.body.type](t.body,e)},FunctionExpression:pr,VariableDeclaration(t,e){Ni(e,t),e.write(";")},VariableDeclarator(t,e){this[t.id.type](t.id,e),t.init!=null&&(e.write(" = "),this[t.init.type](t.init,e))},ClassDeclaration(t,e){if(e.write("class "+(t.id?`${t.id.name} `:""),t),t.superClass){e.write("extends ");const{superClass:i}=t,{type:r}=i,s=e.expressionsPrecedence[r];(r[0]!=="C"||r[1]!=="l"||r[5]!=="E")&&(s===Be||s<e.expressionsPrecedence.ClassExpression)?(e.write("("),this[t.superClass.type](i,e),e.write(")")):this[i.type](i,e),e.write(" ")}this.ClassBody(t.body,e)},ImportDeclaration(t,e){e.write("import ");const{specifiers:i,attributes:r}=t,{length:s}=i;let a=0;if(s>0){for(;a<s;){a>0&&e.write(", ");const n=i[a],o=n.type[6];if(o==="D")e.write(n.local.name,n),a++;else if(o==="N")e.write("* as "+n.local.name,n),a++;else break}if(a<s){for(e.write("{");;){const n=i[a],{name:o}=n.imported;if(e.write(o,n),o!==n.local.name&&e.write(" as "+n.local.name),++a<s)e.write(", ");else break}e.write("}")}e.write(" from ")}if(this.Literal(t.source,e),r&&r.length>0){e.write(" with { ");for(let n=0;n<r.length;n++)this.ImportAttribute(r[n],e),n<r.length-1&&e.write(", ");e.write(" }")}e.write(";")},ImportAttribute(t,e){this.Identifier(t.key,e),e.write(": "),this.Literal(t.value,e)},ImportExpression(t,e){e.write("import("),this[t.source.type](t.source,e),e.write(")")},ExportDefaultDeclaration(t,e){e.write("export default "),this[t.declaration.type](t.declaration,e),e.expressionsPrecedence[t.declaration.type]!=null&&t.declaration.type[0]!=="F"&&e.write(";")},ExportNamedDeclaration(t,e){if(e.write("export "),t.declaration)this[t.declaration.type](t.declaration,e);else{e.write("{");const{specifiers:i}=t,{length:r}=i;if(r>0)for(let s=0;;){const a=i[s],{name:n}=a.local;if(e.write(n,a),n!==a.exported.name&&e.write(" as "+a.exported.name),++s<r)e.write(", ");else break}if(e.write("}"),t.source&&(e.write(" from "),this.Literal(t.source,e)),t.attributes&&t.attributes.length>0){e.write(" with { ");for(let s=0;s<t.attributes.length;s++)this.ImportAttribute(t.attributes[s],e),s<t.attributes.length-1&&e.write(", ");e.write(" }")}e.write(";")}},ExportAllDeclaration(t,e){if(t.exported!=null?e.write("export * as "+t.exported.name+" from "):e.write("export * from "),this.Literal(t.source,e),t.attributes&&t.attributes.length>0){e.write(" with { ");for(let i=0;i<t.attributes.length;i++)this.ImportAttribute(t.attributes[i],e),i<t.attributes.length-1&&e.write(", ");e.write(" }")}e.write(";")},MethodDefinition(t,e){t.static&&e.write("static ");const i=t.kind[0];(i==="g"||i==="s")&&e.write(t.kind+" "),t.value.async&&e.write("async "),t.value.generator&&e.write("*"),t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),wt(e,t.value.params),e.write(" "),this[t.value.body.type](t.value.body,e)},ClassExpression(t,e){this.ClassDeclaration(t,e)},ArrowFunctionExpression(t,e){e.write(t.async?"async ":"",t);const{params:i}=t;i!=null&&(i.length===1&&i[0].type[0]==="I"?e.write(i[0].name,i[0]):wt(e,t.params)),e.write(" => "),t.body.type[0]==="O"?(e.write("("),this.ObjectExpression(t.body,e),e.write(")")):this[t.body.type](t.body,e)},ThisExpression(t,e){e.write("this",t)},Super(t,e){e.write("super",t)},RestElement:fr=function(t,e){e.write("..."),this[t.argument.type](t.argument,e)},SpreadElement:fr,YieldExpression(t,e){e.write(t.delegate?"yield*":"yield"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e))},AwaitExpression(t,e){e.write("await ",t),Yt(e,t.argument,t)},TemplateLiteral(t,e){const{quasis:i,expressions:r}=t;e.write("`");const{length:s}=r;for(let n=0;n<s;n++){const o=r[n],l=i[n];e.write(l.value.raw,l),e.write("${"),this[o.type](o,e),e.write("}")}const a=i[i.length-1];e.write(a.value.raw,a),e.write("`")},TemplateElement(t,e){e.write(t.value.raw,t)},TaggedTemplateExpression(t,e){Yt(e,t.tag,t),this[t.quasi.type](t.quasi,e)},ArrayExpression:mr=function(t,e){if(e.write("["),t.elements.length>0){const{elements:i}=t,{length:r}=i;for(let s=0;;){const a=i[s];if(a!=null&&this[a.type](a,e),++s<r)e.write(", ");else{a==null&&e.write(", ");break}}}e.write("]")},ArrayPattern:mr,ObjectExpression(t,e){const i=e.indent.repeat(e.indentLevel++),{lineEnd:r,writeComments:s}=e,a=i+e.indent;if(e.write("{"),t.properties.length>0){e.write(r),s&&t.comments!=null&&fe(e,t.comments,a,r);const n=","+r,{properties:o}=t,{length:l}=o;for(let c=0;;){const h=o[c];if(s&&h.comments!=null&&fe(e,h.comments,a,r),e.write(a),this[h.type](h,e),++c<l)e.write(n);else break}e.write(r),s&&t.trailingComments!=null&&fe(e,t.trailingComments,a,r),e.write(i+"}")}else s?t.comments!=null?(e.write(r),fe(e,t.comments,a,r),t.trailingComments!=null&&fe(e,t.trailingComments,a,r),e.write(i+"}")):t.trailingComments!=null?(e.write(r),fe(e,t.trailingComments,a,r),e.write(i+"}")):e.write("}"):e.write("}");e.indentLevel--},Property(t,e){t.method||t.kind[0]!=="i"?this.MethodDefinition(t,e):(t.shorthand||(t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),e.write(": ")),this[t.value.type](t.value,e))},PropertyDefinition(t,e){if(t.static&&e.write("static "),t.computed&&e.write("["),this[t.key.type](t.key,e),t.computed&&e.write("]"),t.value==null){t.key.type[0]!=="F"&&e.write(";");return}e.write(" = "),this[t.value.type](t.value,e),e.write(";")},ObjectPattern(t,e){if(e.write("{"),t.properties.length>0){const{properties:i}=t,{length:r}=i;for(let s=0;this[i[s].type](i[s],e),++s<r;)e.write(", ")}e.write("}")},SequenceExpression(t,e){wt(e,t.expressions)},UnaryExpression(t,e){if(t.prefix){const{operator:i,argument:r,argument:{type:s}}=t;e.write(i);const a=Ms(e,r,t);!a&&(i.length>1||s[0]==="U"&&(s[1]==="n"||s[1]==="p")&&r.prefix&&r.operator[0]===i&&(i==="+"||i==="-"))&&e.write(" "),a?(e.write(i.length>1?" (":"("),this[s](r,e),e.write(")")):this[s](r,e)}else this[t.argument.type](t.argument,e),e.write(t.operator)},UpdateExpression(t,e){t.prefix?(e.write(t.operator),this[t.argument.type](t.argument,e)):(this[t.argument.type](t.argument,e),e.write(t.operator))},AssignmentExpression(t,e){this[t.left.type](t.left,e),e.write(" "+t.operator+" "),this[t.right.type](t.right,e)},AssignmentPattern(t,e){this[t.left.type](t.left,e),e.write(" = "),this[t.right.type](t.right,e)},BinaryExpression:dr=function(t,e){const i=t.operator==="in";i&&e.write("("),Yt(e,t.left,t,!1),e.write(" "+t.operator+" "),Yt(e,t.right,t,!0),i&&e.write(")")},LogicalExpression:dr,ConditionalExpression(t,e){const{test:i}=t,r=e.expressionsPrecedence[i.type];r===Be||r<=e.expressionsPrecedence.ConditionalExpression?(e.write("("),this[i.type](i,e),e.write(")")):this[i.type](i,e),e.write(" ? "),this[t.consequent.type](t.consequent,e),e.write(" : "),this[t.alternate.type](t.alternate,e)},NewExpression(t,e){e.write("new ");const i=e.expressionsPrecedence[t.callee.type];i===Be||i<e.expressionsPrecedence.CallExpression||Jn(t.callee)?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),wt(e,t.arguments)},CallExpression(t,e){const i=e.expressionsPrecedence[t.callee.type];i===Be||i<e.expressionsPrecedence.CallExpression?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),t.optional&&e.write("?."),wt(e,t.arguments)},ChainExpression(t,e){this[t.expression.type](t.expression,e)},MemberExpression(t,e){const i=e.expressionsPrecedence[t.object.type];i===Be||i<e.expressionsPrecedence.MemberExpression?(e.write("("),this[t.object.type](t.object,e),e.write(")")):this[t.object.type](t.object,e),t.computed?(t.optional&&e.write("?."),e.write("["),this[t.property.type](t.property,e),e.write("]")):(t.optional?e.write("?."):e.write("."),this[t.property.type](t.property,e))},MetaProperty(t,e){e.write(t.meta.name+"."+t.property.name,t)},Identifier(t,e){e.write(t.name,t)},PrivateIdentifier(t,e){e.write(`#${t.name}`,t)},Literal(t,e){t.raw!=null?e.write(t.raw,t):t.regex!=null?this.RegExpLiteral(t,e):t.bigint!=null?e.write(t.bigint+"n",t):e.write(Xn(t.value),t)},RegExpLiteral(t,e){const{regex:i}=t;e.write(`/${i.pattern}/${i.flags}`,t)}},ea={},ta=Qi;class ia{constructor(e){const i=e??ea;this.output="",i.output!=null?(this.output=i.output,this.write=this.writeToStream):this.output="",this.generator=i.generator!=null?i.generator:Qi,this.expressionsPrecedence=i.expressionsPrecedence!=null?i.expressionsPrecedence:Qn,this.indent=i.indent!=null?i.indent:" ",this.lineEnd=i.lineEnd!=null?i.lineEnd:`
|
|
11
|
+
`,n):(t.write("/*"),Xn(t,n.value,i,r),t.write("*/"+r))}}function Qn(t){let e=t;for(;e!=null;){const{type:i}=e;if(i[0]==="C"&&i[1]==="a")return!0;if(i[0]==="M"&&i[1]==="e"&&i[2]==="m")e=e.object;else return!1}}function Ni(t,e){const{generator:i}=t,{declarations:r}=e;t.write(e.kind+" ");const{length:s}=r;if(s>0){i.VariableDeclarator(r[0],t);for(let a=1;a<s;a++)t.write(", "),i.VariableDeclarator(r[a],t)}}let ur,pr,fr,dr,mr,gr;const Qi={Program(t,e){const i=e.indent.repeat(e.indentLevel),{lineEnd:r,writeComments:s}=e;s&&t.comments!=null&&fe(e,t.comments,i,r);const a=t.body,{length:n}=a;for(let o=0;o<n;o++){const l=a[o];s&&l.comments!=null&&fe(e,l.comments,i,r),e.write(i),this[l.type](l,e),e.write(r)}s&&t.trailingComments!=null&&fe(e,t.trailingComments,i,r)},BlockStatement:gr=function(t,e){const i=e.indent.repeat(e.indentLevel++),{lineEnd:r,writeComments:s}=e,a=i+e.indent;e.write("{");const n=t.body;if(n!=null&&n.length>0){e.write(r),s&&t.comments!=null&&fe(e,t.comments,a,r);const{length:o}=n;for(let l=0;l<o;l++){const c=n[l];s&&c.comments!=null&&fe(e,c.comments,a,r),e.write(a),this[c.type](c,e),e.write(r)}e.write(i)}else s&&t.comments!=null&&(e.write(r),fe(e,t.comments,a,r),e.write(i));s&&t.trailingComments!=null&&fe(e,t.trailingComments,a,r),e.write("}"),e.indentLevel--},ClassBody:gr,StaticBlock(t,e){e.write("static "),this.BlockStatement(t,e)},EmptyStatement(t,e){e.write(";")},ExpressionStatement(t,e){const i=e.expressionsPrecedence[t.expression.type];i===Be||i===3&&t.expression.left.type[0]==="O"?(e.write("("),this[t.expression.type](t.expression,e),e.write(")")):this[t.expression.type](t.expression,e),e.write(";")},IfStatement(t,e){e.write("if ("),this[t.test.type](t.test,e),e.write(") "),this[t.consequent.type](t.consequent,e),t.alternate!=null&&(e.write(" else "),this[t.alternate.type](t.alternate,e))},LabeledStatement(t,e){this[t.label.type](t.label,e),e.write(": "),this[t.body.type](t.body,e)},BreakStatement(t,e){e.write("break"),t.label!=null&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},ContinueStatement(t,e){e.write("continue"),t.label!=null&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},WithStatement(t,e){e.write("with ("),this[t.object.type](t.object,e),e.write(") "),this[t.body.type](t.body,e)},SwitchStatement(t,e){const i=e.indent.repeat(e.indentLevel++),{lineEnd:r,writeComments:s}=e;e.indentLevel++;const a=i+e.indent,n=a+e.indent;e.write("switch ("),this[t.discriminant.type](t.discriminant,e),e.write(") {"+r);const{cases:o}=t,{length:l}=o;for(let c=0;c<l;c++){const h=o[c];s&&h.comments!=null&&fe(e,h.comments,a,r),h.test?(e.write(a+"case "),this[h.test.type](h.test,e),e.write(":"+r)):e.write(a+"default:"+r);const{consequent:p}=h,{length:u}=p;for(let f=0;f<u;f++){const m=p[f];s&&m.comments!=null&&fe(e,m.comments,n,r),e.write(n),this[m.type](m,e),e.write(r)}}e.indentLevel-=2,e.write(i+"}")},ReturnStatement(t,e){e.write("return"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e)),e.write(";")},ThrowStatement(t,e){e.write("throw "),this[t.argument.type](t.argument,e),e.write(";")},TryStatement(t,e){if(e.write("try "),this[t.block.type](t.block,e),t.handler){const{handler:i}=t;i.param==null?e.write(" catch "):(e.write(" catch ("),this[i.param.type](i.param,e),e.write(") ")),this[i.body.type](i.body,e)}t.finalizer&&(e.write(" finally "),this[t.finalizer.type](t.finalizer,e))},WhileStatement(t,e){e.write("while ("),this[t.test.type](t.test,e),e.write(") "),this[t.body.type](t.body,e)},DoWhileStatement(t,e){e.write("do "),this[t.body.type](t.body,e),e.write(" while ("),this[t.test.type](t.test,e),e.write(");")},ForStatement(t,e){if(e.write("for ("),t.init!=null){const{init:i}=t;i.type[0]==="V"?Ni(e,i):this[i.type](i,e)}e.write("; "),t.test&&this[t.test.type](t.test,e),e.write("; "),t.update&&this[t.update.type](t.update,e),e.write(") "),this[t.body.type](t.body,e)},ForInStatement:ur=function(t,e){e.write(`for ${t.await?"await ":""}(`);const{left:i}=t;i.type[0]==="V"?Ni(e,i):this[i.type](i,e),e.write(t.type[3]==="I"?" in ":" of "),this[t.right.type](t.right,e),e.write(") "),this[t.body.type](t.body,e)},ForOfStatement:ur,DebuggerStatement(t,e){e.write("debugger;",t)},FunctionDeclaration:pr=function(t,e){e.write((t.async?"async ":"")+(t.generator?"function* ":"function ")+(t.id?t.id.name:""),t),wt(e,t.params),e.write(" "),this[t.body.type](t.body,e)},FunctionExpression:pr,VariableDeclaration(t,e){Ni(e,t),e.write(";")},VariableDeclarator(t,e){this[t.id.type](t.id,e),t.init!=null&&(e.write(" = "),this[t.init.type](t.init,e))},ClassDeclaration(t,e){if(e.write("class "+(t.id?`${t.id.name} `:""),t),t.superClass){e.write("extends ");const{superClass:i}=t,{type:r}=i,s=e.expressionsPrecedence[r];(r[0]!=="C"||r[1]!=="l"||r[5]!=="E")&&(s===Be||s<e.expressionsPrecedence.ClassExpression)?(e.write("("),this[t.superClass.type](i,e),e.write(")")):this[i.type](i,e),e.write(" ")}this.ClassBody(t.body,e)},ImportDeclaration(t,e){e.write("import ");const{specifiers:i,attributes:r}=t,{length:s}=i;let a=0;if(s>0){for(;a<s;){a>0&&e.write(", ");const n=i[a],o=n.type[6];if(o==="D")e.write(n.local.name,n),a++;else if(o==="N")e.write("* as "+n.local.name,n),a++;else break}if(a<s){for(e.write("{");;){const n=i[a],{name:o}=n.imported;if(e.write(o,n),o!==n.local.name&&e.write(" as "+n.local.name),++a<s)e.write(", ");else break}e.write("}")}e.write(" from ")}if(this.Literal(t.source,e),r&&r.length>0){e.write(" with { ");for(let n=0;n<r.length;n++)this.ImportAttribute(r[n],e),n<r.length-1&&e.write(", ");e.write(" }")}e.write(";")},ImportAttribute(t,e){this.Identifier(t.key,e),e.write(": "),this.Literal(t.value,e)},ImportExpression(t,e){e.write("import("),this[t.source.type](t.source,e),e.write(")")},ExportDefaultDeclaration(t,e){e.write("export default "),this[t.declaration.type](t.declaration,e),e.expressionsPrecedence[t.declaration.type]!=null&&t.declaration.type[0]!=="F"&&e.write(";")},ExportNamedDeclaration(t,e){if(e.write("export "),t.declaration)this[t.declaration.type](t.declaration,e);else{e.write("{");const{specifiers:i}=t,{length:r}=i;if(r>0)for(let s=0;;){const a=i[s],{name:n}=a.local;if(e.write(n,a),n!==a.exported.name&&e.write(" as "+a.exported.name),++s<r)e.write(", ");else break}if(e.write("}"),t.source&&(e.write(" from "),this.Literal(t.source,e)),t.attributes&&t.attributes.length>0){e.write(" with { ");for(let s=0;s<t.attributes.length;s++)this.ImportAttribute(t.attributes[s],e),s<t.attributes.length-1&&e.write(", ");e.write(" }")}e.write(";")}},ExportAllDeclaration(t,e){if(t.exported!=null?e.write("export * as "+t.exported.name+" from "):e.write("export * from "),this.Literal(t.source,e),t.attributes&&t.attributes.length>0){e.write(" with { ");for(let i=0;i<t.attributes.length;i++)this.ImportAttribute(t.attributes[i],e),i<t.attributes.length-1&&e.write(", ");e.write(" }")}e.write(";")},MethodDefinition(t,e){t.static&&e.write("static ");const i=t.kind[0];(i==="g"||i==="s")&&e.write(t.kind+" "),t.value.async&&e.write("async "),t.value.generator&&e.write("*"),t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),wt(e,t.value.params),e.write(" "),this[t.value.body.type](t.value.body,e)},ClassExpression(t,e){this.ClassDeclaration(t,e)},ArrowFunctionExpression(t,e){e.write(t.async?"async ":"",t);const{params:i}=t;i!=null&&(i.length===1&&i[0].type[0]==="I"?e.write(i[0].name,i[0]):wt(e,t.params)),e.write(" => "),t.body.type[0]==="O"?(e.write("("),this.ObjectExpression(t.body,e),e.write(")")):this[t.body.type](t.body,e)},ThisExpression(t,e){e.write("this",t)},Super(t,e){e.write("super",t)},RestElement:fr=function(t,e){e.write("..."),this[t.argument.type](t.argument,e)},SpreadElement:fr,YieldExpression(t,e){e.write(t.delegate?"yield*":"yield"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e))},AwaitExpression(t,e){e.write("await ",t),Yt(e,t.argument,t)},TemplateLiteral(t,e){const{quasis:i,expressions:r}=t;e.write("`");const{length:s}=r;for(let n=0;n<s;n++){const o=r[n],l=i[n];e.write(l.value.raw,l),e.write("${"),this[o.type](o,e),e.write("}")}const a=i[i.length-1];e.write(a.value.raw,a),e.write("`")},TemplateElement(t,e){e.write(t.value.raw,t)},TaggedTemplateExpression(t,e){Yt(e,t.tag,t),this[t.quasi.type](t.quasi,e)},ArrayExpression:mr=function(t,e){if(e.write("["),t.elements.length>0){const{elements:i}=t,{length:r}=i;for(let s=0;;){const a=i[s];if(a!=null&&this[a.type](a,e),++s<r)e.write(", ");else{a==null&&e.write(", ");break}}}e.write("]")},ArrayPattern:mr,ObjectExpression(t,e){const i=e.indent.repeat(e.indentLevel++),{lineEnd:r,writeComments:s}=e,a=i+e.indent;if(e.write("{"),t.properties.length>0){e.write(r),s&&t.comments!=null&&fe(e,t.comments,a,r);const n=","+r,{properties:o}=t,{length:l}=o;for(let c=0;;){const h=o[c];if(s&&h.comments!=null&&fe(e,h.comments,a,r),e.write(a),this[h.type](h,e),++c<l)e.write(n);else break}e.write(r),s&&t.trailingComments!=null&&fe(e,t.trailingComments,a,r),e.write(i+"}")}else s?t.comments!=null?(e.write(r),fe(e,t.comments,a,r),t.trailingComments!=null&&fe(e,t.trailingComments,a,r),e.write(i+"}")):t.trailingComments!=null?(e.write(r),fe(e,t.trailingComments,a,r),e.write(i+"}")):e.write("}"):e.write("}");e.indentLevel--},Property(t,e){t.method||t.kind[0]!=="i"?this.MethodDefinition(t,e):(t.shorthand||(t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),e.write(": ")),this[t.value.type](t.value,e))},PropertyDefinition(t,e){if(t.static&&e.write("static "),t.computed&&e.write("["),this[t.key.type](t.key,e),t.computed&&e.write("]"),t.value==null){t.key.type[0]!=="F"&&e.write(";");return}e.write(" = "),this[t.value.type](t.value,e),e.write(";")},ObjectPattern(t,e){if(e.write("{"),t.properties.length>0){const{properties:i}=t,{length:r}=i;for(let s=0;this[i[s].type](i[s],e),++s<r;)e.write(", ")}e.write("}")},SequenceExpression(t,e){wt(e,t.expressions)},UnaryExpression(t,e){if(t.prefix){const{operator:i,argument:r,argument:{type:s}}=t;e.write(i);const a=Ps(e,r,t);!a&&(i.length>1||s[0]==="U"&&(s[1]==="n"||s[1]==="p")&&r.prefix&&r.operator[0]===i&&(i==="+"||i==="-"))&&e.write(" "),a?(e.write(i.length>1?" (":"("),this[s](r,e),e.write(")")):this[s](r,e)}else this[t.argument.type](t.argument,e),e.write(t.operator)},UpdateExpression(t,e){t.prefix?(e.write(t.operator),this[t.argument.type](t.argument,e)):(this[t.argument.type](t.argument,e),e.write(t.operator))},AssignmentExpression(t,e){this[t.left.type](t.left,e),e.write(" "+t.operator+" "),this[t.right.type](t.right,e)},AssignmentPattern(t,e){this[t.left.type](t.left,e),e.write(" = "),this[t.right.type](t.right,e)},BinaryExpression:dr=function(t,e){const i=t.operator==="in";i&&e.write("("),Yt(e,t.left,t,!1),e.write(" "+t.operator+" "),Yt(e,t.right,t,!0),i&&e.write(")")},LogicalExpression:dr,ConditionalExpression(t,e){const{test:i}=t,r=e.expressionsPrecedence[i.type];r===Be||r<=e.expressionsPrecedence.ConditionalExpression?(e.write("("),this[i.type](i,e),e.write(")")):this[i.type](i,e),e.write(" ? "),this[t.consequent.type](t.consequent,e),e.write(" : "),this[t.alternate.type](t.alternate,e)},NewExpression(t,e){e.write("new ");const i=e.expressionsPrecedence[t.callee.type];i===Be||i<e.expressionsPrecedence.CallExpression||Qn(t.callee)?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),wt(e,t.arguments)},CallExpression(t,e){const i=e.expressionsPrecedence[t.callee.type];i===Be||i<e.expressionsPrecedence.CallExpression?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),t.optional&&e.write("?."),wt(e,t.arguments)},ChainExpression(t,e){this[t.expression.type](t.expression,e)},MemberExpression(t,e){const i=e.expressionsPrecedence[t.object.type];i===Be||i<e.expressionsPrecedence.MemberExpression?(e.write("("),this[t.object.type](t.object,e),e.write(")")):this[t.object.type](t.object,e),t.computed?(t.optional&&e.write("?."),e.write("["),this[t.property.type](t.property,e),e.write("]")):(t.optional?e.write("?."):e.write("."),this[t.property.type](t.property,e))},MetaProperty(t,e){e.write(t.meta.name+"."+t.property.name,t)},Identifier(t,e){e.write(t.name,t)},PrivateIdentifier(t,e){e.write(`#${t.name}`,t)},Literal(t,e){t.raw!=null?e.write(t.raw,t):t.regex!=null?this.RegExpLiteral(t,e):t.bigint!=null?e.write(t.bigint+"n",t):e.write(Gn(t.value),t)},RegExpLiteral(t,e){const{regex:i}=t;e.write(`/${i.pattern}/${i.flags}`,t)}},Zn={},Jn=Qi;class ea{constructor(e){const i=e??Zn;this.output="",i.output!=null?(this.output=i.output,this.write=this.writeToStream):this.output="",this.generator=i.generator!=null?i.generator:Qi,this.expressionsPrecedence=i.expressionsPrecedence!=null?i.expressionsPrecedence:Yn,this.indent=i.indent!=null?i.indent:" ",this.lineEnd=i.lineEnd!=null?i.lineEnd:`
|
|
12
12
|
`,this.indentLevel=i.startingIndentLevel!=null?i.startingIndentLevel:0,this.writeComments=i.comments?i.comments:!1,i.sourceMap!=null&&(this.write=i.output==null?this.writeAndMap:this.writeToStreamAndMap,this.sourceMap=i.sourceMap,this.line=1,this.column=0,this.lineEndSize=this.lineEnd.split(`
|
|
13
13
|
`).length-1,this.mapping={original:null,generated:this,name:void 0,source:i.sourceMap.file||i.sourceMap._file})}write(e){this.output+=e}writeToStream(e){this.output.write(e)}writeAndMap(e,i){this.output+=e,this.map(e,i)}writeToStreamAndMap(e,i){this.output.write(e),this.map(e,i)}map(e,i){if(i!=null){const{type:a}=i;if(a[0]==="L"&&a[2]==="n"){this.column=0,this.line++;return}if(i.loc!=null){const{mapping:n}=this;n.original=i.loc.start,n.name=i.name,this.sourceMap.addMapping(n)}if(a[0]==="T"&&a[8]==="E"||a[0]==="L"&&a[1]==="i"&&typeof i.value=="string"){const{length:n}=e;let{column:o,line:l}=this;for(let c=0;c<n;c++)e[c]===`
|
|
14
|
-
`?(o=0,l++):o++;this.column=o,this.line=l;return}}const{length:r}=e,{lineEnd:s}=this;r>0&&(this.lineEndSize>0&&(s.length===1?e[r-1]===s:e.endsWith(s))?(this.line+=this.lineEndSize,this.column=0):this.column+=r)}toString(){return this.output}}function Rs(t,e){const i=new ia(e);return i.generator[t.type](t,i),i.output}var ra=Object.defineProperty,sa=(t,e,i)=>e in t?ra(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Y=(t,e,i)=>sa(t,typeof e!="symbol"?e+"":e,i);const na=new Set(["Infinity","NaN","undefined","null","true","false"]),aa=new Set(["Math","Array","Object","String","Number","Boolean","Date","RegExp","Error","JSON","Promise","Set","Map","WeakSet","WeakMap","Symbol","BigInt","Proxy","Reflect","console","isNaN","isFinite","parseInt","parseFloat","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent"]);class oa{constructor(){Y(this,"scopes",[]),Y(this,"scopeTypes",[]),Y(this,"scopeCounts",new Map),Y(this,"contextBoundVars",new Set),Y(this,"arrayPatternElements",new Set),Y(this,"rootParams",new Set),Y(this,"localSeriesVars",new Set),Y(this,"varKinds",new Map),Y(this,"loopVars",new Set),Y(this,"loopVarNames",new Map),Y(this,"paramIdCounter",0),Y(this,"cacheIdCounter",0),Y(this,"tempVarCounter",0),Y(this,"taCallIdCounter",0),Y(this,"userCallIdCounter",0),Y(this,"plotCallIdCounter",0),Y(this,"alertCallIdCounter",0),Y(this,"loopGuardCounter",0),Y(this,"hoistingStack",[]),Y(this,"suppressHoisting",!1),Y(this,"reservedNames",new Set),Y(this,"userFunctions",new Set),Y(this,"userMethods",new Set),this.pushScope("glb")}get nextParamIdArg(){return{type:"Identifier",name:`'p${this.paramIdCounter++}'`}}get nextCacheIdArg(){return{type:"Identifier",name:`'cache_${this.cacheIdCounter++}'`}}getNextTACallId(){return{type:"Literal",value:`_ta${this.taCallIdCounter++}`}}getNextUserCallId(){return{type:"Literal",value:`_fn${this.userCallIdCounter++}`}}getNextPlotCallId(){return{type:"Literal",value:`#${this.plotCallIdCounter++}`}}getNextAlertCallId(){return{type:"Literal",value:`alert_${this.alertCallIdCounter++}`}}getNextLoopGuardName(){return`__lg${this.loopGuardCounter++}`}pushScope(e){this.scopes.push(new Map),this.scopeTypes.push(e),this.scopeCounts.set(e,(this.scopeCounts.get(e)||0)+1)}popScope(){this.scopes.pop(),this.scopeTypes.pop()}getCurrentScopeType(){return this.scopeTypes[this.scopeTypes.length-1]}getCurrentScopeCount(){return this.scopeCounts.get(this.getCurrentScopeType())||1}addLocalSeriesVar(e){this.localSeriesVars.add(e)}removeLocalSeriesVar(e){this.localSeriesVars.delete(e)}isLocalSeriesVar(e){return this.localSeriesVars.has(e)}addContextBoundVar(e,i=!1){this.contextBoundVars.add(e),i&&this.rootParams.add(e)}removeContextBoundVar(e){this.contextBoundVars.has(e)&&(this.contextBoundVars.delete(e),this.rootParams.has(e)&&this.rootParams.delete(e))}addArrayPatternElement(e){this.arrayPatternElements.add(e)}isContextBound(e){return na.has(e)||aa.has(e)?!1:this.contextBoundVars.has(e)}isArrayPatternElement(e){return this.arrayPatternElements.has(e)}isRootParam(e){return this.rootParams.has(e)}addLoopVariable(e,i){this.loopVars.add(e),this.loopVarNames.set(e,i)}removeLoopVariable(e){this.loopVars.delete(e),this.loopVarNames.delete(e)}getLoopVariableName(e){return this.loopVarNames.get(e)}isLoopVariable(e){return this.loopVars.has(e)}addReservedName(e){this.reservedNames.add(e)}addUserFunction(e){this.userFunctions.add(e)}isUserFunction(e){return this.userFunctions.has(e)}addUserMethod(e){this.userMethods.add(e)}isUserMethod(e){return this.userMethods.has(e)}addVariable(e,i){if(this.isContextBound(e))return e;const r=this.scopes[this.scopes.length-1],s=this.scopeTypes[this.scopeTypes.length-1],a=this.scopeCounts.get(s)||1,n=`${s}${a}_${e}`;return r.set(e,n),this.varKinds.set(n,i),n}getVariable(e){if(this.loopVars.has(e)){const i=this.loopVarNames.get(e);if(i)return[i,"let"]}if(this.isContextBound(e))return[e,"let"];for(let i=this.scopes.length-1;i>=0;i--){const r=this.scopes[i];if(r.has(e)){const s=r.get(e),a=this.varKinds.get(s)||"let";return[s,a]}}return[e,"let"]}isVariableInFunctionScope(e){for(let i=this.scopes.length-1;i>=0;i--)if(this.scopes[i].has(e)){for(let r=0;r<=i;r++)if(this.scopeTypes[r]==="fn")return!0;return!1}return!1}generateTempVar(){return`temp_${++this.tempVarCounter}`}enterHoistingScope(){this.hoistingStack.push([])}exitHoistingScope(){return this.hoistingStack.pop()||[]}addHoistedStatement(e){this.hoistingStack.length>0&&!this.suppressHoisting&&this.hoistingStack[this.hoistingStack.length-1].push(e)}addOuterHoistedStatement(e){if(this.hoistingStack.length>0&&!this.suppressHoisting){const i=Math.min(1,this.hoistingStack.length-1);this.hoistingStack[i].push(e)}}getCurrentHoistingScope(){return this.hoistingStack.length===0?null:this.hoistingStack[this.hoistingStack.length-1]}setSuppressHoisting(e){this.suppressHoisting=e}shouldSuppressHoisting(){return this.suppressHoisting}hasVariableInScope(e){if(this.reservedNames.has(e))return!0;for(let i=this.scopes.length-1;i>=0;i--)if(this.scopes[i].has(e))return!0;return!!(this.contextBoundVars.has(e)||this.loopVars.has(e)||this.localSeriesVars.has(e))}generateParamId(){let e=`p${this.paramIdCounter++}`;for(;this.hasVariableInScope(e);)e=`p${this.paramIdCounter++}`;const i=this.scopes[this.scopes.length-1];return i&&i.set(e,e),e}}function ot(t,e,i,r,s){i||(i=N),(function a(n,o,l){var c=l||n.type;Os(i,c,n,o,a),e[c]&&e[c](n,o)})(t,r,s)}function la(t,e,i,r,s){var a=[];i||(i=N),(function n(o,l,c){var h=c||o.type,p=o!==a[a.length-1];p&&a.push(o),Os(i,h,o,l,n),e[h]&&e[h](o,l||a,a),p&&a.pop()})(t,r,s)}function te(t,e,i,r,s){var a=i?ca(i,r||void 0):r;(function n(o,l,c){a[c||o.type](o,l,n)})(t,e,s)}function ca(t,e){var i=Object.create(e||N);for(var r in t)i[r]=t[r];return i}function Zi(t,e,i){i(t,e)}function xt(t,e,i){}function Os(t,e,i,r,s){if(t[e]==null)throw new Error("No walker function defined for node type "+e);t[e](i,r,s)}var N={};N.Program=N.BlockStatement=N.StaticBlock=function(t,e,i){for(var r=0,s=t.body;r<s.length;r+=1){var a=s[r];i(a,e,"Statement")}};N.Statement=Zi;N.EmptyStatement=xt;N.ExpressionStatement=N.ParenthesizedExpression=N.ChainExpression=function(t,e,i){return i(t.expression,e,"Expression")};N.IfStatement=function(t,e,i){i(t.test,e,"Expression"),i(t.consequent,e,"Statement"),t.alternate&&i(t.alternate,e,"Statement")};N.LabeledStatement=function(t,e,i){return i(t.body,e,"Statement")};N.BreakStatement=N.ContinueStatement=xt;N.WithStatement=function(t,e,i){i(t.object,e,"Expression"),i(t.body,e,"Statement")};N.SwitchStatement=function(t,e,i){i(t.discriminant,e,"Expression");for(var r=0,s=t.cases;r<s.length;r+=1){var a=s[r];i(a,e)}};N.SwitchCase=function(t,e,i){t.test&&i(t.test,e,"Expression");for(var r=0,s=t.consequent;r<s.length;r+=1){var a=s[r];i(a,e,"Statement")}};N.ReturnStatement=N.YieldExpression=N.AwaitExpression=function(t,e,i){t.argument&&i(t.argument,e,"Expression")};N.ThrowStatement=N.SpreadElement=function(t,e,i){return i(t.argument,e,"Expression")};N.TryStatement=function(t,e,i){i(t.block,e,"Statement"),t.handler&&i(t.handler,e),t.finalizer&&i(t.finalizer,e,"Statement")};N.CatchClause=function(t,e,i){t.param&&i(t.param,e,"Pattern"),i(t.body,e,"Statement")};N.WhileStatement=N.DoWhileStatement=function(t,e,i){i(t.test,e,"Expression"),i(t.body,e,"Statement")};N.ForStatement=function(t,e,i){t.init&&i(t.init,e,"ForInit"),t.test&&i(t.test,e,"Expression"),t.update&&i(t.update,e,"Expression"),i(t.body,e,"Statement")};N.ForInStatement=N.ForOfStatement=function(t,e,i){i(t.left,e,"ForInit"),i(t.right,e,"Expression"),i(t.body,e,"Statement")};N.ForInit=function(t,e,i){t.type==="VariableDeclaration"?i(t,e):i(t,e,"Expression")};N.DebuggerStatement=xt;N.FunctionDeclaration=function(t,e,i){return i(t,e,"Function")};N.VariableDeclaration=function(t,e,i){for(var r=0,s=t.declarations;r<s.length;r+=1){var a=s[r];i(a,e)}};N.VariableDeclarator=function(t,e,i){i(t.id,e,"Pattern"),t.init&&i(t.init,e,"Expression")};N.Function=function(t,e,i){t.id&&i(t.id,e,"Pattern");for(var r=0,s=t.params;r<s.length;r+=1){var a=s[r];i(a,e,"Pattern")}i(t.body,e,t.expression?"Expression":"Statement")};N.Pattern=function(t,e,i){t.type==="Identifier"?i(t,e,"VariablePattern"):t.type==="MemberExpression"?i(t,e,"MemberPattern"):i(t,e)};N.VariablePattern=xt;N.MemberPattern=Zi;N.RestElement=function(t,e,i){return i(t.argument,e,"Pattern")};N.ArrayPattern=function(t,e,i){for(var r=0,s=t.elements;r<s.length;r+=1){var a=s[r];a&&i(a,e,"Pattern")}};N.ObjectPattern=function(t,e,i){for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];a.type==="Property"?(a.computed&&i(a.key,e,"Expression"),i(a.value,e,"Pattern")):a.type==="RestElement"&&i(a.argument,e,"Pattern")}};N.Expression=Zi;N.ThisExpression=N.Super=N.MetaProperty=xt;N.ArrayExpression=function(t,e,i){for(var r=0,s=t.elements;r<s.length;r+=1){var a=s[r];a&&i(a,e,"Expression")}};N.ObjectExpression=function(t,e,i){for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];i(a,e)}};N.FunctionExpression=N.ArrowFunctionExpression=N.FunctionDeclaration;N.SequenceExpression=function(t,e,i){for(var r=0,s=t.expressions;r<s.length;r+=1){var a=s[r];i(a,e,"Expression")}};N.TemplateLiteral=function(t,e,i){for(var r=0,s=t.quasis;r<s.length;r+=1){var a=s[r];i(a,e)}for(var n=0,o=t.expressions;n<o.length;n+=1){var l=o[n];i(l,e,"Expression")}};N.TemplateElement=xt;N.UnaryExpression=N.UpdateExpression=function(t,e,i){i(t.argument,e,"Expression")};N.BinaryExpression=N.LogicalExpression=function(t,e,i){i(t.left,e,"Expression"),i(t.right,e,"Expression")};N.AssignmentExpression=N.AssignmentPattern=function(t,e,i){i(t.left,e,"Pattern"),i(t.right,e,"Expression")};N.ConditionalExpression=function(t,e,i){i(t.test,e,"Expression"),i(t.consequent,e,"Expression"),i(t.alternate,e,"Expression")};N.NewExpression=N.CallExpression=function(t,e,i){if(i(t.callee,e,"Expression"),t.arguments)for(var r=0,s=t.arguments;r<s.length;r+=1){var a=s[r];i(a,e,"Expression")}};N.MemberExpression=function(t,e,i){i(t.object,e,"Expression"),t.computed&&i(t.property,e,"Expression")};N.ExportNamedDeclaration=N.ExportDefaultDeclaration=function(t,e,i){if(t.declaration&&i(t.declaration,e,t.type==="ExportNamedDeclaration"||t.declaration.id?"Statement":"Expression"),t.source&&i(t.source,e,"Expression"),t.attributes)for(var r=0,s=t.attributes;r<s.length;r+=1){var a=s[r];i(a,e)}};N.ExportAllDeclaration=function(t,e,i){if(t.exported&&i(t.exported,e),i(t.source,e,"Expression"),t.attributes)for(var r=0,s=t.attributes;r<s.length;r+=1){var a=s[r];i(a,e)}};N.ImportAttribute=function(t,e,i){i(t.value,e,"Expression")};N.ImportDeclaration=function(t,e,i){for(var r=0,s=t.specifiers;r<s.length;r+=1){var a=s[r];i(a,e)}if(i(t.source,e,"Expression"),t.attributes)for(var n=0,o=t.attributes;n<o.length;n+=1){var l=o[n];i(l,e)}};N.ImportExpression=function(t,e,i){i(t.source,e,"Expression"),t.options&&i(t.options,e,"Expression")};N.ImportSpecifier=N.ImportDefaultSpecifier=N.ImportNamespaceSpecifier=N.Identifier=N.PrivateIdentifier=N.Literal=xt;N.TaggedTemplateExpression=function(t,e,i){i(t.tag,e,"Expression"),i(t.quasi,e,"Expression")};N.ClassDeclaration=N.ClassExpression=function(t,e,i){return i(t,e,"Class")};N.Class=function(t,e,i){t.id&&i(t.id,e,"Pattern"),t.superClass&&i(t.superClass,e,"Expression"),i(t.body,e)};N.ClassBody=function(t,e,i){for(var r=0,s=t.body;r<s.length;r+=1){var a=s[r];i(a,e)}};N.MethodDefinition=N.PropertyDefinition=N.Property=function(t,e,i){t.computed&&i(t.key,e,"Expression"),t.value&&i(t.value,e,"Expression")};const Z="$",S={createIdentifier(t){return{type:"Identifier",name:t}},createLiteral(t){return{type:"Literal",value:t}},createMemberExpression(t,e,i=!1){return{type:"MemberExpression",object:t,property:e,computed:i}},createContextIdentifier(){return this.createIdentifier("$")},createLocalContextIdentifier(){return this.createIdentifier("$$")},createContextVariableReference(t,e){const i=this.createContextIdentifier(),r=this.createIdentifier(t),s=this.createIdentifier(e);return this.createMemberExpression(this.createMemberExpression(i,r,!1),s,!1)},createLocalContextVariableReference(t,e){const i=this.createLocalContextIdentifier(),r=this.createIdentifier(t),s=this.createIdentifier(e);return this.createMemberExpression(this.createMemberExpression(i,r,!1),s,!1)},createDynamicContextVariableReference(t,e){const i=this.createContextIdentifier(),r=this.createIdentifier(t);return this.createMemberExpression(this.createMemberExpression(i,r,!1),e,!0)},createContextVariableAccess0(t,e){const i=this.createContextVariableReference(t,e);return this.createGetCall(i,0)},createDynamicContextVariableAccess0(t,e){const i=this.createDynamicContextVariableReference(t,e);return this.createGetCall(i,0)},createArrayAccess(t,e){const i=typeof e=="number"?this.createLiteral(e):e;return this.createMemberExpression(t,i,!0)},createCallExpression(t,e){return{type:"CallExpression",callee:t,arguments:e}},createAssignmentExpression(t,e,i="="){return{type:"AssignmentExpression",operator:i,left:t,right:e}},createExpressionStatement(t){return{type:"ExpressionStatement",expression:t}},createInitCall(t,e,i){const r=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("init"),!1),s=[t,e];return i&&s.push(i),this.createCallExpression(r,s)},createInitVarCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("initVar"),!1),r=[t,e];return this.createCallExpression(i,r)},createGetCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("get"),!1),r=typeof e=="number"?this.createLiteral(e):e;return this.createCallExpression(i,[t,r])},createSetCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("set"),!1);return this.createCallExpression(i,[t,e])},createMathEqCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("pine"),!1),r=this.createMemberExpression(i,this.createIdentifier("math"),!1),s=this.createMemberExpression(r,this.createIdentifier("__eq"),!1);return this.createCallExpression(s,[t,e])},createMathNeqCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("pine"),!1),r=this.createMemberExpression(i,this.createIdentifier("math"),!1),s=this.createMemberExpression(r,this.createIdentifier("__neq"),!1);return this.createCallExpression(s,[t,e])},createWrapperFunction(t){return{type:"FunctionDeclaration",id:null,params:[this.createIdentifier("context")],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:t}]}}},createVariableDeclaration(t,e){return{type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:this.createIdentifier(t),init:e}]}},createAwaitExpression(t){return{type:"AwaitExpression",argument:t}}},_t=["ta","math","request","array","input","color"],it=["hline","plot","fill","label","line","na","alert","time","time_close","dayofmonth","dayofweek","hour","minute","month","second","weekofyear","year"],ha=["request.security","request.security_lower_tf"],ua=["line.new","line.copy","label.new","label.copy","polyline.new","box.new","box.copy","table.new","linefill.new"],Ci=new Set([..._t,"fill","plot","hline","label","line","size","extend","display","format","location","shape","text","xloc","yloc","linefill","polyline","box","table","map","matrix","chart","alert","barstate","syminfo","timeframe","strategy","log","str"]),Vs=["open","high","low","close","volume","hl2","hlc3","ohlc4","hlcc4","openTime","closeTime"],Ji=[..._t,"plotchar","plotshape","plotarrow","plotbar","plotcandle","plot","bgcolor","barcolor","hline","fill","indicator","strategy","library","alertcondition","alert","error","max_bars_back","fixnan","na","nz","timestamp","str","box","line","label","table","chart","linefill","polyline","map","matrix","log","Type","bool","int","float","string","timeframe","syminfo","barstate","bar_index","last_bar_index","last_bar_time","inputs","time","time_close","time_tradingday","dayofmonth","hour","minute","month","second","weekofyear","year","order","currency","display","shape","location","size","format","dayofweek","xloc","yloc","text","font","extend","position","barmerge","adjustment","backadjustment","earnings","dividends","splits"],pa=["na","nz","plot","plotchar","color","hline","fill"];function fa(t){let e=null,i=Z;if(t.type==="Program"&&t.body.length>0){const f=t.body[0];if(f.type==="ExpressionStatement"&&(f.expression.type==="ArrowFunctionExpression"||f.expression.type==="FunctionExpression")){const m=f.expression;m.body.type==="BlockStatement"&&(e=m.body.body,m.params.length>0&&m.params[0].type==="Identifier"&&(i=m.params[0].name))}}if(!e)return;const r=new Set,s=new Set,a=f=>{f.type==="Identifier"?r.add(f.name):f.type==="ObjectPattern"?f.properties.forEach(m=>a(m.value)):f.type==="ArrayPattern"&&f.elements.forEach(m=>{m&&a(m)})};te(t,{},{VariableDeclarator(f,m,x){a(f.id),f.init&&x(f.init,m)},FunctionDeclaration(f,m,x){a(f.id),x(f.body,m)},Identifier(f,m,x){s.add(f.name)},MemberExpression(f,m,x){x(f.object,m),f.computed&&x(f.property,m)},Property(f,m,x){f.computed&&x(f.key,m),x(f.value,m)}}),e.forEach(f=>{f.type==="VariableDeclaration"?f.declarations.forEach(m=>a(m.id)):f.type==="FunctionDeclaration"&&a(f.id)});const n=Vs,o=Ji,l=n.filter(f=>!r.has(f)),c=o.filter(f=>!r.has(f)),h=l.filter(f=>s.has(f)),p=c.filter(f=>s.has(f)),u=[];h.length>0&&u.push({type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:{type:"ObjectPattern",properties:h.map(f=>({type:"Property",key:{type:"Identifier",name:f},value:{type:"Identifier",name:f},kind:"init",shorthand:!0}))},init:{type:"MemberExpression",object:{type:"Identifier",name:i},property:{type:"Identifier",name:"data"},computed:!1}}]}),p.length>0&&u.push({type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:{type:"ObjectPattern",properties:p.map(f=>({type:"Property",key:{type:"Identifier",name:f},value:{type:"Identifier",name:f},kind:"init",shorthand:!0}))},init:{type:"MemberExpression",object:{type:"Identifier",name:i},property:{type:"Identifier",name:"pine"},computed:!1}}]}),u.length>0&&e.unshift(...u)}function da(t){let e=null,i=Z;if(t.type==="Program"&&t.body.length>0){const o=t.body[0];if(o.type==="ExpressionStatement"&&(o.expression.type==="ArrowFunctionExpression"||o.expression.type==="FunctionExpression")){const l=o.expression;l.body.type==="BlockStatement"&&(e=l.body.body,l.params.length>0&&l.params[0].type==="Identifier"&&(i=l.params[0].name))}}if(!e)return;const r=new Set(Vs),s=new Set(Ji),a=new Set(pa),n=new Map;e.forEach(o=>{o.type==="VariableDeclaration"&&o.declarations.forEach(l=>{if(l.init&&l.init.type==="MemberExpression"&&l.init.object.type==="Identifier"&&l.init.object.name===i&&l.init.property.type==="Identifier"){const c=l.init.property.name;let h=null;if(c==="data"?h=r:c==="pine"?h=s:c==="core"&&(h=a),h&&l.id.type==="ObjectPattern")l.id.properties.forEach(p=>{if(p.type==="Property"&&p.key.type==="Identifier"&&p.value.type==="Identifier"){const u=p.key.name,f=p.value.name;h.has(u)&&u!==f&&(n.set(f,u),p.value.name=u,p.shorthand=!0)}});else if(l.id.type==="Identifier"&&_t.includes(c)){const p=c,u=l.id.name;p!==u&&(n.set(u,p),l.id.name=p)}}})}),n.size>0&&te(t,{},{Identifier(o){n.has(o.name)&&(o.name=n.get(o.name))},MemberExpression(o,l,c){c(o.object,l),o.computed&&c(o.property,l)},Property(o,l,c){o.computed&&c(o.key,l),c(o.value,l)}})}function ma(t){try{const e=Ds(t,{ecmaVersion:"latest",sourceType:"module"});if(e.type==="Program"&&e.body.length===1){const i=e.body[0];if(i.type==="ExpressionStatement"){const r=i.expression;if(r.type==="ArrowFunctionExpression"||r.type==="FunctionExpression")return{isWrapped:!0,isAsync:r.async||!1,functionNode:r}}if(i.type==="FunctionDeclaration")return{isWrapped:!0,isAsync:i.async||!1,functionNode:i}}return{isWrapped:!1,isAsync:!1}}catch{return{isWrapped:!1,isAsync:!1}}}function ga(t){return t.async=!0,Rs(t)}function ya(t){t=t.trim();const{isWrapped:e,isAsync:i,functionNode:r}=ma(t);return e&&r?i?t:ga(r):`async (context) => {
|
|
14
|
+
`?(o=0,l++):o++;this.column=o,this.line=l;return}}const{length:r}=e,{lineEnd:s}=this;r>0&&(this.lineEndSize>0&&(s.length===1?e[r-1]===s:e.endsWith(s))?(this.line+=this.lineEndSize,this.column=0):this.column+=r)}toString(){return this.output}}function Ds(t,e){const i=new ea(e);return i.generator[t.type](t,i),i.output}var ta=Object.defineProperty,ia=(t,e,i)=>e in t?ta(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Y=(t,e,i)=>ia(t,typeof e!="symbol"?e+"":e,i);const ra=new Set(["Infinity","NaN","undefined","null","true","false"]),sa=new Set(["Math","Array","Object","String","Number","Boolean","Date","RegExp","Error","JSON","Promise","Set","Map","WeakSet","WeakMap","Symbol","BigInt","Proxy","Reflect","console","isNaN","isFinite","parseInt","parseFloat","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent"]);class na{constructor(){Y(this,"scopes",[]),Y(this,"scopeTypes",[]),Y(this,"scopeCounts",new Map),Y(this,"contextBoundVars",new Set),Y(this,"arrayPatternElements",new Set),Y(this,"rootParams",new Set),Y(this,"localSeriesVars",new Set),Y(this,"varKinds",new Map),Y(this,"loopVars",new Set),Y(this,"loopVarNames",new Map),Y(this,"paramIdCounter",0),Y(this,"cacheIdCounter",0),Y(this,"tempVarCounter",0),Y(this,"taCallIdCounter",0),Y(this,"userCallIdCounter",0),Y(this,"plotCallIdCounter",0),Y(this,"alertCallIdCounter",0),Y(this,"loopGuardCounter",0),Y(this,"hoistingStack",[]),Y(this,"suppressHoisting",!1),Y(this,"reservedNames",new Set),Y(this,"userFunctions",new Set),Y(this,"userMethods",new Set),this.pushScope("glb")}get nextParamIdArg(){return{type:"Identifier",name:`'p${this.paramIdCounter++}'`}}get nextCacheIdArg(){return{type:"Identifier",name:`'cache_${this.cacheIdCounter++}'`}}getNextTACallId(){return{type:"Literal",value:`_ta${this.taCallIdCounter++}`}}getNextUserCallId(){return{type:"Literal",value:`_fn${this.userCallIdCounter++}`}}getNextPlotCallId(){return{type:"Literal",value:`#${this.plotCallIdCounter++}`}}getNextAlertCallId(){return{type:"Literal",value:`alert_${this.alertCallIdCounter++}`}}getNextLoopGuardName(){return`__lg${this.loopGuardCounter++}`}pushScope(e){this.scopes.push(new Map),this.scopeTypes.push(e),this.scopeCounts.set(e,(this.scopeCounts.get(e)||0)+1)}popScope(){this.scopes.pop(),this.scopeTypes.pop()}getCurrentScopeType(){return this.scopeTypes[this.scopeTypes.length-1]}getCurrentScopeCount(){return this.scopeCounts.get(this.getCurrentScopeType())||1}addLocalSeriesVar(e){this.localSeriesVars.add(e)}removeLocalSeriesVar(e){this.localSeriesVars.delete(e)}isLocalSeriesVar(e){return this.localSeriesVars.has(e)}addContextBoundVar(e,i=!1){this.contextBoundVars.add(e),i&&this.rootParams.add(e)}removeContextBoundVar(e){this.contextBoundVars.has(e)&&(this.contextBoundVars.delete(e),this.rootParams.has(e)&&this.rootParams.delete(e))}addArrayPatternElement(e){this.arrayPatternElements.add(e)}isContextBound(e){return ra.has(e)||sa.has(e)?!1:this.contextBoundVars.has(e)}isArrayPatternElement(e){return this.arrayPatternElements.has(e)}isRootParam(e){return this.rootParams.has(e)}addLoopVariable(e,i){this.loopVars.add(e),this.loopVarNames.set(e,i)}removeLoopVariable(e){this.loopVars.delete(e),this.loopVarNames.delete(e)}getLoopVariableName(e){return this.loopVarNames.get(e)}isLoopVariable(e){return this.loopVars.has(e)}addReservedName(e){this.reservedNames.add(e)}addUserFunction(e){this.userFunctions.add(e)}isUserFunction(e){return this.userFunctions.has(e)}addUserMethod(e){this.userMethods.add(e)}isUserMethod(e){return this.userMethods.has(e)}addVariable(e,i){if(this.isContextBound(e))return e;const r=this.scopes[this.scopes.length-1],s=this.scopeTypes[this.scopeTypes.length-1],a=this.scopeCounts.get(s)||1,n=`${s}${a}_${e}`;return r.set(e,n),this.varKinds.set(n,i),n}getVariable(e){if(this.loopVars.has(e)){const i=this.loopVarNames.get(e);if(i)return[i,"let"]}if(this.isContextBound(e))return[e,"let"];for(let i=this.scopes.length-1;i>=0;i--){const r=this.scopes[i];if(r.has(e)){const s=r.get(e),a=this.varKinds.get(s)||"let";return[s,a]}}return[e,"let"]}isVariableInFunctionScope(e){for(let i=this.scopes.length-1;i>=0;i--)if(this.scopes[i].has(e)){for(let r=0;r<=i;r++)if(this.scopeTypes[r]==="fn")return!0;return!1}return!1}generateTempVar(){return`temp_${++this.tempVarCounter}`}enterHoistingScope(){this.hoistingStack.push([])}exitHoistingScope(){return this.hoistingStack.pop()||[]}addHoistedStatement(e){this.hoistingStack.length>0&&!this.suppressHoisting&&this.hoistingStack[this.hoistingStack.length-1].push(e)}addOuterHoistedStatement(e){if(this.hoistingStack.length>0&&!this.suppressHoisting){const i=Math.min(1,this.hoistingStack.length-1);this.hoistingStack[i].push(e)}}getCurrentHoistingScope(){return this.hoistingStack.length===0?null:this.hoistingStack[this.hoistingStack.length-1]}setSuppressHoisting(e){this.suppressHoisting=e}shouldSuppressHoisting(){return this.suppressHoisting}hasVariableInScope(e){if(this.reservedNames.has(e))return!0;for(let i=this.scopes.length-1;i>=0;i--)if(this.scopes[i].has(e))return!0;return!!(this.contextBoundVars.has(e)||this.loopVars.has(e)||this.localSeriesVars.has(e))}generateParamId(){let e=`p${this.paramIdCounter++}`;for(;this.hasVariableInScope(e);)e=`p${this.paramIdCounter++}`;const i=this.scopes[this.scopes.length-1];return i&&i.set(e,e),e}}function ot(t,e,i,r,s){i||(i=N),(function a(n,o,l){var c=l||n.type;Ms(i,c,n,o,a),e[c]&&e[c](n,o)})(t,r,s)}function aa(t,e,i,r,s){var a=[];i||(i=N),(function n(o,l,c){var h=c||o.type,p=o!==a[a.length-1];p&&a.push(o),Ms(i,h,o,l,n),e[h]&&e[h](o,l||a,a),p&&a.pop()})(t,r,s)}function te(t,e,i,r,s){var a=i?oa(i,r||void 0):r;(function n(o,l,c){a[c||o.type](o,l,n)})(t,e,s)}function oa(t,e){var i=Object.create(e||N);for(var r in t)i[r]=t[r];return i}function Zi(t,e,i){i(t,e)}function xt(t,e,i){}function Ms(t,e,i,r,s){if(t[e]==null)throw new Error("No walker function defined for node type "+e);t[e](i,r,s)}var N={};N.Program=N.BlockStatement=N.StaticBlock=function(t,e,i){for(var r=0,s=t.body;r<s.length;r+=1){var a=s[r];i(a,e,"Statement")}};N.Statement=Zi;N.EmptyStatement=xt;N.ExpressionStatement=N.ParenthesizedExpression=N.ChainExpression=function(t,e,i){return i(t.expression,e,"Expression")};N.IfStatement=function(t,e,i){i(t.test,e,"Expression"),i(t.consequent,e,"Statement"),t.alternate&&i(t.alternate,e,"Statement")};N.LabeledStatement=function(t,e,i){return i(t.body,e,"Statement")};N.BreakStatement=N.ContinueStatement=xt;N.WithStatement=function(t,e,i){i(t.object,e,"Expression"),i(t.body,e,"Statement")};N.SwitchStatement=function(t,e,i){i(t.discriminant,e,"Expression");for(var r=0,s=t.cases;r<s.length;r+=1){var a=s[r];i(a,e)}};N.SwitchCase=function(t,e,i){t.test&&i(t.test,e,"Expression");for(var r=0,s=t.consequent;r<s.length;r+=1){var a=s[r];i(a,e,"Statement")}};N.ReturnStatement=N.YieldExpression=N.AwaitExpression=function(t,e,i){t.argument&&i(t.argument,e,"Expression")};N.ThrowStatement=N.SpreadElement=function(t,e,i){return i(t.argument,e,"Expression")};N.TryStatement=function(t,e,i){i(t.block,e,"Statement"),t.handler&&i(t.handler,e),t.finalizer&&i(t.finalizer,e,"Statement")};N.CatchClause=function(t,e,i){t.param&&i(t.param,e,"Pattern"),i(t.body,e,"Statement")};N.WhileStatement=N.DoWhileStatement=function(t,e,i){i(t.test,e,"Expression"),i(t.body,e,"Statement")};N.ForStatement=function(t,e,i){t.init&&i(t.init,e,"ForInit"),t.test&&i(t.test,e,"Expression"),t.update&&i(t.update,e,"Expression"),i(t.body,e,"Statement")};N.ForInStatement=N.ForOfStatement=function(t,e,i){i(t.left,e,"ForInit"),i(t.right,e,"Expression"),i(t.body,e,"Statement")};N.ForInit=function(t,e,i){t.type==="VariableDeclaration"?i(t,e):i(t,e,"Expression")};N.DebuggerStatement=xt;N.FunctionDeclaration=function(t,e,i){return i(t,e,"Function")};N.VariableDeclaration=function(t,e,i){for(var r=0,s=t.declarations;r<s.length;r+=1){var a=s[r];i(a,e)}};N.VariableDeclarator=function(t,e,i){i(t.id,e,"Pattern"),t.init&&i(t.init,e,"Expression")};N.Function=function(t,e,i){t.id&&i(t.id,e,"Pattern");for(var r=0,s=t.params;r<s.length;r+=1){var a=s[r];i(a,e,"Pattern")}i(t.body,e,t.expression?"Expression":"Statement")};N.Pattern=function(t,e,i){t.type==="Identifier"?i(t,e,"VariablePattern"):t.type==="MemberExpression"?i(t,e,"MemberPattern"):i(t,e)};N.VariablePattern=xt;N.MemberPattern=Zi;N.RestElement=function(t,e,i){return i(t.argument,e,"Pattern")};N.ArrayPattern=function(t,e,i){for(var r=0,s=t.elements;r<s.length;r+=1){var a=s[r];a&&i(a,e,"Pattern")}};N.ObjectPattern=function(t,e,i){for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];a.type==="Property"?(a.computed&&i(a.key,e,"Expression"),i(a.value,e,"Pattern")):a.type==="RestElement"&&i(a.argument,e,"Pattern")}};N.Expression=Zi;N.ThisExpression=N.Super=N.MetaProperty=xt;N.ArrayExpression=function(t,e,i){for(var r=0,s=t.elements;r<s.length;r+=1){var a=s[r];a&&i(a,e,"Expression")}};N.ObjectExpression=function(t,e,i){for(var r=0,s=t.properties;r<s.length;r+=1){var a=s[r];i(a,e)}};N.FunctionExpression=N.ArrowFunctionExpression=N.FunctionDeclaration;N.SequenceExpression=function(t,e,i){for(var r=0,s=t.expressions;r<s.length;r+=1){var a=s[r];i(a,e,"Expression")}};N.TemplateLiteral=function(t,e,i){for(var r=0,s=t.quasis;r<s.length;r+=1){var a=s[r];i(a,e)}for(var n=0,o=t.expressions;n<o.length;n+=1){var l=o[n];i(l,e,"Expression")}};N.TemplateElement=xt;N.UnaryExpression=N.UpdateExpression=function(t,e,i){i(t.argument,e,"Expression")};N.BinaryExpression=N.LogicalExpression=function(t,e,i){i(t.left,e,"Expression"),i(t.right,e,"Expression")};N.AssignmentExpression=N.AssignmentPattern=function(t,e,i){i(t.left,e,"Pattern"),i(t.right,e,"Expression")};N.ConditionalExpression=function(t,e,i){i(t.test,e,"Expression"),i(t.consequent,e,"Expression"),i(t.alternate,e,"Expression")};N.NewExpression=N.CallExpression=function(t,e,i){if(i(t.callee,e,"Expression"),t.arguments)for(var r=0,s=t.arguments;r<s.length;r+=1){var a=s[r];i(a,e,"Expression")}};N.MemberExpression=function(t,e,i){i(t.object,e,"Expression"),t.computed&&i(t.property,e,"Expression")};N.ExportNamedDeclaration=N.ExportDefaultDeclaration=function(t,e,i){if(t.declaration&&i(t.declaration,e,t.type==="ExportNamedDeclaration"||t.declaration.id?"Statement":"Expression"),t.source&&i(t.source,e,"Expression"),t.attributes)for(var r=0,s=t.attributes;r<s.length;r+=1){var a=s[r];i(a,e)}};N.ExportAllDeclaration=function(t,e,i){if(t.exported&&i(t.exported,e),i(t.source,e,"Expression"),t.attributes)for(var r=0,s=t.attributes;r<s.length;r+=1){var a=s[r];i(a,e)}};N.ImportAttribute=function(t,e,i){i(t.value,e,"Expression")};N.ImportDeclaration=function(t,e,i){for(var r=0,s=t.specifiers;r<s.length;r+=1){var a=s[r];i(a,e)}if(i(t.source,e,"Expression"),t.attributes)for(var n=0,o=t.attributes;n<o.length;n+=1){var l=o[n];i(l,e)}};N.ImportExpression=function(t,e,i){i(t.source,e,"Expression"),t.options&&i(t.options,e,"Expression")};N.ImportSpecifier=N.ImportDefaultSpecifier=N.ImportNamespaceSpecifier=N.Identifier=N.PrivateIdentifier=N.Literal=xt;N.TaggedTemplateExpression=function(t,e,i){i(t.tag,e,"Expression"),i(t.quasi,e,"Expression")};N.ClassDeclaration=N.ClassExpression=function(t,e,i){return i(t,e,"Class")};N.Class=function(t,e,i){t.id&&i(t.id,e,"Pattern"),t.superClass&&i(t.superClass,e,"Expression"),i(t.body,e)};N.ClassBody=function(t,e,i){for(var r=0,s=t.body;r<s.length;r+=1){var a=s[r];i(a,e)}};N.MethodDefinition=N.PropertyDefinition=N.Property=function(t,e,i){t.computed&&i(t.key,e,"Expression"),t.value&&i(t.value,e,"Expression")};const Z="$",w={createIdentifier(t){return{type:"Identifier",name:t}},createLiteral(t){return{type:"Literal",value:t}},createMemberExpression(t,e,i=!1){return{type:"MemberExpression",object:t,property:e,computed:i}},createContextIdentifier(){return this.createIdentifier("$")},createLocalContextIdentifier(){return this.createIdentifier("$$")},createContextVariableReference(t,e){const i=this.createContextIdentifier(),r=this.createIdentifier(t),s=this.createIdentifier(e);return this.createMemberExpression(this.createMemberExpression(i,r,!1),s,!1)},createLocalContextVariableReference(t,e){const i=this.createLocalContextIdentifier(),r=this.createIdentifier(t),s=this.createIdentifier(e);return this.createMemberExpression(this.createMemberExpression(i,r,!1),s,!1)},createDynamicContextVariableReference(t,e){const i=this.createContextIdentifier(),r=this.createIdentifier(t);return this.createMemberExpression(this.createMemberExpression(i,r,!1),e,!0)},createContextVariableAccess0(t,e){const i=this.createContextVariableReference(t,e);return this.createGetCall(i,0)},createDynamicContextVariableAccess0(t,e){const i=this.createDynamicContextVariableReference(t,e);return this.createGetCall(i,0)},createArrayAccess(t,e){const i=typeof e=="number"?this.createLiteral(e):e;return this.createMemberExpression(t,i,!0)},createCallExpression(t,e){return{type:"CallExpression",callee:t,arguments:e}},createAssignmentExpression(t,e,i="="){return{type:"AssignmentExpression",operator:i,left:t,right:e}},createExpressionStatement(t){return{type:"ExpressionStatement",expression:t}},createInitCall(t,e,i){const r=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("init"),!1),s=[t,e];return i&&s.push(i),this.createCallExpression(r,s)},createInitVarCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("initVar"),!1),r=[t,e];return this.createCallExpression(i,r)},createGetCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("get"),!1),r=typeof e=="number"?this.createLiteral(e):e;return this.createCallExpression(i,[t,r])},createSetCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("set"),!1);return this.createCallExpression(i,[t,e])},createMathEqCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("pine"),!1),r=this.createMemberExpression(i,this.createIdentifier("math"),!1),s=this.createMemberExpression(r,this.createIdentifier("__eq"),!1);return this.createCallExpression(s,[t,e])},createMathNeqCall(t,e){const i=this.createMemberExpression(this.createContextIdentifier(),this.createIdentifier("pine"),!1),r=this.createMemberExpression(i,this.createIdentifier("math"),!1),s=this.createMemberExpression(r,this.createIdentifier("__neq"),!1);return this.createCallExpression(s,[t,e])},createWrapperFunction(t){return{type:"FunctionDeclaration",id:null,params:[this.createIdentifier("context")],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:t}]}}},createVariableDeclaration(t,e){return{type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:this.createIdentifier(t),init:e}]}},createAwaitExpression(t){return{type:"AwaitExpression",argument:t}}},_t=["ta","math","request","array","input","color"],it=["hline","plot","fill","label","line","na","alert","time","time_close","dayofmonth","dayofweek","hour","minute","month","second","weekofyear","year"],la=["request.security","request.security_lower_tf"],ca=["line.new","line.copy","label.new","label.copy","polyline.new","box.new","box.copy","table.new","linefill.new"],Ci=new Set([..._t,"fill","plot","hline","label","line","size","extend","display","format","location","shape","text","xloc","yloc","linefill","polyline","box","table","map","matrix","chart","alert","barstate","syminfo","timeframe","strategy","log","str"]),Rs=["open","high","low","close","volume","hl2","hlc3","ohlc4","hlcc4","openTime","closeTime"],Ji=[..._t,"plotchar","plotshape","plotarrow","plotbar","plotcandle","plot","bgcolor","barcolor","hline","fill","indicator","strategy","library","alertcondition","alert","error","max_bars_back","fixnan","na","nz","timestamp","str","box","line","label","table","chart","linefill","polyline","map","matrix","log","Type","bool","int","float","string","timeframe","syminfo","barstate","bar_index","last_bar_index","last_bar_time","inputs","time","time_close","time_tradingday","dayofmonth","hour","minute","month","second","weekofyear","year","order","currency","display","shape","location","size","format","dayofweek","xloc","yloc","text","font","extend","position","barmerge","adjustment","backadjustment","earnings","dividends","splits"],ha=["na","nz","plot","plotchar","color","hline","fill"];function ua(t){let e=null,i=Z;if(t.type==="Program"&&t.body.length>0){const f=t.body[0];if(f.type==="ExpressionStatement"&&(f.expression.type==="ArrowFunctionExpression"||f.expression.type==="FunctionExpression")){const m=f.expression;m.body.type==="BlockStatement"&&(e=m.body.body,m.params.length>0&&m.params[0].type==="Identifier"&&(i=m.params[0].name))}}if(!e)return;const r=new Set,s=new Set,a=f=>{f.type==="Identifier"?r.add(f.name):f.type==="ObjectPattern"?f.properties.forEach(m=>a(m.value)):f.type==="ArrayPattern"&&f.elements.forEach(m=>{m&&a(m)})};te(t,{},{VariableDeclarator(f,m,x){a(f.id),f.init&&x(f.init,m)},FunctionDeclaration(f,m,x){a(f.id),x(f.body,m)},Identifier(f,m,x){s.add(f.name)},MemberExpression(f,m,x){x(f.object,m),f.computed&&x(f.property,m)},Property(f,m,x){f.computed&&x(f.key,m),x(f.value,m)}}),e.forEach(f=>{f.type==="VariableDeclaration"?f.declarations.forEach(m=>a(m.id)):f.type==="FunctionDeclaration"&&a(f.id)});const n=Rs,o=Ji,l=n.filter(f=>!r.has(f)),c=o.filter(f=>!r.has(f)),h=l.filter(f=>s.has(f)),p=c.filter(f=>s.has(f)),u=[];h.length>0&&u.push({type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:{type:"ObjectPattern",properties:h.map(f=>({type:"Property",key:{type:"Identifier",name:f},value:{type:"Identifier",name:f},kind:"init",shorthand:!0}))},init:{type:"MemberExpression",object:{type:"Identifier",name:i},property:{type:"Identifier",name:"data"},computed:!1}}]}),p.length>0&&u.push({type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:{type:"ObjectPattern",properties:p.map(f=>({type:"Property",key:{type:"Identifier",name:f},value:{type:"Identifier",name:f},kind:"init",shorthand:!0}))},init:{type:"MemberExpression",object:{type:"Identifier",name:i},property:{type:"Identifier",name:"pine"},computed:!1}}]}),u.length>0&&e.unshift(...u)}function pa(t){let e=null,i=Z;if(t.type==="Program"&&t.body.length>0){const o=t.body[0];if(o.type==="ExpressionStatement"&&(o.expression.type==="ArrowFunctionExpression"||o.expression.type==="FunctionExpression")){const l=o.expression;l.body.type==="BlockStatement"&&(e=l.body.body,l.params.length>0&&l.params[0].type==="Identifier"&&(i=l.params[0].name))}}if(!e)return;const r=new Set(Rs),s=new Set(Ji),a=new Set(ha),n=new Map;e.forEach(o=>{o.type==="VariableDeclaration"&&o.declarations.forEach(l=>{if(l.init&&l.init.type==="MemberExpression"&&l.init.object.type==="Identifier"&&l.init.object.name===i&&l.init.property.type==="Identifier"){const c=l.init.property.name;let h=null;if(c==="data"?h=r:c==="pine"?h=s:c==="core"&&(h=a),h&&l.id.type==="ObjectPattern")l.id.properties.forEach(p=>{if(p.type==="Property"&&p.key.type==="Identifier"&&p.value.type==="Identifier"){const u=p.key.name,f=p.value.name;h.has(u)&&u!==f&&(n.set(f,u),p.value.name=u,p.shorthand=!0)}});else if(l.id.type==="Identifier"&&_t.includes(c)){const p=c,u=l.id.name;p!==u&&(n.set(u,p),l.id.name=p)}}})}),n.size>0&&te(t,{},{Identifier(o){n.has(o.name)&&(o.name=n.get(o.name))},MemberExpression(o,l,c){c(o.object,l),o.computed&&c(o.property,l)},Property(o,l,c){o.computed&&c(o.key,l),c(o.value,l)}})}function fa(t){try{const e=Ts(t,{ecmaVersion:"latest",sourceType:"module"});if(e.type==="Program"&&e.body.length===1){const i=e.body[0];if(i.type==="ExpressionStatement"){const r=i.expression;if(r.type==="ArrowFunctionExpression"||r.type==="FunctionExpression")return{isWrapped:!0,isAsync:r.async||!1,functionNode:r}}if(i.type==="FunctionDeclaration")return{isWrapped:!0,isAsync:i.async||!1,functionNode:i}}return{isWrapped:!1,isAsync:!1}}catch{return{isWrapped:!1,isAsync:!1}}}function da(t){return t.async=!0,Ds(t)}function ma(t){t=t.trim();const{isWrapped:e,isAsync:i,functionNode:r}=fa(t);return e&&r?i?t:da(r):`async (context) => {
|
|
15
15
|
${t}
|
|
16
|
-
}`}function xa(t){te(t,null,{VariableDeclaration(e,i,r){e.declarations&&e.declarations.length>0&&e.declarations.forEach(s=>{if(s.init&&s.init.type==="ArrowFunctionExpression"&&s.init.start!==0){const a={type:"FunctionDeclaration",id:s.id,params:s.init.params,body:s.init.body.type==="BlockStatement"?s.init.body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:s.init.body}]},async:s.init.async,generator:!1};Object.assign(e,a)}}),e.body&&e.body.body&&e.body.body.forEach(s=>r(s,i))}})}function _a(t,e){ot(t,{VariableDeclaration(i){i.declarations.forEach(r=>{const s=r.init&&r.init.type==="MemberExpression"&&r.init.object&&(r.init.object.name==="context"||r.init.object.name===Z||r.init.object.name==="context2"),a=r.init&&r.init.type==="MemberExpression"&&r.init.object?.object&&(r.init.object.object.name==="context"||r.init.object.object.name===Z||r.init.object.object.name==="context2");(s||a)&&(r.id.name&&e.addContextBoundVar(r.id.name),r.id.properties&&r.id.properties.forEach(n=>{n.key.name&&e.addContextBoundVar(n.key.name)}))})}})}function ba(t,e,i=!1){t.params.forEach(r=>{r.type==="Identifier"&&i&&e.addContextBoundVar(r.name,i)})}function va(t,e){let i;return la(t,{FunctionDeclaration(r){r.id&&r.id.name&&(e.addReservedName(r.id.name),e.addUserFunction(r.id.name))},ExpressionStatement(r){const s=r.expression;s&&s.type==="AssignmentExpression"&&s.operator==="="&&s.left?.type==="MemberExpression"&&s.left.property?.name==="__pineMethod__"&&s.left.object?.type==="Identifier"&&s.right?.value===!0&&e.addUserMethod(s.left.object.name)},ArrowFunctionExpression(r){const s=r.start===0;s&&r.params&&r.params.length>0&&(i=r.params[0].name,r.params[0].name=Z),ba(r,e,s)},VariableDeclaration(r,s){const a=s.length>1?s[s.length-2]:null,n=a&&(a.type==="ForOfStatement"||a.type==="ForInStatement")&&a.left===r;r.declarations.forEach(o=>{if(o.id.type==="Identifier")e.addReservedName(o.id.name);else if(o.id.type==="ObjectPattern")o.id.properties.forEach(l=>{l.key&&l.key.type==="Identifier"&&e.addReservedName(l.key.name)});else if(o.id.type==="ArrayPattern"){if(o.id.elements?.forEach(u=>{u&&u.type==="Identifier"&&e.addReservedName(u.name)}),n)return;const l=e.generateTempVar(),c={type:"VariableDeclaration",kind:r.kind,declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:l},init:o.init}]},h=c.declarations[0].init;h&&h.type==="CallExpression"&&(h.callee.type==="ArrowFunctionExpression"||h.callee.type==="FunctionExpression")&&ot(h.callee.body,{ReturnStatement(u){u.argument&&u.argument.type==="ArrayExpression"&&(u.argument={type:"ArrayExpression",elements:[u.argument]})}}),o.id.elements?.forEach(u=>{u.type==="Identifier"&&e.addArrayPatternElement(u.name)});const p=o.id.elements.map((u,f)=>({type:"VariableDeclaration",kind:r.kind,declarations:[{type:"VariableDeclarator",id:u,init:{type:"MemberExpression",object:{type:"Identifier",name:l},property:{type:"Literal",value:f},computed:!0}}]}));Object.assign(r,{type:"BlockStatement",body:[c,...p]})}})},ForStatement(r){}}),i}const Vi={type:"Identifier",name:"undefined"};function le(t,e){const[i,r]=e.getVariable(t);if((i.match(/^fn\d+_/)||e.isVariableInFunctionScope(t))&&t!=="$$"){const[s]=e.getVariable("$$");if(s)return S.createLocalContextVariableReference(r,i)}return S.createContextVariableReference(r,i)}function Ls(t,e){const i=le(t,e);return S.createGetCall(i,0)}function bt(t,e){if(t.computed&&t.property.type==="Identifier"){if(e.isLoopVariable(t.property.name)){if(t.object.type==="Identifier"&&!e.isLoopVariable(t.object.name)){if(e.isLocalSeriesVar(t.object.name)){const i=S.createIdentifier(t.object.name);i._skipTransformation=!0;const r=S.createGetCall(i,t.property);Object.assign(t,r),t._indexTransformed=!0;return}if(!e.isContextBound(t.object.name)){const i=le(t.object.name,e),r=S.createGetCall(i,t.property);Object.assign(t,r),t._indexTransformed=!0}}return}e.isContextBound(t.property.name)||(t.property=le(t.property.name,e),t.property=S.createGetCall(t.property,0))}if(t.computed&&t.object.type==="Identifier"){if(e.isLoopVariable(t.object.name))return;if(e.isLocalSeriesVar(t.object.name)){const i=S.createIdentifier(t.object.name);i._skipTransformation=!0;const r=S.createGetCall(i,t.property);Object.assign(t,r),t._indexTransformed=!0;return}if(e.isContextBound(t.object.name)||(t.object=le(t.object.name,e)),t.property.type==="MemberExpression"){const i=t.property;i._indexTransformed||(bt(i,e),i._indexTransformed=!0)}}t.computed&&t.property.type!=="Identifier"&&t.property.type!=="MemberExpression"&&!t._indexTransformed&&(t.property.type==="BinaryExpression"||t.property.type==="UnaryExpression"||t.property.type==="LogicalExpression"||t.property.type==="ConditionalExpression")&&(t.property=Ke(t.property,e))}function be(t,e){const i=S.createGetCall(S.createIdentifier(t.name),0);t.start!==void 0&&(i.start=t.start),t.end!==void 0&&(i.end=t.end),i._indexTransformed=!0,Object.assign(t,i)}function ee(t,e){if(!t._skipTransformation&&t.name!==Z){if(it.includes(t.name)&&e.isContextBound(t.name)){const u=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee===t,f=t.parent&&t.parent.type==="MemberExpression"&&t.parent.object===t&&!t.parent.computed;if(!u&&!f){const m={type:"MemberExpression",object:{type:"Identifier",name:t.name},property:{type:"Identifier",name:"__value"},computed:!1},x=S.createGetCall(m,0);Object.assign(t,x),delete t.name;return}}if(t.name==="Math"||t.name==="NaN"||t.name==="undefined"||t.name==="Infinity"||t.name==="null"||t.name.startsWith("'")&&t.name.endsWith("'")||t.name.startsWith('"')&&t.name.endsWith('"')||t.name.startsWith("`")&&t.name.endsWith("`")||e.isLoopVariable(t.name))return;let i=!1;if(t.parent&&t.parent.type==="CallExpression"&&t.parent.arguments.includes(t)){const u=t.parent.callee;if(u.type==="MemberExpression"&&u.object&&u.object.name===Z&&["get","set","init","param","call"].includes(u.property.name)){const f=t.parent.arguments.indexOf(t);u.property.name==="call"?f>=2&&(i=!0):f===0&&(i=!0)}else{const f=u.type==="MemberExpression"&&u.object&&u.object.type==="Identifier"&&_t.includes(u.object.name);u.type==="MemberExpression"&&!f?i=!1:i=!0}}const r=t.parent&&t.parent.type==="MemberExpression"&&t.parent.object===t&&e.isContextBound(t.name),s=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee&&t.parent.callee.type==="MemberExpression"&&t.parent.callee.property.name==="param";t.parent&&t.parent.type==="AssignmentExpression"&&t.parent.left;const a=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee===t,n=t.parent&&t.parent.type==="MemberExpression"&&t.parent.computed&&t.parent.object===t,o=t.parent&&t.parent.type==="MemberExpression"&&t.parent.computed&&t.parent.property===t&&t.parent.parent&&t.parent.parent.type==="CallExpression"&&t.parent.parent.callee&&t.parent.parent.callee.type==="MemberExpression"&&e.isContextBound(t.parent.parent.callee.object.name);if(r||s||i||o||a){if(a||t.parent&&t.parent.type==="CallExpression"&&t.parent.callee&&t.parent.callee.type==="MemberExpression"&&t.parent.callee.object&&t.parent.callee.object.name===Z&&t.parent.callee.property.name==="call"&&t.parent.arguments[0]===t||e.isLocalSeriesVar(t.name)||e.isContextBound(t.name)&&!e.isRootParam(t.name))return;const u=le(t.name,e);Object.assign(t,u);return}const l=e.isContextBound(t.name)&&!e.isRootParam(t.name);if(l){const u=t.parent&&t.parent.type==="CallExpression"&&t.parent.arguments.includes(t),f=t.parent&&t.parent.type==="SwitchStatement"&&t.parent.discriminant===t,m=t.parent&&t.parent.type==="SwitchCase"&&t.parent.test===t;if(!u&&!f&&!m)return}if(e.isLocalSeriesVar(t.name)){if(!n){const u=S.createIdentifier(t.name),f=S.createGetCall(u,0);Object.assign(t,f)}return}const[c,h]=e.getVariable(t.name);let p;if(l)p=S.createIdentifier(t.name);else{if(c===t.name&&!e.isContextBound(t.name))return;p=le(t.name,e)}if(n)Object.assign(t,p);else{const u=S.createGetCall(p,0);Object.assign(t,u)}}}function ue(t,e,i){if(t.object&&t.object.type==="Identifier"&&t.object.name==="Math")return;if(t.object&&t.object.type==="Identifier"&&_t.includes(t.object.name)&&i.isContextBound(t.object.name)&&!t.computed){const l=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee===t,c=t.parent&&(t.parent.type==="VariableDeclarator"&&(t.parent.id.type==="ArrayPattern"||t.parent.id.type==="ObjectPattern")||t.parent.type==="AssignmentExpression"&&(t.parent.left.type==="ArrayPattern"||t.parent.left.type==="ObjectPattern")||t.parent.type==="Property");if(!l&&!c){const h={type:"CallExpression",callee:{type:"MemberExpression",object:t.object,property:t.property,computed:!1},arguments:[],_transformed:!1};t.start!==void 0&&(h.start=t.start),t.end!==void 0&&(h.end=t.end),Object.assign(t,h);return}}const r=i.getCurrentScopeType()=="if",s=i.getCurrentScopeType()=="els",a=i.getCurrentScopeType()=="for";if(!r&&!s&&!a&&t.object&&t.object.type==="Identifier"&&i.isContextBound(t.object.name)&&!i.isRootParam(t.object.name)&&!t.computed)return;t._indexTransformed||(bt(t,i),t._indexTransformed=!0);const n=t.object&&t.object.type==="MemberExpression"&&t.object.object&&t.object.object.type==="MemberExpression"&&t.object.object.object&&(t.object.object.object.name===Z||t.object.object.object.name==="$$"),o=t.object&&t.object.type==="Identifier"&&i.isContextBound(t.object.name);if(t.computed&&(n||o)){if(t.parent&&t.parent.type==="AssignmentExpression"&&t.parent.left===t)return;t.object.type==="Identifier"&&it.includes(t.object.name)&&i.isContextBound(t.object.name)&&(t.object={type:"MemberExpression",object:{type:"Identifier",name:t.object.name},property:{type:"Identifier",name:"__value"},computed:!1});const l=S.createGetCall(t.object,t.property);t.start&&(l.start=t.start),t.end&&(l.end=t.end),Object.assign(t,l),delete t.object,delete t.property,delete t.computed}}function Bt(t,e){if(t.type==="Identifier"){if(it.includes(t.name)&&e.isContextBound(t.name)){const a=t.name;return Object.assign(t,{type:"MemberExpression",object:{type:"Identifier",name:a},property:{type:"Identifier",name:"__value"},computed:!1}),delete t.name,t}if(e.isLoopVariable(t.name))return t;if(e.isRootParam(t.name)){const[a,n]=e.getVariable(t.name);return S.createContextVariableReference(n,a)}if(e.isContextBound(t.name))return t;const[i,r]=e.getVariable(t.name),s=i!==t.name;return e.isLocalSeriesVar(t.name)&&!s?t:s?le(t.name,e):i===t.name&&!e.isContextBound(t.name)?t:le(t.name,e)}return t}function Ke(t,e,i=""){switch(t.type){case"BinaryExpression":return Li(t,e,i);case"LogicalExpression":return ji(t,e,i);case"MemberExpression":{const r=!t.computed&&t.object.type==="Identifier"&&it.includes(t.object.name)&&e.isContextBound(t.object.name),s=t.object.type==="Identifier"&&!r?Bt(t.object,e):t.object;let a=s;if(!t.computed&&t.object.type==="Identifier"&&!r){const[n]=e.getVariable(t.object.name);n!==t.object.name&&!e.isLoopVariable(t.object.name)&&(a=S.createGetCall(s,0))}return{type:"MemberExpression",object:a,property:t.property,computed:t.computed}}case"Identifier":{if(e.isLoopVariable(t.name)||t.parent&&t.parent.type==="MemberExpression"&&t.parent.property===t)return t;const r=Bt(t,e);return r.type==="Identifier"&&(r.name==="NaN"||r.name==="undefined"||r.name==="Infinity"||r.name==="null"||r.name==="Math")?r:S.createGetCall(r,0)}case"UnaryExpression":return $i(t,e,i);case"ConditionalExpression":{const r=Ke(t.test,e,i),s=Ke(t.consequent,e,i),a=Ke(t.alternate,e,i);return{type:"ConditionalExpression",test:r,consequent:s,alternate:a,start:t.start,end:t.end}}}return t}function Li(t,e,i){const r=Ke(t.left,e,i),s=Ke(t.right,e,i),a={type:"BinaryExpression",operator:t.operator,left:r,right:s,start:t.start,end:t.end};return te(a,e,{CallExpression(n,o){n._transformed||ne(n,o)},MemberExpression(n){ue(n,"",e)}}),a}function ji(t,e,i){const r=Ke(t.left,e,i),s=Ke(t.right,e,i),a={type:"LogicalExpression",operator:t.operator,left:r,right:s,start:t.start,end:t.end};return te(a,e,{CallExpression(n,o){n._transformed||ne(n,o)}}),a}function yr(t,e,i){te(t,{parent:t,inNamespaceCall:!1},{Identifier(n,o,l){if(n.name=="NaN")return;if(it.includes(n.name)&&e.isContextBound(n.name)){if(o.parent&&o.parent.type==="MemberExpression"&&o.parent.object===n&&!o.parent.computed)return;const h={type:"MemberExpression",object:{type:"Identifier",name:n.name},property:{type:"Identifier",name:"__value"},computed:!1},p=S.createGetCall(h,0);Object.assign(n,p),delete n.name;return}n.parent=o.parent,ee(n,e);const c=n.parent&&n.parent.type==="BinaryExpression";(n.parent&&n.parent.type==="ConditionalExpression"||c)&&(n.type==="MemberExpression"?bt(n,e):n.type==="Identifier"&&(n.parent&&n.parent.type==="CallExpression"&&n.parent.callee&&n.parent.callee.object&&n.parent.callee.object.name===Z&&n.parent.callee.property.name==="get"||be(n)))},MemberExpression(n,o,l){ue(n,"",e),n.object&&l(n.object,{parent:n,inNamespaceCall:o.inNamespaceCall})},ConditionalExpression(n,o,l){const c={...o,parent:n};n.test&&l(n.test,c),n.consequent&&l(n.consequent,c),n.alternate&&l(n.alternate,c)},BinaryExpression(n,o,l){const c={...o,parent:n};l(n.left,c),l(n.right,c)},LogicalExpression(n,o,l){const c={...o,parent:n};l(n.left,c),l(n.right,c)},UnaryExpression(n,o,l){const c={...o,parent:n};l(n.argument,c)},CallExpression(n,o,l){const c=n.callee&&n.callee.type==="MemberExpression"&&n.callee.object&&n.callee.object.type==="Identifier"&&e.isContextBound(n.callee.object.name);ne(n,e),n.arguments.forEach(h=>l(h,{parent:n,inNamespaceCall:c||o.inNamespaceCall}))}});const r=S.createMemberExpression(S.createIdentifier(i),S.createIdentifier("param")),s=e.generateParamId(),a={type:"CallExpression",callee:r,arguments:[t,Vi,{type:"Identifier",name:`'${s}'`}],_transformed:!0,_isParamCall:!0};if(!e.shouldSuppressHoisting()){const n=s;e.addLocalSeriesVar(n);const o=S.createVariableDeclaration(n,a);return e.addHoistedStatement(o),S.createIdentifier(n)}return a}function $i(t,e,i){const r=Ke(t.argument,e,i),s={type:"UnaryExpression",operator:t.operator,prefix:t.prefix,argument:r,start:t.start,end:t.end};return te(s,e,{CallExpression(a,n){a._transformed||ne(a,n)},MemberExpression(a){ue(a,"",e)}}),s}function dt(t,e,i){switch(t?.type){case"BinaryExpression":t=Li(t,i,e);break;case"LogicalExpression":t=ji(t,i,e);break;case"ConditionalExpression":return yr(t,i,e);case"UnaryExpression":t=$i(t,i,e);break;case"ArrayExpression":t.elements=t.elements.map(c=>{if(c.type==="Identifier"){if(i.isContextBound(c.name)&&!i.isRootParam(c.name))return c;if(i.isLocalSeriesVar(c.name)){const h=S.createIdentifier(c.name);return S.createGetCall(h,0)}return Ls(c.name,i)}return c});break}const r=t.type==="MemberExpression"&&t.computed&&t.property,s=t.type==="MemberExpression"&&!t.computed;if(r){t.object.type==="CallExpression"?ne(t.object,i):t.object.type==="MemberExpression"?ue(t.object,"",i):t.object.type==="BinaryExpression"?t.object=Li(t.object,i,e):t.object.type==="LogicalExpression"?t.object=ji(t.object,i,e):t.object.type==="ConditionalExpression"?t.object=yr(t.object,i,e):t.object.type==="UnaryExpression"&&(t.object=$i(t.object,i,e));const c=t.object.type==="Identifier"&&i.isContextBound(t.object.name)&&!i.isRootParam(t.object.name)?t.object:Bt(t.object,i);let h;t.property.type==="Identifier"&&!i.isContextBound(t.property.name)&&!i.isLoopVariable(t.property.name)?h=S.createGetCall(Bt(t.property,i),0):t.property.type==="BinaryExpression"||t.property.type==="UnaryExpression"||t.property.type==="LogicalExpression"||t.property.type==="ConditionalExpression"?h=Ke(t.property,i,e):h=t.property;const p=S.createMemberExpression(S.createIdentifier(e),S.createIdentifier("param")),u=i.generateParamId(),f={type:"CallExpression",callee:p,arguments:[c,h,{type:"Identifier",name:`'${u}'`}],_transformed:!0,_isParamCall:!0};if(!i.shouldSuppressHoisting()){const m=u;i.addLocalSeriesVar(m);const x=S.createVariableDeclaration(m,f);return i.addHoistedStatement(x),S.createIdentifier(m)}return f}if(s){if(t.object.type==="Identifier"&&_t.includes(t.object.name)&&i.isContextBound(t.object.name)&&!t.computed){const c=t.object.name,h={type:"CallExpression",callee:{type:"MemberExpression",object:{type:"Identifier",name:c},property:{type:"Identifier",name:t.property.name},computed:!1},arguments:[],_transformed:!0};c==="ta"&&h.arguments.push(i.getNextTACallId());const p=i.generateTempVar();i.addLocalSeriesVar(p);const u=S.createVariableDeclaration(p,h);return i.addOuterHoistedStatement(u),Object.assign(t,S.createIdentifier(p)),t}if(t.object.type==="Identifier"){const c=t.object.name,[h,p]=i.getVariable(c);if(h!==c&&!i.isLoopVariable(c)){const u=le(c,i),f=S.createGetCall(u,0);t.object=f}}else t.object.type==="MemberExpression"?dt(t.object,e,i):t.object.type==="CallExpression"&&(t.object._transformed||ne(t.object,i))}if(t.type==="ObjectExpression"&&(t.properties=t.properties.map(c=>c.value.name?i.isContextBound(c.value.name)||i.isLocalSeriesVar(c.value.name)||i.isLoopVariable(c.value.name)?{type:"Property",key:{type:"Identifier",name:c.key.name},value:S.createIdentifier(c.value.name),kind:"init",method:!1,shorthand:!1,computed:!1}:{type:"Property",key:{type:"Identifier",name:c.key.name},value:le(c.value.name,i),kind:"init",method:!1,shorthand:!1,computed:!1}:(c.value.type!=="Literal"&&(c.value=dt(c.value,e,i)),c))),t.type==="Identifier"){if(it.includes(t.name)&&i.isContextBound(t.name)){const c=t.name;Object.assign(t,{type:"MemberExpression",object:{type:"Identifier",name:c},property:{type:"Identifier",name:"__value"},computed:!1}),delete t.name}else if(i.isContextBound(t.name)&&!i.isRootParam(t.name)){const c=S.createMemberExpression(S.createIdentifier(e),S.createIdentifier("param")),h=i.generateParamId(),p={type:"CallExpression",callee:c,arguments:[t,Vi,{type:"Identifier",name:`'${h}'`}],_transformed:!0,_isParamCall:!0};if(!i.shouldSuppressHoisting()){const u=h;i.addLocalSeriesVar(u);const f=S.createVariableDeclaration(u,p);return i.addHoistedStatement(f),S.createIdentifier(u)}return p}}t?.type==="CallExpression"&&ne(t,i);const a=S.createMemberExpression(S.createIdentifier(e),S.createIdentifier("param")),n=t.type==="Identifier"?Bt(t,i):t,o=i.generateParamId(),l={type:"CallExpression",callee:a,arguments:[n,Vi,{type:"Identifier",name:`'${o}'`}],_transformed:!0,_isParamCall:!0};if(!i.shouldSuppressHoisting()){const c=o;i.addLocalSeriesVar(c);const h=S.createVariableDeclaration(c,l);return i.addHoistedStatement(h),S.createIdentifier(c)}return l}function jt(t){if(!t)return!1;if(js(t))return!0;if(t.type==="MemberExpression")return jt(t.object);if(t.type==="ChainExpression")return jt(t.expression);if(t.type==="CallExpression"){const e=t.callee;if(e?.type==="MemberExpression")return jt(e.object);if(e?.type==="ChainExpression")return jt(e.expression)}return!1}function js(t){return t?.type==="CallExpression"&&t.callee?.type==="MemberExpression"&&t.callee.object?.name==="$"&&t.callee.property?.name==="get"}function Bi(t,e,i){t&&(t.type==="Identifier"?(t.parent=e,ee(t,i)):t.type==="MemberExpression"?Bi(t.object,t,i):t.type==="CallExpression"&&(t.callee&&t.callee.type==="MemberExpression"&&Bi(t.callee.object,t.callee,i),t._transformed||ne(t,i)))}function ne(t,e,i){if(t._transformed)return;t.callee&&t.callee.name,t.callee&&t.callee.type==="Identifier"&&(_t.includes(t.callee.name)||it.includes(t.callee.name))&&e.isContextBound(t.callee.name)&&(t.callee=S.createMemberExpression(t.callee,S.createIdentifier("any")));const r=t.callee&&t.callee.type==="MemberExpression"&&t.callee.object&&t.callee.object.type==="Identifier"&&(e.isContextBound(t.callee.object.name)||t.callee.object.name==="math"||t.callee.object.name==="ta");if(r){if(t.callee.object.name===Z&&["get","init","param"].includes(t.callee.property.name))return;const s=t.callee.object.name,a=[];if(t.arguments.forEach(h=>{if(h._isParamCall){a.push(h);return}a.push(dt(h,s,e))}),t.arguments=a,["plot","hline","fill"].includes(s)){const h=e.getNextPlotCallId();t.arguments.push({type:"ObjectExpression",properties:[{type:"Property",key:{type:"Identifier",name:"__callsiteId"},value:h,kind:"init",computed:!1,shorthand:!1}]})}if(s==="alert"){const h=e.getNextAlertCallId();t.arguments.push({type:"ObjectExpression",properties:[{type:"Property",key:{type:"Identifier",name:"__callsiteId"},value:h,kind:"init",computed:!1,shorthand:!1}]})}if(s==="ta")if(e.getCurrentScopeType()==="fn"){const h=e.getNextTACallId(),[p]=e.getVariable("$$");let u;p?u=S.createMemberExpression(S.createLocalContextIdentifier(),S.createIdentifier("id")):u=S.createLiteral("");const f={type:"BinaryExpression",operator:"+",left:u,right:h};t.arguments.push(f)}else t.arguments.push(e.getNextTACallId());const n=t.callee.property.name,o=`${s}.${n}`,l=ha.includes(o),c=t._insideAwait===!0;if(l&&!c){const h=Object.assign({},t),p=S.createAwaitExpression(h);Object.assign(t,p)}if(!e.shouldSuppressHoisting()){const h=e.generateTempVar();e.addLocalSeriesVar(h);const p=t._insideAwait===!0;let u=Object.assign({},t);p&&(u=S.createAwaitExpression(u));const f=S.createVariableDeclaration(h,u);e.addHoistedStatement(f);const m=S.createIdentifier(h);Object.assign(t,m),t._wasHoisted=!0,t._wasInsideAwait=p;return}t._transformed=!0}else if(t.callee&&t.callee.type==="Identifier"){if(t.arguments=t.arguments.map(s=>s._isParamCall?s:dt(s,Z,e)),!e.isContextBound(t.callee.name)){const s=e.getNextUserCallId(),a=S.createMemberExpression(S.createContextIdentifier(),S.createIdentifier("call")),n=[t.callee,s,...t.arguments];t.callee=a,t.arguments=n}t._transformed=!0}if(!r&&t.callee&&t.callee.type==="MemberExpression"){const s=t.callee.property.name,a=e.isUserFunction(s),n=t.callee.object,o=n.type==="Identifier"&&e.isLocalSeriesVar(n.name),l=n.type==="MemberExpression",c=e.isUserMethod(s);if(a&&c&&!e.isContextBound(s)&&!o&&!l){const h=t.callee.object;t.callee.property;const p=t.arguments.map(b=>b._isParamCall?b:dt(b,Z,e));let u=h;h.type==="Identifier"?u=dt(h,Z,e):h.type==="CallExpression"&&(ne(h,e),u=dt(h,Z,e));const f=S.createMemberExpression(S.createContextIdentifier(),S.createIdentifier("call")),m=e.getNextUserCallId(),x=S.createIdentifier(s);x._skipTransformation=!0;const _=[x,m,u,...p];t.callee=f,t.arguments=_,t._transformed=!0;return}t.callee.object.type==="Identifier"?ee(t.callee.object,e):Bi(t.callee.object,t.callee,e)}if(t.arguments.forEach(s=>{te(s,{parent:t},{Identifier(a,n,o){a.parent=n.parent,ee(a,e);const l=a.parent&&a.parent.type==="BinaryExpression";(a.parent&&a.parent.type==="ConditionalExpression"||l)&&(a.type==="MemberExpression"?bt(a,e):a.type==="Identifier"&&(a.parent&&a.parent.type==="CallExpression"&&a.parent.callee&&a.parent.callee.object&&a.parent.callee.object.name===Z&&a.parent.callee.property.name==="get"||be(a)))},BinaryExpression(a,n,o){const l={...n,parent:a};o(a.left,l),o(a.right,l)},LogicalExpression(a,n,o){const l={...n,parent:a};o(a.left,l),o(a.right,l)},UnaryExpression(a,n,o){const l={...n,parent:a};o(a.argument,l)},CallExpression(a,n,o){a.callee&&a.callee.type==="MemberExpression"&&a.callee.object&&(a.callee.object.parent=a.callee,o(a.callee.object,{parent:a.callee})),a._transformed||ne(a,e)},MemberExpression(a,n,o){ue(a,"",e),a.object&&o(a.object,{parent:a})}})}),t.callee&&t.callee.type==="MemberExpression"){const s=t.callee.object,a=js(s),n=s?.type==="MemberExpression"&&jt(s);if(a||n){const o=Object.assign({},t.callee,{optional:!0});t.callee={type:"ChainExpression",expression:o},t.optional=!0}}}function er(t){const e={type:"VariableDeclaration",kind:"let",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:t},init:{type:"Literal",value:0}}]},i={type:"IfStatement",test:{type:"BinaryExpression",operator:">",left:{type:"UpdateExpression",operator:"++",prefix:!0,argument:{type:"Identifier",name:t}},right:{type:"Identifier",name:"__maxLoops"}},consequent:{type:"ThrowStatement",argument:{type:"NewExpression",callee:{type:"Identifier",name:"Error"},arguments:[{type:"Literal",value:`Loop exceeded maximum iterations (${t})`}]}},alternate:null};return{counterDecl:e,guardCheck:i}}function Fi(t,e){let i=null;if(t.left.type==="Identifier")i=le(t.left.name,e);else if(t.left.type==="MemberExpression"&&t.left.computed){if(t.left.object.type==="Identifier"){const r=t.left.object.name,[s,a]=e.getVariable(r),n=s!==r,o=e.isContextBound(r);(n||o)&&!e.isLoopVariable(r)&&t.left.property.type==="Literal"&&t.left.property.value===0&&(i=le(r,e))}}else if(t.left.type==="MemberExpression"&&!t.left.computed){let r=null,s=t.left;for(;s.type==="MemberExpression"&&!s.computed;){if(s.object.type==="Identifier"){r=s;break}s=s.object}if(r){const a=r.object.name,[n,o]=e.getVariable(a);if(n!==a&&!e.isLoopVariable(a)){const l=le(a,e),c=S.createGetCall(l,0);r.object=c}}}if(te(t.right,{parent:t.right,inNamespaceCall:!1},{Identifier(r,s,a){if(it.includes(r.name)&&e.isContextBound(r.name)){const m={type:"MemberExpression",object:{type:"Identifier",name:r.name},property:{type:"Identifier",name:"__value"},computed:!1},x=S.createGetCall(m,0);Object.assign(r,x),delete r.name;return}r.parent=s.parent,ee(r,e);const n=r.parent&&r.parent.type==="BinaryExpression",o=r.parent&&r.parent.type==="ConditionalExpression",l=e.isContextBound(r.name)&&!e.isRootParam(r.name),c=r.parent&&r.parent.type==="MemberExpression"&&r.parent.computed&&r.parent.object===r,h=r.parent&&r.parent._isParamCall,p=r.parent&&r.parent.type==="MemberExpression",u=r.name==="NaN",f=r.parent&&r.parent.type==="CallExpression"&&r.parent.callee&&r.parent.callee.object&&r.parent.callee.object.name===Z&&r.parent.callee.property.name==="get";(l||o||n)&&(r.type==="MemberExpression"?bt(r,e):r.type==="Identifier"&&!p&&!c&&!h&&!u&&!f&&be(r))},MemberExpression(r,s,a){ue(r,"",e),r.type==="CallExpression"?r.arguments.forEach(n=>a(n,{parent:r,inNamespaceCall:s.inNamespaceCall})):r.object&&a(r.object,{parent:r,inNamespaceCall:s.inNamespaceCall})},CallExpression(r,s,a){const n=r.callee&&r.callee.type==="MemberExpression"&&r.callee.object&&r.callee.object.type==="Identifier"&&e.isContextBound(r.callee.object.name);ne(r,e),r.type==="CallExpression"&&(r.callee.type==="MemberExpression"&&a(r.callee,{parent:r,inNamespaceCall:n||s.inNamespaceCall}),r.arguments.forEach(o=>a(o,{parent:r,inNamespaceCall:n||s.inNamespaceCall})))}}),i){let r=t.right;if(t.operator!=="="){const a=t.operator.replace("=",""),n=S.createGetCall(i,0);r={type:"BinaryExpression",operator:a,left:n,right:t.right,start:t.start,end:t.end}}const s=S.createSetCall(i,r);t.start&&(s.start=t.start),t.end&&(s.end=t.end),Object.assign(t,s)}}function $s(t,e){t._skipTransformation||t.declarations.forEach(i=>{if(i.init&&i.init.type==="Identifier"&&it.includes(i.init.name)&&e.isContextBound(i.init.name)){const u=i.init.name;Object.assign(i.init,{type:"MemberExpression",object:{type:"Identifier",name:u},property:{type:"Identifier",name:"__value"},computed:!1}),delete i.init.name}const r=i.init&&i.init.type==="MemberExpression"&&i.init.object&&(i.init.object.name==="context"||i.init.object.name===Z||i.init.object.name==="context2"),s=i.init&&i.init.type==="MemberExpression"&&i.init.object?.object&&(i.init.object.object.name==="context"||i.init.object.object.name===Z||i.init.object.object.name==="context2"),a=i.init&&i.init.type==="ArrowFunctionExpression";if(r){i.id.name&&e.addContextBoundVar(i.id.name),i.id.properties&&i.id.properties.forEach(u=>{u.key.name&&e.addContextBoundVar(u.key.name)}),i.init.object.name=Z;return}if(s){i.id.name&&e.addContextBoundVar(i.id.name),i.id.properties&&i.id.properties.forEach(u=>{u.key.name&&e.addContextBoundVar(u.key.name)}),i.init.object.object.name=Z;return}e.addVariable(i.id.name,t.kind);const n=t.kind,o=e.isArrayPatternElement(i.id.name)&&i.init&&i.init.type==="MemberExpression"&&i.init.computed;i.init&&!a&&!o&&(i.init.type==="CallExpression"&&i.init.callee.type==="MemberExpression"&&i.init.callee.object&&i.init.callee.object.type==="Identifier"&&e.isContextBound(i.init.callee.object.name)?ne(i.init,e):te(i.init,{parent:i.init},{Identifier(u,f){u.parent=f.parent,ee(u,e);const m=u.parent&&u.parent.type==="BinaryExpression",x=u.parent&&u.parent.type==="UnaryExpression",_=u.parent&&u.parent.type==="ConditionalExpression",b=u.parent&&u.parent.type==="CallExpression"&&u.parent.callee&&u.parent.callee.object&&u.parent.callee.object.name===Z&&u.parent.callee.property.name==="get";u.type==="Identifier"&&(m||x||_)&&!b&&be(u)},CallExpression(u,f,m){u.callee.type==="Identifier"&&(u.callee.parent=u),u.arguments.forEach(x=>{x.type==="Identifier"&&(x.parent=u)}),(u.callee.type==="ArrowFunctionExpression"||u.callee.type==="FunctionExpression")&&m(u.callee,{parent:u}),ne(u,e),u.type==="CallExpression"&&(u.callee.type==="MemberExpression"&&m(u.callee,{parent:u}),u.arguments.forEach(x=>m(x,{parent:u})))},BinaryExpression(u,f,m){u.left.type==="Identifier"&&(u.left.parent=u),u.right.type==="Identifier"&&(u.right.parent=u),m(u.left,{parent:u}),m(u.right,{parent:u})},MemberExpression(u,f,m){u.object&&u.object.type==="Identifier"&&(u.object.parent=u),u.property&&u.property.type==="Identifier"&&(u.property.parent=u),ue(u,"",e),u.type==="CallExpression"?u.arguments.forEach(x=>m(x,{parent:u})):u.object&&m(u.object,{parent:u})},AwaitExpression(u,f,m){u.argument&&(u.argument._insideAwait=!0,m(u.argument,{parent:u}),u.argument.type==="Identifier"&&u.argument._wasInsideAwait&&Object.assign(u,u.argument))},ArrowFunctionExpression(u,f,m){if(u.body)if(u.body.type==="BlockStatement"){const x=[];u.body.body.forEach(_=>{e.enterHoistingScope(),m(_,{parent:u.body,insideIIFE:!0});const b=e.exitHoistingScope();x.push(...b),x.push(_)}),u.body.body=x}else m(u.body,{parent:u,insideIIFE:!0})},FunctionExpression(u,f,m){if(u.body&&u.body.type==="BlockStatement"){const x=[];u.body.body.forEach(_=>{e.enterHoistingScope(),m(_,{parent:u.body,insideIIFE:!0});const b=e.exitHoistingScope();x.push(...b),x.push(_)}),u.body.body=x}},SwitchStatement(u,f,m){u.discriminant&&(u.discriminant.parent=u,m(u.discriminant,{parent:u})),u.cases&&u.cases.forEach(x=>{x.parent=u,m(x,{parent:u})})},SwitchCase(u,f,m){if(u.test&&(u.test.parent=u,m(u.test,{parent:u})),u.consequent){const x=[];u.consequent.forEach(_=>{e.enterHoistingScope(),_.parent=u,m(_,{parent:u});const b=e.exitHoistingScope();x.push(...b),x.push(_)}),u.consequent=x}},AssignmentExpression(u,f,m){if(f.insideIIFE){if(u.left.type==="Identifier"){const[x]=e.getVariable(u.left.name);if(x===u.left.name&&!e.isContextBound(u.left.name)){m(u.right,{parent:u});return}}Fi(u,e)}}}));const l=le(i.id.name,e),c=!o&&i.init&&i.init.type==="MemberExpression"&&i.init.computed&&i.init.property&&(i.init.property.type==="Literal"||i.init.property.type==="MemberExpression");if(i.init?.property?.type==="MemberExpression"&&(i.init.property._indexTransformed||(bt(i.init.property,e),i.init.property._indexTransformed=!0)),n==="var"){const u=e.getCurrentHoistingScope();if(u){for(const f of u)if(f.type==="VariableDeclaration")for(const m of f.declarations){if(!m.init||m.init.type!=="CallExpression")continue;const x=m.init.callee;if(x?.type!=="MemberExpression")continue;let _;const b=x.property?.name;if(x.object?.type==="Identifier"?_=x.object.name:x.object?.type==="MemberExpression"&&x.object.property?.name&&(_=x.object.property.name),_&&b){const w=`${_}.${b}`;ua.includes(w)&&(m.init={type:"ArrowFunctionExpression",params:[],body:m.init,expression:!0,async:!1})}}}}let h;i.init?a||o?h=i.init:n==="var"?h=S.createInitVarCall(l,i.init):h=S.createInitCall(l,c?i.init.object:i.init,c?i.init.property:void 0):h=S.createIdentifier("undefined");const p=S.createExpressionStatement(S.createAssignmentExpression(l,h));if(o){const u=i.init.object.name,f=le(u,e),m=i.init.property.value,x={type:"MemberExpression",object:S.createGetCall(f,0),property:{type:"Literal",value:m},computed:!0};p.expression.right=S.createCallExpression(S.createMemberExpression(S.createContextIdentifier(),S.createIdentifier("init")),[l,x])}a&&(e.pushScope("fn"),te(i.init.body,e,{IfStatement(u,f,m){f.pushScope("if"),m(u.consequent,f),u.alternate&&(f.pushScope("els"),m(u.alternate,f),f.popScope()),f.popScope()},VariableDeclaration(u,f){$s(u,f)},Identifier(u,f){ee(u,f)},AssignmentExpression(u,f){Fi(u,f)},SwitchStatement(u,f,m){u.discriminant.parent=u,m(u.discriminant,f),u.cases.forEach(x=>{x.parent=u,m(x,f)})},SwitchCase(u,f,m){u.test&&(u.test.parent=u,m(u.test,f));const x=[];u.consequent.forEach(_=>{f.enterHoistingScope(),m(_,f);const b=f.exitHoistingScope();x.push(...b),x.push(_)}),u.consequent=x},BlockStatement(u,f,m){const x=[];u.body.forEach(_=>{f.enterHoistingScope(),m(_,f);const b=f.exitHoistingScope();x.push(...b),x.push(_)}),u.body=x}}),e.popScope()),Object.assign(t,p)})}function wa(t,e,i){if(e.setSuppressHoisting(!0),t.init&&t.init.type==="VariableDeclaration"){const a=t.init.declarations[0],n=a.id.name;e.addLoopVariable(n,n),t.init={type:"VariableDeclaration",kind:t.init.kind,declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:n},init:a.init}]},a.init&&te(a.init,e,{Identifier(o,l){!e.isLoopVariable(o.name)&&!o.computed&&(e.pushScope("for"),ee(o,l),o.type==="Identifier"&&(e.isContextBound(o.name)&&o.parent&&o.parent.type==="MemberExpression"&&o.parent.object===o||(o.computed=!0,be(o))),e.popScope())},MemberExpression(o,l,c){e.pushScope("for"),ue(o,"",e),e.popScope(),o.type==="MemberExpression"&&o.object&&(o.object.type!=="Identifier"||!e.isContextBound(o.object.name))&&c(o.object,l)},CallExpression(o,l,c){o.callee.parent=o,c(o.callee,l);for(const h of o.arguments)c(h,l)}})}t.test&&te(t.test,e,{Identifier(a,n){!e.isLoopVariable(a.name)&&!a.computed&&(e.pushScope("for"),ee(a,n),a.type==="Identifier"&&(e.isContextBound(a.name)&&a.parent&&a.parent.type==="MemberExpression"&&a.parent.object===a||(a.computed=!0,be(a))),e.popScope())},MemberExpression(a,n,o){e.pushScope("for"),ue(a,"",e),e.popScope(),a.type==="MemberExpression"&&a.object&&(a.object.type!=="Identifier"||!e.isContextBound(a.object.name))&&o(a.object,n)},CallExpression(a,n,o){a.callee.parent=a,o(a.callee,n);for(const l of a.arguments)o(l,n)}}),t.update&&te(t.update,e,{Identifier(a,n){!e.isLoopVariable(a.name)&&!a.computed&&(e.pushScope("for"),ee(a,n),a.type==="Identifier"&&(e.isContextBound(a.name)&&a.parent&&a.parent.type==="MemberExpression"&&a.parent.object===a||(a.computed=!0,be(a))),e.popScope())},MemberExpression(a,n,o){e.pushScope("for"),ue(a,"",e),e.popScope(),a.type==="MemberExpression"&&a.object&&(a.object.type!=="Identifier"||!e.isContextBound(a.object.name))&&o(a.object,n)},CallExpression(a,n,o){a.callee.parent=a,o(a.callee,n);for(const l of a.arguments)o(l,n)}}),e.setSuppressHoisting(!1);const r=e.getNextLoopGuardName(),s=er(r);if(e.addHoistedStatement(s.counterDecl),e.pushScope("for"),i(t.body,e),e.popScope(),t.body.type==="BlockStatement"&&t.body.body.unshift(s.guardCheck),t.init&&t.init.type==="VariableDeclaration"){const a=t.init.declarations[0];e.removeLoopVariable(a.id.name)}}function Sa(t,e,i){e.setSuppressHoisting(!0),t.test&&te(t.test,e,{Identifier(a,n){a.computed||(ee(a,n),a.type==="Identifier"&&(e.isContextBound(a.name)&&a.parent&&a.parent.type==="MemberExpression"&&a.parent.object===a||(a.computed=!0,be(a))))},MemberExpression(a,n,o){ue(a,"",e),a.type==="MemberExpression"&&a.object&&(a.object.type!=="Identifier"||!e.isContextBound(a.object.name))&&o(a.object,n)},CallExpression(a,n,o){if(a.callee.parent=a,o(a.callee,n),ne(a,n),a.arguments)for(const l of a.arguments)o(l,n)}}),e.setSuppressHoisting(!1);const r=e.getNextLoopGuardName(),s=er(r);e.addHoistedStatement(s.counterDecl),e.pushScope("whl"),i(t.body,e),e.popScope(),t.body.type==="BlockStatement"&&t.body.body.unshift(s.guardCheck)}function Ea(t,e){te(t,e,{MemberExpression(i,r,s){i.object&&i.object.type==="Identifier"&&!e.isContextBound(i.object.name)&&!i.computed&&(i.object.parent=i,s(i.object,r)),ue(i,"",e)},CallExpression(i,r){ne(i,r)},Identifier(i,r){ee(i,r);const s=e.getCurrentScopeType()==="if";e.isContextBound(i.name)&&!e.isRootParam(i.name)&&s&&be(i)}})}function Na(t,e,i){t.test&&(e.pushScope("if"),Ea(t.test,e),e.popScope()),e.pushScope("if"),i(t.consequent,e),e.popScope(),t.alternate&&(e.pushScope("els"),i(t.alternate,e),e.popScope())}function Ca(t,e){const i=e.getCurrentScopeType();if(t.argument&&(t.argument.type==="ArrayExpression"?(t.argument.elements=t.argument.elements.map(r=>r.type==="Identifier"?e.isContextBound(r.name)&&!e.isRootParam(r.name)?S.createGetCall(r,0):Ls(r.name,e):r.type==="MemberExpression"?r.object&&r.object.type==="MemberExpression"&&r.object.object&&r.object.object.type==="Identifier"&&r.object.object.name==="$"&&r.object.property&&["const","let","var","params"].includes(r.object.property.name)?S.createGetCall(r,0):(r.computed&&r.object.type==="Identifier"&&e.isContextBound(r.object.name)&&!e.isRootParam(r.object.name)||ue(r,"",e),r):((r.type==="BinaryExpression"||r.type==="LogicalExpression"||r.type==="ConditionalExpression"||r.type==="CallExpression"||r.type==="UnaryExpression")&&te(r,e,{Identifier(s,a){ee(s,a),s.type==="Identifier"&&!s._arrayAccessed&&(be(s),s._arrayAccessed=!0)},MemberExpression(s){ue(s,"",e)},CallExpression(s,a,n){(s.callee.type==="ArrowFunctionExpression"||s.callee.type==="FunctionExpression")&&n(s.callee,a),ne(s,a),s.type==="CallExpression"&&s.arguments.forEach(o=>n(o,a))},BinaryExpression(s,a,n){n(s.left,a),n(s.right,a)}}),r)),t.argument={type:"ArrayExpression",elements:[t.argument]}):t.argument.type==="ObjectExpression"?t.argument.properties=t.argument.properties.map(r=>r.shorthand?e.isContextBound(r.value.name)?r:(e.getVariable(r.value.name),{type:"Property",key:S.createIdentifier(r.key.name),value:le(r.value.name,e),kind:"init",method:!1,shorthand:!1,computed:!1}):(r.value&&r.value.type==="Identifier"&&(e.isContextBound(r.value.name)&&!e.isRootParam(r.value.name)||e.isContextBound(r.value.name)||(r.value=le(r.value.name,e))),r)):t.argument.type==="Identifier"?(ee(t.argument,e),t.argument.type==="Identifier"&&be(t.argument)):t.argument.type==="MemberExpression"&&t.argument.object.type==="Identifier"&&!e.isContextBound(t.argument.object.name)&&!e.isLoopVariable(t.argument.object.name)&&ee(t.argument.object,e),i==="fn")){t.argument.type==="Identifier"&&e.isContextBound(t.argument.name)&&!e.isRootParam(t.argument.name)?t.argument=S.createArrayAccess(t.argument,0):t.argument.type==="MemberExpression"?t.argument.object.type==="Identifier"&&e.isContextBound(t.argument.object.name)&&!e.isRootParam(t.argument.object.name)&&(t.argument._indexTransformed||(bt(t.argument,e),t.argument._indexTransformed=!0)):(t.argument.type==="BinaryExpression"||t.argument.type==="LogicalExpression"||t.argument.type==="ConditionalExpression"||t.argument.type==="CallExpression"||t.argument.type==="UnaryExpression")&&te(t.argument,e,{Identifier(s,a){ee(s,a),s.type==="Identifier"&&!s._arrayAccessed&&(be(s),s._arrayAccessed=!0)},MemberExpression(s){ue(s,"",e)},CallExpression(s,a,n){(s.callee.type==="ArrowFunctionExpression"||s.callee.type==="FunctionExpression")&&n(s.callee,a),ne(s,a),s.type==="CallExpression"&&s.arguments.forEach(o=>n(o,a))},BinaryExpression(s,a,n){n(s.left,a),n(s.right,a)},ArrowFunctionExpression(s,a,n){if(s.body)if(s.body.type==="BlockStatement"){const o=[];s.body.body.forEach(l=>{e.enterHoistingScope(),n(l,a);const c=e.exitHoistingScope();o.push(...c),o.push(l)}),s.body.body=o}else n(s.body,a)},FunctionExpression(s,a,n){if(s.body&&s.body.type==="BlockStatement"){const o=[];s.body.body.forEach(l=>{e.enterHoistingScope(),n(l,a);const c=e.exitHoistingScope();o.push(...c),o.push(l)}),s.body.body=o}},SwitchStatement(s,a,n){s.discriminant.parent=s,n(s.discriminant,a),s.cases.forEach(o=>{o.parent=s,n(o,a)})},SwitchCase(s,a,n){s.test&&(s.test.parent=s,n(s.test,a));const o=[];s.consequent.forEach(l=>{e.enterHoistingScope(),n(l,a);const c=e.exitHoistingScope();o.push(...c),o.push(l)}),s.consequent=o},BlockStatement(s,a,n){const o=[];s.body.forEach(l=>{a.enterHoistingScope(),n(l,a);const c=a.exitHoistingScope();o.push(...c),o.push(l)}),s.body=o}});const r=S.createCallExpression(S.createMemberExpression(S.createContextIdentifier(),S.createIdentifier("precision")),[t.argument]);t.argument=r}}function Ia(t,e,i){const r=S.createVariableDeclaration("$$",S.createCallExpression(S.createMemberExpression(S.createContextIdentifier(),S.createIdentifier("peekCtx")),[]));r._skipTransformation=!0,e.addLoopVariable("$$","$$"),t.body&&t.body.type==="BlockStatement"&&(t.body.body.unshift(r),e.pushScope("fn"),t.params.forEach(s=>{s.type==="Identifier"&&e.addLocalSeriesVar(s.name)}),i(t.body,e),t.params.forEach(s=>{s.type==="Identifier"&&e.removeLocalSeriesVar(s.name)}),e.popScope())}function ka(t){const e={...N,LineComment:()=>{}};function i(o){return o?o.type==="Identifier"?o.name:o.type==="CallExpression"&&o.callee?.type==="MemberExpression"&&o.callee.object?.name==="$"&&o.callee.property?.name==="get"&&o.arguments?.[0]?.type==="Identifier"?o.arguments[0].name:null:null}const r=new Map;ot(t,{FunctionDeclaration(o){o.id?.name&&r.set(o.id.name,o)}},e);function s(o){let l=!1;const c={...e,FunctionDeclaration:()=>{},FunctionExpression:()=>{},ArrowFunctionExpression:()=>{}};return ot(o,{AwaitExpression(){l=!0}},c),l}let a=!0,n=0;for(;a&&n<20;){a=!1,n++,ot(t,{ArrowFunctionExpression(c){!c.async&&s(c.body)&&(c.async=!0,a=!0)},FunctionExpression(c){!c.async&&s(c.body)&&(c.async=!0,a=!0)}},e);const o=[];ot(t,{CallExpression(c){!c._asyncWrapped&&(c.callee?.type==="ArrowFunctionExpression"||c.callee?.type==="FunctionExpression")&&c.callee.async===!0&&o.push(c)}},e);for(const c of o){const h={};for(const p of Object.keys(c))h[p]=c[p];h._asyncWrapped=!0;for(const p of Object.keys(c))delete c[p];c.type="AwaitExpression",c.argument=h,a=!0}const l=new Set;for(const[c,h]of r)s(h.body)&&(h.async||(h.async=!0,a=!0),l.add(c));if(l.size>0){const c=[];ot(t,{CallExpression(h){if(!h._asyncWrapped&&h.callee?.type==="MemberExpression"&&h.callee.object?.name==="$"&&h.callee.property?.name==="call"&&h.arguments?.length>0){const p=i(h.arguments[0]);p&&l.has(p)&&c.push(h)}}},e);for(const h of c){const p={};for(const u of Object.keys(h))p[u]=h[u];p._asyncWrapped=!0;for(const u of Object.keys(h))delete h[u];h.type="AwaitExpression",h.argument=p,a=!0}}}}function Aa(t){const e={...N,LineComment:()=>{}};ot(t,{BinaryExpression(i){if(i.operator==="=="||i.operator==="==="){const r=S.createMathEqCall(i.left,i.right);r._transformed=!0,Object.assign(i,r)}else if(i.operator==="!="||i.operator==="!=="){const r=S.createMathNeqCall(i.left,i.right);r._transformed=!0,Object.assign(i,r)}}},e)}function Ta(t,e,i,r={debug:!1,ln:!1},s=[]){const a=n=>{if(!r.debug||!n.loc||!s.length)return null;const o=n.loc.start.line-1;if(o>=0&&o<s.length){const l=s[o].trim();if(l)return{type:"LineComment",value:`${r.ln?` [Line ${n.loc.start.line}]`:""} ${l}`}}return null};te(t,e,{Program(n,o,l){const c=[];n.body.forEach(h=>{o.enterHoistingScope(),l(h,o);const p=o.exitHoistingScope(),u=a(h);u&&c.push(u),c.push(...p),c.push(h)}),n.body=c},BlockStatement(n,o,l){const c=[];n.body.forEach(h=>{o.enterHoistingScope(),l(h,o);const p=o.exitHoistingScope(),u=a(h);u&&c.push(u),c.push(...p),c.push(h)}),n.body=c},ReturnStatement(n,o,l){n.argument&&n.argument.type!=="ArrayExpression"&&n.argument.type!=="ObjectExpression"&&n.argument.type!=="Identifier"&&n.argument.type!=="MemberExpression"&&o.getCurrentScopeType()!=="fn"&&l(n.argument,o),Ca(n,o)},VariableDeclaration(n,o){$s(n,o)},Identifier(n,o){ee(n,o)},CallExpression(n,o,l){n.callee&&(n.callee.type==="ArrowFunctionExpression"||n.callee.type==="FunctionExpression")?l(n.callee,o):n.callee&&n.callee.type==="MemberExpression"&&n.callee.object&&(n.callee.object.parent=n.callee,l(n.callee.object,o)),ne(n,o)},ArrowFunctionExpression(n,o,l){n.body&&l(n.body,o)},FunctionExpression(n,o,l){n.body&&l(n.body,o)},ForOfStatement(n,o,l){if(n.left&&n.left.type==="VariableDeclaration"){n.left._skipTransformation=!0;const p=n.left.declarations[0];p.id.type==="Identifier"?o.addLoopVariable(p.id.name,p.id.name):p.id.type==="ArrayPattern"&&p.id.elements.forEach(u=>{u.type==="Identifier"&&o.addLoopVariable(u.name,u.name)})}if(n.right&&n.right.type==="Identifier"){ee(n.right,o),n.right.type==="Identifier"&&be(n.right);const p={...n.right};let u=S.createMemberExpression(p,S.createIdentifier("array"),!1);n.left&&n.left.type==="VariableDeclaration"&&n.left.declarations[0].id.type==="ArrayPattern"&&(u=S.createCallExpression(S.createMemberExpression(u,S.createIdentifier("entries"),!1),[])),Object.assign(n.right,u)}else n.right&&l(n.right,o);const c=o.getNextLoopGuardName(),h=er(c);if(o.addHoistedStatement(h.counterDecl),n.body&&l(n.body,o),n.body&&n.body.type==="BlockStatement"&&n.body.body.unshift(h.guardCheck),n.left&&n.left.type==="VariableDeclaration"){const p=n.left.declarations[0];p.id.type==="Identifier"?o.removeLoopVariable(p.id.name):p.id.type==="ArrayPattern"&&p.id.elements.forEach(u=>{u.type==="Identifier"&&o.removeLoopVariable(u.name)})}},ForInStatement(n,o,l){n.left&&n.left.type==="VariableDeclaration"&&(n.left._skipTransformation=!0),n.right&&n.right.type==="Identifier"?(ee(n.right,o),n.right.type==="Identifier"&&be(n.right)):n.right&&l(n.right,o),n.body&&l(n.body,o)},MemberExpression(n,o,l){n.object&&(n.object.type==="CallExpression"||n.object.type==="MemberExpression")&&(n.object.parent=n,l(n.object,o)),n.object&&n.object.type==="Identifier"&&!o.isContextBound(n.object.name)&&(n.object.parent=n,l(n.object,o)),ue(n,i,o)},AssignmentExpression(n,o,l){if(Fi(n,o),n.type==="CallExpression"&&n.arguments){const c=h=>{h&&(h.type==="CallExpression"&&h.callee&&(h.callee.type==="ArrowFunctionExpression"||h.callee.type==="FunctionExpression")&&l(h.callee,o),h.type==="BinaryExpression"&&(c(h.left),c(h.right)))};n.arguments.forEach(h=>c(h))}},FunctionDeclaration(n,o,l){Ia(n,o,l)},ForStatement(n,o,l){wa(n,o,l)},WhileStatement(n,o,l){Sa(n,o,l)},IfStatement(n,o,l){Na(n,o,l)},SwitchStatement(n,o,l){n.discriminant.parent=n,l(n.discriminant,o),n.cases.forEach(c=>{c.parent=n,l(c,o)})},SwitchCase(n,o,l){n.test&&(n.test.parent=n,l(n.test,o));const c=[];n.consequent.forEach(h=>{o.enterHoistingScope(),l(h,o);const p=o.exitHoistingScope();c.push(...p),c.push(h)}),n.consequent=c},AwaitExpression(n,o,l){n.argument&&(n.argument._insideAwait=!0,l(n.argument,o),n.argument.type==="Identifier"&&n.argument._wasInsideAwait===!0&&(n.type="Identifier",n.name=n.argument.name,n.argument._wasHoisted&&(n._wasHoisted=n.argument._wasHoisted),delete n.argument))}})}const g={NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",IDENTIFIER:"IDENTIFIER",KEYWORD:"KEYWORD",OPERATOR:"OPERATOR",LPAREN:"LPAREN",RPAREN:"RPAREN",LBRACKET:"LBRACKET",RBRACKET:"RBRACKET",LBRACE:"LBRACE",RBRACE:"RBRACE",COMMA:"COMMA",DOT:"DOT",COLON:"COLON",SEMICOLON:"SEMICOLON",INDENT:"INDENT",DEDENT:"DEDENT",NEWLINE:"NEWLINE",COMMENT:"COMMENT",EOF:"EOF"},Pa=new Set(["if","else","for","while","switch","break","continue","var","varip","type","and","or","not","to","by","in","import","export","method","extends","enum"]),Da=["==","!=","<=",">=",":=","+=","-=","*=","/=","%=","=>","//","and","or","not"];class Ma{constructor(e,i,r,s,a=0){this.type=e,this.value=i,this.line=r,this.column=s,this.indent=a}}var Ra=Object.defineProperty,Oa=(t,e,i)=>e in t?Ra(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Fe=(t,e,i)=>Oa(t,typeof e!="symbol"?e+"":e,i);class Va{constructor(e){Fe(this,"source"),Fe(this,"pos"),Fe(this,"line"),Fe(this,"column"),Fe(this,"tokens"),Fe(this,"indentStack"),Fe(this,"atLineStart"),Fe(this,"parenDepth"),Fe(this,"bracketDepth"),Fe(this,"braceDepth"),this.source=e,this.pos=0,this.line=1,this.column=1,this.tokens=[],this.indentStack=[0],this.atLineStart=!0,this.parenDepth=0,this.bracketDepth=0,this.braceDepth=0}tokenize(){for(;this.pos<this.source.length;){const e=this.peek();if(e==="\r"){this.advance();continue}if(e===`
|
|
16
|
+
}`}function ga(t){te(t,null,{VariableDeclaration(e,i,r){e.declarations&&e.declarations.length>0&&e.declarations.forEach(s=>{if(s.init&&s.init.type==="ArrowFunctionExpression"&&s.init.start!==0){const a={type:"FunctionDeclaration",id:s.id,params:s.init.params,body:s.init.body.type==="BlockStatement"?s.init.body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:s.init.body}]},async:s.init.async,generator:!1};Object.assign(e,a)}}),e.body&&e.body.body&&e.body.body.forEach(s=>r(s,i))}})}function ya(t,e){ot(t,{VariableDeclaration(i){i.declarations.forEach(r=>{const s=r.init&&r.init.type==="MemberExpression"&&r.init.object&&(r.init.object.name==="context"||r.init.object.name===Z||r.init.object.name==="context2"),a=r.init&&r.init.type==="MemberExpression"&&r.init.object?.object&&(r.init.object.object.name==="context"||r.init.object.object.name===Z||r.init.object.object.name==="context2");(s||a)&&(r.id.name&&e.addContextBoundVar(r.id.name),r.id.properties&&r.id.properties.forEach(n=>{n.key.name&&e.addContextBoundVar(n.key.name)}))})}})}function xa(t,e,i=!1){t.params.forEach(r=>{r.type==="Identifier"&&i&&e.addContextBoundVar(r.name,i)})}function _a(t,e){let i;return aa(t,{FunctionDeclaration(r){r.id&&r.id.name&&(e.addReservedName(r.id.name),e.addUserFunction(r.id.name))},ExpressionStatement(r){const s=r.expression;s&&s.type==="AssignmentExpression"&&s.operator==="="&&s.left?.type==="MemberExpression"&&s.left.property?.name==="__pineMethod__"&&s.left.object?.type==="Identifier"&&s.right?.value===!0&&e.addUserMethod(s.left.object.name)},ArrowFunctionExpression(r){const s=r.start===0;s&&r.params&&r.params.length>0&&(i=r.params[0].name,r.params[0].name=Z),xa(r,e,s)},VariableDeclaration(r,s){const a=s.length>1?s[s.length-2]:null,n=a&&(a.type==="ForOfStatement"||a.type==="ForInStatement")&&a.left===r;r.declarations.forEach(o=>{if(o.id.type==="Identifier")e.addReservedName(o.id.name);else if(o.id.type==="ObjectPattern")o.id.properties.forEach(l=>{l.key&&l.key.type==="Identifier"&&e.addReservedName(l.key.name)});else if(o.id.type==="ArrayPattern"){if(o.id.elements?.forEach(u=>{u&&u.type==="Identifier"&&e.addReservedName(u.name)}),n)return;const l=e.generateTempVar(),c={type:"VariableDeclaration",kind:r.kind,declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:l},init:o.init}]},h=c.declarations[0].init;h&&h.type==="CallExpression"&&(h.callee.type==="ArrowFunctionExpression"||h.callee.type==="FunctionExpression")&&ot(h.callee.body,{ReturnStatement(u){u.argument&&u.argument.type==="ArrayExpression"&&(u.argument={type:"ArrayExpression",elements:[u.argument]})}}),o.id.elements?.forEach(u=>{u.type==="Identifier"&&e.addArrayPatternElement(u.name)});const p=o.id.elements.map((u,f)=>({type:"VariableDeclaration",kind:r.kind,declarations:[{type:"VariableDeclarator",id:u,init:{type:"MemberExpression",object:{type:"Identifier",name:l},property:{type:"Literal",value:f},computed:!0}}]}));Object.assign(r,{type:"BlockStatement",body:[c,...p]})}})},ForStatement(r){}}),i}const Vi={type:"Identifier",name:"undefined"};function le(t,e){const[i,r]=e.getVariable(t);if((i.match(/^fn\d+_/)||e.isVariableInFunctionScope(t))&&t!=="$$"){const[s]=e.getVariable("$$");if(s)return w.createLocalContextVariableReference(r,i)}return w.createContextVariableReference(r,i)}function Os(t,e){const i=le(t,e);return w.createGetCall(i,0)}function bt(t,e){if(t.computed&&t.property.type==="Identifier"){if(e.isLoopVariable(t.property.name)){if(t.object.type==="Identifier"&&!e.isLoopVariable(t.object.name)){if(e.isLocalSeriesVar(t.object.name)){const i=w.createIdentifier(t.object.name);i._skipTransformation=!0;const r=w.createGetCall(i,t.property);Object.assign(t,r),t._indexTransformed=!0;return}if(!e.isContextBound(t.object.name)){const i=le(t.object.name,e),r=w.createGetCall(i,t.property);Object.assign(t,r),t._indexTransformed=!0}}return}e.isContextBound(t.property.name)||(t.property=le(t.property.name,e),t.property=w.createGetCall(t.property,0))}if(t.computed&&t.object.type==="Identifier"){if(e.isLoopVariable(t.object.name))return;if(e.isLocalSeriesVar(t.object.name)){const i=w.createIdentifier(t.object.name);i._skipTransformation=!0;const r=w.createGetCall(i,t.property);Object.assign(t,r),t._indexTransformed=!0;return}if(e.isContextBound(t.object.name)||(t.object=le(t.object.name,e)),t.property.type==="MemberExpression"){const i=t.property;i._indexTransformed||(bt(i,e),i._indexTransformed=!0)}}t.computed&&t.property.type!=="Identifier"&&t.property.type!=="MemberExpression"&&!t._indexTransformed&&(t.property.type==="BinaryExpression"||t.property.type==="UnaryExpression"||t.property.type==="LogicalExpression"||t.property.type==="ConditionalExpression")&&(t.property=Ke(t.property,e))}function be(t,e){const i=w.createGetCall(w.createIdentifier(t.name),0);t.start!==void 0&&(i.start=t.start),t.end!==void 0&&(i.end=t.end),i._indexTransformed=!0,Object.assign(t,i)}function ee(t,e){if(!t._skipTransformation&&t.name!==Z){if(it.includes(t.name)&&e.isContextBound(t.name)){const u=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee===t,f=t.parent&&t.parent.type==="MemberExpression"&&t.parent.object===t&&!t.parent.computed;if(!u&&!f){const m={type:"MemberExpression",object:{type:"Identifier",name:t.name},property:{type:"Identifier",name:"__value"},computed:!1},x=w.createGetCall(m,0);Object.assign(t,x),delete t.name;return}}if(t.name==="Math"||t.name==="NaN"||t.name==="undefined"||t.name==="Infinity"||t.name==="null"||t.name.startsWith("'")&&t.name.endsWith("'")||t.name.startsWith('"')&&t.name.endsWith('"')||t.name.startsWith("`")&&t.name.endsWith("`")||e.isLoopVariable(t.name))return;let i=!1;if(t.parent&&t.parent.type==="CallExpression"&&t.parent.arguments.includes(t)){const u=t.parent.callee;if(u.type==="MemberExpression"&&u.object&&u.object.name===Z&&["get","set","init","param","call"].includes(u.property.name)){const f=t.parent.arguments.indexOf(t);u.property.name==="call"?f>=2&&(i=!0):f===0&&(i=!0)}else{const f=u.type==="MemberExpression"&&u.object&&u.object.type==="Identifier"&&_t.includes(u.object.name);u.type==="MemberExpression"&&!f?i=!1:i=!0}}const r=t.parent&&t.parent.type==="MemberExpression"&&t.parent.object===t&&e.isContextBound(t.name),s=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee&&t.parent.callee.type==="MemberExpression"&&t.parent.callee.property.name==="param";t.parent&&t.parent.type==="AssignmentExpression"&&t.parent.left;const a=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee===t,n=t.parent&&t.parent.type==="MemberExpression"&&t.parent.computed&&t.parent.object===t,o=t.parent&&t.parent.type==="MemberExpression"&&t.parent.computed&&t.parent.property===t&&t.parent.parent&&t.parent.parent.type==="CallExpression"&&t.parent.parent.callee&&t.parent.parent.callee.type==="MemberExpression"&&e.isContextBound(t.parent.parent.callee.object.name);if(r||s||i||o||a){if(a||t.parent&&t.parent.type==="CallExpression"&&t.parent.callee&&t.parent.callee.type==="MemberExpression"&&t.parent.callee.object&&t.parent.callee.object.name===Z&&t.parent.callee.property.name==="call"&&t.parent.arguments[0]===t||e.isLocalSeriesVar(t.name)||e.isContextBound(t.name)&&!e.isRootParam(t.name))return;const u=le(t.name,e);Object.assign(t,u);return}const l=e.isContextBound(t.name)&&!e.isRootParam(t.name);if(l){const u=t.parent&&t.parent.type==="CallExpression"&&t.parent.arguments.includes(t),f=t.parent&&t.parent.type==="SwitchStatement"&&t.parent.discriminant===t,m=t.parent&&t.parent.type==="SwitchCase"&&t.parent.test===t;if(!u&&!f&&!m)return}if(e.isLocalSeriesVar(t.name)){if(!n){const u=w.createIdentifier(t.name),f=w.createGetCall(u,0);Object.assign(t,f)}return}const[c,h]=e.getVariable(t.name);let p;if(l)p=w.createIdentifier(t.name);else{if(c===t.name&&!e.isContextBound(t.name))return;p=le(t.name,e)}if(n)Object.assign(t,p);else{const u=w.createGetCall(p,0);Object.assign(t,u)}}}function ue(t,e,i){if(t.object&&t.object.type==="Identifier"&&t.object.name==="Math")return;if(t.object&&t.object.type==="Identifier"&&_t.includes(t.object.name)&&i.isContextBound(t.object.name)&&!t.computed){const l=t.parent&&t.parent.type==="CallExpression"&&t.parent.callee===t,c=t.parent&&(t.parent.type==="VariableDeclarator"&&(t.parent.id.type==="ArrayPattern"||t.parent.id.type==="ObjectPattern")||t.parent.type==="AssignmentExpression"&&(t.parent.left.type==="ArrayPattern"||t.parent.left.type==="ObjectPattern")||t.parent.type==="Property");if(!l&&!c){const h={type:"CallExpression",callee:{type:"MemberExpression",object:t.object,property:t.property,computed:!1},arguments:[],_transformed:!1};t.start!==void 0&&(h.start=t.start),t.end!==void 0&&(h.end=t.end),Object.assign(t,h);return}}if(!t.computed&&t.object&&t.object.type==="Identifier"&&i.isLocalSeriesVar(t.object.name)){const l=w.createIdentifier(t.object.name);l._skipTransformation=!0,t.object=w.createGetCall(l,0);return}const r=i.getCurrentScopeType()=="if",s=i.getCurrentScopeType()=="els",a=i.getCurrentScopeType()=="for";if(!r&&!s&&!a&&t.object&&t.object.type==="Identifier"&&i.isContextBound(t.object.name)&&!i.isRootParam(t.object.name)&&!t.computed)return;t._indexTransformed||(bt(t,i),t._indexTransformed=!0);const n=t.object&&t.object.type==="MemberExpression"&&t.object.object&&t.object.object.type==="MemberExpression"&&t.object.object.object&&(t.object.object.object.name===Z||t.object.object.object.name==="$$"),o=t.object&&t.object.type==="Identifier"&&i.isContextBound(t.object.name);if(t.computed&&(n||o)){if(t.parent&&t.parent.type==="AssignmentExpression"&&t.parent.left===t)return;t.object.type==="Identifier"&&it.includes(t.object.name)&&i.isContextBound(t.object.name)&&(t.object={type:"MemberExpression",object:{type:"Identifier",name:t.object.name},property:{type:"Identifier",name:"__value"},computed:!1});const l=w.createGetCall(t.object,t.property);t.start&&(l.start=t.start),t.end&&(l.end=t.end),Object.assign(t,l),delete t.object,delete t.property,delete t.computed}}function Bt(t,e){if(t.type==="Identifier"){if(it.includes(t.name)&&e.isContextBound(t.name)){const a=t.name;return Object.assign(t,{type:"MemberExpression",object:{type:"Identifier",name:a},property:{type:"Identifier",name:"__value"},computed:!1}),delete t.name,t}if(e.isLoopVariable(t.name))return t;if(e.isRootParam(t.name)){const[a,n]=e.getVariable(t.name);return w.createContextVariableReference(n,a)}if(e.isContextBound(t.name))return t;const[i,r]=e.getVariable(t.name),s=i!==t.name;return e.isLocalSeriesVar(t.name)&&!s?t:s?le(t.name,e):i===t.name&&!e.isContextBound(t.name)?t:le(t.name,e)}return t}function Ke(t,e,i=""){switch(t.type){case"BinaryExpression":return Li(t,e,i);case"LogicalExpression":return ji(t,e,i);case"MemberExpression":{const r=!t.computed&&t.object.type==="Identifier"&&it.includes(t.object.name)&&e.isContextBound(t.object.name),s=t.object.type==="Identifier"&&!r?Bt(t.object,e):t.object;let a=s;if(!t.computed&&t.object.type==="Identifier"&&!r){const[n]=e.getVariable(t.object.name);n!==t.object.name&&!e.isLoopVariable(t.object.name)&&(a=w.createGetCall(s,0))}return{type:"MemberExpression",object:a,property:t.property,computed:t.computed}}case"Identifier":{if(e.isLoopVariable(t.name)||t.parent&&t.parent.type==="MemberExpression"&&t.parent.property===t)return t;const r=Bt(t,e);return r.type==="Identifier"&&(r.name==="NaN"||r.name==="undefined"||r.name==="Infinity"||r.name==="null"||r.name==="Math")?r:w.createGetCall(r,0)}case"UnaryExpression":return $i(t,e,i);case"ConditionalExpression":{const r=Ke(t.test,e,i),s=Ke(t.consequent,e,i),a=Ke(t.alternate,e,i);return{type:"ConditionalExpression",test:r,consequent:s,alternate:a,start:t.start,end:t.end}}}return t}function Li(t,e,i){const r=Ke(t.left,e,i),s=Ke(t.right,e,i),a={type:"BinaryExpression",operator:t.operator,left:r,right:s,start:t.start,end:t.end};return te(a,e,{CallExpression(n,o){n._transformed||ne(n,o)},MemberExpression(n){ue(n,"",e)}}),a}function ji(t,e,i){const r=Ke(t.left,e,i),s=Ke(t.right,e,i),a={type:"LogicalExpression",operator:t.operator,left:r,right:s,start:t.start,end:t.end};return te(a,e,{CallExpression(n,o){n._transformed||ne(n,o)}}),a}function yr(t,e,i){te(t,{parent:t,inNamespaceCall:!1},{Identifier(n,o,l){if(n.name=="NaN")return;if(it.includes(n.name)&&e.isContextBound(n.name)){if(o.parent&&o.parent.type==="MemberExpression"&&o.parent.object===n&&!o.parent.computed)return;const h={type:"MemberExpression",object:{type:"Identifier",name:n.name},property:{type:"Identifier",name:"__value"},computed:!1},p=w.createGetCall(h,0);Object.assign(n,p),delete n.name;return}n.parent=o.parent,ee(n,e);const c=n.parent&&n.parent.type==="BinaryExpression";(n.parent&&n.parent.type==="ConditionalExpression"||c)&&(n.type==="MemberExpression"?bt(n,e):n.type==="Identifier"&&(n.parent&&n.parent.type==="CallExpression"&&n.parent.callee&&n.parent.callee.object&&n.parent.callee.object.name===Z&&n.parent.callee.property.name==="get"||be(n)))},MemberExpression(n,o,l){ue(n,"",e),n.object&&l(n.object,{parent:n,inNamespaceCall:o.inNamespaceCall})},ConditionalExpression(n,o,l){const c={...o,parent:n};n.test&&l(n.test,c),n.consequent&&l(n.consequent,c),n.alternate&&l(n.alternate,c)},BinaryExpression(n,o,l){const c={...o,parent:n};l(n.left,c),l(n.right,c)},LogicalExpression(n,o,l){const c={...o,parent:n};l(n.left,c),l(n.right,c)},UnaryExpression(n,o,l){const c={...o,parent:n};l(n.argument,c)},CallExpression(n,o,l){const c=n.callee&&n.callee.type==="MemberExpression"&&n.callee.object&&n.callee.object.type==="Identifier"&&e.isContextBound(n.callee.object.name);ne(n,e),n.arguments.forEach(h=>l(h,{parent:n,inNamespaceCall:c||o.inNamespaceCall}))}});const r=w.createMemberExpression(w.createIdentifier(i),w.createIdentifier("param")),s=e.generateParamId(),a={type:"CallExpression",callee:r,arguments:[t,Vi,{type:"Identifier",name:`'${s}'`}],_transformed:!0,_isParamCall:!0};if(!e.shouldSuppressHoisting()){const n=s;e.addLocalSeriesVar(n);const o=w.createVariableDeclaration(n,a);return e.addHoistedStatement(o),w.createIdentifier(n)}return a}function $i(t,e,i){const r=Ke(t.argument,e,i),s={type:"UnaryExpression",operator:t.operator,prefix:t.prefix,argument:r,start:t.start,end:t.end};return te(s,e,{CallExpression(a,n){a._transformed||ne(a,n)},MemberExpression(a){ue(a,"",e)}}),s}function dt(t,e,i){switch(t?.type){case"BinaryExpression":t=Li(t,i,e);break;case"LogicalExpression":t=ji(t,i,e);break;case"ConditionalExpression":return yr(t,i,e);case"UnaryExpression":t=$i(t,i,e);break;case"ArrayExpression":t.elements=t.elements.map(c=>{if(c.type==="Identifier"){if(i.isContextBound(c.name)&&!i.isRootParam(c.name))return c;if(i.isLocalSeriesVar(c.name)){const h=w.createIdentifier(c.name);return w.createGetCall(h,0)}return Os(c.name,i)}return c});break}const r=t.type==="MemberExpression"&&t.computed&&t.property,s=t.type==="MemberExpression"&&!t.computed;if(r){t.object.type==="CallExpression"?ne(t.object,i):t.object.type==="MemberExpression"?ue(t.object,"",i):t.object.type==="BinaryExpression"?t.object=Li(t.object,i,e):t.object.type==="LogicalExpression"?t.object=ji(t.object,i,e):t.object.type==="ConditionalExpression"?t.object=yr(t.object,i,e):t.object.type==="UnaryExpression"&&(t.object=$i(t.object,i,e));const c=t.object.type==="Identifier"&&i.isContextBound(t.object.name)&&!i.isRootParam(t.object.name)?t.object:Bt(t.object,i);let h;t.property.type==="Identifier"&&!i.isContextBound(t.property.name)&&!i.isLoopVariable(t.property.name)?h=w.createGetCall(Bt(t.property,i),0):t.property.type==="BinaryExpression"||t.property.type==="UnaryExpression"||t.property.type==="LogicalExpression"||t.property.type==="ConditionalExpression"?h=Ke(t.property,i,e):h=t.property;const p=w.createMemberExpression(w.createIdentifier(e),w.createIdentifier("param")),u=i.generateParamId(),f={type:"CallExpression",callee:p,arguments:[c,h,{type:"Identifier",name:`'${u}'`}],_transformed:!0,_isParamCall:!0};if(!i.shouldSuppressHoisting()){const m=u;i.addLocalSeriesVar(m);const x=w.createVariableDeclaration(m,f);return i.addHoistedStatement(x),w.createIdentifier(m)}return f}if(s){if(t.object.type==="Identifier"&&_t.includes(t.object.name)&&i.isContextBound(t.object.name)&&!t.computed){const c=t.object.name,h={type:"CallExpression",callee:{type:"MemberExpression",object:{type:"Identifier",name:c},property:{type:"Identifier",name:t.property.name},computed:!1},arguments:[],_transformed:!0};c==="ta"&&h.arguments.push(i.getNextTACallId());const p=i.generateTempVar();i.addLocalSeriesVar(p);const u=w.createVariableDeclaration(p,h);return i.addOuterHoistedStatement(u),Object.assign(t,w.createIdentifier(p)),t}if(t.object.type==="Identifier"){const c=t.object.name,[h,p]=i.getVariable(c);if(h!==c&&!i.isLoopVariable(c)){const u=le(c,i),f=w.createGetCall(u,0);t.object=f}else if(i.isLocalSeriesVar(c)){const u=w.createIdentifier(c);u._skipTransformation=!0,t.object=w.createGetCall(u,0)}}else t.object.type==="MemberExpression"?dt(t.object,e,i):t.object.type==="CallExpression"&&(t.object._transformed||ne(t.object,i))}if(t.type==="ObjectExpression"&&(t.properties=t.properties.map(c=>c.value.name?i.isContextBound(c.value.name)||i.isLocalSeriesVar(c.value.name)||i.isLoopVariable(c.value.name)?{type:"Property",key:{type:"Identifier",name:c.key.name},value:w.createIdentifier(c.value.name),kind:"init",method:!1,shorthand:!1,computed:!1}:{type:"Property",key:{type:"Identifier",name:c.key.name},value:le(c.value.name,i),kind:"init",method:!1,shorthand:!1,computed:!1}:(c.value.type!=="Literal"&&(c.value=dt(c.value,e,i)),c))),t.type==="Identifier"){if(it.includes(t.name)&&i.isContextBound(t.name)){const c=t.name;Object.assign(t,{type:"MemberExpression",object:{type:"Identifier",name:c},property:{type:"Identifier",name:"__value"},computed:!1}),delete t.name}else if(i.isContextBound(t.name)&&!i.isRootParam(t.name)){const c=w.createMemberExpression(w.createIdentifier(e),w.createIdentifier("param")),h=i.generateParamId(),p={type:"CallExpression",callee:c,arguments:[t,Vi,{type:"Identifier",name:`'${h}'`}],_transformed:!0,_isParamCall:!0};if(!i.shouldSuppressHoisting()){const u=h;i.addLocalSeriesVar(u);const f=w.createVariableDeclaration(u,p);return i.addHoistedStatement(f),w.createIdentifier(u)}return p}}t?.type==="CallExpression"&&ne(t,i);const a=w.createMemberExpression(w.createIdentifier(e),w.createIdentifier("param")),n=t.type==="Identifier"?Bt(t,i):t,o=i.generateParamId(),l={type:"CallExpression",callee:a,arguments:[n,Vi,{type:"Identifier",name:`'${o}'`}],_transformed:!0,_isParamCall:!0};if(!i.shouldSuppressHoisting()){const c=o;i.addLocalSeriesVar(c);const h=w.createVariableDeclaration(c,l);return i.addHoistedStatement(h),w.createIdentifier(c)}return l}function jt(t){if(!t)return!1;if(Vs(t))return!0;if(t.type==="MemberExpression")return jt(t.object);if(t.type==="ChainExpression")return jt(t.expression);if(t.type==="CallExpression"){const e=t.callee;if(e?.type==="MemberExpression")return jt(e.object);if(e?.type==="ChainExpression")return jt(e.expression)}return!1}function Vs(t){return t?.type==="CallExpression"&&t.callee?.type==="MemberExpression"&&t.callee.object?.name==="$"&&t.callee.property?.name==="get"}function Bi(t,e,i){t&&(t.type==="Identifier"?(t.parent=e,ee(t,i)):t.type==="MemberExpression"?Bi(t.object,t,i):t.type==="CallExpression"&&(t.callee&&t.callee.type==="MemberExpression"&&Bi(t.callee.object,t.callee,i),t._transformed||ne(t,i)))}function ne(t,e,i){if(t._transformed)return;t.callee&&t.callee.name,t.callee&&t.callee.type==="Identifier"&&(_t.includes(t.callee.name)||it.includes(t.callee.name))&&e.isContextBound(t.callee.name)&&(t.callee=w.createMemberExpression(t.callee,w.createIdentifier("any")));const r=t.callee&&t.callee.type==="MemberExpression"&&t.callee.object&&t.callee.object.type==="Identifier"&&(e.isContextBound(t.callee.object.name)||t.callee.object.name==="math"||t.callee.object.name==="ta");if(r){if(t.callee.object.name===Z&&["get","init","param"].includes(t.callee.property.name))return;const s=t.callee.object.name,a=[];if(t.arguments.forEach(h=>{if(h._isParamCall){a.push(h);return}a.push(dt(h,s,e))}),t.arguments=a,["plot","hline","fill"].includes(s)){const h=e.getNextPlotCallId();t.arguments.push({type:"ObjectExpression",properties:[{type:"Property",key:{type:"Identifier",name:"__callsiteId"},value:h,kind:"init",computed:!1,shorthand:!1}]})}if(s==="alert"){const h=e.getNextAlertCallId();t.arguments.push({type:"ObjectExpression",properties:[{type:"Property",key:{type:"Identifier",name:"__callsiteId"},value:h,kind:"init",computed:!1,shorthand:!1}]})}if(s==="ta")if(e.getCurrentScopeType()==="fn"){const h=e.getNextTACallId(),[p]=e.getVariable("$$");let u;p?u=w.createMemberExpression(w.createLocalContextIdentifier(),w.createIdentifier("id")):u=w.createLiteral("");const f={type:"BinaryExpression",operator:"+",left:u,right:h};t.arguments.push(f)}else t.arguments.push(e.getNextTACallId());const n=t.callee.property.name,o=`${s}.${n}`,l=la.includes(o),c=t._insideAwait===!0;if(l&&!c){const h=Object.assign({},t),p=w.createAwaitExpression(h);Object.assign(t,p)}if(!e.shouldSuppressHoisting()){const h=e.generateTempVar();e.addLocalSeriesVar(h);const p=t._insideAwait===!0;let u=Object.assign({},t);p&&(u=w.createAwaitExpression(u));const f=w.createVariableDeclaration(h,u);e.addHoistedStatement(f);const m=w.createIdentifier(h);Object.assign(t,m),t._wasHoisted=!0,t._wasInsideAwait=p;return}t._transformed=!0}else if(t.callee&&t.callee.type==="Identifier"){if(t.arguments=t.arguments.map(s=>s._isParamCall?s:dt(s,Z,e)),!e.isContextBound(t.callee.name)){const s=e.getNextUserCallId(),a=w.createMemberExpression(w.createContextIdentifier(),w.createIdentifier("call")),n=[t.callee,s,...t.arguments];t.callee=a,t.arguments=n}t._transformed=!0}if(!r&&t.callee&&t.callee.type==="MemberExpression"){const s=t.callee.property.name,a=e.isUserFunction(s),n=t.callee.object,o=n.type==="Identifier"&&e.isLocalSeriesVar(n.name),l=n.type==="MemberExpression",c=e.isUserMethod(s);if(a&&c&&!e.isContextBound(s)&&!o&&!l){const h=t.callee.object;t.callee.property;const p=t.arguments.map(b=>b._isParamCall?b:dt(b,Z,e));let u=h;h.type==="Identifier"?u=dt(h,Z,e):h.type==="CallExpression"&&(ne(h,e),u=dt(h,Z,e));const f=w.createMemberExpression(w.createContextIdentifier(),w.createIdentifier("call")),m=e.getNextUserCallId(),x=w.createIdentifier(s);x._skipTransformation=!0;const _=[x,m,u,...p];t.callee=f,t.arguments=_,t._transformed=!0;return}t.callee.object.type==="Identifier"?ee(t.callee.object,e):Bi(t.callee.object,t.callee,e)}if(t.arguments.forEach(s=>{te(s,{parent:t},{Identifier(a,n,o){a.parent=n.parent,ee(a,e);const l=a.parent&&a.parent.type==="BinaryExpression";(a.parent&&a.parent.type==="ConditionalExpression"||l)&&(a.type==="MemberExpression"?bt(a,e):a.type==="Identifier"&&(a.parent&&a.parent.type==="CallExpression"&&a.parent.callee&&a.parent.callee.object&&a.parent.callee.object.name===Z&&a.parent.callee.property.name==="get"||be(a)))},BinaryExpression(a,n,o){const l={...n,parent:a};o(a.left,l),o(a.right,l)},LogicalExpression(a,n,o){const l={...n,parent:a};o(a.left,l),o(a.right,l)},UnaryExpression(a,n,o){const l={...n,parent:a};o(a.argument,l)},CallExpression(a,n,o){a.callee&&a.callee.type==="MemberExpression"&&a.callee.object&&(a.callee.object.parent=a.callee,o(a.callee.object,{parent:a.callee})),a._transformed||ne(a,e)},MemberExpression(a,n,o){ue(a,"",e),a.object&&o(a.object,{parent:a})}})}),t.callee&&t.callee.type==="MemberExpression"){const s=t.callee.object,a=Vs(s),n=s?.type==="MemberExpression"&&jt(s);if(a||n){const o=Object.assign({},t.callee,{optional:!0});t.callee={type:"ChainExpression",expression:o},t.optional=!0}}}function er(t){const e={type:"VariableDeclaration",kind:"let",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:t},init:{type:"Literal",value:0}}]},i={type:"IfStatement",test:{type:"BinaryExpression",operator:">",left:{type:"UpdateExpression",operator:"++",prefix:!0,argument:{type:"Identifier",name:t}},right:{type:"Identifier",name:"__maxLoops"}},consequent:{type:"ThrowStatement",argument:{type:"NewExpression",callee:{type:"Identifier",name:"Error"},arguments:[{type:"Literal",value:`Loop exceeded maximum iterations (${t})`}]}},alternate:null};return{counterDecl:e,guardCheck:i}}function Fi(t,e){let i=null;if(t.left.type==="Identifier")i=le(t.left.name,e);else if(t.left.type==="MemberExpression"&&t.left.computed){if(t.left.object.type==="Identifier"){const r=t.left.object.name,[s,a]=e.getVariable(r),n=s!==r,o=e.isContextBound(r);(n||o)&&!e.isLoopVariable(r)&&t.left.property.type==="Literal"&&t.left.property.value===0&&(i=le(r,e))}}else if(t.left.type==="MemberExpression"&&!t.left.computed){let r=null,s=t.left;for(;s.type==="MemberExpression"&&!s.computed;){if(s.object.type==="Identifier"){r=s;break}s=s.object}if(r){const a=r.object.name,[n,o]=e.getVariable(a);if(n!==a&&!e.isLoopVariable(a)){const l=le(a,e),c=w.createGetCall(l,0);r.object=c}else if(e.isLocalSeriesVar(a)){const l=w.createIdentifier(a);l._skipTransformation=!0,r.object=w.createGetCall(l,0)}}}if(te(t.right,{parent:t.right,inNamespaceCall:!1},{Identifier(r,s,a){if(it.includes(r.name)&&e.isContextBound(r.name)){const m={type:"MemberExpression",object:{type:"Identifier",name:r.name},property:{type:"Identifier",name:"__value"},computed:!1},x=w.createGetCall(m,0);Object.assign(r,x),delete r.name;return}r.parent=s.parent,ee(r,e);const n=r.parent&&r.parent.type==="BinaryExpression",o=r.parent&&r.parent.type==="ConditionalExpression",l=e.isContextBound(r.name)&&!e.isRootParam(r.name),c=r.parent&&r.parent.type==="MemberExpression"&&r.parent.computed&&r.parent.object===r,h=r.parent&&r.parent._isParamCall,p=r.parent&&r.parent.type==="MemberExpression",u=r.name==="NaN",f=r.parent&&r.parent.type==="CallExpression"&&r.parent.callee&&r.parent.callee.object&&r.parent.callee.object.name===Z&&r.parent.callee.property.name==="get";(l||o||n)&&(r.type==="MemberExpression"?bt(r,e):r.type==="Identifier"&&!p&&!c&&!h&&!u&&!f&&be(r))},MemberExpression(r,s,a){ue(r,"",e),r.type==="CallExpression"?r.arguments.forEach(n=>a(n,{parent:r,inNamespaceCall:s.inNamespaceCall})):r.object&&a(r.object,{parent:r,inNamespaceCall:s.inNamespaceCall})},CallExpression(r,s,a){const n=r.callee&&r.callee.type==="MemberExpression"&&r.callee.object&&r.callee.object.type==="Identifier"&&e.isContextBound(r.callee.object.name);ne(r,e),r.type==="CallExpression"&&(r.callee.type==="MemberExpression"&&a(r.callee,{parent:r,inNamespaceCall:n||s.inNamespaceCall}),r.arguments.forEach(o=>a(o,{parent:r,inNamespaceCall:n||s.inNamespaceCall})))}}),i){let r=t.right;if(t.operator!=="="){const a=t.operator.replace("=",""),n=w.createGetCall(i,0);r={type:"BinaryExpression",operator:a,left:n,right:t.right,start:t.start,end:t.end}}const s=w.createSetCall(i,r);t.start&&(s.start=t.start),t.end&&(s.end=t.end),Object.assign(t,s)}}function Ls(t,e){t._skipTransformation||t.declarations.forEach(i=>{if(i.init&&i.init.type==="Identifier"&&it.includes(i.init.name)&&e.isContextBound(i.init.name)){const u=i.init.name;Object.assign(i.init,{type:"MemberExpression",object:{type:"Identifier",name:u},property:{type:"Identifier",name:"__value"},computed:!1}),delete i.init.name}const r=i.init&&i.init.type==="MemberExpression"&&i.init.object&&(i.init.object.name==="context"||i.init.object.name===Z||i.init.object.name==="context2"),s=i.init&&i.init.type==="MemberExpression"&&i.init.object?.object&&(i.init.object.object.name==="context"||i.init.object.object.name===Z||i.init.object.object.name==="context2"),a=i.init&&i.init.type==="ArrowFunctionExpression";if(r){i.id.name&&e.addContextBoundVar(i.id.name),i.id.properties&&i.id.properties.forEach(u=>{u.key.name&&e.addContextBoundVar(u.key.name)}),i.init.object.name=Z;return}if(s){i.id.name&&e.addContextBoundVar(i.id.name),i.id.properties&&i.id.properties.forEach(u=>{u.key.name&&e.addContextBoundVar(u.key.name)}),i.init.object.object.name=Z;return}e.addVariable(i.id.name,t.kind);const n=t.kind,o=e.isArrayPatternElement(i.id.name)&&i.init&&i.init.type==="MemberExpression"&&i.init.computed;i.init&&!a&&!o&&(i.init.type==="CallExpression"&&i.init.callee.type==="MemberExpression"&&i.init.callee.object&&i.init.callee.object.type==="Identifier"&&e.isContextBound(i.init.callee.object.name)?ne(i.init,e):te(i.init,{parent:i.init},{Identifier(u,f){u.parent=f.parent,ee(u,e);const m=u.parent&&u.parent.type==="BinaryExpression",x=u.parent&&u.parent.type==="UnaryExpression",_=u.parent&&u.parent.type==="ConditionalExpression",b=u.parent&&u.parent.type==="CallExpression"&&u.parent.callee&&u.parent.callee.object&&u.parent.callee.object.name===Z&&u.parent.callee.property.name==="get";u.type==="Identifier"&&(m||x||_)&&!b&&be(u)},CallExpression(u,f,m){u.callee.type==="Identifier"&&(u.callee.parent=u),u.arguments.forEach(x=>{x.type==="Identifier"&&(x.parent=u)}),(u.callee.type==="ArrowFunctionExpression"||u.callee.type==="FunctionExpression")&&m(u.callee,{parent:u}),ne(u,e),u.type==="CallExpression"&&(u.callee.type==="MemberExpression"&&m(u.callee,{parent:u}),u.arguments.forEach(x=>m(x,{parent:u})))},BinaryExpression(u,f,m){u.left.type==="Identifier"&&(u.left.parent=u),u.right.type==="Identifier"&&(u.right.parent=u),m(u.left,{parent:u}),m(u.right,{parent:u})},MemberExpression(u,f,m){u.object&&u.object.type==="Identifier"&&(u.object.parent=u),u.property&&u.property.type==="Identifier"&&(u.property.parent=u),ue(u,"",e),u.type==="CallExpression"?u.arguments.forEach(x=>m(x,{parent:u})):u.object&&m(u.object,{parent:u})},AwaitExpression(u,f,m){u.argument&&(u.argument._insideAwait=!0,m(u.argument,{parent:u}),u.argument.type==="Identifier"&&u.argument._wasInsideAwait&&Object.assign(u,u.argument))},ArrowFunctionExpression(u,f,m){if(u.body)if(u.body.type==="BlockStatement"){const x=[];u.body.body.forEach(_=>{e.enterHoistingScope(),m(_,{parent:u.body,insideIIFE:!0});const b=e.exitHoistingScope();x.push(...b),x.push(_)}),u.body.body=x}else m(u.body,{parent:u,insideIIFE:!0})},FunctionExpression(u,f,m){if(u.body&&u.body.type==="BlockStatement"){const x=[];u.body.body.forEach(_=>{e.enterHoistingScope(),m(_,{parent:u.body,insideIIFE:!0});const b=e.exitHoistingScope();x.push(...b),x.push(_)}),u.body.body=x}},SwitchStatement(u,f,m){u.discriminant&&(u.discriminant.parent=u,m(u.discriminant,{parent:u})),u.cases&&u.cases.forEach(x=>{x.parent=u,m(x,{parent:u})})},SwitchCase(u,f,m){if(u.test&&(u.test.parent=u,m(u.test,{parent:u})),u.consequent){const x=[];u.consequent.forEach(_=>{e.enterHoistingScope(),_.parent=u,m(_,{parent:u});const b=e.exitHoistingScope();x.push(...b),x.push(_)}),u.consequent=x}},AssignmentExpression(u,f,m){if(f.insideIIFE){if(u.left.type==="Identifier"){const[x]=e.getVariable(u.left.name);if(x===u.left.name&&!e.isContextBound(u.left.name)){m(u.right,{parent:u});return}}Fi(u,e)}}}));const l=le(i.id.name,e),c=!o&&i.init&&i.init.type==="MemberExpression"&&i.init.computed&&i.init.property&&(i.init.property.type==="Literal"||i.init.property.type==="MemberExpression");if(i.init?.property?.type==="MemberExpression"&&(i.init.property._indexTransformed||(bt(i.init.property,e),i.init.property._indexTransformed=!0)),n==="var"){const u=e.getCurrentHoistingScope();if(u){for(const f of u)if(f.type==="VariableDeclaration")for(const m of f.declarations){if(!m.init||m.init.type!=="CallExpression")continue;const x=m.init.callee;if(x?.type!=="MemberExpression")continue;let _;const b=x.property?.name;if(x.object?.type==="Identifier"?_=x.object.name:x.object?.type==="MemberExpression"&&x.object.property?.name&&(_=x.object.property.name),_&&b){const S=`${_}.${b}`;ca.includes(S)&&(m.init={type:"ArrowFunctionExpression",params:[],body:m.init,expression:!0,async:!1})}}}}let h;i.init?a||o?h=i.init:n==="var"?h=w.createInitVarCall(l,i.init):h=w.createInitCall(l,c?i.init.object:i.init,c?i.init.property:void 0):h=w.createIdentifier("undefined");const p=w.createExpressionStatement(w.createAssignmentExpression(l,h));if(o){const u=i.init.object.name,f=le(u,e),m=i.init.property.value,x={type:"MemberExpression",object:w.createGetCall(f,0),property:{type:"Literal",value:m},computed:!0};p.expression.right=w.createCallExpression(w.createMemberExpression(w.createContextIdentifier(),w.createIdentifier("init")),[l,x])}a&&(e.pushScope("fn"),te(i.init.body,e,{IfStatement(u,f,m){f.pushScope("if"),m(u.consequent,f),u.alternate&&(f.pushScope("els"),m(u.alternate,f),f.popScope()),f.popScope()},VariableDeclaration(u,f){Ls(u,f)},Identifier(u,f){ee(u,f)},AssignmentExpression(u,f){Fi(u,f)},SwitchStatement(u,f,m){u.discriminant.parent=u,m(u.discriminant,f),u.cases.forEach(x=>{x.parent=u,m(x,f)})},SwitchCase(u,f,m){u.test&&(u.test.parent=u,m(u.test,f));const x=[];u.consequent.forEach(_=>{f.enterHoistingScope(),m(_,f);const b=f.exitHoistingScope();x.push(...b),x.push(_)}),u.consequent=x},BlockStatement(u,f,m){const x=[];u.body.forEach(_=>{f.enterHoistingScope(),m(_,f);const b=f.exitHoistingScope();x.push(...b),x.push(_)}),u.body=x}}),e.popScope()),Object.assign(t,p)})}function ba(t,e,i){if(e.setSuppressHoisting(!0),t.init&&t.init.type==="VariableDeclaration"){const a=t.init.declarations[0],n=a.id.name;e.addLoopVariable(n,n),t.init={type:"VariableDeclaration",kind:t.init.kind,declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:n},init:a.init}]},a.init&&te(a.init,e,{Identifier(o,l){!e.isLoopVariable(o.name)&&!o.computed&&(e.pushScope("for"),ee(o,l),o.type==="Identifier"&&(e.isContextBound(o.name)&&o.parent&&o.parent.type==="MemberExpression"&&o.parent.object===o||(o.computed=!0,be(o))),e.popScope())},MemberExpression(o,l,c){e.pushScope("for"),ue(o,"",e),e.popScope(),o.type==="MemberExpression"&&o.object&&(o.object.type!=="Identifier"||!e.isContextBound(o.object.name))&&c(o.object,l)},CallExpression(o,l,c){o.callee.parent=o,c(o.callee,l);for(const h of o.arguments)c(h,l)}})}t.test&&te(t.test,e,{Identifier(a,n){!e.isLoopVariable(a.name)&&!a.computed&&(e.pushScope("for"),ee(a,n),a.type==="Identifier"&&(e.isContextBound(a.name)&&a.parent&&a.parent.type==="MemberExpression"&&a.parent.object===a||(a.computed=!0,be(a))),e.popScope())},MemberExpression(a,n,o){e.pushScope("for"),ue(a,"",e),e.popScope(),a.type==="MemberExpression"&&a.object&&(a.object.type!=="Identifier"||!e.isContextBound(a.object.name))&&o(a.object,n)},CallExpression(a,n,o){a.callee.parent=a,o(a.callee,n);for(const l of a.arguments)o(l,n)}}),t.update&&te(t.update,e,{Identifier(a,n){!e.isLoopVariable(a.name)&&!a.computed&&(e.pushScope("for"),ee(a,n),a.type==="Identifier"&&(e.isContextBound(a.name)&&a.parent&&a.parent.type==="MemberExpression"&&a.parent.object===a||(a.computed=!0,be(a))),e.popScope())},MemberExpression(a,n,o){e.pushScope("for"),ue(a,"",e),e.popScope(),a.type==="MemberExpression"&&a.object&&(a.object.type!=="Identifier"||!e.isContextBound(a.object.name))&&o(a.object,n)},CallExpression(a,n,o){a.callee.parent=a,o(a.callee,n);for(const l of a.arguments)o(l,n)}}),e.setSuppressHoisting(!1);const r=e.getNextLoopGuardName(),s=er(r);if(e.addHoistedStatement(s.counterDecl),e.pushScope("for"),i(t.body,e),e.popScope(),t.body.type==="BlockStatement"&&t.body.body.unshift(s.guardCheck),t.init&&t.init.type==="VariableDeclaration"){const a=t.init.declarations[0];e.removeLoopVariable(a.id.name)}}function va(t,e,i){e.setSuppressHoisting(!0),t.test&&te(t.test,e,{Identifier(a,n){a.computed||(ee(a,n),a.type==="Identifier"&&(e.isContextBound(a.name)&&a.parent&&a.parent.type==="MemberExpression"&&a.parent.object===a||(a.computed=!0,be(a))))},MemberExpression(a,n,o){ue(a,"",e),a.type==="MemberExpression"&&a.object&&(a.object.type!=="Identifier"||!e.isContextBound(a.object.name))&&o(a.object,n)},CallExpression(a,n,o){if(a.callee.parent=a,o(a.callee,n),ne(a,n),a.arguments)for(const l of a.arguments)o(l,n)}}),e.setSuppressHoisting(!1);const r=e.getNextLoopGuardName(),s=er(r);e.addHoistedStatement(s.counterDecl),e.pushScope("whl"),i(t.body,e),e.popScope(),t.body.type==="BlockStatement"&&t.body.body.unshift(s.guardCheck)}function wa(t,e){te(t,e,{MemberExpression(i,r,s){i.object&&i.object.type==="Identifier"&&!e.isContextBound(i.object.name)&&!i.computed&&(i.object.parent=i,s(i.object,r)),ue(i,"",e)},CallExpression(i,r){ne(i,r)},Identifier(i,r){ee(i,r);const s=e.getCurrentScopeType()==="if";e.isContextBound(i.name)&&!e.isRootParam(i.name)&&s&&be(i)}})}function Sa(t,e,i){t.test&&(e.pushScope("if"),wa(t.test,e),e.popScope()),e.pushScope("if"),i(t.consequent,e),e.popScope(),t.alternate&&(e.pushScope("els"),i(t.alternate,e),e.popScope())}function Ea(t,e){const i=e.getCurrentScopeType();if(t.argument&&(t.argument.type==="ArrayExpression"?(t.argument.elements=t.argument.elements.map(r=>r.type==="Identifier"?e.isContextBound(r.name)&&!e.isRootParam(r.name)?w.createGetCall(r,0):Os(r.name,e):r.type==="MemberExpression"?r.object&&r.object.type==="MemberExpression"&&r.object.object&&r.object.object.type==="Identifier"&&r.object.object.name==="$"&&r.object.property&&["const","let","var","params"].includes(r.object.property.name)?w.createGetCall(r,0):(r.computed&&r.object.type==="Identifier"&&e.isContextBound(r.object.name)&&!e.isRootParam(r.object.name)||ue(r,"",e),r):((r.type==="BinaryExpression"||r.type==="LogicalExpression"||r.type==="ConditionalExpression"||r.type==="CallExpression"||r.type==="UnaryExpression")&&te(r,e,{Identifier(s,a){ee(s,a),s.type==="Identifier"&&!s._arrayAccessed&&(be(s),s._arrayAccessed=!0)},MemberExpression(s){ue(s,"",e)},CallExpression(s,a,n){(s.callee.type==="ArrowFunctionExpression"||s.callee.type==="FunctionExpression")&&n(s.callee,a),ne(s,a),s.type==="CallExpression"&&s.arguments.forEach(o=>n(o,a))},BinaryExpression(s,a,n){n(s.left,a),n(s.right,a)}}),r)),t.argument={type:"ArrayExpression",elements:[t.argument]}):t.argument.type==="ObjectExpression"?t.argument.properties=t.argument.properties.map(r=>r.shorthand?e.isContextBound(r.value.name)?r:(e.getVariable(r.value.name),{type:"Property",key:w.createIdentifier(r.key.name),value:le(r.value.name,e),kind:"init",method:!1,shorthand:!1,computed:!1}):(r.value&&r.value.type==="Identifier"&&(e.isContextBound(r.value.name)&&!e.isRootParam(r.value.name)||e.isContextBound(r.value.name)||(r.value=le(r.value.name,e))),r)):t.argument.type==="Identifier"?(ee(t.argument,e),t.argument.type==="Identifier"&&be(t.argument)):t.argument.type==="MemberExpression"&&t.argument.object.type==="Identifier"&&!e.isContextBound(t.argument.object.name)&&!e.isLoopVariable(t.argument.object.name)&&ee(t.argument.object,e),i==="fn")){t.argument.type==="Identifier"&&e.isContextBound(t.argument.name)&&!e.isRootParam(t.argument.name)?t.argument=w.createArrayAccess(t.argument,0):t.argument.type==="MemberExpression"?t.argument.object.type==="Identifier"&&e.isContextBound(t.argument.object.name)&&!e.isRootParam(t.argument.object.name)&&(t.argument._indexTransformed||(bt(t.argument,e),t.argument._indexTransformed=!0)):(t.argument.type==="BinaryExpression"||t.argument.type==="LogicalExpression"||t.argument.type==="ConditionalExpression"||t.argument.type==="CallExpression"||t.argument.type==="UnaryExpression"||t.argument.type==="AssignmentExpression")&&te(t.argument,e,{Identifier(s,a){ee(s,a),s.type==="Identifier"&&!s._arrayAccessed&&(be(s),s._arrayAccessed=!0)},MemberExpression(s){ue(s,"",e)},CallExpression(s,a,n){(s.callee.type==="ArrowFunctionExpression"||s.callee.type==="FunctionExpression")&&n(s.callee,a),ne(s,a),s.type==="CallExpression"&&s.arguments.forEach(o=>n(o,a))},BinaryExpression(s,a,n){n(s.left,a),n(s.right,a)},ArrowFunctionExpression(s,a,n){if(s.body)if(s.body.type==="BlockStatement"){const o=[];s.body.body.forEach(l=>{e.enterHoistingScope(),n(l,a);const c=e.exitHoistingScope();o.push(...c),o.push(l)}),s.body.body=o}else n(s.body,a)},FunctionExpression(s,a,n){if(s.body&&s.body.type==="BlockStatement"){const o=[];s.body.body.forEach(l=>{e.enterHoistingScope(),n(l,a);const c=e.exitHoistingScope();o.push(...c),o.push(l)}),s.body.body=o}},SwitchStatement(s,a,n){s.discriminant.parent=s,n(s.discriminant,a),s.cases.forEach(o=>{o.parent=s,n(o,a)})},SwitchCase(s,a,n){s.test&&(s.test.parent=s,n(s.test,a));const o=[];s.consequent.forEach(l=>{e.enterHoistingScope(),n(l,a);const c=e.exitHoistingScope();o.push(...c),o.push(l)}),s.consequent=o},BlockStatement(s,a,n){const o=[];s.body.forEach(l=>{a.enterHoistingScope(),n(l,a);const c=a.exitHoistingScope();o.push(...c),o.push(l)}),s.body=o}});const r=w.createCallExpression(w.createMemberExpression(w.createContextIdentifier(),w.createIdentifier("precision")),[t.argument]);t.argument=r}}function Na(t,e,i){const r=w.createVariableDeclaration("$$",w.createCallExpression(w.createMemberExpression(w.createContextIdentifier(),w.createIdentifier("peekCtx")),[]));r._skipTransformation=!0,e.addLoopVariable("$$","$$"),t.body&&t.body.type==="BlockStatement"&&(t.body.body.unshift(r),e.pushScope("fn"),t.params.forEach(s=>{s.type==="Identifier"&&e.addLocalSeriesVar(s.name)}),i(t.body,e),t.params.forEach(s=>{s.type==="Identifier"&&e.removeLocalSeriesVar(s.name)}),e.popScope())}function Ca(t){const e={...N,LineComment:()=>{}};function i(o){return o?o.type==="Identifier"?o.name:o.type==="CallExpression"&&o.callee?.type==="MemberExpression"&&o.callee.object?.name==="$"&&o.callee.property?.name==="get"&&o.arguments?.[0]?.type==="Identifier"?o.arguments[0].name:null:null}const r=new Map;ot(t,{FunctionDeclaration(o){o.id?.name&&r.set(o.id.name,o)}},e);function s(o){let l=!1;const c={...e,FunctionDeclaration:()=>{},FunctionExpression:()=>{},ArrowFunctionExpression:()=>{}};return ot(o,{AwaitExpression(){l=!0}},c),l}let a=!0,n=0;for(;a&&n<20;){a=!1,n++,ot(t,{ArrowFunctionExpression(c){!c.async&&s(c.body)&&(c.async=!0,a=!0)},FunctionExpression(c){!c.async&&s(c.body)&&(c.async=!0,a=!0)}},e);const o=[];ot(t,{CallExpression(c){!c._asyncWrapped&&(c.callee?.type==="ArrowFunctionExpression"||c.callee?.type==="FunctionExpression")&&c.callee.async===!0&&o.push(c)}},e);for(const c of o){const h={};for(const p of Object.keys(c))h[p]=c[p];h._asyncWrapped=!0;for(const p of Object.keys(c))delete c[p];c.type="AwaitExpression",c.argument=h,a=!0}const l=new Set;for(const[c,h]of r)s(h.body)&&(h.async||(h.async=!0,a=!0),l.add(c));if(l.size>0){const c=[];ot(t,{CallExpression(h){if(!h._asyncWrapped&&h.callee?.type==="MemberExpression"&&h.callee.object?.name==="$"&&h.callee.property?.name==="call"&&h.arguments?.length>0){const p=i(h.arguments[0]);p&&l.has(p)&&c.push(h)}}},e);for(const h of c){const p={};for(const u of Object.keys(h))p[u]=h[u];p._asyncWrapped=!0;for(const u of Object.keys(h))delete h[u];h.type="AwaitExpression",h.argument=p,a=!0}}}}function Ia(t){const e={...N,LineComment:()=>{}};ot(t,{BinaryExpression(i){if(i.operator==="=="||i.operator==="==="){const r=w.createMathEqCall(i.left,i.right);r._transformed=!0,Object.assign(i,r)}else if(i.operator==="!="||i.operator==="!=="){const r=w.createMathNeqCall(i.left,i.right);r._transformed=!0,Object.assign(i,r)}}},e)}function ka(t,e,i,r={debug:!1,ln:!1},s=[]){const a=n=>{if(!r.debug||!n.loc||!s.length)return null;const o=n.loc.start.line-1;if(o>=0&&o<s.length){const l=s[o].trim();if(l)return{type:"LineComment",value:`${r.ln?` [Line ${n.loc.start.line}]`:""} ${l}`}}return null};te(t,e,{Program(n,o,l){const c=[];n.body.forEach(h=>{o.enterHoistingScope(),l(h,o);const p=o.exitHoistingScope(),u=a(h);u&&c.push(u),c.push(...p),c.push(h)}),n.body=c},BlockStatement(n,o,l){const c=[];n.body.forEach(h=>{o.enterHoistingScope(),l(h,o);const p=o.exitHoistingScope(),u=a(h);u&&c.push(u),c.push(...p),c.push(h)}),n.body=c},ReturnStatement(n,o,l){n.argument&&n.argument.type!=="ArrayExpression"&&n.argument.type!=="ObjectExpression"&&n.argument.type!=="Identifier"&&n.argument.type!=="MemberExpression"&&o.getCurrentScopeType()!=="fn"&&l(n.argument,o),Ea(n,o)},VariableDeclaration(n,o){Ls(n,o)},Identifier(n,o){ee(n,o)},CallExpression(n,o,l){n.callee&&(n.callee.type==="ArrowFunctionExpression"||n.callee.type==="FunctionExpression")?l(n.callee,o):n.callee&&n.callee.type==="MemberExpression"&&n.callee.object&&(n.callee.object.parent=n.callee,l(n.callee.object,o)),ne(n,o)},ArrowFunctionExpression(n,o,l){n.body&&l(n.body,o)},FunctionExpression(n,o,l){n.body&&l(n.body,o)},ForOfStatement(n,o,l){if(n.left&&n.left.type==="VariableDeclaration"){n.left._skipTransformation=!0;const p=n.left.declarations[0];p.id.type==="Identifier"?o.addLoopVariable(p.id.name,p.id.name):p.id.type==="ArrayPattern"&&p.id.elements.forEach(u=>{u.type==="Identifier"&&o.addLoopVariable(u.name,u.name)})}if(n.right&&n.right.type==="Identifier"){ee(n.right,o),n.right.type==="Identifier"&&be(n.right);const p={...n.right};let u=w.createMemberExpression(p,w.createIdentifier("array"),!1);n.left&&n.left.type==="VariableDeclaration"&&n.left.declarations[0].id.type==="ArrayPattern"&&(u=w.createCallExpression(w.createMemberExpression(u,w.createIdentifier("entries"),!1),[])),Object.assign(n.right,u)}else n.right&&l(n.right,o);const c=o.getNextLoopGuardName(),h=er(c);if(o.addHoistedStatement(h.counterDecl),n.body&&l(n.body,o),n.body&&n.body.type==="BlockStatement"&&n.body.body.unshift(h.guardCheck),n.left&&n.left.type==="VariableDeclaration"){const p=n.left.declarations[0];p.id.type==="Identifier"?o.removeLoopVariable(p.id.name):p.id.type==="ArrayPattern"&&p.id.elements.forEach(u=>{u.type==="Identifier"&&o.removeLoopVariable(u.name)})}},ForInStatement(n,o,l){n.left&&n.left.type==="VariableDeclaration"&&(n.left._skipTransformation=!0),n.right&&n.right.type==="Identifier"?(ee(n.right,o),n.right.type==="Identifier"&&be(n.right)):n.right&&l(n.right,o),n.body&&l(n.body,o)},MemberExpression(n,o,l){n.object&&(n.object.type==="CallExpression"||n.object.type==="MemberExpression")&&(n.object.parent=n,l(n.object,o)),n.object&&n.object.type==="Identifier"&&!o.isContextBound(n.object.name)&&(n.object.parent=n,l(n.object,o)),ue(n,i,o)},AssignmentExpression(n,o,l){if(Fi(n,o),n.type==="CallExpression"&&n.arguments){const c=h=>{h&&(h.type==="CallExpression"&&h.callee&&(h.callee.type==="ArrowFunctionExpression"||h.callee.type==="FunctionExpression")&&l(h.callee,o),h.type==="BinaryExpression"&&(c(h.left),c(h.right)))};n.arguments.forEach(h=>c(h))}},FunctionDeclaration(n,o,l){Na(n,o,l)},ForStatement(n,o,l){ba(n,o,l)},WhileStatement(n,o,l){va(n,o,l)},IfStatement(n,o,l){Sa(n,o,l)},SwitchStatement(n,o,l){n.discriminant.parent=n,l(n.discriminant,o),n.cases.forEach(c=>{c.parent=n,l(c,o)})},SwitchCase(n,o,l){n.test&&(n.test.parent=n,l(n.test,o));const c=[];n.consequent.forEach(h=>{o.enterHoistingScope(),l(h,o);const p=o.exitHoistingScope();c.push(...p),c.push(h)}),n.consequent=c},AwaitExpression(n,o,l){n.argument&&(n.argument._insideAwait=!0,l(n.argument,o),n.argument.type==="Identifier"&&n.argument._wasInsideAwait===!0&&(n.type="Identifier",n.name=n.argument.name,n.argument._wasHoisted&&(n._wasHoisted=n.argument._wasHoisted),delete n.argument))}})}const g={NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",IDENTIFIER:"IDENTIFIER",KEYWORD:"KEYWORD",OPERATOR:"OPERATOR",LPAREN:"LPAREN",RPAREN:"RPAREN",LBRACKET:"LBRACKET",RBRACKET:"RBRACKET",LBRACE:"LBRACE",RBRACE:"RBRACE",COMMA:"COMMA",DOT:"DOT",COLON:"COLON",SEMICOLON:"SEMICOLON",INDENT:"INDENT",DEDENT:"DEDENT",NEWLINE:"NEWLINE",COMMENT:"COMMENT",EOF:"EOF"},Aa=new Set(["if","else","for","while","switch","break","continue","var","varip","type","and","or","not","to","by","in","import","export","method","extends","enum"]),Ta=["==","!=","<=",">=",":=","+=","-=","*=","/=","%=","=>","//","and","or","not"];class Pa{constructor(e,i,r,s,a=0){this.type=e,this.value=i,this.line=r,this.column=s,this.indent=a}}var Da=Object.defineProperty,Ma=(t,e,i)=>e in t?Da(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Fe=(t,e,i)=>Ma(t,typeof e!="symbol"?e+"":e,i);class Ra{constructor(e){Fe(this,"source"),Fe(this,"pos"),Fe(this,"line"),Fe(this,"column"),Fe(this,"tokens"),Fe(this,"indentStack"),Fe(this,"atLineStart"),Fe(this,"parenDepth"),Fe(this,"bracketDepth"),Fe(this,"braceDepth"),this.source=e,this.pos=0,this.line=1,this.column=1,this.tokens=[],this.indentStack=[0],this.atLineStart=!0,this.parenDepth=0,this.bracketDepth=0,this.braceDepth=0}tokenize(){for(;this.pos<this.source.length;){const e=this.peek();if(e==="\r"){this.advance();continue}if(e===`
|
|
17
17
|
`){this.handleNewline();continue}if(this.atLineStart&&e!==`
|
|
18
18
|
`){this.handleIndentation(),this.atLineStart=!1;continue}if(e===" "||e===" "){this.advance();continue}if(this.pos>=this.source.length)break;if(e==="/"&&this.peek(1)==="/"){this.readComment();continue}if(e==='"'||e==="'"){this.readString();continue}if(e==="#"){this.readColorLiteral();continue}if(this.isDigit(e)){this.readNumber();continue}if(this.isIdentifierStart(e)){this.readIdentifier();continue}if(!this.readOperatorOrPunctuation())throw new Error(`Unexpected character '${e}' at ${this.line}:${this.column}`)}for(;this.indentStack.length>1;)this.indentStack.pop(),this.addToken(g.DEDENT,"",this.getCurrentIndent());return this.addToken(g.EOF,""),this.tokens}handleNewline(){this.parenDepth===0&&this.bracketDepth===0&&this.braceDepth===0&&(this.addToken(g.NEWLINE,`
|
|
19
19
|
`),this.atLineStart=!0),this.advance(),this.line++,this.column=1}handleIndentation(){let e=0,i=0;for(this.pos;this.pos<this.source.length;){const s=this.peek();if(s===" ")i++,this.advance();else if(s===" ")e++,this.advance();else break}if(this.peek()===`
|
|
20
20
|
`||this.peek()==="\r"||this.peek()==="\0")return;e+=Math.floor(i/4);const r=this.indentStack[this.indentStack.length-1];if(e>r)this.indentStack.push(e),this.addToken(g.INDENT,"",e);else if(e<r){for(;this.indentStack.length>1&&this.indentStack[this.indentStack.length-1]>e;)this.indentStack.pop(),this.addToken(g.DEDENT,"",this.indentStack[this.indentStack.length-1]);if(this.indentStack[this.indentStack.length-1]!==e)throw new Error(`Indentation error at ${this.line}:${this.column} - misaligned dedent`)}}readComment(){this.column;let e="";for(this.advance(),this.advance();this.pos<this.source.length&&this.peek()!==`
|
|
21
21
|
`;)e+=this.advance();this.addToken(g.COMMENT,e.trim())}readString(){const e=this.advance(),i=this.column-1;let r="";for(;this.pos<this.source.length&&this.peek()!==e;)if(this.peek()==="\\"){this.advance();const s=this.advance();switch(s){case"n":r+=`
|
|
22
|
-
`;break;case"t":r+=" ";break;case"r":r+="\r";break;case"\\":r+="\\";break;case e:r+=e;break;default:r+=s}}else r+=this.advance();if(this.peek()!==e)throw new Error(`Unterminated string at ${this.line}:${i}`);this.advance(),this.addToken(g.STRING,r)}readColorLiteral(){const e=this.column;let i="#";for(this.advance();this.pos<this.source.length&&i.length<9;){const r=this.peek();if(r>="0"&&r<="9"||r>="A"&&r<="F"||r>="a"&&r<="f")i+=this.advance();else break}if(i.length!==7&&i.length!==9)throw new Error(`Invalid color literal '${i}' at ${this.line}:${e}`);this.addToken(g.STRING,i)}readNumber(){this.column;let e="",i=!1;for(this.peek()==="."&&this.isDigit(this.peek(1))&&(i=!0,e+=this.advance());this.pos<this.source.length;){const r=this.peek();if(this.isDigit(r))e+=this.advance();else if(r==="."&&!i){const s=this.peek(1);if(this.isDigit(s)||!this.isIdentifierStart(s)){if(i=!0,e+=this.advance(),!this.isDigit(this.peek()))break}else break}else break}if(this.pos<this.source.length){const r=this.peek();if(r==="e"||r==="E"){const s=this.peek(1);if(this.isDigit(s))for(e+=this.advance();this.pos<this.source.length&&this.isDigit(this.peek());)e+=this.advance();else if(s==="+"||s==="-"){const a=this.peek(2);if(this.isDigit(a))for(e+=this.advance(),e+=this.advance();this.pos<this.source.length&&this.isDigit(this.peek());)e+=this.advance()}}}this.addToken(g.NUMBER,parseFloat(e))}readIdentifier(){this.column;let e="";for(;this.pos<this.source.length&&this.isIdentifierChar(this.peek());)e+=this.advance();Pa.has(e)?this.addToken(g.KEYWORD,e):e==="true"||e==="false"?this.addToken(g.BOOLEAN,e==="true"):this.addToken(g.IDENTIFIER,e)}readOperatorOrPunctuation(){const e=this.peek(),i=this.peek(1),r=e+i;if(Da.includes(r))return this.advance(),this.advance(),this.addToken(g.OPERATOR,r),!0;if("+-*/%<>=!?".includes(e))return this.advance(),this.addToken(g.OPERATOR,e),!0;switch(e){case"(":return this.parenDepth++,this.advance(),this.addToken(g.LPAREN,e),!0;case")":return this.parenDepth--,this.advance(),this.addToken(g.RPAREN,e),!0;case"[":return this.bracketDepth++,this.advance(),this.addToken(g.LBRACKET,e),!0;case"]":return this.bracketDepth--,this.advance(),this.addToken(g.RBRACKET,e),!0;case"{":return this.braceDepth++,this.advance(),this.addToken(g.LBRACE,e),!0;case"}":return this.braceDepth--,this.advance(),this.addToken(g.RBRACE,e),!0;case",":return this.advance(),this.addToken(g.COMMA,e),!0;case".":return this.isDigit(this.peek(1))?(this.readNumber(),!0):(this.advance(),this.addToken(g.DOT,e),!0);case":":return this.advance(),this.addToken(g.COLON,e),!0;case";":return this.advance(),this.addToken(g.SEMICOLON,e),!0}return!1}peek(e=0){const i=this.pos+e;return i<this.source.length?this.source[i]:"\0"}advance(){const e=this.source[this.pos++];return this.column++,e}skipWhitespaceInline(){if(!this.atLineStart)for(;this.pos<this.source.length&&(this.peek()===" "||this.peek()===" ");)this.advance()}isDigit(e){return e>="0"&&e<="9"}isIdentifierStart(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"}isIdentifierChar(e){return this.isIdentifierStart(e)||this.isDigit(e)}getCurrentIndent(){return this.indentStack[this.indentStack.length-1]}addToken(e,i,r=null){const s=new Ma(e,i,this.line,this.column,r!==null?r:this.getCurrentIndent());this.tokens.push(s)}}var La=Object.defineProperty,ja=(t,e,i)=>e in t?La(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ee=(t,e,i)=>ja(t,typeof e!="symbol"?e+"":e,i);class H{constructor(e){this.type=e}}class $a extends H{constructor(e){super("Program"),this.body=e}}class Te extends H{constructor(e){super("ExpressionStatement"),this.expression=e}}var Ze=(t=>(t.VAR="var",t.LET="let",t.CONST="const",t))(Ze||{});class Ge extends H{constructor(e,i="let"){super("VariableDeclaration"),this.declarations=e,this.kind=i}}class Ye extends H{constructor(e,i,r=null){super("VariableDeclarator"),this.id=e,this.init=i,this.varType=r}}class xr extends H{constructor(e,i,r,s=null){super("FunctionDeclaration"),this.id=e,this.params=i,this.body=r,this.returnType=s}}class Ba extends H{constructor(e,i){super("TypeDefinition"),this.name=e,this.fields=i}}class Fa extends H{constructor(e,i,r=null){super("IfStatement"),this.test=e,this.consequent=i,this.alternate=r,Ee(this,"_line")}}class _r extends H{constructor(e,i,r,s){super("ForStatement"),this.init=e,this.test=i,this.update=r,this.body=s,Ee(this,"isForIn")}}class Wa extends H{constructor(e,i){super("WhileStatement"),this.test=e,this.body=i}}class rt extends H{constructor(e){super("BlockStatement"),this.body=e}}class br extends H{constructor(e){super("ReturnStatement"),this.argument=e}}class ae extends H{constructor(e){super("Identifier"),this.name=e,Ee(this,"varType"),Ee(this,"returnType"),Ee(this,"isMethod")}}class pt extends H{constructor(e,i=null){super("Literal"),this.value=e,this.raw=i}}class Xe extends H{constructor(e,i,r){super("BinaryExpression"),this.operator=e,this.left=i,this.right=r}}class vr extends H{constructor(e,i,r=!0){super("UnaryExpression"),this.operator=e,this.argument=i,this.prefix=r}}class Lt extends H{constructor(e,i,r){super("AssignmentExpression"),this.operator=e,this.left=i,this.right=r}}class wr extends H{constructor(e,i,r=!1){super("UpdateExpression"),this.operator=e,this.argument=i,this.prefix=r}}class Ua extends H{constructor(e,i){super("CallExpression"),this.callee=e,this.args=i,Ee(this,"arguments"),this.callee=e,this.arguments=i}}class Sr extends H{constructor(e,i,r=!1){super("MemberExpression"),this.object=e,this.property=i,this.computed=r}}class st extends H{constructor(e,i,r){super("ConditionalExpression"),this.test=e,this.consequent=i,this.alternate=r,Ee(this,"needsIIFE"),Ee(this,"consequentStmts"),Ee(this,"alternateStmts")}}class qa extends H{constructor(e){super("ArrayExpression"),this.elements=e}}class Er extends H{constructor(e){super("ObjectExpression"),this.properties=e}}class Nr extends H{constructor(e,i){super("Property"),this.key=e,this.value=i,Ee(this,"kind"),Ee(this,"method"),Ee(this,"shorthand"),Ee(this,"computed"),this.kind="init",this.method=!1,this.shorthand=!1,this.computed=!1}}class Cr extends H{constructor(e){super("ArrayPattern"),this.elements=e}}class Ir extends H{constructor(e,i){super("AssignmentPattern"),this.left=e,this.right=i}}class Ka extends H{constructor(e,i){super("SwitchExpression"),this.discriminant=e,this.cases=i}}class za extends H{constructor(e,i,r){super("SwitchCase"),this.test=e,this.consequent=i,this.statements=r,this.statements=r}}var Ha=Object.defineProperty,Ga=(t,e,i)=>e in t?Ha(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Xt=(t,e,i)=>Ga(t,typeof e!="symbol"?e+"":e,i);class Ya{constructor(e){Xt(this,"tokens"),Xt(this,"pos"),Xt(this,"functionNames",new Set),Xt(this,"noLineContinuation",!1),this.tokens=e,this.pos=0}peek(e=0){return this.tokens[this.pos+e]||this.tokens[this.tokens.length-1]}advance(){return this.tokens[this.pos++]}match(e,i=null){const r=this.peek();return!(r.type!==e||i!==null&&r.value!==i)}expect(e,i=null){const r=this.peek();if(r.type!==e)throw new Error(`Expected ${e} but got ${r.type} at ${r.line}:${r.column}`);if(i!==null&&r.value!==i)throw new Error(`Expected '${i}' but got '${r.value}' at ${r.line}:${r.column}`);return this.advance()}matchEx(e,i=null,r=!1){if(!r)return this.match(e,i);let s=0,a=this.peek(s);if(a.type===g.NEWLINE&&this.noLineContinuation||(a.type===g.NEWLINE&&(s++,a=this.peek(s),a.type===g.INDENT&&(s++,a=this.peek(s))),a.type!==e)||i!==null&&a.value!==i)return!1;for(let n=0;n<s;n++)this.advance();return!0}peekOperatorEx(e){let i=0,r=this.peek(i),s=!1;if(r.type===g.NEWLINE){if(this.noLineContinuation)return null;i++,r=this.peek(i),r.type===g.INDENT&&(s=!0,i++,r=this.peek(i))}if(r.type!==g.OPERATOR||!e.includes(r.value)||s&&(r.value==="+"||r.value==="-"))return null;for(let a=0;a<i;a++)this.advance();return r.value}skipNewlines(e=!1){for(;this.match(g.NEWLINE)||this.match(g.COMMENT);)this.advance();e&&this.match(g.INDENT)&&this.advance()}parse(){const e=[];for(;!this.match(g.EOF);){if(this.skipNewlines(),this.match(g.DEDENT)){this.advance();continue}if(this.match(g.EOF))break;const i=this.parseStatement();i&&e.push(i),this.skipNewlines()}return new $a(e)}parseStatement(e=!0){this.skipNewlines();const i=this.peek().line;if(this.match(g.COMMENT))return this.advance(),null;let r;if(this.match(g.KEYWORD,"enum"))r=this.parseEnumDefinition();else if(this.match(g.KEYWORD,"type"))r=this.parseTypeDefinition();else if(this.match(g.KEYWORD,"var")||this.match(g.KEYWORD,"varip"))r=this.parseVarDeclaration();else if(this.match(g.KEYWORD,"method"))r=this.parseMethodDeclaration();else if(this.isFunctionDeclaration())r=this.parseFunctionDeclaration();else if(this.match(g.KEYWORD,"if"))r=this.parseIfStatement();else if(this.match(g.KEYWORD,"for"))r=this.parseForStatement();else if(this.match(g.KEYWORD,"while"))r=this.parseWhileStatement();else if(this.match(g.KEYWORD,"break")||this.match(g.KEYWORD,"continue")){const s=this.advance().value;r=new Te(new ae(s))}else this.isTupleDestructuring()?r=this.parseTupleDestructuring():this.peek().type===g.IDENTIFIER&&this.isTypedVarDeclaration()&&(r=this.parseTypedVarDeclaration());if(!r){const s=this.parseExpression();if(this.match(g.OPERATOR)){const a=this.peek().value;if(["=",":=","+=","-=","*=","/=","%="].includes(a)){this.advance(),this.skipNewlines(!0);const n=this.parseExpression();a==="="&&s.type==="Identifier"?r=new Ge([new Ye(s,n)],Ze.LET):r=new Te(new Lt(a===":="?"=":a,s,n))}else r=new Te(s)}else r=new Te(s)}if(r&&(r._line=i,e&&this.match(g.COMMA)&&this.peek().line===i)){const s=[r];for(;this.match(g.COMMA)&&this.peek().line===i;){this.advance(),this.skipNewlines(!0);const a=this.parseStatement(!1);a&&s.push(a)}return new rt(s)}return r}isFunctionDeclaration(){const e=this.pos;try{let i=0;if(this.peek(i).type===g.IDENTIFIER&&this.peek(i+1).type===g.IDENTIFIER&&i++,this.peek(i).type!==g.IDENTIFIER||(i++,this.peek(i).type!==g.LPAREN))return!1;i++;let r=1;for(;r>0&&this.peek(i).type!==g.EOF;)this.peek(i).type===g.LPAREN&&r++,this.peek(i).type===g.RPAREN&&r--,i++;for(;this.peek(i).type===g.NEWLINE;)i++;return this.peek(i).type===g.OPERATOR&&this.peek(i).value==="=>"}finally{this.pos=e}}parseTypeExpression(){let e=this.expect(g.IDENTIFIER).value;for(;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)this.advance(),e+="."+this.advance().value;if(this.match(g.OPERATOR,"<")){this.advance();const i=[];for(i.push(this.parseTypeExpression());this.match(g.COMMA);)this.advance(),this.skipNewlines(),i.push(this.parseTypeExpression());return this.expect(g.OPERATOR,">"),e+"<"+i.join(", ")+">"}return this.match(g.LBRACKET)&&this.peek(1).type===g.RBRACKET?(this.advance(),this.advance(),"array<"+e+">"):e}parseEnumDefinition(){this.expect(g.KEYWORD,"enum");const e=this.expect(g.IDENTIFIER).value;this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){if(this.match(g.COMMENT)){this.advance();continue}const a=this.expect(g.IDENTIFIER).value;i.push(a),this.skipNewlines()}this.match(g.DEDENT)&&this.advance();const r=i.map(a=>new Nr(new ae(a),new pt(`${e}.${a}`))),s=new Er(r);return new Ge([new Ye(new ae(e),s)],Ze.CONST)}parseTypeDefinition(){this.expect(g.KEYWORD,"type");const e=this.expect(g.IDENTIFIER).value;this.match(g.OPERATOR,"=>")&&this.advance(),this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const r=this.parseTypeExpression(),s=this.expect(g.IDENTIFIER).value;let a=null;this.match(g.OPERATOR,"=")&&(this.advance(),this.skipNewlines(),a=this.parseExpression()),i.push({type:r,name:s,defaultValue:a}),this.skipNewlines()}return this.match(g.DEDENT)&&this.advance(),new Ba(e,i)}parseVarDeclaration(){const e=this.advance().value;let i=null,r=null;if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.LBRACKET&&this.peek(2).type===g.RBRACKET)i=this.advance().value,this.advance(),i+="[]",this.advance(),r=this.expect(g.IDENTIFIER).value;else if(this.peek().type===g.IDENTIFIER&&(this.peek(1).type===g.DOT||this.peek(1).type===g.IDENTIFIER||this.peek(1).type===g.OPERATOR&&this.peek(1).value==="<")){for(i=this.advance().value;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)this.advance(),i+="."+this.advance().value;if(this.match(g.LBRACKET)&&this.peek(1).type===g.RBRACKET)this.advance(),this.advance(),i+="[]",r=this.expect(g.IDENTIFIER).value;else if(this.match(g.OPERATOR,"<")){for(this.advance(),i+="<";!this.match(g.OPERATOR,">");)if(this.match(g.IDENTIFIER))for(i+=this.advance().value;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)i+=".",this.advance(),i+=this.advance().value;else if(this.match(g.COMMA))i+=this.advance().value,this.skipNewlines();else break;this.match(g.OPERATOR,">")&&(i+=">",this.advance()),r=this.expect(g.IDENTIFIER).value}else r=this.expect(g.IDENTIFIER).value}else if(this.peek().type===g.IDENTIFIER)r=this.advance().value;else throw new Error(`Expected identifier after ${e} at ${this.peek().line}:${this.peek().column}`);this.functionNames.has(r)&&(r=r+"_var"),this.expect(g.OPERATOR,"="),this.skipNewlines(!0);const s=this.parseExpression(),a=new ae(r);i&&(a.varType=i);const n=[new Ye(a,s,i)];for(;this.match(g.COMMA)&&this.peek(1).type===g.KEYWORD&&(this.peek(1).value==="var"||this.peek(1).value==="varip");){this.advance();const o=this.parseVarDeclaration();n.push(...o.declarations)}return new Ge(n,e)}isTypedVarDeclaration(){let e=0;if(this.peek(e).type!==g.IDENTIFIER)return!1;for(e++;this.peek(e).type===g.DOT&&this.peek(e+1).type===g.IDENTIFIER;)e+=2;if(this.peek(e).type===g.LBRACKET&&this.peek(e+1).type===g.RBRACKET)return e+=2,this.peek(e).type!==g.IDENTIFIER?!1:(e++,this.peek(e).type===g.OPERATOR&&this.peek(e).value==="=");if(this.peek(e).type===g.OPERATOR&&this.peek(e).value==="<"){e++;let i=1;for(;i>0&&this.peek(e).type!==g.EOF;)this.peek(e).type===g.OPERATOR&&this.peek(e).value==="<"?i++:this.peek(e).type===g.OPERATOR&&this.peek(e).value===">"&&i--,e++;return this.peek(e).type!==g.IDENTIFIER?!1:(e++,this.peek(e).type===g.OPERATOR&&this.peek(e).value==="=")}if(this.peek(e).type!==g.IDENTIFIER)return!1;for(e++;this.peek(e).type===g.IDENTIFIER;)e++;return this.peek(e).type===g.OPERATOR&&this.peek(e).value==="="}parseTypedVarDeclaration(){let e=this.advance().value;for(;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)this.advance(),e+="."+this.advance().value;if(this.match(g.LBRACKET)&&this.peek(1).type===g.RBRACKET)this.advance(),this.advance(),e+="[]";else if(this.match(g.OPERATOR,"<")){for(this.advance(),e+="<";!this.match(g.OPERATOR,">");)if(this.match(g.IDENTIFIER))for(e+=this.advance().value;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)e+=".",this.advance(),e+=this.advance().value;else if(this.match(g.COMMA))e+=this.advance().value,this.skipNewlines();else break;this.match(g.OPERATOR,">")&&(e+=">",this.advance())}else for(;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER;)e+=" "+this.advance().value;let i=this.expect(g.IDENTIFIER).value;this.functionNames.has(i)&&(i=i+"_var"),this.expect(g.OPERATOR,"="),this.skipNewlines(!0);const r=this.parseExpression(),s=new ae(i);return s.varType=e,new Ge([new Ye(s,r,e)],Ze.LET)}parseFunctionDeclaration(){let e=null;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&(e=this.advance().value);const i=this.expect(g.IDENTIFIER).value;this.functionNames.add(i),this.expect(g.LPAREN);const r=[];for(;!this.match(g.RPAREN)&&(this.skipNewlines(),!this.match(g.RPAREN));){let n=null;for(;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&this.peek(2).type!==g.LPAREN;)n&&(n+=" "),n=(n||"")+this.advance().value;if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.OPERATOR&&this.peek(1).value==="<"){const c=this.parseTypeExpression();n=n?n+" "+c:c}if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.LBRACKET&&this.peek(2).type===g.RBRACKET){const c=this.parseTypeExpression();n=n?n+" "+c:c}const o=this.expect(g.IDENTIFIER).value,l=new ae(o);if(n&&(l.varType=n),this.match(g.OPERATOR,"=")){this.advance(),this.skipNewlines();const c=this.parseExpression();r.push(new Ir(l,c))}else r.push(l);this.match(g.COMMA)&&this.advance()}this.expect(g.RPAREN),this.skipNewlines(),this.expect(g.OPERATOR,"=>"),this.skipNewlines();const s=this.parseFunctionBody(),a=new ae(i);return e&&(a.returnType=e),new xr(a,r,s,e)}parseMethodDeclaration(){this.expect(g.KEYWORD,"method");let e=null;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&this.peek(2).type===g.LPAREN&&(e=this.advance().value);const i=this.expect(g.IDENTIFIER).value;this.expect(g.LPAREN);const r=[];for(;!this.match(g.RPAREN)&&(this.skipNewlines(),!this.match(g.RPAREN));){let n=null;for(;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&this.peek(2).type!==g.LPAREN;)n&&(n+=" "),n=(n||"")+this.advance().value;if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.OPERATOR&&this.peek(1).value==="<"){const c=this.parseTypeExpression();n=n?n+" "+c:c}if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.LBRACKET&&this.peek(2).type===g.RBRACKET){const c=this.parseTypeExpression();n=n?n+" "+c:c}const o=this.expect(g.IDENTIFIER).value,l=new ae(o);if(n&&(l.varType=n),this.match(g.OPERATOR,"=")){this.advance(),this.skipNewlines();const c=this.parseExpression();r.push(new Ir(l,c))}else r.push(l);this.match(g.COMMA)&&this.advance()}this.expect(g.RPAREN),this.skipNewlines(),this.expect(g.OPERATOR,"=>"),this.skipNewlines();const s=this.parseFunctionBody(),a=new ae(i);return e&&(a.returnType=e),a.isMethod=!0,new xr(a,r,s,e)}parseFunctionBody(){const e=[];if(!this.match(g.INDENT)){const i=this.parseExpression();return new rt([new br(i)])}for(this.advance();!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const i=this.parseStatementOrSequence();Array.isArray(i)?e.push(...i):i&&e.push(i)}return this.match(g.DEDENT)&&this.advance(),e.length>0&&this._addImplicitReturn(e),new rt(e)}_addImplicitReturn(e){const i=e[e.length-1];i.type==="ExpressionStatement"?e[e.length-1]=new br(i.expression):i.type==="IfStatement"&&this._addImplicitReturnToIf(i)}_addImplicitReturnToIf(e){e.consequent&&e.consequent.type==="BlockStatement"&&e.consequent.body.length>0&&this._addImplicitReturn(e.consequent.body),e.alternate&&(e.alternate.type==="IfStatement"?this._addImplicitReturnToIf(e.alternate):e.alternate.type==="BlockStatement"&&e.alternate.body.length>0&&this._addImplicitReturn(e.alternate.body))}parseStatementOrSequence(){this.pos;const e=this.peek().line;if(this.match(g.KEYWORD,"if")){const r=this.parseIfStatement();return r&&(r._line=e),r}if(this.match(g.KEYWORD,"for"))return this.parseForStatement();if(this.match(g.KEYWORD,"while"))return this.parseWhileStatement();if(this.match(g.KEYWORD,"break")||this.match(g.KEYWORD,"continue")){const r=this.advance().value;return new Te(new ae(r))}if(this.match(g.KEYWORD,"var")||this.match(g.KEYWORD,"varip"))return this.parseVarDeclaration();if(this.isTupleDestructuring())return this.parseTupleDestructuring();if(this.peek().type===g.IDENTIFIER&&this.isTypedVarDeclaration()){const r=this.parseTypedVarDeclaration();if(this.match(g.COMMA)&&this.peek(1).type===g.IDENTIFIER){const s=[r];for(;this.match(g.COMMA);)if(this.advance(),this.skipNewlines(!0),this.peek().type===g.IDENTIFIER&&this.isTypedVarDeclaration())s.push(this.parseTypedVarDeclaration());else{const a=this.parseExpression();if(this.match(g.OPERATOR)){const n=this.peek().value;if(["=",":="].includes(n)){this.advance(),this.skipNewlines(!0);const o=this.parseExpression();n==="="&&a.type==="Identifier"?s.push(new Ge([new Ye(a,o)],Ze.LET)):s.push(new Te(new Lt(n===":="?"=":n,a,o)))}}break}return s}return r}const i=[];for(;;){const r=this.parseExpression();if(this.match(g.OPERATOR)){const s=this.peek().value;if(["=",":=","+=","-=","*=","/=","%="].includes(s)){this.advance(),this.skipNewlines(!0);const a=this.parseExpression();if(s==="="&&r.type==="Identifier"?i.push(new Ge([new Ye(r,a)],Ze.LET)):i.push(new Te(new Lt(s===":="?"=":s,r,a))),this.match(g.COMMA)){this.advance(),this.skipNewlines();continue}break}else{if(i.length>0)i.push(new Te(r));else return new Te(r);break}}else if(this.match(g.COMMA)){i.push(new Te(r)),this.advance(),this.skipNewlines();continue}else{if(i.length>0)i.push(new Te(r));else return new Te(r);break}}return i.length>1?i:i.length===1?i[0]:null}parseIfStatement(){this.expect(g.KEYWORD,"if");const e=this.parseExpression();this.skipNewlines();const i=this.parseBlock();let r=null;return this.skipNewlines(),this.match(g.KEYWORD,"else")&&(this.advance(),this.skipNewlines(),this.match(g.KEYWORD,"if")?r=this.parseIfStatement():r=this.parseBlock()),new Fa(e,i,r)}parseForStatement(){this.expect(g.KEYWORD,"for");let e=null,i=!1;if(this.match(g.LBRACKET)){this.advance();const r=[];for(;!this.match(g.RBRACKET);)this.skipNewlines(),r.push(new ae(this.expect(g.IDENTIFIER).value)),this.match(g.COMMA)&&this.advance();this.expect(g.RBRACKET),e=new Cr(r),i=!0}else{const r=this.expect(g.IDENTIFIER).value;e=new ae(r)}if(this.match(g.KEYWORD,"in")){this.advance();const r=this.parseExpression();this.skipNewlines();const s=this.parseBlock(),a=new Ge([new Ye(e,r)],Ze.CONST),n=new _r(a,null,null,s);return n.isForIn=!0,n}else{if(i)throw new Error(`Range-based for loops don't support destructuring at ${this.peek().line}:${this.peek().column}`);this.expect(g.OPERATOR,"=");const r=this.parseExpression();this.expect(g.KEYWORD,"to");const s=this.parseExpression();let a=null;this.match(g.KEYWORD,"by")&&(this.advance(),a=this.parseExpression()),this.skipNewlines();const n=this.parseBlock(),o=new Ge([new Ye(e,r)],Ze.LET),l=new Xe("<=",r,s),c=new st(l,new Xe("<=",e,s),new Xe(">=",e,s));let h;return a?h=new st(l,new Lt("+=",e,a),new Lt("-=",e,a)):h=new st(l,new wr("++",e),new wr("--",e)),new _r(o,c,h,n)}}parseWhileStatement(){this.expect(g.KEYWORD,"while");const e=this.parseExpression();this.skipNewlines();const i=this.parseBlock();return new Wa(e,i)}parseBlock(){if(!this.match(g.INDENT)){const r=this.parseStatement();return new rt(r?[r]:[])}const e=this.peek().indent;this.advance();const i=[];for(;!this.match(g.EOF);){if(this.skipNewlines(),this.match(g.DEDENT)){if(this.peek().indent<e)break;this.advance();continue}if(this.match(g.EOF))break;const r=this.parseStatement();r&&i.push(r)}return this.match(g.DEDENT)&&this.peek().indent<e&&this.advance(),new rt(i)}isTupleDestructuring(){if(!this.match(g.LBRACKET))return!1;let e=1;for(;;){for(;this.peek(e).type===g.NEWLINE;)e++;if(this.peek(e).type!==g.IDENTIFIER)return!1;for(e++;this.peek(e).type===g.NEWLINE;)e++;if(this.peek(e).type===g.RBRACKET){e++;break}else if(this.peek(e).type===g.COMMA){e++;continue}else return!1}for(;this.peek(e).type===g.NEWLINE;)e++;return this.peek(e).type===g.OPERATOR&&this.peek(e).value==="="}parseTupleDestructuring(){this.expect(g.LBRACKET);const e=[];for(;!this.match(g.RBRACKET);){this.skipNewlines();let r=this.expect(g.IDENTIFIER).value;this.functionNames.has(r)&&(r=r+"_var"),e.push(new ae(r)),this.match(g.COMMA)&&this.advance()}this.expect(g.RBRACKET),this.skipNewlines(),this.expect(g.OPERATOR,"="),this.skipNewlines(!0);const i=this.parseExpression();return new Ge([new Ye(new Cr(e),i)],Ze.CONST)}parseExpression(){return this.parseTernary()}parseTernary(){let e=this.parseLogicalOr();if(this.matchEx(g.OPERATOR,"?",!0)){this.advance(),this.skipNewlines(!0);const i=this.parseExpression();this.matchEx(g.COLON,null,!0)?this.advance():this.expect(g.COLON),this.skipNewlines(!0);const r=this.parseExpression();return new st(e,i,r)}return e}parseLogicalOr(){let e=this.parseLogicalAnd();for(;this.matchEx(g.KEYWORD,"or",!0)||this.peekOperatorEx(["||"]);){this.advance(),this.skipNewlines(!0);const i=this.parseLogicalAnd();e=new Xe("||",e,i)}return e}parseLogicalAnd(){let e=this.parseEquality();for(;this.matchEx(g.KEYWORD,"and",!0)||this.peekOperatorEx(["&&"]);){this.advance(),this.skipNewlines(!0);const i=this.parseEquality();e=new Xe("&&",e,i)}return e}parseEquality(){let e=this.parseComparison();for(;this.peekOperatorEx(["==","!="]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseComparison();e=new Xe(i,e,r)}return e}parseComparison(){let e=this.parseAdditive();for(;this.peekOperatorEx(["<",">","<=",">="]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseAdditive();e=new Xe(i,e,r)}return e}parseAdditive(){let e=this.parseMultiplicative();for(;this.peekOperatorEx(["+","-"]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseMultiplicative();e=new Xe(i,e,r)}return e}parseMultiplicative(){let e=this.parseUnary();for(;this.peekOperatorEx(["*","/","%"]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseUnary();e=new Xe(i,e,r)}return e}parseUnary(){if(this.match(g.OPERATOR)){const e=this.peek().value;if(["+","-","!"].includes(e))return this.advance(),this.skipNewlines(),new vr(e,this.parseUnary())}return this.match(g.KEYWORD,"not")?(this.advance(),this.skipNewlines(),new vr("!",this.parseUnary())):this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match(g.OPERATOR,"<")){const i=this.pos;this.advance();let r=1,s=!0,a="";const n=new Set(["float","int","string","bool","color","line","label","box","linefill","table"]);for(;r>0&&!this.match(g.EOF);)if(this.match(g.OPERATOR,"<"))r++,this.advance();else if(this.match(g.OPERATOR,">"))r--,this.advance();else if(this.match(g.IDENTIFIER)||this.match(g.COMMA)||this.match(g.DOT))r===1&&this.match(g.IDENTIFIER)&&a===""&&(a=this.peek().value),this.advance();else{s=!1,this.pos=i;break}if(s&&e.type==="MemberExpression"&&e.property.name==="new"&&(e.object.name==="array"||e.object.name==="matrix")&&n.has(a)&&(e.property=new ae("new_"+a)),s&&this.match(g.LPAREN)){e=this.parseCallExpression(e);continue}else{if(s)continue;break}}else if(this.match(g.LPAREN))e=this.parseCallExpression(e);else if(this.match(g.DOT)){this.advance(),this.skipNewlines();const i=this.peek();if(i.type!==g.IDENTIFIER&&i.type!==g.KEYWORD)throw new Error(`Expected property name but got ${i.type} at ${i.line}:${i.column}`);this.advance(),e=new Sr(e,new ae(i.value),!1)}else if(this.match(g.LBRACKET)){if(this.isTupleDestructuring())break;this.advance(),this.skipNewlines();const i=this.parseExpression();this.expect(g.RBRACKET),e=new Sr(e,i,!0)}else break;return e}parseCallExpression(e){this.expect(g.LPAREN);const i=[],r=[];for(;!this.match(g.RPAREN)&&(this.skipNewlines(),!this.match(g.RPAREN));){if((this.peek().type===g.IDENTIFIER||this.peek().type===g.KEYWORD)&&this.peek(1).type===g.OPERATOR&&this.peek(1).value==="="){const s=this.advance().value;this.advance(),this.skipNewlines();const a=this.parseExpression();r.push(new Nr(new ae(s),a))}else i.push(this.parseExpression());this.match(g.COMMA)&&this.advance(),this.skipNewlines()}return this.expect(g.RPAREN),r.length>0&&i.push(new Er(r)),new Ua(e,i)}parsePrimary(){const e=this.peek();if(this.match(g.NUMBER)){const i=this.advance();return new pt(i.value)}if(this.match(g.STRING)){const i=this.advance();return new pt(i.value)}if(this.match(g.BOOLEAN)){const i=this.advance();return new pt(i.value)}if(this.match(g.IDENTIFIER)){let i=this.advance().value;return this.functionNames.has(i)&&this.peek().type!==g.LPAREN&&(i=i+"_var"),new ae(i)}if(this.match(g.LBRACKET))return this.parseArrayLiteral();if(this.match(g.LPAREN)){this.advance(),this.skipNewlines();const i=this.parseExpression();return this.skipNewlines(),this.expect(g.RPAREN),i}if(this.match(g.KEYWORD,"if"))return this.parseIfExpression();if(this.match(g.KEYWORD,"switch"))return this.parseSwitchExpression();if(this.match(g.KEYWORD,"for"))return this.parseForExpression();if(this.match(g.KEYWORD,"while"))return this.parseWhileExpression();throw new Error(`Unexpected token ${e.type} '${e.value}' at ${e.line}:${e.column}`)}parseArrayLiteral(){this.expect(g.LBRACKET);const e=[];for(;!this.match(g.RBRACKET)&&(this.skipNewlines(),!this.match(g.RBRACKET));)e.push(this.parseExpression()),this.match(g.COMMA)&&this.advance(),this.skipNewlines();return this.expect(g.RBRACKET),new qa(e)}parseIfExpression(){this.expect(g.KEYWORD,"if");const e=this.parseExpression();this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const n=this.parseStatement();n&&i.push(n)}this.advance();let r=[];if(this.match(g.KEYWORD,"else"))if(this.advance(),this.skipNewlines(),this.match(g.KEYWORD,"if")){const n=this.parseIfExpression();if(this.needsIIFE(i,r)){const o=new st(e,new rt(i),n);return o.needsIIFE=!0,o.consequentStmts=i,o.alternateExpr=n,o}else return new st(e,this.getBlockValue(i),n)}else{for(this.expect(g.INDENT);!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const n=this.parseStatement();n&&r.push(n)}this.advance()}if(this.needsIIFE(i,r)){const n=new st(e,new rt(i),new rt(r));return n.needsIIFE=!0,n.consequentStmts=i,n.alternateStmts=r,n}const s=this.getBlockValue(i),a=r.length>0?this.getBlockValue(r):new pt(null);return new st(e,s,a)}needsIIFE(e,i){if(e.length>1||i.length>1)return!0;const r=s=>s.some(a=>a.type==="IfStatement"||a.type==="ForStatement"||a.type==="WhileStatement"||a.type==="BlockStatement");return r(e)||r(i)}parseSwitchExpression(){this.expect(g.KEYWORD,"switch");let e=null;!this.match(g.NEWLINE)&&!this.match(g.INDENT)&&(e=this.parseExpression()),this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){let r=null;this.match(g.OPERATOR,"=>")||(r=this.parseExpression()),this.expect(g.OPERATOR,"=>"),this.skipNewlines();const s=[];if(this.match(g.INDENT)){for(this.advance();!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const n=this.parseStatement();n&&s.push(n)}this.advance()}else{this.noLineContinuation=!0;const n=this.parseStatement();this.noLineContinuation=!1,n&&s.push(n)}const a=this.getBlockValue(s);i.push(new za(r,a,s)),this.skipNewlines()}return this.advance(),new Ka(e,i)}parseForExpression(){const e=this.parseForStatement();return e.isExpression=!0,e}parseWhileExpression(){const e=this.parseWhileStatement();return e.isExpression=!0,e}getBlockValue(e){if(e.length===0)return new pt(null);const i=e[e.length-1];return i.type==="ExpressionStatement"?i.expression:i.type==="VariableDeclaration"&&i.declarations.length>0?i.declarations[0].id:new pt(null)}}var Xa=Object.defineProperty,Qa=(t,e,i)=>e in t?Xa(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Qe=(t,e,i)=>Qa(t,typeof e!="symbol"?e+"":e,i);const Za=new Set(Ji);class Ja{constructor(e={}){Qe(this,"indent"),Qe(this,"indentStr"),Qe(this,"output"),Qe(this,"sourceCode"),Qe(this,"sourceLines"),Qe(this,"lastCommentedLine"),Qe(this,"includeSourceComments"),Qe(this,"paramRenameCounter"),Qe(this,"functionParams"),this.indent=0,this.indentStr=e.indentStr||" ",this.output=[],this.sourceCode=e.sourceCode||null,this.sourceLines=this.sourceCode?this.sourceCode.split(`
|
|
22
|
+
`;break;case"t":r+=" ";break;case"r":r+="\r";break;case"\\":r+="\\";break;case e:r+=e;break;default:r+=s}}else r+=this.advance();if(this.peek()!==e)throw new Error(`Unterminated string at ${this.line}:${i}`);this.advance(),this.addToken(g.STRING,r)}readColorLiteral(){const e=this.column;let i="#";for(this.advance();this.pos<this.source.length&&i.length<9;){const r=this.peek();if(r>="0"&&r<="9"||r>="A"&&r<="F"||r>="a"&&r<="f")i+=this.advance();else break}if(i.length!==7&&i.length!==9)throw new Error(`Invalid color literal '${i}' at ${this.line}:${e}`);this.addToken(g.STRING,i)}readNumber(){this.column;let e="",i=!1;for(this.peek()==="."&&this.isDigit(this.peek(1))&&(i=!0,e+=this.advance());this.pos<this.source.length;){const r=this.peek();if(this.isDigit(r))e+=this.advance();else if(r==="."&&!i){const s=this.peek(1);if(this.isDigit(s)||!this.isIdentifierStart(s)){if(i=!0,e+=this.advance(),!this.isDigit(this.peek()))break}else break}else break}if(this.pos<this.source.length){const r=this.peek();if(r==="e"||r==="E"){const s=this.peek(1);if(this.isDigit(s))for(e+=this.advance();this.pos<this.source.length&&this.isDigit(this.peek());)e+=this.advance();else if(s==="+"||s==="-"){const a=this.peek(2);if(this.isDigit(a))for(e+=this.advance(),e+=this.advance();this.pos<this.source.length&&this.isDigit(this.peek());)e+=this.advance()}}}this.addToken(g.NUMBER,parseFloat(e))}readIdentifier(){this.column;let e="";for(;this.pos<this.source.length&&this.isIdentifierChar(this.peek());)e+=this.advance();Aa.has(e)?this.addToken(g.KEYWORD,e):e==="true"||e==="false"?this.addToken(g.BOOLEAN,e==="true"):this.addToken(g.IDENTIFIER,e)}readOperatorOrPunctuation(){const e=this.peek(),i=this.peek(1),r=e+i;if(Ta.includes(r))return this.advance(),this.advance(),this.addToken(g.OPERATOR,r),!0;if("+-*/%<>=!?".includes(e))return this.advance(),this.addToken(g.OPERATOR,e),!0;switch(e){case"(":return this.parenDepth++,this.advance(),this.addToken(g.LPAREN,e),!0;case")":return this.parenDepth--,this.advance(),this.addToken(g.RPAREN,e),!0;case"[":return this.bracketDepth++,this.advance(),this.addToken(g.LBRACKET,e),!0;case"]":return this.bracketDepth--,this.advance(),this.addToken(g.RBRACKET,e),!0;case"{":return this.braceDepth++,this.advance(),this.addToken(g.LBRACE,e),!0;case"}":return this.braceDepth--,this.advance(),this.addToken(g.RBRACE,e),!0;case",":return this.advance(),this.addToken(g.COMMA,e),!0;case".":return this.isDigit(this.peek(1))?(this.readNumber(),!0):(this.advance(),this.addToken(g.DOT,e),!0);case":":return this.advance(),this.addToken(g.COLON,e),!0;case";":return this.advance(),this.addToken(g.SEMICOLON,e),!0}return!1}peek(e=0){const i=this.pos+e;return i<this.source.length?this.source[i]:"\0"}advance(){const e=this.source[this.pos++];return this.column++,e}skipWhitespaceInline(){if(!this.atLineStart)for(;this.pos<this.source.length&&(this.peek()===" "||this.peek()===" ");)this.advance()}isDigit(e){return e>="0"&&e<="9"}isIdentifierStart(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"}isIdentifierChar(e){return this.isIdentifierStart(e)||this.isDigit(e)}getCurrentIndent(){return this.indentStack[this.indentStack.length-1]}addToken(e,i,r=null){const s=new Pa(e,i,this.line,this.column,r!==null?r:this.getCurrentIndent());this.tokens.push(s)}}var Oa=Object.defineProperty,Va=(t,e,i)=>e in t?Oa(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ee=(t,e,i)=>Va(t,typeof e!="symbol"?e+"":e,i);class H{constructor(e){this.type=e}}class La extends H{constructor(e){super("Program"),this.body=e}}class Pe extends H{constructor(e){super("ExpressionStatement"),this.expression=e}}var Ze=(t=>(t.VAR="var",t.LET="let",t.CONST="const",t))(Ze||{});class Ge extends H{constructor(e,i="let"){super("VariableDeclaration"),this.declarations=e,this.kind=i}}class Ye extends H{constructor(e,i,r=null){super("VariableDeclarator"),this.id=e,this.init=i,this.varType=r}}class xr extends H{constructor(e,i,r,s=null){super("FunctionDeclaration"),this.id=e,this.params=i,this.body=r,this.returnType=s}}class ja extends H{constructor(e,i){super("TypeDefinition"),this.name=e,this.fields=i}}class $a extends H{constructor(e,i,r=null){super("IfStatement"),this.test=e,this.consequent=i,this.alternate=r,Ee(this,"_line")}}class _r extends H{constructor(e,i,r,s){super("ForStatement"),this.init=e,this.test=i,this.update=r,this.body=s,Ee(this,"isForIn")}}class Ba extends H{constructor(e,i){super("WhileStatement"),this.test=e,this.body=i}}class rt extends H{constructor(e){super("BlockStatement"),this.body=e}}class br extends H{constructor(e){super("ReturnStatement"),this.argument=e}}class ae extends H{constructor(e){super("Identifier"),this.name=e,Ee(this,"varType"),Ee(this,"returnType"),Ee(this,"isMethod")}}class pt extends H{constructor(e,i=null){super("Literal"),this.value=e,this.raw=i}}class Xe extends H{constructor(e,i,r){super("BinaryExpression"),this.operator=e,this.left=i,this.right=r}}class vr extends H{constructor(e,i,r=!0){super("UnaryExpression"),this.operator=e,this.argument=i,this.prefix=r}}class Lt extends H{constructor(e,i,r){super("AssignmentExpression"),this.operator=e,this.left=i,this.right=r}}class wr extends H{constructor(e,i,r=!1){super("UpdateExpression"),this.operator=e,this.argument=i,this.prefix=r}}class Fa extends H{constructor(e,i){super("CallExpression"),this.callee=e,this.args=i,Ee(this,"arguments"),this.callee=e,this.arguments=i}}class Sr extends H{constructor(e,i,r=!1){super("MemberExpression"),this.object=e,this.property=i,this.computed=r}}class st extends H{constructor(e,i,r){super("ConditionalExpression"),this.test=e,this.consequent=i,this.alternate=r,Ee(this,"needsIIFE"),Ee(this,"consequentStmts"),Ee(this,"alternateStmts")}}class Wa extends H{constructor(e){super("ArrayExpression"),this.elements=e}}class Er extends H{constructor(e){super("ObjectExpression"),this.properties=e}}class Nr extends H{constructor(e,i){super("Property"),this.key=e,this.value=i,Ee(this,"kind"),Ee(this,"method"),Ee(this,"shorthand"),Ee(this,"computed"),this.kind="init",this.method=!1,this.shorthand=!1,this.computed=!1}}class Cr extends H{constructor(e){super("ArrayPattern"),this.elements=e}}class Ir extends H{constructor(e,i){super("AssignmentPattern"),this.left=e,this.right=i}}class Ua extends H{constructor(e,i){super("SwitchExpression"),this.discriminant=e,this.cases=i}}class qa extends H{constructor(e,i,r){super("SwitchCase"),this.test=e,this.consequent=i,this.statements=r,this.statements=r}}var Ka=Object.defineProperty,za=(t,e,i)=>e in t?Ka(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Xt=(t,e,i)=>za(t,typeof e!="symbol"?e+"":e,i);class Ha{constructor(e){Xt(this,"tokens"),Xt(this,"pos"),Xt(this,"functionNames",new Set),Xt(this,"noLineContinuation",!1),this.tokens=e,this.pos=0}peek(e=0){return this.tokens[this.pos+e]||this.tokens[this.tokens.length-1]}advance(){return this.tokens[this.pos++]}match(e,i=null){const r=this.peek();return!(r.type!==e||i!==null&&r.value!==i)}expect(e,i=null){const r=this.peek();if(r.type!==e)throw new Error(`Expected ${e} but got ${r.type} at ${r.line}:${r.column}`);if(i!==null&&r.value!==i)throw new Error(`Expected '${i}' but got '${r.value}' at ${r.line}:${r.column}`);return this.advance()}matchEx(e,i=null,r=!1){if(!r)return this.match(e,i);let s=0,a=this.peek(s);if(a.type===g.NEWLINE&&this.noLineContinuation||(a.type===g.NEWLINE&&(s++,a=this.peek(s),a.type===g.INDENT&&(s++,a=this.peek(s))),a.type!==e)||i!==null&&a.value!==i)return!1;for(let n=0;n<s;n++)this.advance();return!0}peekOperatorEx(e){let i=0,r=this.peek(i),s=!1;if(r.type===g.NEWLINE){if(this.noLineContinuation)return null;i++,r=this.peek(i),r.type===g.INDENT&&(s=!0,i++,r=this.peek(i))}if(r.type!==g.OPERATOR||!e.includes(r.value)||s&&(r.value==="+"||r.value==="-"))return null;for(let a=0;a<i;a++)this.advance();return r.value}skipNewlines(e=!1){for(;this.match(g.NEWLINE)||this.match(g.COMMENT);)this.advance();e&&this.match(g.INDENT)&&this.advance()}parse(){const e=[];for(;!this.match(g.EOF);){if(this.skipNewlines(),this.match(g.DEDENT)){this.advance();continue}if(this.match(g.EOF))break;const i=this.parseStatement();i&&e.push(i),this.skipNewlines()}return new La(e)}parseStatement(e=!0){this.skipNewlines();const i=this.peek().line;if(this.match(g.COMMENT))return this.advance(),null;let r;if(this.match(g.KEYWORD,"enum"))r=this.parseEnumDefinition();else if(this.match(g.KEYWORD,"type"))r=this.parseTypeDefinition();else if(this.match(g.KEYWORD,"var")||this.match(g.KEYWORD,"varip"))r=this.parseVarDeclaration();else if(this.match(g.KEYWORD,"method"))r=this.parseMethodDeclaration();else if(this.isFunctionDeclaration())r=this.parseFunctionDeclaration();else if(this.match(g.KEYWORD,"if"))r=this.parseIfStatement();else if(this.match(g.KEYWORD,"for"))r=this.parseForStatement();else if(this.match(g.KEYWORD,"while"))r=this.parseWhileStatement();else if(this.match(g.KEYWORD,"break")||this.match(g.KEYWORD,"continue")){const s=this.advance().value;r=new Pe(new ae(s))}else this.isTupleDestructuring()?r=this.parseTupleDestructuring():this.peek().type===g.IDENTIFIER&&this.isTypedVarDeclaration()&&(r=this.parseTypedVarDeclaration());if(!r){const s=this.parseExpression();if(this.match(g.OPERATOR)){const a=this.peek().value;if(["=",":=","+=","-=","*=","/=","%="].includes(a)){this.advance(),this.skipNewlines(!0);const n=this.parseExpression();a==="="&&s.type==="Identifier"?r=new Ge([new Ye(s,n)],Ze.LET):r=new Pe(new Lt(a===":="?"=":a,s,n))}else r=new Pe(s)}else r=new Pe(s)}if(r&&(r._line=i,e&&this.match(g.COMMA)&&this.peek().line===i)){const s=[r];for(;this.match(g.COMMA)&&this.peek().line===i;){this.advance(),this.skipNewlines(!0);const a=this.parseStatement(!1);a&&s.push(a)}return new rt(s)}return r}isFunctionDeclaration(){const e=this.pos;try{let i=0;if(this.peek(i).type===g.IDENTIFIER&&this.peek(i+1).type===g.IDENTIFIER&&i++,this.peek(i).type!==g.IDENTIFIER||(i++,this.peek(i).type!==g.LPAREN))return!1;i++;let r=1;for(;r>0&&this.peek(i).type!==g.EOF;)this.peek(i).type===g.LPAREN&&r++,this.peek(i).type===g.RPAREN&&r--,i++;for(;this.peek(i).type===g.NEWLINE;)i++;return this.peek(i).type===g.OPERATOR&&this.peek(i).value==="=>"}finally{this.pos=e}}parseTypeExpression(){let e=this.expect(g.IDENTIFIER).value;for(;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)this.advance(),e+="."+this.advance().value;if(this.match(g.OPERATOR,"<")){this.advance();const i=[];for(i.push(this.parseTypeExpression());this.match(g.COMMA);)this.advance(),this.skipNewlines(),i.push(this.parseTypeExpression());return this.expect(g.OPERATOR,">"),e+"<"+i.join(", ")+">"}return this.match(g.LBRACKET)&&this.peek(1).type===g.RBRACKET?(this.advance(),this.advance(),"array<"+e+">"):e}parseEnumDefinition(){this.expect(g.KEYWORD,"enum");const e=this.expect(g.IDENTIFIER).value;this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){if(this.match(g.COMMENT)){this.advance();continue}const a=this.expect(g.IDENTIFIER).value;i.push(a),this.skipNewlines()}this.match(g.DEDENT)&&this.advance();const r=i.map(a=>new Nr(new ae(a),new pt(`${e}.${a}`))),s=new Er(r);return new Ge([new Ye(new ae(e),s)],Ze.CONST)}parseTypeDefinition(){this.expect(g.KEYWORD,"type");const e=this.expect(g.IDENTIFIER).value;this.match(g.OPERATOR,"=>")&&this.advance(),this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const r=this.parseTypeExpression(),s=this.expect(g.IDENTIFIER).value;let a=null;this.match(g.OPERATOR,"=")&&(this.advance(),this.skipNewlines(),a=this.parseExpression()),i.push({type:r,name:s,defaultValue:a}),this.skipNewlines()}return this.match(g.DEDENT)&&this.advance(),new ja(e,i)}parseVarDeclaration(){const e=this.advance().value;let i=null,r=null;if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.LBRACKET&&this.peek(2).type===g.RBRACKET)i=this.advance().value,this.advance(),i+="[]",this.advance(),r=this.expect(g.IDENTIFIER).value;else if(this.peek().type===g.IDENTIFIER&&(this.peek(1).type===g.DOT||this.peek(1).type===g.IDENTIFIER||this.peek(1).type===g.OPERATOR&&this.peek(1).value==="<")){for(i=this.advance().value;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)this.advance(),i+="."+this.advance().value;if(this.match(g.LBRACKET)&&this.peek(1).type===g.RBRACKET)this.advance(),this.advance(),i+="[]",r=this.expect(g.IDENTIFIER).value;else if(this.match(g.OPERATOR,"<")){for(this.advance(),i+="<";!this.match(g.OPERATOR,">");)if(this.match(g.IDENTIFIER))for(i+=this.advance().value;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)i+=".",this.advance(),i+=this.advance().value;else if(this.match(g.COMMA))i+=this.advance().value,this.skipNewlines();else break;this.match(g.OPERATOR,">")&&(i+=">",this.advance()),r=this.expect(g.IDENTIFIER).value}else r=this.expect(g.IDENTIFIER).value}else if(this.peek().type===g.IDENTIFIER)r=this.advance().value;else throw new Error(`Expected identifier after ${e} at ${this.peek().line}:${this.peek().column}`);this.functionNames.has(r)&&(r=r+"_var"),this.expect(g.OPERATOR,"="),this.skipNewlines(!0);const s=this.parseExpression(),a=new ae(r);i&&(a.varType=i);const n=[new Ye(a,s,i)];for(;this.match(g.COMMA)&&this.peek(1).type===g.KEYWORD&&(this.peek(1).value==="var"||this.peek(1).value==="varip");){this.advance();const o=this.parseVarDeclaration();n.push(...o.declarations)}return new Ge(n,e)}isTypedVarDeclaration(){let e=0;if(this.peek(e).type!==g.IDENTIFIER)return!1;for(e++;this.peek(e).type===g.DOT&&this.peek(e+1).type===g.IDENTIFIER;)e+=2;if(this.peek(e).type===g.LBRACKET&&this.peek(e+1).type===g.RBRACKET)return e+=2,this.peek(e).type!==g.IDENTIFIER?!1:(e++,this.peek(e).type===g.OPERATOR&&this.peek(e).value==="=");if(this.peek(e).type===g.OPERATOR&&this.peek(e).value==="<"){e++;let i=1;for(;i>0&&this.peek(e).type!==g.EOF;)this.peek(e).type===g.OPERATOR&&this.peek(e).value==="<"?i++:this.peek(e).type===g.OPERATOR&&this.peek(e).value===">"&&i--,e++;return this.peek(e).type!==g.IDENTIFIER?!1:(e++,this.peek(e).type===g.OPERATOR&&this.peek(e).value==="=")}if(this.peek(e).type!==g.IDENTIFIER)return!1;for(e++;this.peek(e).type===g.IDENTIFIER;)e++;return this.peek(e).type===g.OPERATOR&&this.peek(e).value==="="}parseTypedVarDeclaration(){let e=this.advance().value;for(;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)this.advance(),e+="."+this.advance().value;if(this.match(g.LBRACKET)&&this.peek(1).type===g.RBRACKET)this.advance(),this.advance(),e+="[]";else if(this.match(g.OPERATOR,"<")){for(this.advance(),e+="<";!this.match(g.OPERATOR,">");)if(this.match(g.IDENTIFIER))for(e+=this.advance().value;this.match(g.DOT)&&this.peek(1).type===g.IDENTIFIER;)e+=".",this.advance(),e+=this.advance().value;else if(this.match(g.COMMA))e+=this.advance().value,this.skipNewlines();else break;this.match(g.OPERATOR,">")&&(e+=">",this.advance())}else for(;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER;)e+=" "+this.advance().value;let i=this.expect(g.IDENTIFIER).value;this.functionNames.has(i)&&(i=i+"_var"),this.expect(g.OPERATOR,"="),this.skipNewlines(!0);const r=this.parseExpression(),s=new ae(i);return s.varType=e,new Ge([new Ye(s,r,e)],Ze.LET)}parseFunctionDeclaration(){let e=null;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&(e=this.advance().value);const i=this.expect(g.IDENTIFIER).value;this.functionNames.add(i),this.expect(g.LPAREN);const r=[];for(;!this.match(g.RPAREN)&&(this.skipNewlines(),!this.match(g.RPAREN));){let n=null;for(;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&this.peek(2).type!==g.LPAREN;)n&&(n+=" "),n=(n||"")+this.advance().value;if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.OPERATOR&&this.peek(1).value==="<"){const c=this.parseTypeExpression();n=n?n+" "+c:c}if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.LBRACKET&&this.peek(2).type===g.RBRACKET){const c=this.parseTypeExpression();n=n?n+" "+c:c}const o=this.expect(g.IDENTIFIER).value,l=new ae(o);if(n&&(l.varType=n),this.match(g.OPERATOR,"=")){this.advance(),this.skipNewlines();const c=this.parseExpression();r.push(new Ir(l,c))}else r.push(l);this.match(g.COMMA)&&this.advance()}this.expect(g.RPAREN),this.skipNewlines(),this.expect(g.OPERATOR,"=>"),this.skipNewlines();const s=this.parseFunctionBody(),a=new ae(i);return e&&(a.returnType=e),new xr(a,r,s,e)}parseMethodDeclaration(){this.expect(g.KEYWORD,"method");let e=null;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&this.peek(2).type===g.LPAREN&&(e=this.advance().value);const i=this.expect(g.IDENTIFIER).value;this.expect(g.LPAREN);const r=[];for(;!this.match(g.RPAREN)&&(this.skipNewlines(),!this.match(g.RPAREN));){let n=null;for(;this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.IDENTIFIER&&this.peek(2).type!==g.LPAREN;)n&&(n+=" "),n=(n||"")+this.advance().value;if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.OPERATOR&&this.peek(1).value==="<"){const c=this.parseTypeExpression();n=n?n+" "+c:c}if(this.peek().type===g.IDENTIFIER&&this.peek(1).type===g.LBRACKET&&this.peek(2).type===g.RBRACKET){const c=this.parseTypeExpression();n=n?n+" "+c:c}const o=this.expect(g.IDENTIFIER).value,l=new ae(o);if(n&&(l.varType=n),this.match(g.OPERATOR,"=")){this.advance(),this.skipNewlines();const c=this.parseExpression();r.push(new Ir(l,c))}else r.push(l);this.match(g.COMMA)&&this.advance()}this.expect(g.RPAREN),this.skipNewlines(),this.expect(g.OPERATOR,"=>"),this.skipNewlines();const s=this.parseFunctionBody(),a=new ae(i);return e&&(a.returnType=e),a.isMethod=!0,new xr(a,r,s,e)}parseFunctionBody(){const e=[];if(!this.match(g.INDENT)){const i=this.parseExpression();return new rt([new br(i)])}for(this.advance();!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const i=this.parseStatementOrSequence();Array.isArray(i)?e.push(...i):i&&e.push(i)}return this.match(g.DEDENT)&&this.advance(),e.length>0&&this._addImplicitReturn(e),new rt(e)}_addImplicitReturn(e){const i=e[e.length-1];i.type==="ExpressionStatement"?e[e.length-1]=new br(i.expression):i.type==="IfStatement"&&this._addImplicitReturnToIf(i)}_addImplicitReturnToIf(e){e.consequent&&e.consequent.type==="BlockStatement"&&e.consequent.body.length>0&&this._addImplicitReturn(e.consequent.body),e.alternate&&(e.alternate.type==="IfStatement"?this._addImplicitReturnToIf(e.alternate):e.alternate.type==="BlockStatement"&&e.alternate.body.length>0&&this._addImplicitReturn(e.alternate.body))}parseStatementOrSequence(){this.pos;const e=this.peek().line;if(this.match(g.KEYWORD,"if")){const r=this.parseIfStatement();return r&&(r._line=e),r}if(this.match(g.KEYWORD,"for"))return this.parseForStatement();if(this.match(g.KEYWORD,"while"))return this.parseWhileStatement();if(this.match(g.KEYWORD,"break")||this.match(g.KEYWORD,"continue")){const r=this.advance().value;return new Pe(new ae(r))}if(this.match(g.KEYWORD,"var")||this.match(g.KEYWORD,"varip"))return this.parseVarDeclaration();if(this.isTupleDestructuring())return this.parseTupleDestructuring();if(this.peek().type===g.IDENTIFIER&&this.isTypedVarDeclaration()){const r=this.parseTypedVarDeclaration();if(this.match(g.COMMA)&&this.peek(1).type===g.IDENTIFIER){const s=[r];for(;this.match(g.COMMA);)if(this.advance(),this.skipNewlines(!0),this.peek().type===g.IDENTIFIER&&this.isTypedVarDeclaration())s.push(this.parseTypedVarDeclaration());else{const a=this.parseExpression();if(this.match(g.OPERATOR)){const n=this.peek().value;if(["=",":="].includes(n)){this.advance(),this.skipNewlines(!0);const o=this.parseExpression();n==="="&&a.type==="Identifier"?s.push(new Ge([new Ye(a,o)],Ze.LET)):s.push(new Pe(new Lt(n===":="?"=":n,a,o)))}}break}return s}return r}const i=[];for(;;){const r=this.parseExpression();if(this.match(g.OPERATOR)){const s=this.peek().value;if(["=",":=","+=","-=","*=","/=","%="].includes(s)){this.advance(),this.skipNewlines(!0);const a=this.parseExpression();if(s==="="&&r.type==="Identifier"?i.push(new Ge([new Ye(r,a)],Ze.LET)):i.push(new Pe(new Lt(s===":="?"=":s,r,a))),this.match(g.COMMA)){this.advance(),this.skipNewlines();continue}break}else{if(i.length>0)i.push(new Pe(r));else return new Pe(r);break}}else if(this.match(g.COMMA)){i.push(new Pe(r)),this.advance(),this.skipNewlines();continue}else{if(i.length>0)i.push(new Pe(r));else return new Pe(r);break}}return i.length>1?i:i.length===1?i[0]:null}parseIfStatement(){this.expect(g.KEYWORD,"if");const e=this.parseExpression();this.skipNewlines();const i=this.parseBlock();let r=null;return this.skipNewlines(),this.match(g.KEYWORD,"else")&&(this.advance(),this.skipNewlines(),this.match(g.KEYWORD,"if")?r=this.parseIfStatement():r=this.parseBlock()),new $a(e,i,r)}parseForStatement(){this.expect(g.KEYWORD,"for");let e=null,i=!1;if(this.match(g.LBRACKET)){this.advance();const r=[];for(;!this.match(g.RBRACKET);)this.skipNewlines(),r.push(new ae(this.expect(g.IDENTIFIER).value)),this.match(g.COMMA)&&this.advance();this.expect(g.RBRACKET),e=new Cr(r),i=!0}else{const r=this.expect(g.IDENTIFIER).value;e=new ae(r)}if(this.match(g.KEYWORD,"in")){this.advance();const r=this.parseExpression();this.skipNewlines();const s=this.parseBlock(),a=new Ge([new Ye(e,r)],Ze.CONST),n=new _r(a,null,null,s);return n.isForIn=!0,n}else{if(i)throw new Error(`Range-based for loops don't support destructuring at ${this.peek().line}:${this.peek().column}`);this.expect(g.OPERATOR,"=");const r=this.parseExpression();this.expect(g.KEYWORD,"to");const s=this.parseExpression();let a=null;this.match(g.KEYWORD,"by")&&(this.advance(),a=this.parseExpression()),this.skipNewlines();const n=this.parseBlock(),o=new Ge([new Ye(e,r)],Ze.LET),l=new Xe("<=",r,s),c=new st(l,new Xe("<=",e,s),new Xe(">=",e,s));let h;return a?h=new st(l,new Lt("+=",e,a),new Lt("-=",e,a)):h=new st(l,new wr("++",e),new wr("--",e)),new _r(o,c,h,n)}}parseWhileStatement(){this.expect(g.KEYWORD,"while");const e=this.parseExpression();this.skipNewlines();const i=this.parseBlock();return new Ba(e,i)}parseBlock(){if(!this.match(g.INDENT)){const r=this.parseStatement();return new rt(r?[r]:[])}const e=this.peek().indent;this.advance();const i=[];for(;!this.match(g.EOF);){if(this.skipNewlines(),this.match(g.DEDENT)){if(this.peek().indent<e)break;this.advance();continue}if(this.match(g.EOF))break;const r=this.parseStatement();r&&i.push(r)}return this.match(g.DEDENT)&&this.peek().indent<e&&this.advance(),new rt(i)}isTupleDestructuring(){if(!this.match(g.LBRACKET))return!1;let e=1;for(;;){for(;this.peek(e).type===g.NEWLINE;)e++;if(this.peek(e).type!==g.IDENTIFIER)return!1;for(e++;this.peek(e).type===g.NEWLINE;)e++;if(this.peek(e).type===g.RBRACKET){e++;break}else if(this.peek(e).type===g.COMMA){e++;continue}else return!1}for(;this.peek(e).type===g.NEWLINE;)e++;return this.peek(e).type===g.OPERATOR&&this.peek(e).value==="="}parseTupleDestructuring(){this.expect(g.LBRACKET);const e=[];for(;!this.match(g.RBRACKET);){this.skipNewlines();let r=this.expect(g.IDENTIFIER).value;this.functionNames.has(r)&&(r=r+"_var"),e.push(new ae(r)),this.match(g.COMMA)&&this.advance()}this.expect(g.RBRACKET),this.skipNewlines(),this.expect(g.OPERATOR,"="),this.skipNewlines(!0);const i=this.parseExpression();return new Ge([new Ye(new Cr(e),i)],Ze.CONST)}parseExpression(){return this.parseTernary()}parseTernary(){let e=this.parseLogicalOr();if(this.matchEx(g.OPERATOR,"?",!0)){this.advance(),this.skipNewlines(!0);const i=this.parseExpression();this.matchEx(g.COLON,null,!0)?this.advance():this.expect(g.COLON),this.skipNewlines(!0);const r=this.parseExpression();return new st(e,i,r)}return e}parseLogicalOr(){let e=this.parseLogicalAnd();for(;this.matchEx(g.KEYWORD,"or",!0)||this.peekOperatorEx(["||"]);){this.advance(),this.skipNewlines(!0);const i=this.parseLogicalAnd();e=new Xe("||",e,i)}return e}parseLogicalAnd(){let e=this.parseEquality();for(;this.matchEx(g.KEYWORD,"and",!0)||this.peekOperatorEx(["&&"]);){this.advance(),this.skipNewlines(!0);const i=this.parseEquality();e=new Xe("&&",e,i)}return e}parseEquality(){let e=this.parseComparison();for(;this.peekOperatorEx(["==","!="]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseComparison();e=new Xe(i,e,r)}return e}parseComparison(){let e=this.parseAdditive();for(;this.peekOperatorEx(["<",">","<=",">="]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseAdditive();e=new Xe(i,e,r)}return e}parseAdditive(){let e=this.parseMultiplicative();for(;this.peekOperatorEx(["+","-"]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseMultiplicative();e=new Xe(i,e,r)}return e}parseMultiplicative(){let e=this.parseUnary();for(;this.peekOperatorEx(["*","/","%"]);){const i=this.advance().value;this.skipNewlines(!0);const r=this.parseUnary();e=new Xe(i,e,r)}return e}parseUnary(){if(this.match(g.OPERATOR)){const e=this.peek().value;if(["+","-","!"].includes(e))return this.advance(),this.skipNewlines(),new vr(e,this.parseUnary())}return this.match(g.KEYWORD,"not")?(this.advance(),this.skipNewlines(),new vr("!",this.parseUnary())):this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match(g.OPERATOR,"<")){const i=this.pos;this.advance();let r=1,s=!0,a="";const n=new Set(["float","int","string","bool","color","line","label","box","linefill","table"]);for(;r>0&&!this.match(g.EOF);)if(this.match(g.OPERATOR,"<"))r++,this.advance();else if(this.match(g.OPERATOR,">"))r--,this.advance();else if(this.match(g.IDENTIFIER)||this.match(g.COMMA)||this.match(g.DOT))r===1&&this.match(g.IDENTIFIER)&&a===""&&(a=this.peek().value),this.advance();else{s=!1,this.pos=i;break}if(s&&e.type==="MemberExpression"&&e.property.name==="new"&&(e.object.name==="array"||e.object.name==="matrix")&&n.has(a)&&(e.property=new ae("new_"+a)),s&&this.match(g.LPAREN)){e=this.parseCallExpression(e);continue}else{if(s)continue;break}}else if(this.match(g.LPAREN))e=this.parseCallExpression(e);else if(this.match(g.DOT)){this.advance(),this.skipNewlines();const i=this.peek();if(i.type!==g.IDENTIFIER&&i.type!==g.KEYWORD)throw new Error(`Expected property name but got ${i.type} at ${i.line}:${i.column}`);this.advance(),e=new Sr(e,new ae(i.value),!1)}else if(this.match(g.LBRACKET)){if(this.isTupleDestructuring())break;this.advance(),this.skipNewlines();const i=this.parseExpression();this.expect(g.RBRACKET),e=new Sr(e,i,!0)}else break;return e}parseCallExpression(e){this.expect(g.LPAREN);const i=[],r=[];for(;!this.match(g.RPAREN)&&(this.skipNewlines(),!this.match(g.RPAREN));){if((this.peek().type===g.IDENTIFIER||this.peek().type===g.KEYWORD)&&this.peek(1).type===g.OPERATOR&&this.peek(1).value==="="){const s=this.advance().value;this.advance(),this.skipNewlines();const a=this.parseExpression();r.push(new Nr(new ae(s),a))}else i.push(this.parseExpression());this.match(g.COMMA)&&this.advance(),this.skipNewlines()}return this.expect(g.RPAREN),r.length>0&&i.push(new Er(r)),new Fa(e,i)}parsePrimary(){const e=this.peek();if(this.match(g.NUMBER)){const i=this.advance();return new pt(i.value)}if(this.match(g.STRING)){const i=this.advance();return new pt(i.value)}if(this.match(g.BOOLEAN)){const i=this.advance();return new pt(i.value)}if(this.match(g.IDENTIFIER)){let i=this.advance().value;return this.functionNames.has(i)&&this.peek().type!==g.LPAREN&&(i=i+"_var"),new ae(i)}if(this.match(g.LBRACKET))return this.parseArrayLiteral();if(this.match(g.LPAREN)){this.advance(),this.skipNewlines();const i=this.parseExpression();return this.skipNewlines(),this.expect(g.RPAREN),i}if(this.match(g.KEYWORD,"if"))return this.parseIfExpression();if(this.match(g.KEYWORD,"switch"))return this.parseSwitchExpression();if(this.match(g.KEYWORD,"for"))return this.parseForExpression();if(this.match(g.KEYWORD,"while"))return this.parseWhileExpression();throw new Error(`Unexpected token ${e.type} '${e.value}' at ${e.line}:${e.column}`)}parseArrayLiteral(){this.expect(g.LBRACKET);const e=[];for(;!this.match(g.RBRACKET)&&(this.skipNewlines(),!this.match(g.RBRACKET));)e.push(this.parseExpression()),this.match(g.COMMA)&&this.advance(),this.skipNewlines();return this.expect(g.RBRACKET),new Wa(e)}parseIfExpression(){this.expect(g.KEYWORD,"if");const e=this.parseExpression();this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const n=this.parseStatement();n&&i.push(n)}this.advance();let r=[];if(this.match(g.KEYWORD,"else"))if(this.advance(),this.skipNewlines(),this.match(g.KEYWORD,"if")){const n=this.parseIfExpression();if(this.needsIIFE(i,r)){const o=new st(e,new rt(i),n);return o.needsIIFE=!0,o.consequentStmts=i,o.alternateExpr=n,o}else return new st(e,this.getBlockValue(i),n)}else{for(this.expect(g.INDENT);!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const n=this.parseStatement();n&&r.push(n)}this.advance()}if(this.needsIIFE(i,r)){const n=new st(e,new rt(i),new rt(r));return n.needsIIFE=!0,n.consequentStmts=i,n.alternateStmts=r,n}const s=this.getBlockValue(i),a=r.length>0?this.getBlockValue(r):new pt(null);return new st(e,s,a)}needsIIFE(e,i){if(e.length>1||i.length>1)return!0;const r=s=>s.some(a=>a.type==="IfStatement"||a.type==="ForStatement"||a.type==="WhileStatement"||a.type==="BlockStatement");return r(e)||r(i)}parseSwitchExpression(){this.expect(g.KEYWORD,"switch");let e=null;!this.match(g.NEWLINE)&&!this.match(g.INDENT)&&(e=this.parseExpression()),this.skipNewlines(),this.expect(g.INDENT);const i=[];for(;!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){let r=null;this.match(g.OPERATOR,"=>")||(r=this.parseExpression()),this.expect(g.OPERATOR,"=>"),this.skipNewlines();const s=[];if(this.match(g.INDENT)){for(this.advance();!this.match(g.DEDENT)&&!this.match(g.EOF)&&(this.skipNewlines(),!this.match(g.DEDENT));){const n=this.parseStatement();n&&s.push(n)}this.advance()}else{this.noLineContinuation=!0;const n=this.parseStatement();this.noLineContinuation=!1,n&&s.push(n)}const a=this.getBlockValue(s);i.push(new qa(r,a,s)),this.skipNewlines()}return this.advance(),new Ua(e,i)}parseForExpression(){const e=this.parseForStatement();return e.isExpression=!0,e}parseWhileExpression(){const e=this.parseWhileStatement();return e.isExpression=!0,e}getBlockValue(e){if(e.length===0)return new pt(null);const i=e[e.length-1];return i.type==="ExpressionStatement"?i.expression:i.type==="VariableDeclaration"&&i.declarations.length>0?i.declarations[0].id:new pt(null)}}var Ga=Object.defineProperty,Ya=(t,e,i)=>e in t?Ga(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Qe=(t,e,i)=>Ya(t,typeof e!="symbol"?e+"":e,i);const Xa=new Set(Ji);class Qa{constructor(e={}){Qe(this,"indent"),Qe(this,"indentStr"),Qe(this,"output"),Qe(this,"sourceCode"),Qe(this,"sourceLines"),Qe(this,"lastCommentedLine"),Qe(this,"includeSourceComments"),Qe(this,"paramRenameCounter"),Qe(this,"functionParams"),this.indent=0,this.indentStr=e.indentStr||" ",this.output=[],this.sourceCode=e.sourceCode||null,this.sourceLines=this.sourceCode?this.sourceCode.split(`
|
|
23
23
|
`):[],this.lastCommentedLine=-1,this.includeSourceComments=e.includeSourceComments||!1,this.paramRenameCounter=0,this.functionParams=new Map}generate(e){if(this.output=[],this.indent=0,this.lastCommentedLine=-1,this.functionParams=new Map,e.type==="Program")this.preProcessAST(e),this.generateProgram(e);else throw new Error(`Expected Program node, got ${e.type}`);return this.output.join("")}preProcessAST(e){this.collectFunctionParams(e),this.renameConflictingVariables(e)}renameConflictingVariables(e){const i=new Map;this.collectConflictingVarNames(e,i),i.size>0&&this.renameVariableRefsInAST(e,i)}collectConflictingVarNames(e,i){if(!(!e||typeof e!="object")){if(e.type==="VariableDeclaration"){for(const r of e.declarations)if(r.id?.type==="Identifier"&&Ci.has(r.id.name)&&!i.has(r.id.name)&&i.set(r.id.name,`${r.id.name}_$${this.paramRenameCounter++}`),r.id?.type==="ArrayPattern")for(const s of r.id.elements)s?.type==="Identifier"&&Ci.has(s.name)&&!i.has(s.name)&&i.set(s.name,`${s.name}_$${this.paramRenameCounter++}`)}(e.type==="AssignmentExpression"||e.type==="ReassignmentExpression")&&e.left?.type==="Identifier"&&Ci.has(e.left.name)&&!i.has(e.left.name)&&i.set(e.left.name,`${e.left.name}_$${this.paramRenameCounter++}`);for(const r of Object.keys(e)){if(r==="type")continue;const s=e[r];if(Array.isArray(s))for(const a of s)a&&typeof a=="object"&&this.collectConflictingVarNames(a,i);else s&&typeof s=="object"&&s.type&&this.collectConflictingVarNames(s,i)}}}renameVariableRefsInAST(e,i){if(!(!e||typeof e!="object")){if(e.type==="CallExpression"){if(e.callee?.type==="Identifier"&&i.has(e.callee.name)||this.renameVariableRefsInAST(e.callee,i),e.arguments)for(const r of e.arguments)this.renameVariableRefsInAST(r,i);return}if(e.type==="MemberExpression"){if(!e.computed&&e.object?.type==="Identifier"&&i.has(e.object.name))return;if(!e.computed&&e.property?.type==="Identifier"&&i.has(e.property.name)){this.renameVariableRefsInAST(e.object,i);return}this.renameVariableRefsInAST(e.object,i),e.computed&&this.renameVariableRefsInAST(e.property,i);return}if(e.type==="Property"){this.renameVariableRefsInAST(e.value,i);return}if(e.type==="Identifier"&&i.has(e.name)){e.name=i.get(e.name);return}for(const r of Object.keys(e)){if(r==="type")continue;const s=e[r];if(Array.isArray(s))for(const a of s)a&&typeof a=="object"&&this.renameVariableRefsInAST(a,i);else s&&typeof s=="object"&&s.type&&this.renameVariableRefsInAST(s,i)}}}collectFunctionParams(e){if(!(!e||typeof e!="object")){if(e.type==="FunctionDeclaration"&&e.id?.name){const i=[];for(const r of e.params)r.type==="Identifier"?i.push(r.name):r.type==="AssignmentPattern"&&r.left?.name&&i.push(r.left.name);this.functionParams.set(e.id.name,i)}if(Array.isArray(e.body))for(const i of e.body)this.collectFunctionParams(i);else e.body&&typeof e.body=="object"&&this.collectFunctionParams(e.body)}}writeSourceComment(e,i=null){if(!this.sourceLines.length)return;const r=i||e,s=[];for(let a=e-1;a<r&&a<this.sourceLines.length;a++)if(a>this.lastCommentedLine){const n=this.sourceLines[a].trim();n&&!n.startsWith("//@")&&!n.startsWith("//")&&s.push(this.sourceLines[a])}if(s.length>0){for(const a of s)this.write(this.indentStr.repeat(this.indent)),this.write("/// "),this.write(a.trimEnd()),this.write(`
|
|
24
24
|
`);this.lastCommentedLine=Math.max(this.lastCommentedLine,r-1)}}write(e){this.output.push(e)}writeLine(e=""){e?this.output.push(this.indentStr.repeat(this.indent)+e+`
|
|
25
25
|
`):this.output.push(`
|
|
26
26
|
`)}increaseIndent(){this.indent++}decreaseIndent(){this.indent--}generateProgram(e){for(let i=0;i<e.body.length;i++)if(this.generateStatement(e.body[i]),i<e.body.length-1){const r=e.body[i],s=e.body[i+1];(r.type==="FunctionDeclaration"||r.type==="TypeDefinition")&&(s.type==="FunctionDeclaration"||s.type==="TypeDefinition")&&this.writeLine()}}generateStatement(e){switch(this.includeSourceComments&&e._line&&this.sourceLines.length>0&&this.writeSourceComment(e._line),e.type){case"FunctionDeclaration":return this.generateFunctionDeclaration(e);case"VariableDeclaration":return this.generateVariableDeclaration(e);case"ExpressionStatement":return this.generateExpressionStatement(e);case"IfStatement":return this.generateIfStatement(e);case"ForStatement":return this.generateForStatement(e);case"WhileStatement":return this.generateWhileStatement(e);case"ReturnStatement":return this.generateReturnStatement(e);case"BlockStatement":return this.generateBlockStatement(e);case"TypeDefinition":return this.generateTypeDefinition(e);default:throw new Error(`Unknown statement type: ${e.type}`)}}generateTypeDefinition(e){if(this.write(this.indentStr.repeat(this.indent)),this.write(`const ${e.name} = Type({`),e.fields.length>0){this.write(" ");for(let i=0;i<e.fields.length;i++){const r=e.fields[i];r.defaultValue?(this.write(`${r.name}: ['${r.type}', `),this.generateExpression(r.defaultValue),this.write("]")):this.write(`${r.name}: '${r.type}'`),i<e.fields.length-1&&this.write(", ")}this.write(" ")}this.write(`});
|
|
27
|
-
`)}renameIdentifiersInAST(e,i){if(!(!e||typeof e!="object")){if(e.type==="Identifier"&&i.has(e.name)){e.name=i.get(e.name);return}if(e.type!=="FunctionDeclaration")for(const r of Object.keys(e)){if(r==="type")continue;const s=e[r];if(Array.isArray(s))for(const a of s)a&&typeof a=="object"&&this.renameIdentifiersInAST(a,i);else s&&typeof s=="object"&&s.type&&this.renameIdentifiersInAST(s,i)}}}generateFunctionDeclaration(e){this.write(this.indentStr.repeat(this.indent));const i=e.id.isMethod,r=new Map;for(const n of e.params){const o=n.type==="AssignmentPattern"?n.left.name:n.name;if(o&&
|
|
27
|
+
`)}renameIdentifiersInAST(e,i){if(!(!e||typeof e!="object")){if(e.type==="Identifier"&&i.has(e.name)){e.name=i.get(e.name);return}if(e.type!=="FunctionDeclaration")for(const r of Object.keys(e)){if(r==="type")continue;const s=e[r];if(Array.isArray(s))for(const a of s)a&&typeof a=="object"&&this.renameIdentifiersInAST(a,i);else s&&typeof s=="object"&&s.type&&this.renameIdentifiersInAST(s,i)}}}generateFunctionDeclaration(e){this.write(this.indentStr.repeat(this.indent));const i=e.id.isMethod,r=new Map;for(const n of e.params){const o=n.type==="AssignmentPattern"?n.left.name:n.name;if(o&&Xa.has(o)){const l=`${o}_$${this.paramRenameCounter++}`;r.set(o,l)}}if(r.size>0){for(const n of e.params)n.type==="AssignmentPattern"?(r.has(n.left.name)&&(n.left.name=r.get(n.left.name)),this.renameIdentifiersInAST(n.right,r)):n.type==="Identifier"&&r.has(n.name)&&(n.name=r.get(n.name));this.renameIdentifiersInAST(e.body,r)}this.write("function "),this.write(e.id.name),this.write("(");const s=e.params,a=i&&s.length>0&&s[0].type==="Identifier"&&s[0].name==="this"?1:0;for(let n=a;n<s.length;n++){const o=s[n];if(o.type==="Identifier")this.write(o.name);else if(o.type==="AssignmentPattern"){const l=o.left.name==="this"&&i?"self":o.left.name;this.write(l),this.write(" = "),this.generateExpression(o.right)}n<s.length-1&&this.write(", ")}this.write(") "),this.generateBlockStatement(e.body,!1),this.write(`
|
|
28
28
|
`),i&&(this.write(this.indentStr.repeat(this.indent)),this.write(`${e.id.name}.__pineMethod__ = true;
|
|
29
29
|
`))}generateVariableDeclaration(e){const i=e.kind==="var"||e.kind==="varip"?"var":"let";for(let r=0;r<e.declarations.length;r++){const s=e.declarations[r];if(s.init&&s.init.type==="ConditionalExpression"&&s.init.needsIIFE){const a=s.id.type==="Identifier"?s.id.name:null;if(a){this.write(this.indentStr.repeat(this.indent)),this.write(i),this.write(" "),this.write(a),this.write(`;
|
|
30
30
|
`),this.generateIfStatementWithAssignment(s.init,a);continue}}if(this.write(this.indentStr.repeat(this.indent)),this.write(i),this.write(" "),s.id.type==="Identifier")this.write(s.id.name);else if(s.id.type==="ArrayPattern"){const a=new Set;this.write("[");for(let n=0;n<s.id.elements.length;n++){let o=s.id.elements[n].name;if(a.has(o)){const l=`${o}${this.paramRenameCounter++}`;s.id.elements[n].name=l,o=l}a.add(o),this.write(o),n<s.id.elements.length-1&&this.write(", ")}this.write("]")}s.init&&(this.write(" = "),this.generateExpression(s.init)),this.write(`;
|
|
@@ -115,8 +115,8 @@ ${t}
|
|
|
115
115
|
`)}}generateLoopAsExpression(e,i){this.write(`(() => {
|
|
116
116
|
`),this.indent++,this.write(this.indentStr.repeat(this.indent)),this.write(`let __result;
|
|
117
117
|
`);const r=e.body;if(r&&r.body&&r.body.length>0){const s=r.body.length-1,a=r.body[s];a.type==="ExpressionStatement"&&(r.body[s]={type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:{type:"Identifier",name:"__result"},right:a.expression},_line:a._line})}i==="for"?this.generateForStatement(e):this.generateWhileStatement(e),this.write(this.indentStr.repeat(this.indent)),this.write(`return __result;
|
|
118
|
-
`),this.indent--,this.write(this.indentStr.repeat(this.indent)),this.write("})()")}generateSequenceExpression(e){this.write("(");for(let i=0;i<e.expressions.length;i++)this.generateExpression(e.expressions[i]),i<e.expressions.length-1&&this.write(", ");this.write(")")}getPrecedence(e){switch(e.type){case"Literal":case"Identifier":case"ArrayExpression":case"ObjectExpression":return 20;case"CallExpression":case"MemberExpression":return 19;case"UnaryExpression":case"UpdateExpression":return 15;case"BinaryExpression":case"LogicalExpression":switch(e.operator){case"*":case"/":case"%":return 13;case"+":case"-":return 12;case"<":case"<=":case">":case">=":return 10;case"==":case"!=":return 9;case"and":case"&&":return 5;case"or":case"||":return 4;default:return 0}case"ConditionalExpression":return 3;case"AssignmentExpression":case"AssignmentPattern":return 2;case"SequenceExpression":return 1;default:return 0}}}function
|
|
119
|
-
`):[],a=
|
|
120
|
-
; return _r;`)(this)}function ro(t){return e=>new L(e.array.map(i=>Math.abs(i)),e.type,t)}function so(t){return e=>{let i=0,r=0;for(const s of e.array){const a=Number(s);isNaN(a)||(r++,i+=(a-i)/r)}return r===0?NaN:t.precision(i)}}function no(t){return(e,i)=>{const r=e.array;let s=0,a=r.length-1;for(;s<=a;){const n=Math.floor((s+a)/2),o=r[n];if(o===i)return n;o<i?s=n+1:a=n-1}return-1}}function ao(t){return(e,i)=>{const r=e.array;let s=0,a=r.length;for(;s<a;){const n=Math.floor((s+a)/2);r[n]<i?s=n+1:a=n}return s<r.length&&r[s]===i?s:s-1}}function oo(t){return(e,i)=>{const r=e.array;let s=0,a=r.length;for(;s<a;){const n=Math.floor((s+a)/2);r[n]<=i?s=n+1:a=n}return s>0&&r[s-1]===i?s-1:s}}function lo(t){return e=>{e.array.length=0}}function co(t){return(e,i)=>(e.array.push(...i.array),e)}function ho(t){return e=>new L([...e.array],e.type,t)}function uo(t){return(e,i,r=!0)=>{const s=e.array,a=i.array;if(s.length!==a.length)return NaN;let n=0,o=0,l=0;const c=[];for(let m=0;m<s.length;m++){const x=Number(s[m]),_=Number(a[m]);!isNaN(x)&&x!==null&&x!==void 0&&!isNaN(_)&&_!==null&&_!==void 0&&(n+=x,o+=_,l++,c.push(m))}if(l===0)return NaN;const h=n/l,p=o/l;let u=0;for(const m of c){const x=Number(s[m]),_=Number(a[m]);u+=(x-h)*(_-p)}const f=r?l:l-1;return f<=0?NaN:t.precision(u/f)}}function po(t){return e=>e.array.every(i=>!isNaN(i)&&i)}function fo(t){return t.every(e=>typeof e=="number")?t.every(e=>Number.isInteger(e))?D.int:D.float:t.every(e=>typeof e=="string")?D.string:t.every(e=>typeof e=="boolean")?D.bool:D.any}function Me(t){return typeof t=="number"?Number.isInteger(t)?D.int:D.float:typeof t=="string"?D.string:typeof t=="boolean"?D.bool:D.any}function zt(t,e){if(typeof t=="number"&&isNaN(t)||e===D.any)return!0;switch(e){case D.int:return Number.isInteger(t)||isNaN(t);case D.float:return typeof t=="number";case D.string:return typeof t=="string";case D.bool:return typeof t=="boolean";case D.box:case D.label:case D.line:case D.linefill:case D.table:case D.color:return t===null||typeof t=="object"||typeof t=="string"}return!1}function mo(t){return(e,i,r=0,s)=>{const a=e.array.length,n=s!==void 0?Math.min(s,a):a;for(let o=r;o<n;o++){if(!zt(i,e.type))throw new Error(`Cannot call 'array.fill' with argument 'value'='${i}'. An argument of 'literal ${typeof i}' type was used but a '${e.type}' is expected.`);e.array[o]=typeof i=="number"?t.precision(i):i}}}function go(t){return e=>e.array.length>0?e.array[0]:t.NA}function yo(t){return(e,i)=>(i<0&&(i=e.array.length+i),i<0||i>=e.array.length?(t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.get"),NaN):e.array[i])}function xo(t){return(e,i)=>e.array.includes(i)}function _o(t){return(e,i)=>typeof i=="number"&&i!==i?e.array.findIndex(r=>typeof r=="number"&&r!==r):e.array.indexOf(i)}function bo(t){return(e,i,r)=>{if(!zt(r,e.type))throw new Error(`Cannot call 'array.insert' with argument 'value'='${r}'. An argument of 'literal ${typeof r}' type was used but a '${e.type}' is expected.`);if(i<0&&(i=e.array.length+i),i<0||i>e.array.length){t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.insert");return}e.array.splice(i,0,r)}}function vo(t){return(e,i=",")=>e.array.join(i)}function wo(t){return e=>e.array.length>0?e.array[e.array.length-1]:t.NA}function So(t){return(e,i)=>e.array.lastIndexOf(i)}function Eo(t){return(e,i=0)=>{const r=e.array;if(r.length===0)return t.NA;if(i===0){let s=r[0];for(let a=1;a<r.length;a++)r[a]>s&&(s=r[a]);return s??t.NA}return[...r].sort((s,a)=>a-s)[i]??t.NA}}function No(t){return e=>{const i=e.array;if(i.length===0)return NaN;const r=new Array(i.length);for(let a=0;a<i.length;a++)r[a]=i[a];r.sort((a,n)=>a-n);const s=Math.floor(r.length/2);return r.length%2!==0?r[s]:(r[s-1]+r[s])/2}}function Co(t){return(e,i=0)=>{const r=e.array;if(r.length===0)return t.NA;if(i===0){let s=r[0];for(let a=1;a<r.length;a++)r[a]<s&&(s=r[a]);return s??t.NA}return[...r].sort((s,a)=>s-a)[i]??t.NA}}function Io(t){return e=>{if(e.array.length===0)return NaN;const i=new Map;let r=0;for(const a of e.array){const n=(i.get(a)||0)+1;i.set(a,n),n>r&&(r=n)}const s=[];for(const[a,n]of i)n===r&&s.push(a);return s.sort((a,n)=>typeof a=="number"&&typeof n=="number"?a-n:typeof a=="string"&&typeof n=="string"?a<n?-1:a>n?1:0:0),s[0]}}function ko(t){return(e,i)=>{const r=e.array,s=r.length;if(s===0)return NaN;const a=new Array(s);for(let c=0;c<s;c++){const h=Number(r[c]);if(isNaN(h)||h===null||h===void 0)return NaN;a[c]=h}a.sort((c,h)=>c-h),i<0&&(i=0),i>100&&(i=100);const n=i/100*s-.5;if(n<=0)return t.precision(a[0]);if(n>=s-1)return t.precision(a[s-1]);const o=Math.floor(n),l=n-o;return t.precision(a[o]*(1-l)+a[o+1]*l)}}function Ao(t){return(e,i)=>{const r=e.array,s=r.length;if(s===0)return NaN;const a=new Array;for(let o=0;o<s;o++){const l=Number(r[o]);!isNaN(l)&&l!==null&&l!==void 0&&a.push(l)}if(a.length===0)return NaN;a.sort((o,l)=>o-l),i<0&&(i=0),i>100&&(i=100);const n=Math.ceil(i/100*s);return n<=0?a[0]:n>a.length?NaN:a[n-1]}}function To(t){return(e,i)=>{if(e.array.length===0)return NaN;const r=Math.floor(i);if(r<0||r>=e.array.length)return NaN;const s=Number(e.array[r]);if(isNaN(s)||s===null||s===void 0)return NaN;let a=0;for(const o of e.array){const l=Number(o);!isNaN(l)&&l!==null&&l!==void 0&&l<s&&a++}const n=e.array.length-1;return n<=0?NaN:a/n*100}}function Po(t){return e=>e.array.pop()}function Do(t){return(e,i)=>{if(!zt(i,e.type))throw new Error(`Cannot call 'array.push' with argument 'value'='${i}'. An argument of 'literal ${typeof i}' type was used but a '${e.type}' is expected.`);e.array.push(typeof i=="number"?t.precision(i):i)}}function Mo(t){return e=>t.precision(t.pine.array.max(e)-t.pine.array.min(e))}function Ro(t){return(e,i)=>(i<0&&(i=e.array.length+i),i<0||i>=e.array.length?(t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.remove"),NaN):e.array.splice(i,1)[0])}function Oo(t){return e=>{e.array.reverse()}}function Vo(t){return(e,i,r)=>{if(!zt(r,e.type))throw new Error(`Cannot call 'array.set' with argument 'value'='${r}'. An argument of 'literal ${typeof r}' type was used but a '${e.type}' is expected.`);if(i<0&&(i=e.array.length+i),i<0||i>=e.array.length){t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.set");return}e.array[i]=typeof r=="number"?t.precision(r):r}}function Lo(t){return e=>e.array.shift()}function jo(t){return e=>e.array.length}function $o(t){return(e,i,r)=>{const s=r!==void 0?r:void 0;return new L(e.array.slice(i,s),e.type,t)}}function Bo(t){return e=>e.array.some(i=>!isNaN(i)&&i)}var At=(t=>(t[t.ascending=1]="ascending",t[t.descending=0]="descending",t))(At||{}),Fs=(t=>(t.AED="AED",t.ARS="ARS",t.AUD="AUD",t.BDT="BDT",t.BHD="BHD",t.BRL="BRL",t.BTC="BTC",t.CAD="CAD",t.CHF="CHF",t.CLP="CLP",t.CNY="CNY",t.COP="COP",t.CZK="CZK",t.DKK="DKK",t.EGP="EGP",t.ETH="ETH",t.EUR="EUR",t.GBP="GBP",t.HKD="HKD",t.HUF="HUF",t.IDR="IDR",t.ILS="ILS",t.INR="INR",t.ISK="ISK",t.JPY="JPY",t.KES="KES",t.KRW="KRW",t.KWD="KWD",t.LKR="LKR",t.MAD="MAD",t.MXN="MXN",t.MYR="MYR",t.NGN="NGN",t.NOK="NOK",t.NONE="NONE",t.NZD="NZD",t.PEN="PEN",t.PHP="PHP",t.PKR="PKR",t.PLN="PLN",t.QAR="QAR",t.RON="RON",t.RSD="RSD",t.RUB="RUB",t.SAR="SAR",t.SEK="SEK",t.SGD="SGD",t.THB="THB",t.TND="TND",t.TRY="TRY",t.TWD="TWD",t.USD="USD",t.USDT="USDT",t.VES="VES",t.VND="VND",t.ZAR="ZAR",t))(Fs||{}),Ws=(t=>(t[t.sunday=1]="sunday",t[t.monday=2]="monday",t[t.tuesday=3]="tuesday",t[t.wednesday=4]="wednesday",t[t.thursday=5]="thursday",t[t.friday=6]="friday",t[t.saturday=7]="saturday",t))(Ws||{}),Us=(t=>(t.all="all",t.data_window="data_window",t.none="none",t.pane="pane",t.price_scale="price_scale",t.status_line="status_line",t))(Us||{}),qs=(t=>(t.flag="shape_flag",t.arrowdown="shape_arrow_down",t.arrowup="shape_arrow_up",t.circle="shape_circle",t.cross="shape_cross",t.diamond="shape_diamond",t.labeldown="shape_label_down",t.labelup="shape_label_up",t.square="shape_square",t.triangledown="shape_triangle_down",t.triangleup="shape_triangle_up",t.xcross="shape_xcross",t))(qs||{}),Ks=(t=>(t.abovebar="AboveBar",t.belowbar="BelowBar",t.absolute="Absolute",t.bottom="Bottom",t.top="Top",t))(Ks||{}),zs=(t=>(t.auto="auto",t.tiny="tiny",t.small="small",t.normal="normal",t.large="large",t.huge="huge",t))(zs||{}),Hs=(t=>(t.inherit="inherit",t.mintick="mintick",t.percent="percent",t.price="price",t.volume="volume",t))(Hs||{}),Fo=(t=>(t.linestyle_dashed="linestyle_dashed",t.linestyle_dotted="linestyle_dotted",t.linestyle_solid="linestyle_solid",t.style_area="style_area",t.style_areabr="style_areabr",t.style_circles="style_circles",t.style_columns="style_columns",t.style_cross="style_cross",t.style_histogram="style_histogram",t.style_line="style_line",t.style_linebr="style_linebr",t.style_stepline="style_stepline",t.style_stepline_diamond="style_stepline_diamond",t.style_steplinebr="style_steplinebr",t))(Fo||{}),Gs=(t=>(t.gaps_on="gaps_on",t.gaps_off="gaps_off",t.lookahead_on="lookahead_on",t.lookahead_off="lookahead_off",t))(Gs||{}),Ys=(t=>(t.bar_index="bi",t.bar_time="bt",t))(Ys||{}),Xs=(t=>(t.price="pr",t.abovebar="ab",t.belowbar="bl",t))(Xs||{}),Qs=(t=>(t.left="l",t.right="r",t.both="b",t.none="n",t))(Qs||{}),Zs=(t=>(t.align_bottom="bottom",t.align_top="top",t.align_left="left",t.align_center="center",t.align_right="right",t.wrap_auto="auto",t.wrap_none="none",t.format_bold="bold",t.format_italic="italic",t.format_none="none",t))(Zs||{}),Js=(t=>(t.family_default="default",t.family_monospace="monospace",t))(Js||{}),en=(t=>(t.none="none",t.splits="splits",t.dividends="dividends",t))(en||{}),tn=(t=>(t.inherit="inherit",t.off="off",t.on="on",t))(tn||{}),rn=(t=>(t.actual="earnings_actual",t.estimate="earnings_estimate",t.standardized="earnings_standardized",t.future_eps="earnings_future_eps",t.future_period_end_time="earnings_future_period_end_time",t.future_revenue="earnings_future_revenue",t.future_time="earnings_future_time",t))(rn||{}),sn=(t=>(t.gross="dividends_gross",t.net="dividends_net",t.future_amount="dividends_future_amount",t.future_ex_date="dividends_future_ex_date",t.future_pay_date="dividends_future_pay_date",t))(sn||{}),nn=(t=>(t.denominator="splits_denominator",t.numerator="splits_numerator",t))(nn||{}),an=(t=>(t.top_left="top_left",t.top_center="top_center",t.top_right="top_right",t.middle_left="middle_left",t.middle_center="middle_center",t.middle_right="middle_right",t.bottom_left="bottom_left",t.bottom_center="bottom_center",t.bottom_right="bottom_right",t))(an||{}),on=(t=>(t.left="left",t.none="none",t.right="right",t))(on||{}),ln=(t=>(t.inherit="inherit",t.off="off",t.on="on",t))(ln||{});const Wo={order:At,currency:Fs,dayofweek:Ws,display:Us,shape:qs,location:Ks,size:zs,format:Hs,barmerge:Gs,xloc:Ys,yloc:Xs,extend:Qs,text:Zs,font:Js,adjustment:en,backadjustment:tn,earnings:rn,dividends:sn,splits:nn,position:an,scale:on,settlement_as_close:ln};function Uo(t){return(e,i=At.ascending)=>{e.array.sort((r,s)=>{let a=isNaN(r)?1/0:r,n=isNaN(s)?1/0:s;return i===At.ascending?a-n:n-a})}}function qo(t){return(e,i=At.ascending)=>{const r=e.array.map((s,a)=>a);return r.sort((s,a)=>{const n=isNaN(e.array[s])?1/0:e.array[s],o=isNaN(e.array[a])?1/0:e.array[a];return i===At.ascending?n-o:o-n}),new L(r,D.int,t)}}function Ko(t){return e=>{const i=t.array.avg(e),r=t.array.stdev(e);return isNaN(r)?new L(e.array.map(()=>NaN),D.int,t):r===0?new L(e.array.map(()=>1),D.int,t):new L(e.array.map(s=>(s-i)/r),D.int,t)}}function zo(t){return(e,i=!0)=>{const r=e.array,s=r.length;if(s===0)return NaN;let a=0,n=0,o=0;for(let h=0;h<s;h++){const p=Number(r[h]);!isNaN(p)&&p!==null&&p!==void 0&&(a+=p,n+=p*p,o++)}if(o===0)return NaN;const l=a/o;let c=n/o-l*l;return c<0?NaN:(!i&&o>1&&(c=c*o/(o-1)),!i&&o===1?0:t.precision(Math.sqrt(c)))}}function Ho(t){return e=>t.precision(e.array.reduce((i,r)=>{const s=Number(r);return isNaN(s)?i:i+s},0))}function Go(t){return(e,i)=>{if(!zt(i,e.type))throw new Error(`Cannot call 'array.unshift' with argument 'value'='${i}'. An argument of 'literal ${typeof i}' type was used but a '${e.type}' is expected.`);e.array.unshift(typeof i=="number"?t.precision(i):i)}}function Yo(t){return(e,i=!0)=>{let r=0,s=0;for(const l of e.array){const c=Number(l);!isNaN(c)&&c!==null&&c!==void 0&&(r+=c,s++)}if(s===0)return NaN;const a=r/s;let n=0;for(const l of e.array){const c=Number(l);!isNaN(c)&&c!==null&&c!==void 0&&(n+=(c-a)*(c-a))}const o=i?s:s-1;return o<=0?NaN:t.precision(n/o)}}var Xo=Object.defineProperty,Qo=(t,e,i)=>e in t?Xo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,V=(t,e,i)=>Qo(t,typeof e!="symbol"?e+"":e,i),D=(t=>(t.any="",t.box="box",t.bool="bool",t.color="color",t.float="float",t.int="int",t.label="label",t.line="line",t.linefill="linefill",t.string="string",t.table="table",t))(D||{});class L{constructor(e,i,r){this.array=e,this.type=i,this.context=r,V(this,"_abs"),V(this,"_avg"),V(this,"_binary_search"),V(this,"_binary_search_leftmost"),V(this,"_binary_search_rightmost"),V(this,"_clear"),V(this,"_concat"),V(this,"_copy"),V(this,"_covariance"),V(this,"_every"),V(this,"_fill"),V(this,"_first"),V(this,"_get"),V(this,"_includes"),V(this,"_indexof"),V(this,"_insert"),V(this,"_join"),V(this,"_last"),V(this,"_lastindexof"),V(this,"_max"),V(this,"_median"),V(this,"_min"),V(this,"_mode"),V(this,"_percentile_linear_interpolation"),V(this,"_percentile_nearest_rank"),V(this,"_percentrank"),V(this,"_pop"),V(this,"_push"),V(this,"_range"),V(this,"_remove"),V(this,"_reverse"),V(this,"_set"),V(this,"_shift"),V(this,"_size"),V(this,"_slice"),V(this,"_some"),V(this,"_sort"),V(this,"_sort_indices"),V(this,"_standardize"),V(this,"_stdev"),V(this,"_sum"),V(this,"_unshift"),V(this,"_variance"),this._abs=ro(this.context),this._avg=so(this.context),this._binary_search=no(this.context),this._binary_search_leftmost=ao(this.context),this._binary_search_rightmost=oo(this.context),this._clear=lo(this.context),this._concat=co(this.context),this._copy=ho(this.context),this._covariance=uo(this.context),this._every=po(this.context),this._fill=mo(this.context),this._first=go(this.context),this._get=yo(this.context),this._includes=xo(this.context),this._indexof=_o(this.context),this._insert=bo(this.context),this._join=vo(this.context),this._last=wo(this.context),this._lastindexof=So(this.context),this._max=Eo(this.context),this._median=No(this.context),this._min=Co(this.context),this._mode=Io(this.context),this._percentile_linear_interpolation=ko(this.context),this._percentile_nearest_rank=Ao(this.context),this._percentrank=To(this.context),this._pop=Po(this.context),this._push=Do(this.context),this._range=Mo(this.context),this._remove=Ro(this.context),this._reverse=Oo(this.context),this._set=Vo(this.context),this._shift=Lo(this.context),this._size=jo(this.context),this._slice=$o(this.context),this._some=Bo(this.context),this._sort=Uo(this.context),this._sort_indices=qo(this.context),this._standardize=Ko(this.context),this._stdev=zo(this.context),this._sum=Ho(this.context),this._unshift=Go(this.context),this._variance=Yo(this.context)}toString(){return"["+this.array.toString().replace(/,/g,", ")+"]"}[Symbol.iterator](){return this.array[Symbol.iterator]()}abs(...e){return this._abs(this,...e)}avg(...e){return this._avg(this,...e)}binary_search(...e){return this._binary_search(this,...e)}binary_search_leftmost(...e){return this._binary_search_leftmost(this,...e)}binary_search_rightmost(...e){return this._binary_search_rightmost(this,...e)}clear(...e){return this._clear(this,...e)}concat(...e){return this._concat(this,...e)}copy(...e){return this._copy(this,...e)}covariance(...e){return this._covariance(this,...e)}every(...e){return this._every(this,...e)}fill(...e){return this._fill(this,...e)}first(...e){return this._first(this,...e)}get(...e){return this._get(this,...e)}includes(...e){return this._includes(this,...e)}indexof(...e){return this._indexof(this,...e)}insert(...e){return this._insert(this,...e)}join(...e){return this._join(this,...e)}last(...e){return this._last(this,...e)}lastindexof(...e){return this._lastindexof(this,...e)}max(...e){return this._max(this,...e)}median(...e){return this._median(this,...e)}min(...e){return this._min(this,...e)}mode(...e){return this._mode(this,...e)}percentile_linear_interpolation(...e){return this._percentile_linear_interpolation(this,...e)}percentile_nearest_rank(...e){return this._percentile_nearest_rank(this,...e)}percentrank(...e){return this._percentrank(this,...e)}pop(...e){return this._pop(this,...e)}push(...e){return this._push(this,...e)}range(...e){return this._range(this,...e)}remove(...e){return this._remove(this,...e)}reverse(...e){return this._reverse(this,...e)}set(...e){return this._set(this,...e)}shift(...e){return this._shift(this,...e)}size(...e){return this._size(this,...e)}slice(...e){return this._slice(this,...e)}some(...e){return this._some(this,...e)}sort(...e){return this._sort(this,...e)}sort_indices(...e){return this._sort_indices(this,...e)}standardize(...e){return this._standardize(this,...e)}stdev(...e){return this._stdev(this,...e)}sum(...e){return this._sum(this,...e)}unshift(...e){return this._unshift(this,...e)}variance(...e){return this._variance(this,...e)}}function Zo(t){return(...e)=>new L([...e],fo(e),t)}function Jo(t){return(e,i)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;if(i===void 0){const s=r?Array(r).fill(0):[];return new L(s,D.any,t)}return new L(Array(r).fill(t.precision(i||0)),Me(i||0),t)}}function el(t){return(e=0,i=!1)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.bool,t)}}function tl(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.box,t)}}function il(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.color,t)}}function rl(t){return(e=0,i=NaN)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(t.precision(i)),D.float,t)}}function sl(t){return(e=0,i=0)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(t.precision(i)),D.int,t)}}function nl(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.label,t)}}function al(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.line,t)}}function ol(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.linefill,t)}}function ll(t){return(e=0,i="")=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.string,t)}}function cl(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new L(Array(r).fill(i),D.table,t)}}class y{constructor(e,i=0){this.data=e,this.offset=i}get(e){const i=this.data.length-1-(this.offset+e);return i<0||i>=this.data.length?NaN:this.data[i]}set(e,i){const r=this.data.length-1-(this.offset+e);r>=0&&r<this.data.length&&(this.data[r]=i)}get length(){return this.data.length}toArray(){return this.data}static from(e){return e instanceof y?e:Array.isArray(e)?new y(e):e!=null&&typeof e=="object"&&"__value"in e&&e.__value instanceof y?e.__value:new y([e])}}function hl(t){return(e,i=0)=>y.from(e).get(i)}class ul{constructor(e){this.context=e,this.abs=(i,...r)=>i.abs(...r),this.avg=(i,...r)=>i.avg(...r),this.binary_search=(i,...r)=>i.binary_search(...r),this.binary_search_leftmost=(i,...r)=>i.binary_search_leftmost(...r),this.binary_search_rightmost=(i,...r)=>i.binary_search_rightmost(...r),this.clear=(i,...r)=>i.clear(...r),this.concat=(i,...r)=>i.concat(...r),this.copy=(i,...r)=>i.copy(...r),this.covariance=(i,...r)=>i.covariance(...r),this.every=(i,...r)=>i.every(...r),this.fill=(i,...r)=>i.fill(...r),this.first=(i,...r)=>i.first(...r),this.from=Zo(e),this.get=(i,...r)=>i.get(...r),this.includes=(i,...r)=>i.includes(...r),this.indexof=(i,...r)=>i.indexof(...r),this.insert=(i,...r)=>i.insert(...r),this.join=(i,...r)=>i.join(...r),this.last=(i,...r)=>i.last(...r),this.lastindexof=(i,...r)=>i.lastindexof(...r),this.max=(i,...r)=>i.max(...r),this.median=(i,...r)=>i.median(...r),this.min=(i,...r)=>i.min(...r),this.mode=(i,...r)=>i.mode(...r),this.new=Jo(e),this.new_bool=el(e),this.new_box=tl(e),this.new_color=il(e),this.new_float=rl(e),this.new_int=sl(e),this.new_label=nl(e),this.new_line=al(e),this.new_linefill=ol(e),this.new_string=ll(e),this.new_table=cl(e),this.param=hl(),this.percentile_linear_interpolation=(i,...r)=>i.percentile_linear_interpolation(...r),this.percentile_nearest_rank=(i,...r)=>i.percentile_nearest_rank(...r),this.percentrank=(i,...r)=>i.percentrank(...r),this.pop=(i,...r)=>i.pop(...r),this.push=(i,...r)=>i.push(...r),this.range=(i,...r)=>i.range(...r),this.remove=(i,...r)=>i.remove(...r),this.reverse=(i,...r)=>i.reverse(...r),this.set=(i,...r)=>i.set(...r),this.shift=(i,...r)=>i.shift(...r),this.size=(i,...r)=>i.size(...r),this.slice=(i,...r)=>i.slice(...r),this.some=(i,...r)=>i.some(...r),this.sort=(i,...r)=>i.sort(...r),this.sort_indices=(i,...r)=>i.sort_indices(...r),this.standardize=(i,...r)=>i.standardize(...r),this.stdev=(i,...r)=>i.stdev(...r),this.sum=(i,...r)=>i.sum(...r),this.unshift=(i,...r)=>i.unshift(...r),this.variance=(i,...r)=>i.variance(...r)}}function pl(t){return e=>{e.map.clear()}}function fl(t){return(e,i)=>e.map.has(i)}function dl(t){return e=>{const i=new cn(t);return i.map=new Map(e.map),i}}function ml(t){return(e,i)=>{const r=e.map.get(i);return r===void 0?NaN:r}}function gl(t){return e=>{const i=Array.from(e.map.keys()),r=Me(i[0]);return new L(i,r,t)}}function yl(t){return(e,i,r)=>{const s=e.map.get(i);return e.map.set(i,r),s===void 0?NaN:s}}function xl(t){return(e,i)=>{for(const[r,s]of i.map)e.map.set(r,s)}}function _l(t){return(e,i)=>{const r=e.map.get(i);return e.map.delete(i)?r:NaN}}function bl(t){return e=>e.map.size}function vl(t){return e=>{const i=Array.from(e.map.values()),r=Me(i[0]);return new L(i,r,t)}}var wl=Object.defineProperty,Sl=(t,e,i)=>e in t?wl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Le=(t,e,i)=>Sl(t,typeof e!="symbol"?e+"":e,i);class cn{constructor(e){this.context=e,Le(this,"map"),Le(this,"_clear"),Le(this,"_contains"),Le(this,"_copy"),Le(this,"_get"),Le(this,"_keys"),Le(this,"_put"),Le(this,"_put_all"),Le(this,"_remove"),Le(this,"_size"),Le(this,"_values"),this.map=new Map,this._clear=pl(this.context),this._contains=fl(this.context),this._copy=dl(this.context),this._get=ml(this.context),this._keys=gl(this.context),this._put=yl(this.context),this._put_all=xl(this.context),this._remove=_l(this.context),this._size=bl(this.context),this._values=vl(this.context)}toString(){return`PineMapObject(${this.map.size})`}clear(...e){return this._clear(this,...e)}contains(...e){return this._contains(this,...e)}copy(...e){return this._copy(this,...e)}get(...e){return this._get(this,...e)}keys(...e){return this._keys(this,...e)}put(...e){return this._put(this,...e)}put_all(...e){return this._put_all(this,...e)}remove(...e){return this._remove(this,...e)}size(...e){return this._size(this,...e)}values(...e){return this._values(this,...e)}}function El(t){return()=>new cn(t)}function Nl(t){return(e,i=0)=>y.from(e).get(i)}class Cl{constructor(e){this.context=e,this.clear=(i,...r)=>i.clear(...r),this.contains=(i,...r)=>i.contains(...r),this.copy=(i,...r)=>i.copy(...r),this.get=(i,...r)=>i.get(...r),this.keys=(i,...r)=>i.keys(...r),this.new=El(e),this.param=Nl(),this.put=(i,...r)=>i.put(...r),this.put_all=(i,...r)=>i.put_all(...r),this.remove=(i,...r)=>i.remove(...r),this.size=(i,...r)=>i.size(...r),this.values=(i,...r)=>i.values(...r)}}function Il(t){return(e,i,r)=>{const s=e.matrix.length;let a=[];if(r&&(r instanceof L?a=r.array:Array.isArray(r)?a=r:a=[r]),s===0){for(let l=0;l<a.length;l++){let c=a[l];c instanceof y&&(c=c.get(0)),e.matrix.push([c])}return}const n=e.matrix[0].length,o=i!==void 0?i:n;for(let l=0;l<s;l++){let c=l<a.length?a[l]:NaN;c instanceof y&&(c=c.get(0)),e.matrix[l].splice(o,0,c)}}}function kl(t){return(e,i,r)=>{const s=e.matrix.length;let a=[];if(r)if(r instanceof L)a=r.array;else if(Array.isArray(r))a=r;else if(r instanceof y){const c=r.get(0);Array.isArray(c)?a=c:a=[c]}else a=[r];const n=s>0?e.matrix[0].length:a.length,o=i!==void 0?i:s,l=[];for(let c=0;c<n;c++)if(c<a.length){let h=a[c];h instanceof y&&(h=h.get(0)),l.push(h)}else l.push(NaN);e.matrix.splice(o,0,l)}}function Al(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length;if(r===0)return NaN;let s=0,a=0;for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||(s+=l,a++)}return a===0?NaN:s/a}}function Tl(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0;if(i<0||i>=s){t.warn(`Column index ${i} is out of bounds, matrix has ${s} columns.`,"matrix.col");const o=r>0?Me(e.matrix[0][0]):"float";return new L([],o,t)}const a=[];for(let o=0;o<r;o++)a.push(e.matrix[o][i]);const n=Me(a[0]);return new L(a,n,t)}}function Pl(t){return e=>e.matrix.length===0?0:e.matrix[0].length}function Dl(t){return(e,i)=>{const r=e.matrix.length,s=i.matrix.length;if(r===0){for(let o=0;o<s;o++)e.matrix.push([...i.matrix[o]]);return}const a=e.matrix[0].length,n=s>0?i.matrix[0].length:0;if(a!==n&&s>0){console.error(`matrix.concat: Column count mismatch ${a} vs ${n}`);return}for(let o=0;o<s;o++)e.matrix.push([...i.matrix[o]])}}function Ml(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0,s=new q(i,r,NaN,t);return s.matrix=e.matrix.map(a=>[...a]),s}}function Rl(t){const e=t.length;if(e===0)return 0;if(e===1)return t[0][0];if(e===2)return t[0][0]*t[1][1]-t[0][1]*t[1][0];const i=t.map(s=>[...s]);let r=1;for(let s=0;s<e;s++){let a=s;for(;a<e&&i[a][s]===0;)a++;if(a===e)return 0;a!==s&&([i[s],i[a]]=[i[a],i[s]],r*=-1),r*=i[s][s];for(let n=s+1;n<e;n++){const o=i[n][s]/i[s][s];for(let l=s;l<e;l++)i[n][l]-=o*i[s][l]}}return r}function Ol(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;return i!==r?NaN:Rl(e.matrix)}}function Vl(t){return(e,i)=>{const r=e.matrix.length;if(r===0)return new q(0,0,NaN,t);const s=e.matrix[0].length,a=new q(r,s,NaN,t);if(i instanceof q)for(let n=0;n<r;n++)for(let o=0;o<s;o++){const l=e.matrix[n][o],c=i.matrix[n]&&i.matrix[n][o]!==void 0?i.matrix[n][o]:NaN;a.matrix[n][o]=l-c}else{const n=i;for(let o=0;o<r;o++)for(let l=0;l<s;l++)a.matrix[o][l]=e.matrix[o][l]-n}return a}}function Ll(t){const e=t.length;if(e!==2)return Array(e).fill(NaN);const i=t[0][0],r=t[0][1],s=t[1][0],a=t[1][1],n=i+a,o=i*a-r*s,l=n*n-4*o;if(l<0)return[NaN,NaN];const c=(n+Math.sqrt(l))/2,h=(n-Math.sqrt(l))/2;return[c,h]}function jl(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;if(i!==r){const n=Me(e.matrix[0][0]);return new L([],n,t)}const s=Ll(e.matrix),a=Me(s[0]);return new L(s,a,t)}}function $l(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;if(i!==r)return new q(0,0,NaN,t);const s=new q(i,r,0,t);for(let a=0;a<i;a++)s.matrix[a][a]=1;return s}}function Bl(t){return e=>{const i=e.matrix.length;return i===0?0:i*e.matrix[0].length}}function Fl(t){return(e,i,r,s,a,n)=>{const o=e.matrix.length;if(o===0)return;const l=e.matrix[0].length,c=r!==void 0?r:0,h=s!==void 0?s:o,p=a!==void 0?a:0,u=n!==void 0?n:l;for(let f=c;f<h&&!(f>=o);f++)for(let m=p;m<u&&!(m>=l);m++)e.matrix[f][m]=i}}function Wl(t){return(e,i,r)=>{const s=e.matrix.length,a=s>0?e.matrix[0].length:0;if(i<0||i>=s)return t.warn(`Row index ${i} is out of bounds, matrix has ${s} rows.`,"matrix.get"),NaN;if(r<0||r>=a)return t.warn(`Column index ${r} is out of bounds, matrix has ${a} columns.`,"matrix.get"),NaN;const n=e.matrix[i][r];return n===void 0?NaN:n}}function ri(t){const e=t.length;if(e===0)return[];const i=new Array(e);for(let s=0;s<e;s++){i[s]=new Array(2*e);for(let a=0;a<e;a++)i[s][a]=t[s][a];for(let a=0;a<e;a++)i[s][e+a]=s===a?1:0}for(let s=0;s<e;s++){let a=Math.abs(i[s][s]),n=s;for(let l=s+1;l<e;l++){const c=Math.abs(i[l][s]);c>a&&(a=c,n=l)}if(a<1e-14)return t.map(l=>l.map(()=>NaN));if(n!==s){const l=i[s];i[s]=i[n],i[n]=l}const o=i[s][s];for(let l=s;l<2*e;l++)i[s][l]/=o;for(let l=0;l<e;l++){if(l===s)continue;const c=i[l][s];if(c!==0)for(let h=s;h<2*e;h++)i[l][h]-=c*i[s][h]}}const r=new Array(e);for(let s=0;s<e;s++){r[s]=new Array(e);for(let a=0;a<e;a++)r[s][a]=i[s][e+a]}return r}function Ul(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;if(i!==r)return new q(i,r,NaN,t);const s=ri(e.matrix),a=new q(i,r,NaN,t);return a.matrix=s,a}}function ql(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(s+a!==i-1&&e.matrix[s][a]!==0)return!1;return!0}}function Kl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(e.matrix[a][s]!==-e.matrix[s][a])return!1;return!0}}function zl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;for(let s=0;s<i;s++)for(let a=0;a<r;a++){const n=e.matrix[s][a];if(n!==0&&n!==1)return!1}return!0}}function Hl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(s!==a&&e.matrix[s][a]!==0)return!1;return!0}}function Gl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(s===a){if(e.matrix[s][a]!==1)return!1}else if(e.matrix[s][a]!==0)return!1;return!0}}function Yl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;return i===r}}function Xl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;for(let s=0;s<i;s++){let a=0;for(let n=0;n<r;n++){const o=e.matrix[s][n];if(o<0)return!1;a+=o}if(Math.abs(a-1)>1e-10)return!1}return!0}}function Ql(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<s;a++)if(e.matrix[s][a]!==e.matrix[a][s])return!1;return!0}}function Zl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;let s=!0,a=!0;for(let n=0;n<i;n++)for(let o=0;o<r;o++)n>o&&e.matrix[n][o]!==0&&(s=!1),n<o&&e.matrix[n][o]!==0&&(a=!1);return s||a}}function Jl(t){return e=>{const i=e.matrix.length;if(i===0)return!0;const r=e.matrix[0].length;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(e.matrix[s][a]!==0)return!1;return!0}}function ec(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0,a=i.matrix.length,n=a>0?i.matrix[0].length:0,o=r*a,l=s*n,c=new q(o,l,NaN,t);for(let h=0;h<r;h++)for(let p=0;p<s;p++){const u=e.matrix[h][p];for(let f=0;f<a;f++)for(let m=0;m<n;m++){const x=i.matrix[f][m];c.matrix[h*a+f][p*n+m]=u*x}}return c}}function tc(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length;let s=-1/0,a=!1;for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||(l>s&&(s=l),a=!0)}return a?s:NaN}}function ic(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length,s=[];for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||s.push(l)}if(s.length===0)return NaN;s.sort((n,o)=>n-o);const a=Math.floor(s.length/2);return s.length%2!==0?s[a]:(s[a-1]+s[a])/2}}function rc(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length;let s=1/0,a=!1;for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||(l<s&&(s=l),a=!0)}return a?s:NaN}}function sc(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length,s=new Map;let a=0,n=NaN;for(let o=0;o<i;o++)for(let l=0;l<r;l++){const c=e.matrix[o][l];if(!isNaN(c)){const h=(s.get(c)||0)+1;s.set(c,h),h>a?(a=h,n=c):h===a&&c<n&&(n=c)}}return n}}function nc(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0;if(i instanceof q){const a=i.matrix.length,n=a>0?i.matrix[0].length:0;if(s!==a)return new q(0,0,NaN,t);const o=new q(r,n,0,t);for(let l=0;l<r;l++)for(let c=0;c<n;c++){let h=0;for(let p=0;p<s;p++)h+=e.matrix[l][p]*i.matrix[p][c];o.matrix[l][c]=h}return o}else if(i instanceof L||Array.isArray(i.array||i)){const a=i.array||i;if(s!==a.length)return new q(0,0,NaN,t);const n=new q(r,1,0,t);for(let o=0;o<r;o++){let l=0;for(let c=0;c<s;c++)l+=e.matrix[o][c]*a[c];n.matrix[o][0]=l}return n}else{const a=i,n=new q(r,s,NaN,t);for(let o=0;o<r;o++)for(let l=0;l<s;l++)n.matrix[o][l]=e.matrix[o][l]*a;return n}}}function ac(t){return e=>{const i=e.matrix.length;if(i===0)return new q(0,0,NaN,t);const r=e.matrix[0].length;if(i===r){const h=ri(e.matrix),p=new q(i,r,NaN,t);return p.matrix=h,p}const s=h=>{const p=h.length,u=h[0].length,f=new Array(u);for(let m=0;m<u;m++){f[m]=new Array(p);for(let x=0;x<p;x++)f[m][x]=h[x][m]}return f},a=(h,p)=>{const u=h.length,f=h[0].length,m=p[0].length,x=new Array(u);for(let _=0;_<u;_++){x[_]=new Array(m).fill(0);for(let b=0;b<f;b++){const w=h[_][b];if(w!==0)for(let v=0;v<m;v++)x[_][v]+=w*p[b][v]}}return x},n=e.matrix,o=s(n);let l;if(i>r){const h=a(o,n),p=ri(h);l=a(p,o)}else{const h=a(n,o),p=ri(h);l=a(o,p)}const c=new q(r,i,NaN,t);return c.matrix=l,c}}function oc(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0;if(r!==s)return new q(0,0,NaN,t);let a=new q(r,s,0,t);for(let l=0;l<r;l++)a.matrix[l][l]=1;let n=new q(r,s,NaN,t);for(let l=0;l<r;l++)n.matrix[l]=[...e.matrix[l]];let o=Math.floor(i);if(o<0)return new q(r,s,NaN,t);for(;o>0;){if(o%2===1){const c=new q(r,s,0,t);for(let h=0;h<r;h++)for(let p=0;p<s;p++){let u=0;for(let f=0;f<r;f++)u+=a.matrix[h][f]*n.matrix[f][p];c.matrix[h][p]=u}a=c}const l=new q(r,s,0,t);for(let c=0;c<r;c++)for(let h=0;h<s;h++){let p=0;for(let u=0;u<r;u++)p+=n.matrix[c][u]*n.matrix[u][h];l.matrix[c][h]=p}n=l,o=Math.floor(o/2)}return a}}function lc(t){return e=>{const i=e.matrix.length;if(i===0)return 0;const r=e.matrix[0].length,s=e.matrix.map(n=>[...n]);let a=0;for(let n=0;n<r&&a<i;n++){let o=a;for(;o<i&&Math.abs(s[o][n])<1e-10;)o++;if(o<i){[s[a],s[o]]=[s[o],s[a]];const l=s[a][n];for(let c=n;c<r;c++)s[a][c]/=l;for(let c=0;c<i;c++)if(c!==a){const h=s[c][n];for(let p=n;p<r;p++)s[c][p]-=h*s[a][p]}a++}}return a}}function cc(t){return(e,i)=>{const r=e.matrix.length;if(r===0){const n=Me(e.matrix[0][0]);return new L([],n,t)}const s=[];for(let n=0;n<r;n++){const o=e.matrix[n].splice(i,1);s.push(o[0])}const a=Me(s[0]);return new L(s,a,t)}}function hc(t){return(e,i)=>{const r=e.matrix.splice(i,1),s=Me(r[0][0]);return new L(r[0]||[],s,t)}}function uc(t){return(e,i,r)=>{const s=e.matrix.length,a=s>0?e.matrix[0].length:0,n=i*r,o=[];for(let h=0;h<s;h++)for(let p=0;p<a;p++)o.push(e.matrix[h][p]);for(;o.length<n;)o.push(NaN);o.length>n&&(o.length=n);const l=[];let c=0;for(let h=0;h<i;h++){const p=[];for(let u=0;u<r;u++)p.push(o[c++]);l.push(p)}e.matrix=l}}function pc(t){return e=>{e.matrix.reverse();for(const i of e.matrix)i.reverse()}}function fc(t){return(e,i)=>{const r=e.matrix.length;if(i<0||i>=r){t.warn(`Row index ${i} is out of bounds, matrix has ${r} rows.`,"matrix.row");const a=r>0?Me(e.matrix[0][0]):"float";return new L([],a,t)}const s=Me(e.matrix[i][0]);return new L([...e.matrix[i]],s,t)}}function dc(t){return e=>e.matrix.length}function mc(t){return(e,i,r,s)=>{const a=e.matrix.length,n=a>0?e.matrix[0].length:0;if(i<0||i>=a){t.warn(`Row index ${i} is out of bounds, matrix has ${a} rows.`,"matrix.set");return}if(r<0||r>=n){t.warn(`Column index ${r} is out of bounds, matrix has ${n} columns.`,"matrix.set");return}e.matrix[i][r]=s}}function gc(t){return(e,i=0,r="asc")=>{e.matrix.length!==0&&e.matrix.sort((s,a)=>{const n=s[i],o=a[i];return n<o?r==="asc"?-1:1:n>o?r==="asc"?1:-1:0})}}function yc(t){return(e,i,r,s,a)=>{const n=r-i,o=a-s,l=new q(n,o,NaN,t);for(let c=0;c<n;c++){const h=i+c;if(h>=e.matrix.length)break;for(let p=0;p<o;p++){const u=s+p;if(u>=e.matrix[h].length)break;l.matrix[c][p]=e.matrix[h][u]}}return l}}function xc(t){return(e,i)=>{const r=e.matrix.length;if(r===0)return new q(0,0,NaN,t);const s=e.matrix[0].length,a=new q(r,s,NaN,t);if(i instanceof q)for(let n=0;n<r;n++)for(let o=0;o<s;o++){const l=e.matrix[n][o],c=i.matrix[n]&&i.matrix[n][o]!==void 0?i.matrix[n][o]:NaN;a.matrix[n][o]=l+c}else{const n=i;for(let o=0;o<r;o++)for(let l=0;l<s;l++)a.matrix[o][l]=e.matrix[o][l]+n}return a}}function _c(t){return(e,i,r)=>{const s=e.matrix.length;for(let a=0;a<s;a++){const n=e.matrix[a][i];e.matrix[a][i]=e.matrix[a][r],e.matrix[a][r]=n}}}function bc(t){return(e,i,r)=>{const s=e.matrix[i];e.matrix[i]=e.matrix[r],e.matrix[r]=s}}function vc(t){return e=>{const i=e.matrix.length;if(i===0)return 0;const r=e.matrix[0].length,s=Math.min(i,r);let a=0;for(let n=0;n<s;n++)a+=e.matrix[n][n];return a}}function wc(t){return e=>{const i=e.matrix.length;if(i===0)return new q(0,0,NaN,t);const r=e.matrix[0].length,s=new q(r,i,NaN,t);for(let a=0;a<i;a++)for(let n=0;n<r;n++)s.matrix[n][a]=e.matrix[a][n];return s}}var Sc=Object.defineProperty,Ec=(t,e,i)=>e in t?Sc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,P=(t,e,i)=>Ec(t,typeof e!="symbol"?e+"":e,i);class q{constructor(e=0,i=0,r=NaN,s){if(this.context=s,P(this,"matrix"),P(this,"_add_col"),P(this,"_add_row"),P(this,"_avg"),P(this,"_col"),P(this,"_columns"),P(this,"_concat"),P(this,"_copy"),P(this,"_det"),P(this,"_diff"),P(this,"_eigenvalues"),P(this,"_eigenvectors"),P(this,"_elements_count"),P(this,"_fill"),P(this,"_get"),P(this,"_inv"),P(this,"_is_antidiagonal"),P(this,"_is_antisymmetric"),P(this,"_is_binary"),P(this,"_is_diagonal"),P(this,"_is_identity"),P(this,"_is_square"),P(this,"_is_stochastic"),P(this,"_is_symmetric"),P(this,"_is_triangular"),P(this,"_is_zero"),P(this,"_kron"),P(this,"_max"),P(this,"_median"),P(this,"_min"),P(this,"_mode"),P(this,"_mult"),P(this,"_pinv"),P(this,"_pow"),P(this,"_rank"),P(this,"_remove_col"),P(this,"_remove_row"),P(this,"_reshape"),P(this,"_reverse"),P(this,"_row"),P(this,"_rows"),P(this,"_set"),P(this,"_sort"),P(this,"_submatrix"),P(this,"_sum"),P(this,"_swap_columns"),P(this,"_swap_rows"),P(this,"_trace"),P(this,"_transpose"),this.matrix=[],e>0&&i>0)for(let a=0;a<e;a++)this.matrix.push(Array(i).fill(r));this._add_col=Il(this.context),this._add_row=kl(this.context),this._avg=Al(this.context),this._col=Tl(this.context),this._columns=Pl(this.context),this._concat=Dl(this.context),this._copy=Ml(this.context),this._det=Ol(this.context),this._diff=Vl(this.context),this._eigenvalues=jl(this.context),this._eigenvectors=$l(this.context),this._elements_count=Bl(this.context),this._fill=Fl(this.context),this._get=Wl(this.context),this._inv=Ul(this.context),this._is_antidiagonal=ql(this.context),this._is_antisymmetric=Kl(this.context),this._is_binary=zl(this.context),this._is_diagonal=Hl(this.context),this._is_identity=Gl(this.context),this._is_square=Yl(this.context),this._is_stochastic=Xl(this.context),this._is_symmetric=Ql(this.context),this._is_triangular=Zl(this.context),this._is_zero=Jl(this.context),this._kron=ec(this.context),this._max=tc(this.context),this._median=ic(this.context),this._min=rc(this.context),this._mode=sc(this.context),this._mult=nc(this.context),this._pinv=ac(this.context),this._pow=oc(this.context),this._rank=lc(this.context),this._remove_col=cc(this.context),this._remove_row=hc(this.context),this._reshape=uc(this.context),this._reverse=pc(this.context),this._row=fc(this.context),this._rows=dc(this.context),this._set=mc(this.context),this._sort=gc(this.context),this._submatrix=yc(this.context),this._sum=xc(this.context),this._swap_columns=_c(this.context),this._swap_rows=bc(this.context),this._trace=vc(this.context),this._transpose=wc(this.context)}toString(){let e="";for(let i=0;i<this.matrix.length;i++)e+=e===""?"":`
|
|
121
|
-
`,e+="["+this.matrix[i].join(", ")+"]";return e}add_col(...e){return this._add_col(this,...e)}add_row(...e){return this._add_row(this,...e)}avg(...e){return this._avg(this,...e)}col(...e){return this._col(this,...e)}columns(...e){return this._columns(this,...e)}concat(...e){return this._concat(this,...e)}copy(...e){return this._copy(this,...e)}det(...e){return this._det(this,...e)}diff(...e){return this._diff(this,...e)}eigenvalues(...e){return this._eigenvalues(this,...e)}eigenvectors(...e){return this._eigenvectors(this,...e)}elements_count(...e){return this._elements_count(this,...e)}fill(...e){return this._fill(this,...e)}get(...e){return this._get(this,...e)}inv(...e){return this._inv(this,...e)}is_antidiagonal(...e){return this._is_antidiagonal(this,...e)}is_antisymmetric(...e){return this._is_antisymmetric(this,...e)}is_binary(...e){return this._is_binary(this,...e)}is_diagonal(...e){return this._is_diagonal(this,...e)}is_identity(...e){return this._is_identity(this,...e)}is_square(...e){return this._is_square(this,...e)}is_stochastic(...e){return this._is_stochastic(this,...e)}is_symmetric(...e){return this._is_symmetric(this,...e)}is_triangular(...e){return this._is_triangular(this,...e)}is_zero(...e){return this._is_zero(this,...e)}kron(...e){return this._kron(this,...e)}max(...e){return this._max(this,...e)}median(...e){return this._median(this,...e)}min(...e){return this._min(this,...e)}mode(...e){return this._mode(this,...e)}mult(...e){return this._mult(this,...e)}pinv(...e){return this._pinv(this,...e)}pow(...e){return this._pow(this,...e)}rank(...e){return this._rank(this,...e)}remove_col(...e){return this._remove_col(this,...e)}remove_row(...e){return this._remove_row(this,...e)}reshape(...e){return this._reshape(this,...e)}reverse(...e){return this._reverse(this,...e)}row(...e){return this._row(this,...e)}rows(...e){return this._rows(this,...e)}set(...e){return this._set(this,...e)}sort(...e){return this._sort(this,...e)}submatrix(...e){return this._submatrix(this,...e)}sum(...e){return this._sum(this,...e)}swap_columns(...e){return this._swap_columns(this,...e)}swap_rows(...e){return this._swap_rows(this,...e)}trace(...e){return this._trace(this,...e)}transpose(...e){return this._transpose(this,...e)}}function je(t){return(e,i,r)=>new q(e,i,r,t)}function Nc(t){return(e,i=0)=>y.from(e).get(i)}class Cc{constructor(e){this.context=e,this.add_col=(i,...r)=>i.add_col(...r),this.add_row=(i,...r)=>i.add_row(...r),this.avg=(i,...r)=>i.avg(...r),this.col=(i,...r)=>i.col(...r),this.columns=(i,...r)=>i.columns(...r),this.concat=(i,...r)=>i.concat(...r),this.copy=(i,...r)=>i.copy(...r),this.det=(i,...r)=>i.det(...r),this.diff=(i,...r)=>i.diff(...r),this.eigenvalues=(i,...r)=>i.eigenvalues(...r),this.eigenvectors=(i,...r)=>i.eigenvectors(...r),this.elements_count=(i,...r)=>i.elements_count(...r),this.fill=(i,...r)=>i.fill(...r),this.get=(i,...r)=>i.get(...r),this.inv=(i,...r)=>i.inv(...r),this.is_antidiagonal=(i,...r)=>i.is_antidiagonal(...r),this.is_antisymmetric=(i,...r)=>i.is_antisymmetric(...r),this.is_binary=(i,...r)=>i.is_binary(...r),this.is_diagonal=(i,...r)=>i.is_diagonal(...r),this.is_identity=(i,...r)=>i.is_identity(...r),this.is_square=(i,...r)=>i.is_square(...r),this.is_stochastic=(i,...r)=>i.is_stochastic(...r),this.is_symmetric=(i,...r)=>i.is_symmetric(...r),this.is_triangular=(i,...r)=>i.is_triangular(...r),this.is_zero=(i,...r)=>i.is_zero(...r),this.kron=(i,...r)=>i.kron(...r),this.max=(i,...r)=>i.max(...r),this.median=(i,...r)=>i.median(...r),this.min=(i,...r)=>i.min(...r),this.mode=(i,...r)=>i.mode(...r),this.mult=(i,...r)=>i.mult(...r),this.new=je(e),this.param=Nc(),this.pinv=(i,...r)=>i.pinv(...r),this.pow=(i,...r)=>i.pow(...r),this.rank=(i,...r)=>i.rank(...r),this.remove_col=(i,...r)=>i.remove_col(...r),this.remove_row=(i,...r)=>i.remove_row(...r),this.reshape=(i,...r)=>i.reshape(...r),this.reverse=(i,...r)=>i.reverse(...r),this.row=(i,...r)=>i.row(...r),this.rows=(i,...r)=>i.rows(...r),this.set=(i,...r)=>i.set(...r),this.sort=(i,...r)=>i.sort(...r),this.submatrix=(i,...r)=>i.submatrix(...r),this.sum=(i,...r)=>i.sum(...r),this.swap_columns=(i,...r)=>i.swap_columns(...r),this.swap_rows=(i,...r)=>i.swap_rows(...r),this.trace=(i,...r)=>i.trace(...r),this.transpose=(i,...r)=>i.transpose(...r),this.new_float=je(e),this.new_int=je(e),this.new_string=je(e),this.new_bool=je(e),this.new_color=je(e),this.new_line=je(e),this.new_label=je(e),this.new_box=je(e),this.new_linefill=je(e),this.new_table=je(e)}}var Ic=Object.defineProperty,kc=(t,e,i)=>e in t?Ic(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ac=(t,e,i)=>kc(t,typeof e!="symbol"?e+"":e,i);class Tc{constructor(e){this.context=e,Ac(this,"_live",!1)}setLive(){this._live=!0}get isnew(){return!this._live}get islast(){return this.context.idx===this.context.length-1}get isfirst(){return this.context.idx===0}get ishistory(){return this.context.idx<this.context.length-1}get isrealtime(){return this.context.idx===this.context.length-1}get isconfirmed(){return this.context.data.closeTime.data[this.context.idx]<=Date.now()}get islastconfirmedhistory(){const e=this.context.idx,i=this.context.length;if(e===i-1)return this.context.data.closeTime.data[e]<=Date.now();if(e===i-2){const r=this.context.marketData?.[i-1]?.closeTime;return r!==void 0?r>Date.now():!1}return!1}}class It{constructor(e,i){this._definition=e,this.context=i;for(let r in e)this[r]=e[r]}get __def__(){return this._definition}copy(){return new It(this.__def__,this.context)}toString(){const e={};for(let i in this.__def__){const r=this[i];r!=null&&typeof r=="object"&&typeof r.toString=="function"&&!(r instanceof Array)?e[i]=r.toString():e[i]=r}try{return JSON.stringify(e)}catch{return"{"+Object.keys(e).map(i=>`"${i}":${String(e[i])}`).join(",")+"}"}}}var Pc=Object.defineProperty,Dc=(t,e,i)=>e in t?Pc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ii=(t,e,i)=>Dc(t,typeof e!="symbol"?e+"":e,i);class me{constructor(e,i,r){Ii(this,"time"),Ii(this,"index"),Ii(this,"price"),this.time=e,this.index=i,this.price=r}copy(){return new me(this.time,this.index,this.price)}toString(){return JSON.stringify({time:this.time,index:this.index,price:this.price})}}function Mc(t){return typeof t=="object"&&t&&(t.title!==void 0||t._plotKey!==void 0)&&t.data!==void 0&&t.options!==void 0}const kr={series:t=>t instanceof y||typeof t=="number"||typeof t=="string"||typeof t=="boolean",string:t=>typeof t=="string",color:t=>typeof t=="string"||t===null||typeof t=="number"&&isNaN(t),number:t=>typeof t=="number",boolean:t=>typeof t=="boolean",array:t=>Array.isArray(t),object:t=>typeof t=="object",point:t=>t instanceof me,primitive:t=>typeof t===null||typeof t!="object"&&typeof t!="function",function:t=>typeof t=="function",undefined:t=>t===void 0,null:t=>t===null,NaN:t=>isNaN(t),remaining_options:t=>t!==null&&typeof t=="object"&&!(t instanceof y)&&!(t instanceof me)&&!Mc(t)};function Ue(t){const e=t[t.length-1];if(e&&typeof e=="object"&&"__callsiteId"in e)return t.pop().__callsiteId}function se(t,e,i,r){Array.isArray(e)&&typeof e[0]=="string"&&(e=[e]);const s={};let a={};const n=new Array(e.length).fill(!0);for(let o=0;o<t.length;o++){const l=t[o];if(kr.remaining_options(l)){a=l;break}const c=e.map((h,p)=>n[p]?h[o]:void 0);for(let h=0;h<c.length;h++){const p=c[h];if(p===void 0){n[h]=!1;continue}const u=i[p];if(typeof l=="number"&&isNaN(l)&&(u==="number"||u==="series"))s[p]=l;else{const f=kr[i[p]];typeof f=="function"&&f(l)?s[p]=l:n[h]=!1}}}return{...s,...a,...r}}var Rc=Object.defineProperty,Oc=(t,e,i)=>e in t?Rc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,kt=(t,e,i)=>Oc(t,typeof e!="symbol"?e+"":e,i);const Vc=[["dateString"],["year","month","day","hour","minute","second"],["timezone","year","month","day","hour","minute","second"]],Lc={dateString:"string",timezone:"string",year:"number",month:"number",day:"number",hour:"number",minute:"number",second:"number"},jc=["title","shorttitle","overlay","format","precision","scale","max_bars_back","timeframe","timeframe_gaps","explicit_plot_zorder","max_lines_count","max_labels_count","max_boxes_count","calc_bars_count","max_polylines_count","dynamic_requests","behind_chart"],$c={title:"string",shorttitle:"string",overlay:"boolean",format:"string",precision:"number",scale:"string",max_bars_back:"number",timeframe:"string",timeframe_gaps:"boolean",explicit_plot_zorder:"boolean",max_lines_count:"number",max_labels_count:"number",max_boxes_count:"number",calc_bars_count:"number",max_polylines_count:"number",dynamic_requests:"boolean",behind_chart:"boolean"};function Bc(t){return se(t,jc,$c)}class Ot{get __value(){return NaN}param(e,i=0){return y.from(e).get(i)}any(e){const i=y.from(e).get(0);return i==null?!0:typeof i=="number"?i!==i:!1}}const St={freq_all:"alert.freq_all",freq_once_per_bar:"alert.freq_once_per_bar",freq_once_per_bar_close:"alert.freq_once_per_bar_close"};class Fc{constructor(e){this.context=e,kt(this,"_firedKeys",new Set),kt(this,"_fallbackCounter",0),kt(this,"_fallbackLastExecTick",-1)}get freq_all(){return St.freq_all}get freq_once_per_bar(){return St.freq_once_per_bar}get freq_once_per_bar_close(){return St.freq_once_per_bar_close}param(e,i,r){return y.from(e).get(0)}any(e,i,r){const s=y.from(e).get(0),a=i?y.from(i).get(0):St.freq_once_per_bar;let n;if(r&&typeof r=="object"&&r.__callsiteId)n=r.__callsiteId;else{const h=this.context._execTick||0;h!==this._fallbackLastExecTick&&(this._fallbackCounter=0,this._fallbackLastExecTick=h),n=`alert_${this._fallbackCounter++}`}const o=this.context.idx,l=this.context.pine?.barstate?.isrealtime??o===this.context.length-1;if((this.context._alertMode||"realtime")==="realtime"&&!l)return;const c=`${n}:${o}`;if(a===St.freq_once_per_bar){if(this._firedKeys.has(c))return;this._firedKeys.add(c)}else if(a===St.freq_once_per_bar_close){if(!(this.context.pine?.barstate?.isconfirmed??!0)||this._firedKeys.has(c))return;this._firedKeys.add(c)}this.context.alerts.push({type:"alert",id:n,message:s,freq:a,bar_index:o,time:this.context.data.openTime?.data?.[o]??0})}}class Wc{constructor(e){this.context=e,kt(this,"_acCounter",0),kt(this,"_acLastExecTick",-1),kt(this,"_acFiredKeys",new Set)}extractPlotOptions(e){const i={};for(let r in e)i[r]=y.from(e[r]).get(0);return i}indicator(...e){const i=Bc(e),r={title:"",shorttitle:"",overlay:!1,format:"inherit",precision:10,scale:"points",max_bars_back:0,timeframe:"",timeframe_gaps:!0,explicit_plot_zorder:!1,max_lines_count:50,max_labels_count:50,max_boxes_count:50,calc_bars_count:0,max_polylines_count:50,dynamic_requests:!1,behind_chart:!0};return this.context.indicator={...r,...i},this.context.indicator}get bar_index(){return this.context.idx}na(e){const i=y.from(e).get(0);return i==null||typeof i=="number"&&isNaN(i)}nz(e,i=0){const r=y.from(e).get(0),s=y.from(i).get(0);return r==null||typeof r=="number"&&isNaN(r)?s:r}fixnan(e){const i=y.from(e);for(let r=0;r<i.length;r++){const s=i.get(r);if(!isNaN(s))return s}return NaN}alertcondition(e,i,r){const s=y.from(e).get(0),a=this.context.idx,n=this.context._execTick||0;n!==this._acLastExecTick&&(this._acCounter=0,this._acLastExecTick=n);const o=`alertcondition_${this._acCounter++}`;if(!s)return;const l=this.context.pine?.barstate?.isrealtime??a===this.context.length-1;if((this.context._alertMode||"realtime")==="realtime"&&!l)return;const c=`${o}:${a}`;if(this._acFiredKeys.has(c))return;this._acFiredKeys.add(c);const h=i?y.from(i).get(0):"",p=r?y.from(r).get(0):"";this.context.alerts.push({type:"alertcondition",id:o,title:h,message:p,bar_index:a,time:this.context.data.openTime?.data?.[a]??0})}error(...e){console.error("error called but is currently not implemented",e)}max_bars_back(e,i){}timestamp(...e){const i=e.map(s=>s instanceof y?s.get(0):s),r=se(i,Vc,Lc);if(r.year!==void 0){const s=r.year,a=r.month,n=r.day,o=r.hour||0,l=r.minute||0,c=r.second||0,h=r.timezone||this.context.pine?.syminfo?.timezone||"UTC";return this._timestampFromComponents(h,s,a,n,o,l,c)}if(r.dateString!==void 0){const s=r.dateString.trim();if(/[Zz]$/.test(s)||/[+-]\d{2}:?\d{2}$/.test(s))return new Date(s).getTime();const a=s.includes("T")?s+"Z":s.replace(/\s+/,"T")+"Z",n=new Date(a);if(!isNaN(n.getTime())){const o=this.context.pine?.syminfo?.timezone||"UTC";return this._timestampFromComponents(o,n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds())}return new Date(s).getTime()}return NaN}_timestampFromComponents(e,i,r,s,a,n,o){const l=new Date(Date.UTC(i,r-1,s,a,n,o));i>=0&&i<100&&l.setUTCFullYear(i);const c=e.trim();if(c==="UTC"||c==="GMT"||c==="Etc/UTC")return l.getTime();const h=c.match(/^(?:UTC|GMT)([+-])(\d{1,2})(?::(\d{2}))?$/i);if(h){const p=h[1]==="+"?1:-1,u=parseInt(h[2],10),f=parseInt(h[3]||"0",10),m=p*(u*60+f)*60*1e3;return l.getTime()-m}try{return this._timestampFromIANA(e,i,r,s,a,n,o)}catch{return l.getTime()}}_timestampFromIANA(e,i,r,s,a,n,o){const l=new Date(Date.UTC(i,r-1,s,a,n,o));i>=0&&i<100&&l.setUTCFullYear(i);const c=new Intl.DateTimeFormat("en-US",{timeZone:e,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(l),h=v=>parseInt(c.find(E=>E.type===v)?.value||"0",10),p=h("year"),u=h("month"),f=h("day");let m=h("hour");m===24&&(m=0);const x=h("minute"),_=h("second"),b=new Date(Date.UTC(p,u-1,f,m,x,_));p>=0&&p<100&&b.setUTCFullYear(p);const w=b.getTime()-l.getTime();return l.getTime()-w}bool(e){const i=y.from(e).get(0);return!isNaN(i)&&i!==0}int(e){const i=y.from(e).get(0);if(typeof i!="number")throw new Error(`Cannot call "int" with argument "x"="${i}". An argument of "literal string" type was used but a "simple int" is expected.`);return Math.trunc(i)}float(e){const i=y.from(e).get(0);if(typeof i!="number")throw new Error(`Cannot call "float" with argument "x"="${i}". An argument of "literal string" type was used but a "const float" is expected.`);return i}string(e){return y.from(e).get(0).toString()}Type(e){const i=Object.keys(e),r={};for(const s of i){let a=e[s];a instanceof y&&(a=a.data),Array.isArray(a)&&(a[0],r[s]=a[1])}return{new:function(...s){const a={};let n=null;if(s.length===1&&s[0]&&typeof s[0]=="object"&&!(s[0]instanceof y)&&!Array.isArray(s[0])&&!(s[0]instanceof It)){const o=Object.keys(s[0]);o.length>0&&o.some(l=>i.includes(l))&&(n=s[0],s=[])}for(let o=0;o<i.length;o++){const l=i[o];n&&l in n?a[l]=n[l]:o<s.length?a[l]=s[o]:l in r&&(a[l]=y.from(r[l]).get(0))}return new It(a,this.context)},copy:function(s){return new It(s.__def__,this.context)}}}}function Et(t){if(!t||typeof t!="string")return null;if(t.startsWith("#")){const i=t.slice(1);return i.length===6?[parseInt(i.slice(0,2),16),parseInt(i.slice(2,4),16),parseInt(i.slice(4,6),16),1]:i.length===8?[parseInt(i.slice(0,2),16),parseInt(i.slice(2,4),16),parseInt(i.slice(4,6),16),parseInt(i.slice(6,8),16)/255]:null}const e=t.match(/rgba?\(\s*(\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\s*\)/);return e?[parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),e[4]?parseFloat(e[4]):1]:null}function Uc(t,e,i,r){const s=Math.round(Math.max(0,Math.min(255,t))).toString(16).padStart(2,"0"),a=Math.round(Math.max(0,Math.min(255,e))).toString(16).padStart(2,"0"),n=Math.round(Math.max(0,Math.min(255,i))).toString(16).padStart(2,"0");if(r>=1)return`#${s}${a}${n}`.toUpperCase();const o=Math.round(Math.max(0,Math.min(255,r*255))).toString(16).padStart(2,"0");return`#${s}${a}${n}${o}`.toUpperCase()}const re={aqua:"#00BCD4",black:"#363A45",blue:"#2196F3",fuchsia:"#E040FB",gray:"#787B86",green:"#4CAF50",lime:"#00E676",maroon:"#880E4F",navy:"#311B92",olive:"#808000",orange:"#FF9800",purple:"#9C27B0",red:"#F23645",silver:"#B2B5BE",teal:"#089981",white:"#FFFFFF",yellow:"#FDD835"};function We(t){return typeof t=="function"&&(t=t()),t&&typeof t=="object"&&Array.isArray(t.data)&&typeof t.get=="function"&&(t=t.get(0)),t}class qc{constructor(e){this.context=e}any(e){const i=y.from(e).get(0);return typeof i=="number"&&isNaN(i)?null:i}param(e,i=0){return y.from(e).get(i)}new(e,i){if(e=We(e),!e||typeof e!="string")return e;if(e.startsWith("#")){const r=e.slice(1),s=r.length===8?r.slice(0,6):r;return i!=null?`#${s}${Math.round(255/100*(100-i)).toString(16).padStart(2,"0").toUpperCase()}`:`#${r}`}else{const r=re[e];if(r)return i!=null?`#${r.slice(1)}${Math.round(255/100*(100-i)).toString(16).padStart(2,"0").toUpperCase()}`:r;const s=e.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\d.]+))?\s*\)/);if(s){const a=s[1],n=s[2],o=s[3];if(i!=null){const l=parseInt(a).toString(16).padStart(2,"0"),c=parseInt(n).toString(16).padStart(2,"0"),h=parseInt(o).toString(16).padStart(2,"0"),p=Math.round(255/100*(100-i)).toString(16).padStart(2,"0").toUpperCase();return`#${l}${c}${h}${p}`}return e}return i!=null?`rgba(${e}, ${(100-i)/100})`:e}}rgb(e,i,r,s){return s!=null?`rgba(${e}, ${i}, ${r}, ${(100-s)/100})`:`rgb(${e}, ${i}, ${r})`}from_gradient(e,i,r,s,a){if(e=We(e),i=We(i),r=We(r),s=We(s),a=We(a),e==null||typeof e=="number"&&isNaN(e)||i==null||typeof i=="number"&&isNaN(i)||r==null||typeof r=="number"&&isNaN(r)||s==null||typeof s=="number"&&isNaN(s)||a==null||typeof a=="number"&&isNaN(a))return;let n=0;r!==i&&(n=(e-i)/(r-i)),n=Math.max(0,Math.min(1,n));const o=Et(typeof s=="string"?s:"#000000")||[0,0,0,1],l=Et(typeof a=="string"?a:"#FFFFFF")||[255,255,255,1],c=o[0]+(l[0]-o[0])*n,h=o[1]+(l[1]-o[1])*n,p=o[2]+(l[2]-o[2])*n,u=o[3]+(l[3]-o[3])*n;return Uc(c,h,p,u)}r(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?i[0]:NaN}g(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?i[1]:NaN}b(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?i[2]:NaN}t(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?Math.round(100-i[3]*100):NaN}aqua(){return re.aqua}black(){return re.black}blue(){return re.blue}fuchsia(){return re.fuchsia}gray(){return re.gray}green(){return re.green}lime(){return re.lime}maroon(){return re.maroon}navy(){return re.navy}olive(){return re.olive}orange(){return re.orange}purple(){return re.purple}red(){return re.red}silver(){return re.silver}teal(){return re.teal}white(){return re.white}yellow(){return re.yellow}}var Kc=Object.defineProperty,zc=(t,e,i)=>e in t?Kc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ci=(t,e,i)=>zc(t,typeof e!="symbol"?e+"":e,i);function Tt(t,e){const i=e.trim();if(i==="UTC"||i==="GMT"||i==="Etc/UTC"){const s=new Date(t);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate(),hour:s.getUTCHours(),minute:s.getUTCMinutes(),second:s.getUTCSeconds(),dayOfWeek:s.getUTCDay()}}const r=i.match(/^(?:UTC|GMT)([+-])(\d{1,2})(?::(\d{2}))?$/i);if(r){const s=r[1]==="+"?1:-1,a=parseInt(r[2],10),n=parseInt(r[3]||"0",10),o=s*(a*60+n)*60*1e3,l=new Date(t+o);return{year:l.getUTCFullYear(),month:l.getUTCMonth()+1,day:l.getUTCDate(),hour:l.getUTCHours(),minute:l.getUTCMinutes(),second:l.getUTCSeconds(),dayOfWeek:l.getUTCDay()}}try{const s=new Intl.DateTimeFormat("en-US",{timeZone:e,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",weekday:"short",hour12:!1}).formatToParts(new Date(t)),a=c=>parseInt(s.find(h=>h.type===c)?.value||"0",10);let n=a("hour");n===24&&(n=0);const o=s.find(c=>c.type==="weekday")?.value||"Sun",l={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};return{year:a("year"),month:a("month"),day:a("day"),hour:n,minute:a("minute"),second:a("second"),dayOfWeek:l[o]??0}}catch{const s=new Date(t);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate(),hour:s.getUTCHours(),minute:s.getUTCMinutes(),second:s.getUTCSeconds(),dayOfWeek:s.getUTCDay()}}}function Hc(t,e,i){const r=new Date(Date.UTC(t,e-1,i)),s=r.getUTCDay()||7;r.setUTCDate(r.getUTCDate()+4-s);const a=new Date(Date.UTC(r.getUTCFullYear(),0,1));return Math.ceil(((r.getTime()-a.getTime())/864e5+1)/7)}const Gc=[["timeframe"],["timeframe","bars_back"],["timeframe","session","bars_back"],["timeframe","session","bars_back","timeframe_bars_back"],["timeframe","session","timezone","bars_back","timeframe_bars_back"]],Yc={timeframe:"string",session:"string",timezone:"string",bars_back:"number",timeframe_bars_back:"number"};class Ar{constructor(e,i="openTime"){ci(this,"context"),ci(this,"dataField"),this.context=e,this.dataField=i}get __value(){return this.context.data[this.dataField]}param(e,i=0){return y.from(e).get(i)}any(...e){const i=e.map(c=>c instanceof y?c.get(0):c),r=se(i,Gc,Yc),s=r.bars_back??0,a=r.timeframe_bars_back??0,n=s+a,o=this.context.data[this.dataField],l=y.from(o).get(n);if(r.session!==void 0){const c=r.timezone||this.context.pine?.syminfo?.timezone||"UTC";return this._isInSession(l,r.session,c)?l:NaN}return l}_isInSession(e,i,r){const s=i.match(/^(\d{2})(\d{2})-(\d{2})(\d{2})$/);if(!s)return!0;const a=parseInt(s[1],10),n=parseInt(s[2],10),o=parseInt(s[3],10),l=parseInt(s[4],10),c=Tt(e,r),h=c.hour,p=c.minute,u=h*60+p,f=a*60+n,m=o*60+l;return f<=m?u>=f&&u<m:u>=f||u<m}}const Xc=[[],["time"],["time","timezone"]],Qc={time:"number",timezone:"string"};class nt{constructor(e,i){ci(this,"context"),ci(this,"extractor"),this.context=e,this.extractor=i}get __value(){const e=y.from(this.context.data.openTime).get(0);if(isNaN(e))return NaN;const i=this.context.pine?.syminfo?.timezone||"UTC",r=Tt(e,i);return this.extractor(r)}param(e,i=0){return y.from(e).get(i)}any(...e){const i=e.map(o=>o instanceof y?o.get(0):o);if(i.length===0)return this.__value;const r=se(i,Xc,Qc),s=r.time;if(s===void 0||isNaN(s))return NaN;const a=r.timezone||this.context.pine?.syminfo?.timezone||"UTC",n=Tt(s,a);return this.extractor(n)}}const at={dayofmonth:t=>t.day,dayofweek:t=>t.dayOfWeek===0?1:t.dayOfWeek+1,hour:t=>t.hour,minute:t=>t.minute,month:t=>t.month,second:t=>t.second,weekofyear:t=>Hc(t.year,t.month,t.day),year:t=>t.year},Zc=[["defval","title","tooltip","inline","group","display"],["defval","title","tooltip","group","confirm","display"],["defval","title","tooltip","inline","group","confirm","display"],["defval","title","options","tooltip","inline","group","confirm","display"],["defval","title","minval","maxval","step","tooltip","inline","group","confirm","display"]],Jc={defval:"primitive",title:"string",tooltip:"string",inline:"string",group:"string",display:"string",confirm:"boolean",options:"array",minval:"number",maxval:"number",step:"number"};function we(t){return se(t,Zc,Jc)}function Ve(t,e){return e.title&&t.inputs&&t.inputs[e.title]!==void 0?t.inputs[e.title]:e.defval}function eh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function th(t){return(...e)=>we(e).defval}function ih(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function rh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function sh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function nh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function ah(t){return(e,i=0)=>y.from(e).get(i)}function oh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function lh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function ch(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function hh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function uh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function ph(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function fh(t){return(...e)=>{const i=we(e);return Ve(t,i)}}function dh(t){return(...e)=>we(e).defval}var mh=Object.defineProperty,gh=(t,e,i)=>e in t?mh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,de=(t,e,i)=>gh(t,typeof e!="symbol"?e+"":e,i);const yh={any:eh,bool:th,color:ih,enum:rh,float:sh,int:nh,param:ah,price:oh,session:lh,source:ch,string:hh,symbol:uh,text_area:ph,time:fh,timeframe:dh};class xh{constructor(e){this.context=e,de(this,"any"),de(this,"bool"),de(this,"color"),de(this,"enum"),de(this,"float"),de(this,"int"),de(this,"param"),de(this,"price"),de(this,"session"),de(this,"source"),de(this,"string"),de(this,"symbol"),de(this,"text_area"),de(this,"time"),de(this,"timeframe"),Object.entries(yh).forEach(([i,r])=>{this[i]=r(e)})}}function _h(t){return e=>Math.abs(y.from(e).get(0))}function bh(t){return e=>Math.acos(y.from(e).get(0))}function vh(t){return e=>Math.asin(y.from(e).get(0))}function wh(t){return e=>Math.atan(y.from(e).get(0))}function Sh(t){return(...e)=>{const i=e.map(r=>y.from(r).get(0));return i.reduce((r,s)=>r+s,0)/i.length}}function Eh(t){return e=>Math.ceil(y.from(e).get(0))}function Nh(t){return e=>Math.cos(y.from(e).get(0))}function Ch(t){return()=>Math.E}function Ih(t){return e=>Math.exp(y.from(e).get(0))}function kh(t){return e=>Math.floor(y.from(e).get(0))}function Ah(t){return e=>Math.log(y.from(e).get(0))}function Th(t){return e=>Math.log(y.from(e).get(0))}function Ph(t){return e=>Math.log10(y.from(e).get(0))}function Dh(t){return(...e)=>{const i=e.map(r=>y.from(r).get(0));return Math.max(...i)}}function Mh(t){return(...e)=>{const i=e.map(r=>y.from(r).get(0));return Math.min(...i)}}function Rh(t){return(e,i,r)=>typeof e=="string"?e:e instanceof y?i?new y(e.data,e.offset+i):e:!Array.isArray(e)&&typeof e=="object"?e:(t.params[r]||(t.params[r]=[]),Array.isArray(e)?new y(e,i||0):(t.params[r].length===0?t.params[r].push(e):t.params[r][t.params[r].length-1]=e,new y(t.params[r],i||0)))}function Oh(t){return()=>1.618033988749895}function Vh(t){return()=>Math.PI}function Lh(t){return(e,i)=>Math.pow(y.from(e).get(0),y.from(i).get(0))}function jh(t){return()=>Math.random()}function ki(t){return t!==t?NaN:Math.sign(t)*Math.round(Math.abs(t))}function $h(t){return(e,i)=>{const r=y.from(e).get(0);if(i==null)return ki(r);const s=y.from(i).get(0);if(s===0)return ki(r);const a=Math.pow(10,s);return ki(r*a)/a}}function Bh(t){return e=>t.precision(Math.round(y.from(e).get(0)/t.pine.syminfo.mintick)*t.pine.syminfo.mintick)}function Fh(t){return()=>.6180339887498948}function Wh(t){return e=>Math.sign(y.from(e).get(0))}function Uh(t){return e=>Math.sin(y.from(e).get(0))}function qh(t){return e=>Math.sqrt(y.from(e).get(0))}function Kh(t){return(e,i)=>{const r=y.from(i).get(0),s=y.from(e);let a=0;for(let n=0;n<r;n++){const o=s.get(n);a+=o}return a}}function zh(t){return e=>Math.tan(y.from(e).get(0))}function Hh(t){return e=>{const i=y.from(e).get(0);return i==null||Number.isNaN(i)?NaN:i*(180/Math.PI)}}function Gh(t){return e=>{const i=y.from(e).get(0);return i==null||Number.isNaN(i)?NaN:i*(Math.PI/180)}}function Yh(t){return(e,i)=>{const r=y.from(e).get(0),s=y.from(i).get(0);return typeof r=="number"&&typeof s=="number"?isNaN(r)||isNaN(s)?!1:Math.abs(r-s)<1e-9:r===s}}function Xh(t){return(e,i)=>{const r=y.from(e).get(0),s=y.from(i).get(0);return typeof r=="number"&&typeof s=="number"?isNaN(r)||isNaN(s)?!1:Math.abs(r-s)>=1e-9:r!==s}}var Qh=Object.defineProperty,Zh=(t,e,i)=>e in t?Qh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,W=(t,e,i)=>Zh(t,typeof e!="symbol"?e+"":e,i);const Jh={abs:_h,acos:bh,asin:vh,atan:wh,avg:Sh,ceil:Eh,cos:Nh,e:Ch,exp:Ih,floor:kh,ln:Ah,log:Th,log10:Ph,max:Dh,min:Mh,param:Rh,phi:Oh,pi:Vh,pow:Lh,random:jh,round:$h,round_to_mintick:Bh,rphi:Fh,sign:Wh,sin:Uh,sqrt:qh,sum:Kh,tan:zh,todegrees:Hh,toradians:Gh,__eq:Yh,__neq:Xh};class eu{constructor(e){this.context=e,W(this,"_cache",{}),W(this,"abs"),W(this,"acos"),W(this,"asin"),W(this,"atan"),W(this,"avg"),W(this,"ceil"),W(this,"cos"),W(this,"e"),W(this,"exp"),W(this,"floor"),W(this,"ln"),W(this,"log"),W(this,"log10"),W(this,"max"),W(this,"min"),W(this,"param"),W(this,"phi"),W(this,"pi"),W(this,"pow"),W(this,"random"),W(this,"round"),W(this,"round_to_mintick"),W(this,"rphi"),W(this,"sign"),W(this,"sin"),W(this,"sqrt"),W(this,"sum"),W(this,"tan"),W(this,"todegrees"),W(this,"toradians"),W(this,"__eq"),W(this,"__neq"),Object.entries(Jh).forEach(([i,r])=>{this[i]=r(e)})}}function tu(t){return(e,i,r)=>{t.params[r]||(t.params[r]=[]);let s;if(e instanceof y)s=e.get(i||0);else if(Array.isArray(e)){const a=e.some(o=>o instanceof y),n=e.every(o=>!(o instanceof y)&&!Array.isArray(o));(a||n)&&e.length>=1?s=e.map(o=>o instanceof y?o.get(0):o):s=y.from(e).get(i||0)}else s=e;return t.params[r].length===0?t.params[r].push(s):t.params[r][t.params[r].length-1]=s,[s,r]}}const Pt=["1","3","5","15","30","45","60","120","180","240","D","W","M"],Qt={"1m":"1","3m":"3","5m":"5","15m":"15","30m":"30","45m":"45","1h":"60","2h":"120","3h":"180","4h":"240","1d":"D","1w":"W","1M":"M"};function hi(t){if(Pt.includes(t))return t;if(Qt[t])return Qt[t];const e=t.toLowerCase();if(Qt[e])return Qt[e];const i=t.toUpperCase();return Pt.includes(i)?i:t}function Tr(t,e,i,r,s=!1,a=!1){for(let n=0;n<i.length;n++)if(i[n]<=t&&t<r[n])return s||a||e>=r[n]?n:n-1;return-1}function Pr(t,e,i,r,s=!1,a,n=!1){for(let o=i.length-1;o>=0;o--){if(r[o]<=e&&i[o]>=t){const l=a&&e>a;if(n&&s)for(let c=0;c<i.length;c++){if(i[c]>=t&&i[c]<e)return c;if(i[c]>=e)break}if(l&&s&&!n)for(let c=0;c<i.length;c++){if(i[c]>=t&&i[c]<e)return c;if(i[c]>=e)break}return o}if(r[o]<t)break}return-1}function Wi(t){return t==null||typeof t!="object"?t:"__value"in t?t.__value:t instanceof y?t.get(0):Array.isArray(t)?t.map(Wi):t}function iu(t){return async(e,i,r,s=!1,a=!1,n=!1,o=null,l=null)=>{const c=e[0]instanceof y?e[0].get(0):e[0],h=c===""?t.tickerId:c,p=typeof h=="string"&&h.includes(":")?h.split(":")[1]:h,u=i[0]instanceof y?i[0].get(0):i[0],f=u===""?t.timeframe:typeof u=="string"?u:String(u??""),m=r[0],x=r[1],_=Array.isArray(s)?s[0]:s,b=Array.isArray(a)?a[0]:a,w=_===!0||_==="gaps_on",v=b===!0||b==="lookahead_on";if(t.isSecondaryContext){const Se=Wi(m);return Array.isArray(Se)?[Se]:Se}const E=Pt.indexOf(hi(t.timeframe)),T=Pt.indexOf(hi(f));if(E==-1||T==-1)throw new Error("Invalid timeframe");if(E===T){const Se=Wi(m);return Array.isArray(Se)?[Se]:Se}const C=E>T,O=y.from(t.data.openTime).get(0),B=y.from(t.data.closeTime).get(0),z=t.idx===t.length-1&&B>Date.now(),K=`${p}_${f}_${x}`,R=`${K}_prevIdx`;if(t.cache[K]){const Se=t.cache[K];t.dataVersion>Se.dataVersion&&(await Se.pineTS.updateTail(Se.context),Se.dataVersion=t.dataVersion);const Vt=Se.context,Ht=C?Pr(O,B,Vt.data.openTime.data,Vt.data.closeTime.data,v,t.eDate,w):Tr(O,B,Vt.data.openTime.data,Vt.data.closeTime.data,v,z);if(Ht==-1)return NaN;const vt=Vt.params[x][Ht];if(!C&&w){const nr=t.cache[R];return nr!==void 0&&nr===Ht?NaN:(t.cache[R]=Ht,Array.isArray(vt)?[vt]:vt)}return Array.isArray(vt)?[vt]:vt}const Q=1e3*60*60*24*30,pe=t.sDate||(t.marketData?.length>0?t.marketData[0].openTime:void 0),Ne=pe?pe-Q:void 0,Ce=t.marketData?.length>0?t.marketData[t.marketData.length-1].closeTime:0,Ie=t.eDate?Math.max(t.eDate,Ce):(Ce||Date.now())+Q,ut=new hn(t.source,p,f,void 0,Ne,Ie);ut.markAsSecondary();const ce=await ut.run(t.pineTSCode);t.cache[K]={pineTS:ut,context:ce,dataVersion:t.dataVersion};const bi=C?Pr(O,B,ce.data.openTime.data,ce.data.closeTime.data,v,t.eDate,w):Tr(O,B,ce.data.openTime.data,ce.data.closeTime.data,v,z);if(bi==-1)return NaN;const vi=ce.params[x][bi];return!C&&w?(t.cache[R]=bi,NaN):Array.isArray(vi)?[vi]:vi}}function Nt(t){return typeof t=="number"?D.float:typeof t=="boolean"?D.bool:typeof t=="string"?D.string:D.any}function ru(t){return async(e,i,r,s=!1,a=null,n=!1,o=0)=>{const l=e[0]instanceof y?e[0].get(0):e[0],c=l===""?t.tickerId:l,h=typeof c=="string"&&c.includes(":")?c.split(":")[1]:c,p=i[0]instanceof y?i[0].get(0):i[0],u=p===""?t.timeframe:typeof p=="string"?p:String(p??""),f=r[0],m=r[1];Array.isArray(s)&&s[0];const x=Array.isArray(n)?n[0]:n;if(t.isSecondaryContext)return Array.isArray(f)?[f.map(R=>new L([R],Nt(R),t))]:new L([f],Nt(f),t);const _=Pt.indexOf(hi(t.timeframe)),b=Pt.indexOf(hi(u));if(_===-1||b===-1){if(x)return NaN;throw new Error("Invalid timeframe")}if(b>_){if(x)return NaN;throw new Error(`Timeframe ${u} is not lower than or equal to chart timeframe ${t.timeframe}`)}if(b===_)return Array.isArray(f)?[f.map(R=>new L([R],Nt(R),t))]:new L([f],Nt(f),t);const w=`${h}_${u}_${m}_lower`;if(!t.cache[w]){const R=t.sDate||(t.marketData?.length>0?t.marketData[0].openTime:void 0),Q=R?R-2592e6:void 0,pe=t.marketData?.length>0?t.marketData[t.marketData.length-1].closeTime:0,Ne=t.eDate?Math.max(t.eDate,pe):(pe||Date.now())+2592e6,Ce=new hn(t.source,h,u,void 0,Q,Ne);Ce.markAsSecondary();const Ie=await Ce.run(t.pineTSCode);t.cache[w]={pineTS:Ce,context:Ie,dataVersion:t.dataVersion}}const v=t.cache[w];t.dataVersion>v.dataVersion&&(await v.pineTS.updateTail(v.context),v.dataVersion=t.dataVersion);const E=v.context,T=y.from(t.data.openTime).get(0),C=y.from(t.data.closeTime).get(0),O=E.data.openTime.data,B=E.data.closeTime.data,z=E.params[m];if(!z)return Array.isArray(f)?[f.map(()=>new L([],D.float,t))]:new L([],D.float,t);const K=[];for(let R=0;R<O.length;R++){const Q=O[R];if(!(B[R]<=T)){if(Q>=C)break;Q>=T&&Q<C&&K.push(z[R])}}if(K.length>0&&Array.isArray(K[0])){const R=K[0].length,Q=[];for(let pe=0;pe<R;pe++){const Ne=K.map(Ie=>Ie[pe]),Ce=Ne.length>0?Nt(Ne[0]):D.float;Q.push(new L(Ne,Ce,t))}return[Q]}else{const R=K.length>0?Nt(K[0]):D.float;return new L(K,R,t)}}}var su=Object.defineProperty,nu=(t,e,i)=>e in t?su(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Zt=(t,e,i)=>nu(t,typeof e!="symbol"?e+"":e,i);const au={param:tu,security:iu,security_lower_tf:ru};class ou{constructor(e){this.context=e,Zt(this,"_cache",{}),Zt(this,"param"),Zt(this,"security"),Zt(this,"security_lower_tf"),Object.entries(au).forEach(([i,r])=>{this[i]=r(e)})}}function lu(t){return e=>{t.taState||(t.taState={});const i=e||"accdist";t.taState[i]||(t.taState[i]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.prevCumulativeSum=r.currentCumulativeSum),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.high,0),n=t.get(t.data.low,0),o=t.get(t.data.volume,0);if(isNaN(s)||isNaN(a)||isNaN(n)||isNaN(o))return r.currentCumulativeSum=r.prevCumulativeSum,t.precision(r.prevCumulativeSum);const l=a-n;let c=0;l!==0&&(c=(s-n-(a-s))/l*o);const h=r.prevCumulativeSum+c;return r.currentCumulativeSum=h,t.precision(h)}}function cu(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0),l=y.from(s).get(0);t.taState||(t.taState={});const c=a||`alma_${n}_${o}_${l}`;if(!t.taState[c]){const x=o*(n-1),_=n/l,b=[];let w=0;for(let v=0;v<n;v++){const E=Math.exp(-Math.pow(v-x,2)/(2*_*_));b.push(E),w+=E}for(let v=0;v<b.length;v++)b[v]/=w;t.taState[c]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0,weights:b}}const h=t.taState[c];t.idx>h.lastIdx&&(h.lastIdx>=0&&(h.prevWindow=[...h.currentWindow],h.prevCallCount=h.currentCallCount),h.lastIdx=t.idx);const p=y.from(e).get(0),u=[...h.prevWindow];for(u.unshift(p);u.length>n;)u.pop();const f=h.prevCallCount+1;if(u.length<n&&(f>=n||t.idx>=n-1)){const x=y.from(e);for(;u.length<n;)u.push(x.get(u.length))}if(h.currentWindow=u,h.currentCallCount=f,u.length<n)return NaN;let m=0;for(let x=0;x<n;x++)m+=h.weights[x]*u[n-1-x];return t.precision(m)}}function hu(t){return(e,i)=>{const r=y.from(e).get(0);t.taState||(t.taState={});const s=i||`atr_${r}`;t.taState[s]||(t.taState[s]={lastIdx:-1,prevAtr:null,prevInitSum:0,prevInitCount:0,currentAtr:null,currentInitSum:0,currentInitCount:0});const a=t.taState[s];t.idx>a.lastIdx&&(a.lastIdx>=0&&(a.prevAtr=a.currentAtr,a.prevInitSum=a.currentInitSum,a.prevInitCount=a.currentInitCount),a.lastIdx=t.idx);const n=t.get(t.data.high,0),o=t.get(t.data.low,0),l=t.get(t.data.close,0);if(isNaN(n)||isNaN(o)||isNaN(l))return NaN;const c=t.idx>0?t.get(t.data.close,1):null;let h;if(c!==null&&!isNaN(c)){const x=n-o,_=Math.abs(n-c),b=Math.abs(o-c);h=Math.max(x,_,b)}else h=n-o;let p=a.prevInitCount,u=a.prevInitSum,f=a.prevAtr;if(p<r){if(u+=h,p++,a.currentInitSum=u,a.currentInitCount=p,p===r){const x=u/r;return a.currentAtr=x,t.precision(x)}return NaN}const m=(f*(r-1)+h)/r;return a.currentAtr=m,t.precision(m)}}function uu(t){return(e,i)=>{t.taState||(t.taState={});const r=i||"barssince";t.taState[r]||(t.taState[r]={lastIdx:-1,prevLastTrueIndex:null,currentLastTrueIndex:null});const s=t.taState[r];t.idx>s.lastIdx&&(s.lastIdx>=0&&(s.prevLastTrueIndex=s.currentLastTrueIndex),s.lastIdx=t.idx);const a=y.from(e).get(0);let n=s.prevLastTrueIndex;return a&&(n=t.idx),s.currentLastTrueIndex=n,n===null?NaN:t.idx-n}}function pu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`bb_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevSum:0,currentWindow:[],currentSum:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevSum=l.currentSum),l.lastIdx=t.idx);const c=y.from(e).get(0);if(isNaN(c))return l.currentWindow=[...l.prevWindow],l.currentSum=l.prevSum,[[NaN,NaN,NaN]];const h=[...l.prevWindow];let p=l.prevSum;for(h.unshift(c),p+=c;h.length>a;){const b=h.pop();p-=b}if(h.length<a&&t.idx>=a-1){const b=y.from(e);for(;h.length<a;){const w=b.get(h.length);if(isNaN(w))break;h.push(w),p+=w}}if(l.currentWindow=h,l.currentSum=p,h.length<a)return[[NaN,NaN,NaN]];const u=p/a;let f=0;for(let b=0;b<a;b++)f+=Math.pow(h[b]-u,2);const m=Math.sqrt(f/a),x=u+n*m,_=u-n*m;return[[t.precision(u),t.precision(x),t.precision(_)]]}}function fu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`bbw_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevSum:0,currentWindow:[],currentSum:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevSum=l.currentSum),l.lastIdx=t.idx);const c=y.from(e).get(0);if(isNaN(c))return l.currentWindow=[...l.prevWindow],l.currentSum=l.prevSum,NaN;const h=[...l.prevWindow];let p=l.prevSum;for(h.unshift(c),p+=c;h.length>a;){const w=h.pop();p-=w}if(h.length<a&&t.idx>=a-1){const w=y.from(e);for(;h.length<a;){const v=w.get(h.length);if(isNaN(v))break;h.push(v),p+=v}}if(l.currentWindow=h,l.currentSum=p,h.length<a)return NaN;const u=p/a;let f=0;for(let w=0;w<a;w++){const v=h[w]-u;f+=v*v}const m=f/a,x=Math.sqrt(m),_=n*x;if(u===0)return t.precision(0);const b=2*_/u*100;return t.precision(b)}}function du(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`cci_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevSum=n.currentSum,n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0);if(isNaN(o))return NaN;const l=[...n.prevWindow];let c=n.prevSum;for(l.unshift(o),c+=o;l.length>s;){const x=l.pop();c-=x}const h=n.prevCallCount+1;if(l.length<s&&(h>=s||t.idx>=s-1)){const x=y.from(e);for(;l.length<s;){const _=x.get(l.length);if(isNaN(_))break;l.push(_),c+=_}}if(n.currentWindow=l,n.currentSum=c,n.currentCallCount=h,l.length<s)return NaN;const p=c/s;let u=0;for(let x=0;x<s;x++)u+=Math.abs(l[x]-p);const f=u/s;if(f===0)return 0;const m=(o-p)/(.015*f);return t.precision(m)}}function mu(t){return(e,i=1,r)=>{typeof i=="string"&&(r=i,i=1);const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`change_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s+1;)l.pop();const c=n.prevCallCount+1;if(l.length<s+1&&(c>=s+1||t.idx>=s)){const p=y.from(e);for(;l.length<s+1;)l.push(p.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<=s)return NaN;const h=o-l[s];return t.precision(h)}}function gu(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`cmo_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevGainsWindow:[],prevLossesWindow:[],prevGainsSum:0,prevLossesSum:0,currentGainsWindow:[],currentLossesWindow:[],currentGainsSum:0,currentLossesSum:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevGainsWindow=[...n.currentGainsWindow],n.prevLossesWindow=[...n.currentLossesWindow],n.prevGainsSum=n.currentGainsSum,n.prevLossesSum=n.currentLossesSum),n.lastIdx=t.idx);const o=y.from(e).get(0),l=y.from(e).get(1);if(isNaN(o)||isNaN(l))return NaN;const c=o-l,h=c>=0?c:0,p=c>=0?0:-c,u=[...n.prevGainsWindow],f=[...n.prevLossesWindow];let m=n.prevGainsSum,x=n.prevLossesSum;if(u.unshift(h),f.unshift(p),m+=h,x+=p,u.length<s)return n.currentGainsWindow=u,n.currentLossesWindow=f,n.currentGainsSum=m,n.currentLossesSum=x,NaN;if(u.length>s){const w=u.pop(),v=f.pop();m-=w,x-=v}n.currentGainsWindow=u,n.currentLossesWindow=f,n.currentGainsSum=m,n.currentLossesSum=x;const _=m+x;if(_===0)return t.precision(0);const b=100*(m-x)/_;return t.precision(b)}}function yu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);let n=0,o=!1;for(let h=0;h<s;h++){const p=a.get(h);if(isNaN(p)){o=!0;break}n+=p}if(o)return NaN;let l=0;for(let h=0;h<s;h++){const p=a.get(h);l+=p*(h+1)}if(n===0)return NaN;const c=-l/n;return t.precision(c)}}function xu(t){return(e,i,r,s)=>{const a=y.from(r).get(0),n=y.from(e),o=y.from(i);if(t.idx<a-1)return NaN;let l=0,c=0,h=0,p=0,u=0,f=0;for(let w=0;w<a;w++){const v=n.get(w),E=o.get(w);isNaN(v)||isNaN(E)||(l+=v,c+=E,h+=v*E,p+=v*v,u+=E*E,f++)}if(f<2)return NaN;const m=f*h-l*c,x=f*p-l*l,_=f*u-c*c;if(x<=0||_<=0)return t.precision(0);const b=m/Math.sqrt(x*_);return t.precision(b)}}function _u(t){return(e,i,r)=>{const s=y.from(e),a=y.from(i),n=s.get(0),o=a.get(0),l=s.get(1),c=a.get(1);if(isNaN(n)||isNaN(o)||isNaN(l)||isNaN(c))return!1;const h=n>o&&l<=c,p=n<o&&l>=c;return h||p}}function bu(t){return(e,i)=>{const r=y.from(e),s=y.from(i),a=r.get(0),n=s.get(0),o=r.get(1),l=s.get(1);return o<l&&a>n}}function vu(t){return(e,i)=>{const r=y.from(e),s=y.from(i),a=r.get(0),n=s.get(0),o=r.get(1),l=s.get(1);return o>l&&a<n}}function wu(t){return(e,i)=>{t.taState||(t.taState={});const r=i||"cum";t.taState[r]||(t.taState[r]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const s=t.taState[r];t.idx>s.lastIdx&&(s.lastIdx>=0&&(s.prevCumulativeSum=s.currentCumulativeSum),s.lastIdx=t.idx);const a=y.from(e).get(0);if(isNaN(a))return s.currentCumulativeSum=s.prevCumulativeSum,t.precision(s.prevCumulativeSum);const n=s.prevCumulativeSum+a;return s.currentCumulativeSum=n,t.precision(n)}}function Su(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`dev_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevSum=n.currentSum,n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0)||0,l=[...n.prevWindow];let c=n.prevSum;for(l.unshift(o),c+=o;l.length>s;){const m=l.pop();c-=m}const h=n.prevCallCount+1;if(l.length<s&&(h>=s||t.idx>=s-1)){const m=y.from(e);for(;l.length<s;){const x=m.get(l.length);l.push(x),c+=x}}if(n.currentWindow=l,n.currentSum=c,n.currentCallCount=h,l.length<s)return NaN;const p=c/s;let u=0;for(let m=0;m<s;m++)u+=Math.abs(l[m]-p);const f=u/s;return t.precision(f)}}function Eu(t){return(e,i,r)=>{const s=y.from(e).get(0),a=y.from(i).get(0);t.taState||(t.taState={});const n=r||`dmi_${s}_${a}`;t.taState[n]||(t.taState[n]={lastIdx:-1,prevTrInitSum:0,prevPlusInitSum:0,prevMinusInitSum:0,prevInitCount:0,prevSmoothedTR:NaN,prevSmoothedPlus:NaN,prevSmoothedMinus:NaN,prevDxInitSum:0,prevAdxInitCount:0,prevADX:NaN,currentTrInitSum:0,currentPlusInitSum:0,currentMinusInitSum:0,currentInitCount:0,currentSmoothedTR:NaN,currentSmoothedPlus:NaN,currentSmoothedMinus:NaN,currentDxInitSum:0,currentAdxInitCount:0,currentADX:NaN});const o=t.taState[n];t.idx>o.lastIdx&&(o.lastIdx>=0&&(o.prevTrInitSum=o.currentTrInitSum,o.prevPlusInitSum=o.currentPlusInitSum,o.prevMinusInitSum=o.currentMinusInitSum,o.prevInitCount=o.currentInitCount,o.prevSmoothedTR=o.currentSmoothedTR,o.prevSmoothedPlus=o.currentSmoothedPlus,o.prevSmoothedMinus=o.currentSmoothedMinus,o.prevDxInitSum=o.currentDxInitSum,o.prevAdxInitCount=o.currentAdxInitCount,o.prevADX=o.currentADX),o.lastIdx=t.idx);const l=t.get(t.data.high,0),c=t.get(t.data.low,0),h=t.get(t.data.close,0);if(isNaN(l)||isNaN(c)||isNaN(h))return[[NaN,NaN,NaN]];const p=t.idx>0?t.get(t.data.high,1):NaN,u=t.idx>0?t.get(t.data.low,1):NaN,f=t.idx>0?t.get(t.data.close,1):NaN;if(isNaN(p))return[[NaN,NaN,NaN]];const m=Math.max(l-c,Math.abs(l-f),Math.abs(c-f)),x=l-p,_=u-c,b=x>_&&x>0?x:0,w=_>x&&_>0?_:0;let v=o.prevInitCount,E=o.prevTrInitSum,T=o.prevPlusInitSum,C=o.prevMinusInitSum,O=o.prevSmoothedTR,B=o.prevSmoothedPlus,z=o.prevSmoothedMinus;if(v++,v<=s)E+=m,T+=b,C+=w,v===s&&(O=E/s,B=T/s,z=C/s);else{const ce=1/s;O=ce*m+(1-ce)*O,B=ce*b+(1-ce)*B,z=ce*w+(1-ce)*z}if(o.currentInitCount=v,o.currentTrInitSum=E,o.currentPlusInitSum=T,o.currentMinusInitSum=C,o.currentSmoothedTR=O,o.currentSmoothedPlus=B,o.currentSmoothedMinus=z,v<s)return[[NaN,NaN,NaN]];const K=O===0?0:100*B/O,R=O===0?0:100*z/O,Q=K+R,pe=Q===0?0:100*Math.abs(K-R)/Q;let Ne=o.prevAdxInitCount,Ce=o.prevDxInitSum,Ie=o.prevADX,ut=NaN;if(Ne++,Ne<=a)Ce+=pe,Ne===a&&(Ie=Ce/a,ut=Ie);else{const ce=1/a;Ie=ce*pe+(1-ce)*Ie,ut=Ie}return o.currentAdxInitCount=Ne,o.currentDxInitSum=Ce,o.currentADX=Ie,[[t.precision(K),t.precision(R),t.precision(ut)]]}}function Nu(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`ema_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevEma:null,prevInitSum:0,prevInitCount:0,currentEma:null,currentInitSum:0,currentInitCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevEma=n.currentEma,n.prevInitSum=n.currentInitSum,n.prevInitCount=n.currentInitCount),n.lastIdx=t.idx);const o=y.from(e).get(0);if(o==null||isNaN(o))return NaN;let l=n.prevInitCount,c=n.prevInitSum,h=n.prevEma;if(l<s){if(c+=o,l++,n.currentInitSum=c,n.currentInitCount=l,l===s){const f=c/s;return n.currentEma=f,t.precision(f)}return NaN}const p=2/(s+1),u=o*p+h*(1-p);return n.currentEma=u,t.precision(u)}}function Cu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);for(let n=0;n<s;n++){const o=a.get(n),l=a.get(n+1);if(isNaN(o)||isNaN(l)||o>=l)return!1}return!0}}function Iu(t){return(e,i,r)=>{typeof i=="string"&&r===void 0&&(r=i,i=e,e=t.data.high);const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`highest_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const u=y.from(e);for(;l.length<s;)l.push(u.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;const h=l.filter(u=>!isNaN(u)&&u!==void 0);if(h.length===0)return NaN;const p=Math.max(...h);return t.precision(p)}}function ku(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s-1)return NaN;let n=-1/0,o=NaN;for(let l=0;l<s;l++){const c=a.get(l);isNaN(c)||(isNaN(o)||c>n)&&(n=c,o=-l)}return o}}function Au(t){return(e,i,r)=>{const s=y.from(i).get(0),a=Math.floor(s/2),n=Math.floor(Math.sqrt(s)),o=t.pine.ta.wma,l=o(e,a,r?`${r}_wma1`:void 0),c=o(e,s,r?`${r}_wma2`:void 0);if(isNaN(l)||isNaN(c))return NaN;t.taState||(t.taState={});const h=r||`hma_raw_${s}`;t.taState[h]||(t.taState[h]={lastIdx:-1,prevValues:[],currentValues:[]});const p=t.taState[h];t.idx>p.lastIdx&&(p.lastIdx>=0&&(p.prevValues=[...p.currentValues]),p.lastIdx=t.idx);const u=2*l-c,f=[...p.prevValues];f.unshift(u),f.length>n+1&&f.pop(),p.currentValues=f;const m=r?`${r}_hma_final`:`hma_final_${s}`;t.taState[m]||(t.taState[m]={lastIdx:-1,prevWindow:[],currentWindow:[]});const x=t.taState[m];t.idx>x.lastIdx&&(x.lastIdx>=0&&(x.prevWindow=[...x.currentWindow]),x.lastIdx=t.idx);const _=[...x.prevWindow];if(_.unshift(u),_.length<n)return x.currentWindow=_,NaN;for(;_.length>n;)_.pop();x.currentWindow=_;let b=0,w=0;for(let E=0;E<n;E++){const T=n-E;b+=_[E]*T,w+=T}const v=b/w;return t.precision(v)}}function Tu(t){return e=>{const i=t.get(t.data.close,0),r=t.get(t.data.high,0),s=t.get(t.data.low,0),a=t.get(t.data.volume,0);if(isNaN(i)||isNaN(r)||isNaN(s)||isNaN(a))return NaN;const n=(r-s)*a;if(n===0)return t.precision(0);const o=(2*i-r-s)/n;return t.precision(o)}}function Pu(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0);let l=!0;typeof s=="string"?a=s:s!==void 0&&(l=y.from(s).get(0));let c;const h=t.get(t.data.high,0),p=t.get(t.data.low,0);if(l){const E=t.get(t.data.close,1);isNaN(E)?c=NaN:c=Math.max(h-p,Math.abs(h-E),Math.abs(p-E))}else c=h-p;const u=y.from(e).get(0);t.taState||(t.taState={});const f=a||`kc_${n}_${o}_${l}`;t.taState[f]||(t.taState[f]={lastIdx:-1,basisState:{prevEma:null,initSum:0,initCount:0},rangeState:{prevEma:null,initSum:0,initCount:0},currentBasisState:{prevEma:null,initSum:0,initCount:0},currentRangeState:{prevEma:null,initSum:0,initCount:0}});const m=t.taState[f];t.idx>m.lastIdx&&(m.lastIdx>=0&&(m.basisState={...m.currentBasisState},m.rangeState={...m.currentRangeState}),m.lastIdx=t.idx);const x=(E,T,C,O)=>{if(isNaN(C))return Object.assign(T,E),T.prevEma!==null?T.prevEma:NaN;let B=E.initCount,z=E.initSum,K=E.prevEma;if(B<O){if(z+=C,B++,T.initSum=z,T.initCount=B,T.prevEma=K,B===O){const pe=z/O;return T.prevEma=pe,pe}return NaN}const R=2/(O+1),Q=C*R+K*(1-R);return T.prevEma=Q,T.initSum=z,T.initCount=B,Q},_=x(m.basisState,m.currentBasisState,u,n),b=x(m.rangeState,m.currentRangeState,c,n);if(isNaN(_)||isNaN(b))return[[NaN,NaN,NaN]];const w=_+b*o,v=_-b*o;return[[t.precision(_),t.precision(w),t.precision(v)]]}}function Du(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0);let l=!0;typeof s=="string"?a=s:s!==void 0&&(l=y.from(s).get(0)),t.taState||(t.taState={});const c=a||`kcw_${n}_${o}_${l}`;t.taState[c]||(t.taState[c]={lastIdx:-1,basisState:{prevEma:null,initSum:0,initCount:0},rangeState:{prevEma:null,initSum:0,initCount:0},currentBasisState:{prevEma:null,initSum:0,initCount:0},currentRangeState:{prevEma:null,initSum:0,initCount:0}});const h=t.taState[c];t.idx>h.lastIdx&&(h.lastIdx>=0&&(h.basisState={...h.currentBasisState},h.rangeState={...h.currentRangeState}),h.lastIdx=t.idx);const p=(v,E,T,C)=>{if(isNaN(T))return Object.assign(E,v),E.prevEma!==null?E.prevEma:NaN;let O=v.initCount,B=v.initSum,z=v.prevEma;if(O<C){if(B+=T,O++,E.initSum=B,E.initCount=O,E.prevEma=z,O===C){const Q=B/C;return E.prevEma=Q,Q}return NaN}const K=2/(C+1),R=T*K+z*(1-K);return E.prevEma=R,E.initSum=B,E.initCount=O,R};let u;const f=t.get(t.data.high,0),m=t.get(t.data.low,0);if(l){const v=t.get(t.data.close,1);isNaN(v)?u=NaN:u=Math.max(f-m,Math.abs(f-v),Math.abs(m-v))}else u=f-m;const x=y.from(e).get(0),_=p(h.basisState,h.currentBasisState,x,n),b=p(h.rangeState,h.currentRangeState,u,n);if(isNaN(_)||isNaN(b))return NaN;if(_===0)return t.precision(0);const w=2*b*o/_;return t.precision(w)}}function Mu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`linreg_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevCallCount=l.currentCallCount),l.lastIdx=t.idx);const c=y.from(e).get(0),h=[...l.prevWindow];for(h.unshift(c);h.length>a;)h.pop();const p=l.prevCallCount+1;if(h.length<a&&(p>=a||t.idx>=a-1)){const E=y.from(e);for(;h.length<a;)h.push(E.get(h.length))}if(l.currentWindow=h,l.currentCallCount=p,h.length<a)return NaN;let u=0,f=0,m=0,x=0;const _=a;for(let E=0;E<a;E++){const T=a-1-E,C=h[E];u+=T,f+=C,m+=T*C,x+=T*T}const b=_*x-u*u;if(b===0)return NaN;const w=(_*m-u*f)/b,v=(f-w*u)/_+w*(a-1-n);return t.precision(v)}}function Ru(t){return(e,i,r)=>{typeof i=="string"&&r===void 0&&(r=i,i=e,e=t.data.low);const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`lowest_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const u=y.from(e);for(;l.length<s;)l.push(u.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;const h=l.filter(u=>!isNaN(u)&&u!==void 0);if(h.length===0)return NaN;const p=Math.min(...h);return t.precision(p)}}function Ou(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s-1)return NaN;let n=1/0,o=NaN;for(let l=0;l<s;l++){const c=a.get(l);isNaN(c)||(isNaN(o)||c<n)&&(n=c,o=-l)}return o}}function Vu(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0),l=y.from(s).get(0),c=a||`macd_${n}_${o}_${l}`,h=`${c}_fast`,p=`${c}_slow`,u=`${c}_signal`,f=t.pine.ta.ema(e,n,h),m=t.pine.ta.ema(e,o,p);let x=NaN;!isNaN(f)&&!isNaN(m)&&(x=f-m);let _=NaN;isNaN(x)||(_=t.pine.ta.ema(x,l,u));let b=NaN;return!isNaN(x)&&!isNaN(_)&&(b=x-_),[[t.precision(x),t.precision(_),t.precision(b)]]}}function Lu(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`median_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const f=y.from(e);for(;l.length<s;)l.push(f.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;const h=l.slice().sort((f,m)=>f-m),p=Math.floor(s/2),u=s%2===0?(h[p-1]+h[p])/2:h[p];return t.precision(u)}}function ju(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`mfi_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevUpperWindow:[],prevLowerWindow:[],prevUpperSum:0,prevLowerSum:0,currentUpperWindow:[],currentLowerWindow:[],currentUpperSum:0,currentLowerSum:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevUpperWindow=[...n.currentUpperWindow],n.prevLowerWindow=[...n.currentLowerWindow],n.prevUpperSum=n.currentUpperSum,n.prevLowerSum=n.currentLowerSum),n.lastIdx=t.idx);const o=y.from(e).get(0),l=y.from(e).get(1),c=t.get(t.data.volume,0);if(isNaN(o)||isNaN(c))return NaN;const h=isNaN(l)?NaN:o-l,p=c*(h<=0?0:o),u=c*(h>=0?0:o),f=[...n.prevUpperWindow],m=[...n.prevLowerWindow];let x=n.prevUpperSum,_=n.prevLowerSum;if(f.unshift(p),m.unshift(u),x+=p,_+=u,f.length<s)return n.currentUpperWindow=f,n.currentLowerWindow=m,n.currentUpperSum=x,n.currentLowerSum=_,NaN;if(f.length>s){const w=f.pop(),v=m.pop();x-=w,_-=v}if(n.currentUpperWindow=f,n.currentLowerWindow=m,n.currentUpperSum=x,n.currentLowerSum=_,_===0)return t.precision(100);if(x===0)return t.precision(0);const b=100-100/(1+x/_);return t.precision(b)}}function $u(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s-1)return NaN;const n=new Map;for(let c=0;c<s;c++){const h=a.get(c);isNaN(h)||n.set(h,(n.get(h)||0)+1)}if(n.size===0)return NaN;let o=NaN,l=-1;for(const[c,h]of n.entries())h>l?(l=h,o=c):h===l&&c<o&&(o=c);return o}}function Bu(t){return(e,i,r)=>{const s=y.from(i).get(0);return t.pine.ta.change(e,s,r)}}function Fu(t){return e=>{t.taState||(t.taState={});const i=e||"nvi";t.taState[i]||(t.taState[i]={lastIdx:-1,committedNVI:1,tentativeNVI:1});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.committedNVI=r.tentativeNVI),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.close,1),n=t.get(t.data.volume,0),o=t.get(t.data.volume,1),l=isNaN(s)?0:s,c=isNaN(a)?0:a,h=isNaN(n)?0:n,p=isNaN(o)?0:o;let u=r.committedNVI;if(!(l===0||c===0)&&h<p){const f=(l-c)/c;u=u+f*u}return r.tentativeNVI=u,t.precision(u)}}function Wu(t){return()=>{t.taState||(t.taState={});const e="obv";t.taState[e]||(t.taState[e]={lastIdx:-1,committedOBV:0,tentativeOBV:0});const i=t.taState[e];t.idx>i.lastIdx&&(i.lastIdx>=0&&(i.committedOBV=i.tentativeOBV),i.lastIdx=t.idx);const r=t.get(t.data.close,0),s=t.get(t.data.volume,0),a=t.get(t.data.close,1);if(isNaN(a))return i.tentativeOBV=0,t.precision(0);let n=i.committedOBV;return r>a?n+=s:r<a&&(n-=s),i.tentativeOBV=n,t.precision(n)}}function Uu(t){return(e,i,r)=>e instanceof y?i?new y(e.data,e.offset+i):e:(t.params[r]||(t.params[r]=[]),Array.isArray(e)?new y(e,i||0):(t.params[r].length===0?t.params[r].push(e):t.params[r][t.params[r].length-1]=e,new y(t.params[r],i||0)))}function qu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e);if(t.idx<a-1)return NaN;const l=[];for(let m=0;m<a;m++){const x=o.get(m);if(isNaN(x))return NaN;l.push(x)}l.sort((m,x)=>m-x);let c=n/100*a-.5;c<0&&(c=0),c>a-1&&(c=a-1);const h=Math.floor(c),p=Math.ceil(c);if(h===p)return t.precision(l[h]);const u=c-h,f=l[h]+u*(l[p]-l[h]);return t.precision(f)}}function Ku(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e);if(t.idx<a-1)return NaN;const l=[];for(let h=0;h<a;h++){const p=o.get(h);isNaN(p)||l.push(p)}if(l.length===0)return NaN;l.sort((h,p)=>h-p);let c=Math.ceil(n/100*l.length)-1;return c<0&&(c=0),c>=l.length&&(c=l.length-1),t.precision(l[c])}}function zu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s)return NaN;const n=a.get(0);if(isNaN(n))return NaN;let o=0,l=0;for(let c=1;c<=s;c++){const h=a.get(c);isNaN(h)||(l++,h<=n&&o++)}return l===0?NaN:t.precision(o/l*100)}}function Hu(t,e,i){const r=new Array(t.length).fill(NaN);for(let s=e+i;s<t.length;s++){const a=t[s-i];let n=!0;for(let o=1;o<=e;o++)if(t[s-i-o]>=a){n=!1;break}if(n){for(let o=1;o<=i;o++)if(t[s-i+o]>=a){n=!1;break}}n&&(r[s]=a)}return r}function Gu(t){return(e,i,r,s)=>{typeof r=="string"&&(r=i,i=e,e=t.data.high);const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e).toArray(),l=Hu(o,a,n),c=t.idx;return t.precision(l[c])}}function Yu(t,e,i){const r=new Array(t.length).fill(NaN);for(let s=e+i;s<t.length;s++){const a=t[s-i];let n=!0;for(let o=1;o<=e;o++)if(t[s-i-o]<=a){n=!1;break}if(n){for(let o=1;o<=i;o++)if(t[s-i+o]<=a){n=!1;break}}n&&(r[s]=a)}return r}function Xu(t){return(e,i,r,s)=>{typeof r=="string"&&(r=i,i=e,e=t.data.low);const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e).toArray(),l=Yu(o,a,n),c=t.idx;return t.precision(l[c])}}function Qu(t){return e=>{t.taState||(t.taState={});const i=e||"pvi";t.taState[i]||(t.taState[i]={lastIdx:-1,committedPVI:1,tentativePVI:1});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.committedPVI=r.tentativePVI),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.close,1),n=t.get(t.data.volume,0),o=t.get(t.data.volume,1),l=isNaN(s)?0:s,c=isNaN(a)?0:a,h=isNaN(n)?0:n,p=isNaN(o)?0:o;let u=r.committedPVI;if(!(l===0||c===0)&&h>p){const f=(l-c)/c;u=u+f*u}return r.tentativePVI=u,t.precision(u)}}function Zu(t){return e=>{t.taState||(t.taState={});const i=e||"pvt";t.taState[i]||(t.taState[i]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.prevCumulativeSum=r.currentCumulativeSum),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.close,1),n=t.get(t.data.volume,0);let o=r.prevCumulativeSum;if(!isNaN(s)&&!isNaN(a)&&!isNaN(n)&&a!==0){const l=(s-a)/a*n;o+=l}return r.currentCumulativeSum=o,t.precision(o)}}function Ju(t){return(e,i,r)=>{const s=t.pine.ta.highest(e,i,(r||"range")+"_h"),a=t.pine.ta.lowest(e,i,(r||"range")+"_l");return isNaN(s)||isNaN(a)?NaN:t.precision(s-a)}}function ep(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);for(let n=0;n<s;n++){const o=a.get(n),l=a.get(n+1);if(isNaN(o)||isNaN(l)||o<=l)return!1}return!0}}function tp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`rma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevRma:null,prevInitSum:0,prevInitCount:0,currentRma:null,currentInitSum:0,currentInitCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevRma=n.currentRma,n.prevInitSum=n.currentInitSum,n.prevInitCount=n.currentInitCount),n.lastIdx=t.idx);const o=y.from(e).get(0)||0;let l=n.prevInitCount,c=n.prevInitSum,h=n.prevRma;if(l<s){if(c+=o,l++,n.currentInitSum=c,n.currentInitCount=l,l===s){const f=c/s;return n.currentRma=f,t.precision(f)}return NaN}const p=1/s,u=o*p+h*(1-p);return n.currentRma=u,t.precision(u)}}function ip(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`roc_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s+1;)l.pop();const c=n.prevCallCount+1;if(l.length<s+1&&(c>=s+1||t.idx>=s)){const u=y.from(e);for(;l.length<s+1;)l.push(u.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<=s)return NaN;const h=l[s],p=(o-h)/h*100;return t.precision(p)}}function rp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`rsi_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevPrevValue:null,prevAvgGain:0,prevAvgLoss:0,prevInitGains:[],prevInitLosses:[],currentPrevValue:null,currentAvgGain:0,currentAvgLoss:0,currentInitGains:[],currentInitLosses:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevPrevValue=n.currentPrevValue,n.prevAvgGain=n.currentAvgGain,n.prevAvgLoss=n.currentAvgLoss,n.prevInitGains=[...n.currentInitGains],n.prevInitLosses=[...n.currentInitLosses]),n.lastIdx=t.idx);const o=y.from(e).get(0);if(o==null||isNaN(o))return NaN;const l=n.prevPrevValue;if(l===null||isNaN(l))return n.currentPrevValue=o,n.currentInitGains=[...n.prevInitGains],n.currentInitLosses=[...n.prevInitLosses],n.currentAvgGain=n.prevAvgGain,n.currentAvgLoss=n.prevAvgLoss,NaN;let c=n.prevAvgGain,h=n.prevAvgLoss;const p=[...n.prevInitGains],u=[...n.prevInitLosses],f=o-l,m=f>0?f:0,x=f<0?-f:0;if(p.length<s){if(p.push(m),u.push(x),n.currentInitGains=p,n.currentInitLosses=u,n.currentPrevValue=o,p.length===s){c=p.reduce((w,v)=>w+v,0)/s,h=u.reduce((w,v)=>w+v,0)/s,n.currentAvgGain=c,n.currentAvgLoss=h;const b=h===0?100:100-100/(1+c/h);return t.precision(b)}return NaN}c=(c*(s-1)+m)/s,h=(h*(s-1)+x)/s,n.currentAvgGain=c,n.currentAvgLoss=h,n.currentPrevValue=o;const _=h===0?100:100-100/(1+c/h);return t.precision(_)}}function sp(t){return(e,i,r,s)=>{const a=y.from(e).get(0),n=y.from(i).get(0),o=y.from(r).get(0);t.taState||(t.taState={});const l=s||`sar_${a}_${n}_${o}`;t.taState[l]||(t.taState[l]={lastIdx:-1,prevResult:NaN,prevMaxMin:NaN,prevAcceleration:NaN,prevIsBelow:!1,prevBarIndex:0,currentResult:NaN,currentMaxMin:NaN,currentAcceleration:NaN,currentIsBelow:!1,currentBarIndex:0});const c=t.taState[l];t.idx>c.lastIdx&&(c.lastIdx>=0&&(c.prevResult=c.currentResult,c.prevMaxMin=c.currentMaxMin,c.prevAcceleration=c.currentAcceleration,c.prevIsBelow=c.currentIsBelow,c.prevBarIndex=c.currentBarIndex),c.lastIdx=t.idx);let h=c.prevResult,p=c.prevMaxMin,u=c.prevAcceleration,f=c.prevIsBelow,m=c.prevBarIndex;const x=t.get(t.data.high,0),_=t.get(t.data.low,0),b=t.get(t.data.close,0),w=t.get(t.data.close,1),v=t.get(t.data.high,1),E=t.get(t.data.low,1),T=t.get(t.data.high,2),C=t.get(t.data.low,2);if(isNaN(x)||isNaN(_)||isNaN(b))return c.currentResult=h,c.currentMaxMin=p,c.currentAcceleration=u,c.currentIsBelow=f,c.currentBarIndex=m,NaN;let O=!1;return m===1&&(b>w?(f=!0,p=x,h=E):(f=!1,p=_,h=v),O=!0,u=a),m>=1&&(h=h+u*(p-h),f?h>_&&(O=!0,f=!1,h=Math.max(x,p),p=_,u=a):h<x&&(O=!0,f=!0,h=Math.min(_,p),p=x,u=a),O||(f?x>p&&(p=x,u=Math.min(u+n,o)):_<p&&(p=_,u=Math.min(u+n,o))),f?(h=Math.min(h,E),m>1&&(h=Math.min(h,C))):(h=Math.max(h,v),m>1&&(h=Math.max(h,T)))),m++,c.currentResult=h,c.currentMaxMin=p,c.currentAcceleration=u,c.currentIsBelow=f,c.currentBarIndex=m,m<=1?NaN:t.precision(h)}}function np(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`sma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevSum=n.currentSum,n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;let h=!1;if(l.length<s&&(c>=s||t.idx>=s-1)){const x=y.from(e);for(;l.length<s;)l.push(x.get(l.length));h=!0}let p;const u=o==null||Number.isNaN(o);let f=!Number.isNaN(n.prevSum)&&!u&&!h;if(f){let x=n.prevSum+o;if(n.prevWindow.length>=s){const _=n.prevWindow[n.prevWindow.length-1];_==null||Number.isNaN(_)?f=!1:x-=_}f&&(p=x)}if(!f){p=0;let x=!1;for(const _ of l){if(_==null||Number.isNaN(_)){x=!0;break}p+=_}x&&(p=NaN)}if(n.currentWindow=l,n.currentSum=p,n.currentCallCount=c,l.length<s)return NaN;const m=p/s;return t.precision(m)}}function ap(t){return(e,i,r=!0,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`stdev_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevSum=l.currentSum,l.prevCallCount=l.currentCallCount),l.lastIdx=t.idx);const c=y.from(e).get(0);if(c==null||isNaN(c))return NaN;const h=[...l.prevWindow];let p=l.prevSum;for(h.unshift(c),p+=c;h.length>a;){const b=h.pop();p-=b}const u=l.prevCallCount+1;if(h.length<a&&(u>=a||t.idx>=a-1)){const b=y.from(e);for(;h.length<a;){const w=b.get(h.length);if(w==null||isNaN(w))break;h.push(w),p+=w}}if(l.currentWindow=h,l.currentSum=p,l.currentCallCount=u,h.length<a)return NaN;const f=p/a;let m=0;for(let b=0;b<a;b++)m+=Math.pow(h[b]-f,2);const x=n?a:a-1,_=Math.sqrt(m/x);return t.precision(_)}}function op(t){return(e,i,r,s,a)=>{const n=y.from(s).get(0);t.taState||(t.taState={});const o=a||`stoch_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevHighWindow:[],prevLowWindow:[],currentHighWindow:[],currentLowWindow:[]});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevHighWindow=[...l.currentHighWindow],l.prevLowWindow=[...l.currentLowWindow]),l.lastIdx=t.idx);const c=y.from(e).get(0),h=y.from(i).get(0),p=y.from(r).get(0);if(isNaN(c)||isNaN(h)||isNaN(p))return l.currentHighWindow=[...l.prevHighWindow],l.currentLowWindow=[...l.prevLowWindow],NaN;const u=[...l.prevHighWindow],f=[...l.prevLowWindow];if(u.unshift(h),f.unshift(p),u.length>n&&(u.pop(),f.pop()),l.currentHighWindow=u,l.currentLowWindow=f,u.length<n)return NaN;let m=u[0],x=f[0];for(let w=1;w<n;w++)u[w]>m&&(m=u[w]),f[w]<x&&(x=f[w]);const _=m-x;if(_===0)return NaN;const b=100*(c-x)/_;return t.precision(b)}}function lp(t){return(e,i,r)=>{const s=y.from(e).get(0),a=y.from(i).get(0);t.taState||(t.taState={});const n=r||`supertrend_${s}_${a}`;t.taState[n]||(t.taState[n]={lastIdx:-1,prevTrSum:0,prevAtrValue:NaN,prevAtrCount:0,prevLowerBand:NaN,prevUpperBand:NaN,prevSuperTrend:NaN,prevDirection:NaN,currentTrSum:0,currentAtrValue:NaN,currentAtrCount:0,currentLowerBand:NaN,currentUpperBand:NaN,currentSuperTrend:NaN,currentDirection:NaN});const o=t.taState[n];t.idx>o.lastIdx&&(o.lastIdx>=0&&(o.prevTrSum=o.currentTrSum,o.prevAtrValue=o.currentAtrValue,o.prevAtrCount=o.currentAtrCount,o.prevLowerBand=o.currentLowerBand,o.prevUpperBand=o.currentUpperBand,o.prevSuperTrend=o.currentSuperTrend,o.prevDirection=o.currentDirection),o.lastIdx=t.idx);const l=t.get(t.data.high,0),c=t.get(t.data.low,0),h=t.get(t.data.close,0);if(isNaN(l)||isNaN(c)||isNaN(h))return[[NaN,NaN]];const p=(l+c)/2,u=t.idx>0?t.get(t.data.close,1):NaN;let f;isNaN(u)?f=l-c:f=Math.max(l-c,Math.abs(l-u),Math.abs(c-u));let m=o.prevAtrCount,x=o.prevTrSum,_=o.prevAtrValue;m++,m<=a?(x+=f,m===a&&(_=x/a)):_=(_*(a-1)+f)/a;const b=_;if(o.currentAtrCount=m,o.currentTrSum=x,o.currentAtrValue=_,isNaN(b))return[[NaN,NaN]];let w=p+s*b,v=p-s*b;const E=isNaN(o.prevLowerBand)?0:o.prevLowerBand,T=isNaN(o.prevUpperBand)?0:o.prevUpperBand;isNaN(o.prevLowerBand)||v>E||u<E||(v=E),isNaN(o.prevUpperBand)||w<T||u>T||(w=T);let C,O;const B=o.prevSuperTrend;return m===a?C=1:B===o.prevUpperBand?C=h>w?-1:1:C=h<v?1:-1,O=C===-1?v:w,o.currentLowerBand=v,o.currentUpperBand=w,o.currentSuperTrend=O,o.currentDirection=C,[[t.precision(O),C]]}}function cp(t){return(e,i)=>{const r=[1,2,2,1],s=6;t.taState||(t.taState={});const a=i||"swma";t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],currentWindow:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow]),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>4;)l.pop();if(l.length<4&&t.idx>=3){const h=y.from(e);for(;l.length<4;)l.push(h.get(l.length))}if(n.currentWindow=l,l.length<4)return NaN;let c=0;for(let h=0;h<4;h++)c+=r[h]*l[3-h];return c/=s,t.precision(c)}}function hp(t){return(e,i)=>{let r=!0;typeof e=="string"||e!==void 0&&(r=y.from(e).get(0));const s=t.get(t.data.high,0),a=t.get(t.data.low,0),n=t.get(t.data.close,1);if(isNaN(n))return r?t.precision(s-a):NaN;const o=Math.max(s-a,Math.abs(s-n),Math.abs(a-n));return t.precision(o)}}function up(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`tsi_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevSource:NaN,prevEma1PcValue:NaN,prevEma1PcCount:0,prevEma1PcSum:0,prevEma2PcValue:NaN,prevEma2PcCount:0,prevEma2PcSum:0,prevEma1AbsValue:NaN,prevEma1AbsCount:0,prevEma1AbsSum:0,prevEma2AbsValue:NaN,prevEma2AbsCount:0,prevEma2AbsSum:0,currentSource:NaN,currentEma1PcValue:NaN,currentEma1PcCount:0,currentEma1PcSum:0,currentEma2PcValue:NaN,currentEma2PcCount:0,currentEma2PcSum:0,currentEma1AbsValue:NaN,currentEma1AbsCount:0,currentEma1AbsSum:0,currentEma2AbsValue:NaN,currentEma2AbsCount:0,currentEma2AbsSum:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevSource=l.currentSource,l.prevEma1PcValue=l.currentEma1PcValue,l.prevEma1PcCount=l.currentEma1PcCount,l.prevEma1PcSum=l.currentEma1PcSum,l.prevEma2PcValue=l.currentEma2PcValue,l.prevEma2PcCount=l.currentEma2PcCount,l.prevEma2PcSum=l.currentEma2PcSum,l.prevEma1AbsValue=l.currentEma1AbsValue,l.prevEma1AbsCount=l.currentEma1AbsCount,l.prevEma1AbsSum=l.currentEma1AbsSum,l.prevEma2AbsValue=l.currentEma2AbsValue,l.prevEma2AbsCount=l.currentEma2AbsCount,l.prevEma2AbsSum=l.currentEma2AbsSum),l.lastIdx=t.idx);const c=y.from(e).get(0);if(isNaN(c))return NaN;const h=isNaN(l.prevSource)?NaN:c-l.prevSource;if(l.currentSource=c,isNaN(h))return NaN;const p=Math.abs(h),u=2/(n+1),f=2/(a+1),m=2/(n+1),x=2/(a+1);let _=l.prevEma1PcCount,b=l.prevEma1PcSum,w=l.prevEma1PcValue;_++,_<=n?(b+=h,_===n&&(w=b/n)):w=h*u+w*(1-u);let v=l.prevEma1AbsCount,E=l.prevEma1AbsSum,T=l.prevEma1AbsValue;if(v++,v<=n?(E+=p,v===n&&(T=E/n)):T=p*m+T*(1-m),isNaN(w)||isNaN(T))return l.currentEma1PcCount=_,l.currentEma1PcSum=b,l.currentEma1PcValue=w,l.currentEma1AbsCount=v,l.currentEma1AbsSum=E,l.currentEma1AbsValue=T,NaN;let C=l.prevEma2PcCount,O=l.prevEma2PcSum,B=l.prevEma2PcValue;C++,C<=a?(O+=w,C===a&&(B=O/a)):B=w*f+B*(1-f);let z=l.prevEma2AbsCount,K=l.prevEma2AbsSum,R=l.prevEma2AbsValue;if(z++,z<=a?(K+=T,z===a&&(R=K/a)):R=T*x+R*(1-x),l.currentEma1PcCount=_,l.currentEma1PcSum=b,l.currentEma1PcValue=w,l.currentEma1AbsCount=v,l.currentEma1AbsSum=E,l.currentEma1AbsValue=T,l.currentEma2PcCount=C,l.currentEma2PcSum=O,l.currentEma2PcValue=B,l.currentEma2AbsCount=z,l.currentEma2AbsSum=K,l.currentEma2AbsValue=R,isNaN(B)||isNaN(R))return NaN;if(R===0)return t.precision(0);const Q=B/R;return t.precision(Q)}}function pp(t){return(e,i,r,s)=>{t.taState||(t.taState={});const a=s||"valuewhen";t.taState[a]||(t.taState[a]={lastIdx:-1,prevValues:[],currentValues:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevValues=[...n.currentValues]),n.lastIdx=t.idx);const o=y.from(e).get(0),l=y.from(i).get(0),c=y.from(r).get(0),h=[...n.prevValues];if(o&&h.push(l),n.currentValues=h,isNaN(c)||c<0)return NaN;const p=h.length-1-c;if(p<0)return NaN;const u=h[p];return typeof u=="number"?t.precision(u):u}}function fp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`variance_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const m=y.from(e);for(;l.length<s;)l.push(m.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;let h=0,p=0;for(let m=0;m<s;m++)h+=l[m],p+=l[m]*l[m];const u=h/s,f=p/s-u*u;return t.precision(f)}}function dp(t){return(e,i)=>{t.taState||(t.taState={});const r=i||"vwap";t.taState[r]||(t.taState[r]={lastIdx:-1,prevCumulativePV:0,prevCumulativeVolume:0,prevLastSessionDate:null,currentCumulativePV:0,currentCumulativeVolume:0,currentLastSessionDate:null});const s=t.taState[r];t.idx>s.lastIdx&&(s.lastIdx>=0&&(s.prevCumulativePV=s.currentCumulativePV,s.prevCumulativeVolume=s.currentCumulativeVolume,s.prevLastSessionDate=s.currentLastSessionDate),s.lastIdx=t.idx);const a=y.from(e).get(0),n=y.from(t.data.volume).get(0),o=y.from(t.data.openTime).get(0),l=t.pine?.syminfo?.timezone||"UTC",c=Tt(o,l),h=`${c.year}-${String(c.month).padStart(2,"0")}-${String(c.day).padStart(2,"0")}`;let p=s.prevCumulativePV,u=s.prevCumulativeVolume,f=s.prevLastSessionDate;if(f!==h&&(p=0,u=0,f=h),p+=a*n,u+=n,s.currentCumulativePV=p,s.currentCumulativeVolume=u,s.currentLastSessionDate=f,u===0)return NaN;const m=p/u;return t.precision(m)}}function mp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`vwma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevVolumeWindow:[],currentWindow:[],currentVolumeWindow:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevVolumeWindow=[...n.currentVolumeWindow]),n.lastIdx=t.idx);const o=y.from(e).get(0),l=t.get(t.data.volume,0),c=[...n.prevWindow],h=[...n.prevVolumeWindow];for(c.unshift(o),h.unshift(l);c.length>s;)c.pop(),h.pop();if(c.length<s&&t.idx>=s-1){const m=y.from(e),x=y.from(t.data.volume);for(;c.length<s;)c.push(m.get(c.length)),h.push(x.get(h.length))}if(n.currentWindow=c,n.currentVolumeWindow=h,c.length<s)return NaN;let p=0,u=0;for(let m=0;m<s;m++)p+=c[m]*h[m],u+=h[m];const f=p/u;return t.precision(f)}}function gp(t){return e=>{t.taState||(t.taState={});const i=e||"wad";t.taState[i]||(t.taState[i]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.prevCumulativeSum=r.currentCumulativeSum),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.high,0),n=t.get(t.data.low,0),o=t.get(t.data.close,1);if(isNaN(s)||isNaN(a)||isNaN(n))return r.currentCumulativeSum=r.prevCumulativeSum,t.precision(r.prevCumulativeSum);let l=0;if(!isNaN(o)){const h=Math.max(a,o),p=Math.min(n,o),u=s-o;u>0?l=s-p:u<0&&(l=s-h)}const c=r.prevCumulativeSum+l;return r.currentCumulativeSum=c,t.precision(c)}}function yp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`wma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const f=y.from(e);for(;l.length<s;)l.push(f.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;let h=0,p=0;for(let f=0;f<s;f++){const m=s-f;h+=l[f]*m,p+=m}const u=h/p;return t.precision(u)}}function xp(t){return(e,i)=>{const r=y.from(e).get(0);t.taState||(t.taState={});const s=i||`wpr_${r}`;t.taState[s]||(t.taState[s]={lastIdx:-1,prevHighWindow:[],prevLowWindow:[],currentHighWindow:[],currentLowWindow:[]});const a=t.taState[s];t.idx>a.lastIdx&&(a.lastIdx>=0&&(a.prevHighWindow=[...a.currentHighWindow],a.prevLowWindow=[...a.currentLowWindow]),a.lastIdx=t.idx);const n=t.get(t.data.high,0),o=t.get(t.data.low,0),l=t.get(t.data.close,0);if(isNaN(n)||isNaN(o)||isNaN(l))return a.currentHighWindow=[...a.prevHighWindow],a.currentLowWindow=[...a.prevLowWindow],NaN;const c=[...a.prevHighWindow],h=[...a.prevLowWindow];if(c.unshift(n),h.unshift(o),c.length>r&&(c.pop(),h.pop()),a.currentHighWindow=c,a.currentLowWindow=h,c.length<r)return NaN;let p=c[0],u=h[0];for(let x=1;x<r;x++)c[x]>p&&(p=c[x]),h[x]<u&&(u=h[x]);const f=p-u;if(f===0)return t.precision(0);const m=(p-l)/f*-100;return t.precision(m)}}function _p(t){return e=>{const i=t.get(t.data.close,0),r=t.get(t.data.open,0),s=t.get(t.data.high,0),a=t.get(t.data.low,0),n=t.get(t.data.volume,0);if(isNaN(i)||isNaN(r)||isNaN(s)||isNaN(a)||isNaN(n))return NaN;const o=s-a;if(o===0)return t.precision(0);const l=(i-r)/o*n;return t.precision(l)}}var bp=Object.defineProperty,vp=(t,e,i)=>e in t?bp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,I=(t,e,i)=>vp(t,typeof e!="symbol"?e+"":e,i);const wp={accdist:lu,alma:cu,atr:hu,barssince:uu,bb:pu,bbw:fu,cci:du,change:mu,cmo:gu,cog:yu,correlation:xu,cross:_u,crossover:bu,crossunder:vu,cum:wu,dev:Su,dmi:Eu,ema:Nu,falling:Cu,highest:Iu,highestbars:ku,hma:Au,iii:Tu,kc:Pu,kcw:Du,linreg:Mu,lowest:Ru,lowestbars:Ou,macd:Vu,median:Lu,mfi:ju,mode:$u,mom:Bu,nvi:Fu,obv:Wu,param:Uu,percentile_linear_interpolation:qu,percentile_nearest_rank:Ku,percentrank:zu,pivothigh:Gu,pivotlow:Xu,pvi:Qu,pvt:Zu,range:Ju,rising:ep,rma:tp,roc:ip,rsi:rp,sar:sp,sma:np,stdev:ap,stoch:op,supertrend:lp,swma:cp,tr:hp,tsi:up,valuewhen:pp,variance:fp,vwap:dp,vwma:mp,wad:gp,wma:yp,wpr:xp,wvad:_p};class Sp{constructor(e){this.context=e,I(this,"accdist"),I(this,"alma"),I(this,"atr"),I(this,"barssince"),I(this,"bb"),I(this,"bbw"),I(this,"cci"),I(this,"change"),I(this,"cmo"),I(this,"cog"),I(this,"correlation"),I(this,"cross"),I(this,"crossover"),I(this,"crossunder"),I(this,"cum"),I(this,"dev"),I(this,"dmi"),I(this,"ema"),I(this,"falling"),I(this,"highest"),I(this,"highestbars"),I(this,"hma"),I(this,"iii"),I(this,"kc"),I(this,"kcw"),I(this,"linreg"),I(this,"lowest"),I(this,"lowestbars"),I(this,"macd"),I(this,"median"),I(this,"mfi"),I(this,"mode"),I(this,"mom"),I(this,"nvi"),I(this,"obv"),I(this,"param"),I(this,"percentile_linear_interpolation"),I(this,"percentile_nearest_rank"),I(this,"percentrank"),I(this,"pivothigh"),I(this,"pivotlow"),I(this,"pvi"),I(this,"pvt"),I(this,"range"),I(this,"rising"),I(this,"rma"),I(this,"roc"),I(this,"rsi"),I(this,"sar"),I(this,"sma"),I(this,"stdev"),I(this,"stoch"),I(this,"supertrend"),I(this,"swma"),I(this,"tr"),I(this,"tsi"),I(this,"valuewhen"),I(this,"variance"),I(this,"vwap"),I(this,"vwma"),I(this,"wad"),I(this,"wma"),I(this,"wpr"),I(this,"wvad"),Object.entries(wp).forEach(([i,r])=>{this[i]=r(e)})}}function Ep(t,e){const i=e.trim();if(i==="UTC"||i==="GMT"||i==="Etc/UTC")return 0;const r=i.match(/^(?:UTC|GMT)([+-])(\d{1,2})(?::(\d{2}))?$/i);if(r){const n=r[1]==="+"?1:-1,o=parseInt(r[2],10),l=parseInt(r[3]||"0",10);return n*(o*60+l)}const s=Tt(t,e),a=new Date(Date.UTC(s.year,s.month-1,s.day,s.hour,s.minute,s.second));return Math.round((a.getTime()-t)/6e4)}function Np(t,e){const i=e>=0?"+":"-",r=a=>String(Math.floor(Math.abs(a))).padStart(2,"0"),s=i+r(e/60)+":"+r(e%60);return`[${new Date(t+e*6e4).toISOString().slice(0,-1)}${s}]`}class Cp{constructor(e){this.context=e}logFormat(e,...i){return e.replace(/{(\d+)}/g,(r,s)=>i[s])}param(e,i=0,r){return y.from(e).get(i)}_formatTimestamp(){const e=this.context.data.openTime.data[this.context.idx],i=this.context.chartTimezone||this.context.pine?.syminfo?.timezone||"UTC",r=Ep(e,i);return Np(e,r)}warning(e,...i){this.context.isSecondaryContext||console.warn(`${this._formatTimestamp()} ${this.logFormat(e,...i)}`)}error(e,...i){this.context.isSecondaryContext||console.error(`${this._formatTimestamp()} ${this.logFormat(e,...i)}`)}info(e,...i){this.context.isSecondaryContext||console.log(`${this._formatTimestamp()} ${this.logFormat(e,...i)}`)}}class Ip{constructor(e){this.context=e}param(e,i=0,r){return y.from(e).get(i)}tostring(e,i){if(typeof e!="number"||isNaN(e)||!i)return String(e);if(i==="mintick"){const s=this.context.pine?.syminfo?.mintick||.01,a=Math.max(0,-Math.floor(Math.log10(s)));return e.toFixed(a)}if(i==="integer")return String(Math.round(e));if(i==="percent")return(e*100).toFixed(2)+"%";if(i==="price"){const s=this.context.pine?.syminfo?.mintick||.01,a=Math.max(0,-Math.floor(Math.log10(s)));return e.toFixed(a)}if(i==="volume")return String(Math.round(e));const r=i.indexOf(".");if(r>=0){const s=i.substring(r+1).length;return e.toFixed(s)}return i.includes("#")||i.includes("0")?String(Math.round(e)):String(e)}tonumber(e){return Number(e)}lower(e){return String(e).toLowerCase()}upper(e){return String(e).toUpperCase()}trim(e){return String(e).trim()}repeat(e,i,r=""){return Array(i).fill(e).join(r||"")}replace_all(e,i,r){return String(e).replaceAll(i,r)}replace(e,i,r,s=0){const a=String(e),n=String(i),o=String(r),l=Math.floor(Number(s))||0;if(n==="")return a;let c=0,h=0;for(;;){const p=a.indexOf(n,c);if(p===-1)return a;if(h===l)return a.substring(0,p)+o+a.substring(p+n.length);h++,c=p+n.length}}contains(e,i){return String(e).includes(i)}endswith(e,i){return String(e).endsWith(i)}startswith(e,i){return String(e).startsWith(i)}pos(e,i){const r=String(e).indexOf(i);return r===-1?NaN:r}length(e){return String(e).length}match(e,i){return String(e).match(new RegExp(i))}split(e,i){return new L(String(e).split(i),D.string,this.context)}substring(e,i,r){return String(e).substring(i,r)}format(e,...i){return e.replace(/\{(\d+)(?:,number,([^}]+))?\}/g,(r,s,a)=>{const n=i[s];return a&&typeof n=="number"&&!isNaN(n)?this.tostring(n,a):String(n)})}}var kp=Object.defineProperty,Ap=(t,e,i)=>e in t?kp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Tp=(t,e,i)=>Ap(t,typeof e!="symbol"?e+"":e,i);const Jt={"1m":"1","3m":"3","5m":"5","15m":"15","30m":"30","45m":"45","1h":"60","2h":"120","3h":"180","4h":"240","1d":"D","1w":"W","1M":"M"};function Dr(t){if(!t||/^\d+$/.test(t))return t;if(Jt[t])return Jt[t];const e=t.toLowerCase();if(Jt[e])return Jt[e];if(t.length===1){const r=t.toUpperCase();if(["D","W","M","S"].includes(r))return r}const i=t.slice(-1).toUpperCase();if(["D","W","M","S"].includes(i)){const r=parseInt(t);if(!isNaN(r))return r+i}return t}class Pp{constructor(e){this.context=e,Tp(this,"_normalized",null)}param(e,i=0,r){return y.from(e).get(i)}get normalized(){return this._normalized===null&&(this._normalized=Dr(this.context.timeframe)),this._normalized}get unit(){return this.normalized.slice(-1).toUpperCase()}get main_period(){return this.normalized}get period(){return this.normalized}get multiplier(){const e=parseInt(this.normalized);return isNaN(e)?1:e}get isdwm(){return["D","W","M"].includes(this.unit)}get isdaily(){return this.unit==="D"}get isweekly(){return this.unit==="W"}get ismonthly(){return this.unit==="M"}get isseconds(){return this.unit==="S"}get isminutes(){return/^\d+$/.test(this.normalized)}get isintraday(){return!this.isdwm}from_seconds(e){return e<60?Math.ceil(e/5)*5+"S":e<3600*24?Math.ceil(e/60):e<=3600*24*7*52?e%(3600*24*7)===0?Math.ceil(e/604800)+"W":Math.ceil(e/(3600*24))+"D":"12M"}in_seconds(e){e==null?e=this.normalized:e=Dr(e);const i=e.slice(-1).toUpperCase(),r=parseInt(e);return i==="S"?isNaN(r)?1:r:i==="D"?(isNaN(r)?1:r)*60*60*24:i==="W"?(isNaN(r)?1:r)*60*60*24*7:i==="M"?(isNaN(r)?1:r)*60*60*24*30:isNaN(r)?0:r*60}}const Mr=["series","title","color","linewidth","style","trackprice","histbase","offset","join","editable","show_last","display","format","precision","force_overlay"],Dp=["series","title","style","location","color","offset","text","textcolor","editable","size","show_last","display","format","precision","force_overlay"],Mp=["series","title","colorup","colordown","offset","minheight","maxheight","editable","show_last","display","format","precision","force_overlay"],Rp=["open","high","low","close","title","color","editable","show_last","display","format","precision","force_overlay"],Op=["open","high","low","close","title","color","wickcolor","editable","show_last","bordercolor","display","format","precision","force_overlay"],Rr=["color","offset","editable","show_last","title","display","force_overlay"],Vp=["price","title","color","linestyle","linewidth","editable","display"],Lp=["plot1","plot2","color","title","editable","show_last","fillgaps","display"],Or={series:"series",title:"string",color:"color",linewidth:"number",style:"string",trackprice:"boolean",histbase:"number",offset:"number",join:"bool",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},jp={series:"series",title:"string",style:"string",location:"string",color:"color",offset:"number",text:"string",textcolor:"color",editable:"boolean",size:"string",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},$p={series:"series",title:"string",colorup:"color",colordown:"color",offset:"number",minheight:"number",maxheight:"number",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Bp={open:"series",high:"series",low:"series",close:"series",title:"string",color:"color",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Fp={open:"series",high:"series",low:"series",close:"series",title:"string",color:"color",wickcolor:"color",bordercolor:"color",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Vr={color:"color",offset:"number",editable:"boolean",show_last:"number",title:"string",display:"string",force_overlay:"boolean"},Wp={price:"series",title:"string",color:"color",linestyle:"string",linewidth:"number",editable:"boolean",display:"string"},Up={plot1:"object",plot2:"object",color:"color",title:"string",editable:"boolean",show_last:"number",fillgaps:"boolean",display:"string"};class qp{constructor(e){this.context=e}_resolvePlotKey(e,i){if(e){const r=this.context.plots[e];return!r||!i||r._callsiteId===i?e:e+i}return i||"plot"}extractPlotOptions(e){const i={};for(let r in e)i[r]=y.from(e[r]).get(0);return i}get linestyle_dashed(){return"linestyle_dashed"}get linestyle_dotted(){return"linestyle_dotted"}get linestyle_solid(){return"linestyle_solid"}get style_area(){return"style_area"}get style_areabr(){return"style_areabr"}get style_circles(){return"style_circles"}get style_columns(){return"style_columns"}get style_cross(){return"style_cross"}get style_histogram(){return"style_histogram"}get style_line(){return"style_line"}get style_linebr(){return"style_linebr"}get style_stepline(){return"style_stepline"}get style_stepline_diamond(){return"style_stepline_diamond"}get style_steplinebr(){return"style_steplinebr"}param(e,i=0,r){return y.from(e).get(i)}plotchar(...e){const i=Ue(e),r=se(e,Mr,Or),{series:s,title:a,...n}=r,o=this.extractPlotOptions(n),l=this._resolvePlotKey(a,i);this.context.plots[l]||(this.context.plots[l]={data:[],options:{...o,style:"char"},title:a,_plotKey:l,_callsiteId:i});const c=y.from(s).get(0);return this.context.plots[l].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:c}),this.context.plots[l]}any(...e){const i=Ue(e),r=se(e,Mr,Or),{series:s,title:a,...n}=r,o=this.extractPlotOptions(n),l=this._resolvePlotKey(a,i),c="color"in n;if(!this.context.plots[l]){const f=o.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[l]={data:[],options:{...o,overlay:f},title:a,_plotKey:l,_callsiteId:i}}const h=y.from(s).get(0),p=o.color,u={color:c?typeof p=="string"?p:void 0:p||"#2962ff"};return"offset"in n&&(u.offset=o.offset),this.context.plots[l].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:h,options:u}),this.context.plots[l]}plotshape(...e){const i=Ue(e),r=se(e,Dp,jp),{series:s,title:a,...n}=r,o=this.extractPlotOptions(n),l=this._resolvePlotKey(a,i);if(!this.context.plots[l]){const h=o.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[l]={data:[],options:{...o,style:"shape",shape:o.style,overlay:h},title:a,_plotKey:l,_callsiteId:i}}const c=y.from(s).get(0);return this.context.plots[l].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:c,options:o?.location==="absolute"||c?{text:o.text,textcolor:o.textcolor,color:o.color,offset:o.offset,shape:o.style,location:o.location,size:o.size}:void 0}),this.context.plots[l]}plotarrow(...e){const i=Ue(e),r=se(e,Mp,$p),{series:s,title:a,...n}=r,o=y.from(s).get(0),l=this.extractPlotOptions(n),c=this._resolvePlotKey(a,i);if(!this.context.plots[c]){const h=l.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[c]={data:[],options:{...l,style:"shape",overlay:h},title:a,_plotKey:c,_callsiteId:i}}return this.context.plots[c].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:o,options:typeof o=="number"&&!isNaN(o)&&o!==0?{text:void 0,textcolor:void 0,color:o>0?l.colorup:l.colordown,offset:l.offset,shape:o>0?"shape_arrow_up":"shape_arrow_down",location:o>0?"BelowBar":"AboveBar",height:l.maxheight}:void 0}),this.context.plots[c]}plotbar(...e){const i=Ue(e),r=se(e,Rp,Bp),{open:s,high:a,low:n,close:o,title:l,...c}=r,h=this.extractPlotOptions(c),p=this._resolvePlotKey(l,i);if(!this.context.plots[p]){const f=h.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[p]={data:[],options:{...h,style:"bar",overlay:f},title:l,_plotKey:p,_callsiteId:i}}const u=[y.from(s).get(0),y.from(a).get(0),y.from(n).get(0),y.from(o).get(0)];this.context.plots[p].data.push({title:l,time:this.context.marketData[this.context.idx].openTime,value:u,options:{color:h.color}})}plotcandle(...e){const i=Ue(e),r=se(e,Op,Fp),{open:s,high:a,low:n,close:o,title:l,...c}=r,h=this.extractPlotOptions(c),p=this._resolvePlotKey(l,i);if(!this.context.plots[p]){const f=h.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[p]={data:[],options:{...h,style:"candle",overlay:f},title:l,_plotKey:p,_callsiteId:i}}const u=[y.from(s).get(0),y.from(a).get(0),y.from(n).get(0),y.from(o).get(0)];return this.context.plots[p].data.push({title:l,time:this.context.marketData[this.context.idx].openTime,value:u,options:{color:h.color,wickcolor:h.wickcolor,bordercolor:h.bordercolor}}),this.context.plots[p]}bgcolor(...e){const i=Ue(e),r=se(e,Rr,Vr),{title:s,...a}=r,n=this.extractPlotOptions(a),o=this._resolvePlotKey(s,i);if(!this.context.plots[o]){const l=n.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[o]={data:[],options:{...n,style:"background",overlay:l},title:s,_plotKey:o,_callsiteId:i}}this.context.plots[o].data.push({title:s,time:this.context.marketData[this.context.idx].openTime,value:n.color&&n.color!=="na"&&n?.color.toString()!=="NaN",options:{color:n.color}})}barcolor(...e){const i=Ue(e),r=se(e,Rr,Vr),{title:s,...a}=r,n=this.extractPlotOptions(a),o=this._resolvePlotKey(s,i);return this.context.plots[o]||(this.context.plots[o]={data:[],options:{...n,style:"barcolor"},title:s,_plotKey:o,_callsiteId:i}),this.context.plots[o].data.push({title:s,time:this.context.marketData[this.context.idx].openTime,value:n.color&&n.color!=="na"&&n?.color.toString()!=="NaN",options:{color:n.color}}),this.context.plots[o]}}class Kp{constructor(e){this.context=e}get style_dashed(){return"dashed"}get style_solid(){return"solid"}get style_dotted(){return"dotted"}param(e,i=0,r){return y.from(e).get(i)}any(...e){const i=Ue(e),r=se(e,Vp,Wp),{price:s,title:a,color:n,linestyle:o,linewidth:l,editable:c,display:h}=r,p=[s,{title:a,color:n,linestyle:o,linewidth:l,editable:c,display:h,style:"hline"}];return i&&p.push({__callsiteId:i}),this.context.pine.plot.any(...p)}}class zp{constructor(e){this.context=e}param(e,i=0,r){return y.from(e).get(i)}any(...e){const i=Ue(e),r=e.length>=6&&typeof e[2]=="number",s=!r&&e.length>=3&&e[2]!==null&&typeof e[2]=="object"&&"top_value"in e[2]?e[2]:null;if(r||s!==null){const a=e[0],n=e[1],o=s?y.from(s.top_value).get(0):e[2],l=s?y.from(s.bottom_value).get(0):e[3],c=s?y.from(s.top_color).get(0):e[4],h=s?y.from(s.bottom_color).get(0):e[5],p=s?s.title||void 0:e.length>6&&typeof e[6]=="string"?e[6]:void 0,u=a?._plotKey||a?.title,f=n?._plotKey||n?.title;let m=p||"fill";const x=this.context.plots[m];x&&i&&x._callsiteId!==i&&(m=i),this.context.plots[m]||(this.context.plots[m]={title:p||"Fill",plot1:u,plot2:f,data:[],options:{plot1:u,plot2:f,style:"fill",gradient:!0},_plotKey:m,_callsiteId:i}),this.context.plots[m].data.push({time:this.context.marketData[this.context.idx].openTime,value:null,options:{top_value:o,bottom_value:l,top_color:c,bottom_color:h}})}else{const a=se(e,Lp,Up),{plot1:n,plot2:o,color:l,title:c,editable:h,show_last:p,fillgaps:u,display:f}=a;let m=c||"fill";const x=this.context.plots[m];x&&i&&x._callsiteId!==i&&(m=i);const _=y.from(l).get(0);if(!this.context.plots[m]){const b=n?._plotKey||n?.title,w=o?._plotKey||o?.title;this.context.plots[m]={title:c||"Fill",plot1:b,plot2:w,data:[],options:{plot1:b,plot2:w,color:_,editable:h,show_last:p,fillgaps:u,display:f,style:"fill"},_plotKey:m,_callsiteId:i}}this.context.plots[m].data.push({time:this.context.marketData[this.context.idx].openTime,value:null,options:{color:_}})}}}var Hp=Object.defineProperty,Gp=(t,e,i)=>e in t?Hp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Yp=(t,e,i)=>Gp(t,typeof e!="symbol"?e+"":e,i);class Xp{constructor(e){this.context=e,Yp(this,"point");const i=this.context;this.point={new(r,s,a){return new me(r,s,a??NaN)},from_index(r,s){return new me(void 0,r,s)},from_time(r,s){return new me(r,void 0,s)},copy(r){return r.copy()},now(r){const s=i.idx,a=i.marketData[s]?.openTime;return new me(a,s,r)}}}param(e,i=0,r){return y.from(e).get(i)}bg_color(){return"#1e293b"}fg_color(){return"#d1d4dc"}is_standard(){return!0}is_heikinashi(){return!1}is_kagi(){return!1}is_linebreak(){return!1}is_pnf(){return!1}is_range(){return!1}is_renko(){return!1}}var Qp=Object.defineProperty,Zp=(t,e,i)=>e in t?Qp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,oe=(t,e,i)=>Zp(t,typeof e!="symbol"?e+"":e,i);let Jp=0;class tr{constructor(e,i,r="",s="bi",a="pr",n="",o="style_label_down",l="",c="normal",h="center",p="",u="default",f=!1){oe(this,"id"),oe(this,"x"),oe(this,"y"),oe(this,"text"),oe(this,"xloc"),oe(this,"yloc"),oe(this,"color"),oe(this,"style"),oe(this,"textcolor"),oe(this,"size"),oe(this,"textalign"),oe(this,"tooltip"),oe(this,"text_font_family"),oe(this,"force_overlay"),oe(this,"_deleted"),oe(this,"_helper"),oe(this,"_createdAtBar",-1),this.id=Jp++,this.x=e,this.y=i,this.text=r,this.xloc=s,this.yloc=a,this.color=n,this.style=o,this.textcolor=l,this.size=c,this.textalign=h,this.tooltip=p,this.text_font_family=u,this.force_overlay=f,this._deleted=!1,this._helper=null}set_x(e){this._helper?this._helper.set_x(this,e):this._deleted||(this.x=e)}set_y(e){this._helper?this._helper.set_y(this,e):this._deleted||(this.y=e)}set_xy(e,i){this._helper?this._helper.set_xy(this,e,i):this._deleted||(this.x=e,this.y=i)}set_text(e){this._helper?this._helper.set_text(this,e):this._deleted||(this.text=e)}set_color(e){this._helper?this._helper.set_color(this,e):this._deleted||(this.color=e)}set_textcolor(e){this._helper?this._helper.set_textcolor(this,e):this._deleted||(this.textcolor=e)}set_size(e){this._helper?this._helper.set_size(this,e):this._deleted||(this.size=e)}set_style(e){this._helper?this._helper.set_style(this,e):this._deleted||(this.style=e)}set_textalign(e){this._helper?this._helper.set_textalign(this,e):this._deleted||(this.textalign=e)}set_tooltip(e){this._helper?this._helper.set_tooltip(this,e):this._deleted||(this.tooltip=e)}set_xloc(e){this._helper?this._helper.set_xloc(this,e):this._deleted||(this.xloc=e)}set_yloc(e){this._helper?this._helper.set_yloc(this,e):this._deleted||(this.yloc=e)}set_point(e){this._helper&&this._helper.set_point(this,e)}set_text_font_family(e){this._deleted||(this.text_font_family=e)}get_x(){return this.x}get_y(){return this.y}get_text(){return this.text}delete(){this._deleted=!0}copy(){return new tr(this.x,this.y,this.text,this.xloc,this.yloc,this.color,this.style,this.textcolor,this.size,this.textalign,this.tooltip,this.text_font_family,this.force_overlay)}toPlotData(){return{id:this.id,x:this.x,y:this.y,text:this.text,xloc:this.xloc,yloc:this.yloc,color:this.color,style:this.style,textcolor:this.textcolor,size:this.size,textalign:this.textalign,tooltip:this.tooltip,text_font_family:this.text_font_family,force_overlay:this.force_overlay}}}var ef=Object.defineProperty,tf=(t,e,i)=>e in t?ef(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,rf=(t,e,i)=>tf(t,typeof e!="symbol"?e+"":e,i);const sf=[["x","y","text","xloc","yloc","color","style","textcolor","size","textalign","tooltip","text_font_family","force_overlay"],["point","text","xloc","yloc","color","style","textcolor","size","textalign","tooltip","text_font_family","force_overlay"]],nf={x:"number",y:"number",text:"string",xloc:"string",yloc:"string",color:"color",style:"string",textcolor:"color",size:"string",textalign:"string",tooltip:"string",text_font_family:"string",force_overlay:"boolean",point:"point"};class af{constructor(e){this.context=e,rf(this,"_labels",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__labels__||(this.context.plots.__labels__={title:"__labels__",data:[],options:{style:"label",overlay:this.context.indicator?.overlay||!1}})}_syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__labels__.data=[{time:e,value:this._labels,options:{style:"label"}}]}_resolve(e){if(e==null)return e;if(e instanceof Ot)return null;if(typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"){const i=e.get(0);return typeof i=="number"&&isNaN(i)?null:i}return typeof e=="function"?e():typeof e=="number"&&isNaN(e)?null:e}_createLabel(e,i,r="",s="bi",a="pr",n="",o="style_label_down",l="",c="normal",h="center",p="",u="default",f=!1){const m=new tr(e,i,this._resolve(r),this._resolve(s),this._resolve(a),this._resolve(n),this._resolve(o),this._resolve(l),this._resolve(c),this._resolve(h),this._resolve(p),this._resolve(u),f);return m._helper=this,m._createdAtBar=this.context.idx,this._labels.push(m),this._syncToPlot(),m}new(...e){const i=se(e,sf,nf);let r,s,a=i.xloc;if(i.point instanceof me){const n=i.point;n.index!==void 0?(r=n.index,a=a||"bi"):n.time!==void 0?(r=n.time,a=a||"bt"):(r=0,a=a||"bi"),s=n.price}else r=i.x,s=i.y;return this._createLabel(r,s,i.text,a,i.yloc,i.color,i.style,i.textcolor,i.size,i.textalign,i.tooltip,i.text_font_family,i.force_overlay)}any(...e){return this.new(...e)}set_x(e,i){e&&!e._deleted&&(e.x=i)}set_y(e,i){e&&!e._deleted&&(e.y=i)}set_xy(e,i,r){e&&!e._deleted&&(e.x=i,e.y=r)}set_text(e,i){e&&!e._deleted&&(e.text=i)}set_color(e,i){e&&!e._deleted&&(e.color=i)}set_textcolor(e,i){e&&!e._deleted&&(e.textcolor=i)}set_size(e,i){e&&!e._deleted&&(e.size=i)}set_style(e,i){e&&!e._deleted&&(e.style=i)}set_textalign(e,i){e&&!e._deleted&&(e.textalign=i)}set_tooltip(e,i){e&&!e._deleted&&(e.tooltip=i)}set_xloc(e,i){e&&!e._deleted&&(e.xloc=i)}set_yloc(e,i){e&&!e._deleted&&(e.yloc=i)}set_point(e,i){e&&!e._deleted&&i&&(i.index!==void 0?(e.x=i.index,e.xloc="bi"):i.time!==void 0&&(e.x=i.time,e.xloc="bt"),e.y=i.price)}get_x(e){return e?e.x:NaN}get_y(e){return e?e.y:NaN}get_text(e){return e?e.text:""}copy(e){if(!e)return;const i=e.copy();return i._helper=this,i._createdAtBar=this.context.idx,this._labels.push(i),this._syncToPlot(),i}delete(e){e&&(e._deleted=!0)}get all(){return this._labels.filter(e=>!e._deleted)}rollbackFromBar(e){this._labels=this._labels.filter(i=>i._createdAtBar<e),this._syncToPlot()}get style_label_down(){return"style_label_down"}get style_label_up(){return"style_label_up"}get style_label_left(){return"style_label_left"}get style_label_right(){return"style_label_right"}get style_label_lower_left(){return"style_label_lower_left"}get style_label_lower_right(){return"style_label_lower_right"}get style_label_upper_left(){return"style_label_upper_left"}get style_label_upper_right(){return"style_label_upper_right"}get style_label_center(){return"style_label_center"}get style_circle(){return"style_circle"}get style_square(){return"style_square"}get style_diamond(){return"style_diamond"}get style_flag(){return"style_flag"}get style_arrowup(){return"style_arrowup"}get style_arrowdown(){return"style_arrowdown"}get style_cross(){return"style_cross"}get style_xcross(){return"style_xcross"}get style_triangleup(){return"style_triangleup"}get style_triangledown(){return"style_triangledown"}get style_none(){return"style_none"}get style_text_outline(){return"style_text_outline"}}var of=Object.defineProperty,lf=(t,e,i)=>e in t?of(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,xe=(t,e,i)=>lf(t,typeof e!="symbol"?e+"":e,i);let cf=0;class ir{constructor(e,i,r,s,a="bi",n="none",o="",l="style_solid",c=1,h=!1){xe(this,"id"),xe(this,"x1"),xe(this,"y1"),xe(this,"x2"),xe(this,"y2"),xe(this,"xloc"),xe(this,"extend"),xe(this,"color"),xe(this,"style"),xe(this,"width"),xe(this,"force_overlay"),xe(this,"_deleted"),xe(this,"_helper"),xe(this,"_createdAtBar",-1),this.id=cf++,this.x1=e,this.y1=i,this.x2=r,this.y2=s,this.xloc=a,this.extend=n,this.color=o,this.style=l,this.width=c,this.force_overlay=h,this._deleted=!1,this._helper=null}set_x1(e){this._helper?this._helper.set_x1(this,e):this._deleted||(this.x1=e)}set_y1(e){this._helper?this._helper.set_y1(this,e):this._deleted||(this.y1=e)}set_x2(e){this._helper?this._helper.set_x2(this,e):this._deleted||(this.x2=e)}set_y2(e){this._helper?this._helper.set_y2(this,e):this._deleted||(this.y2=e)}set_xy1(e,i){this._helper?this._helper.set_xy1(this,e,i):this._deleted||(this.x1=e,this.y1=i)}set_xy2(e,i){this._helper?this._helper.set_xy2(this,e,i):this._deleted||(this.x2=e,this.y2=i)}set_color(e){this._helper?this._helper.set_color(this,e):this._deleted||(this.color=e)}set_width(e){this._helper?this._helper.set_width(this,e):this._deleted||(this.width=e)}set_style(e){this._helper?this._helper.set_style(this,e):this._deleted||(this.style=e)}set_extend(e){this._helper?this._helper.set_extend(this,e):this._deleted||(this.extend=e)}set_xloc(e,i,r){this._helper?this._helper.set_xloc(this,e,i,r):this._deleted||(this.x1=e,this.x2=i,this.xloc=r)}set_first_point(e){this._helper&&this._helper.set_first_point(this,e)}set_second_point(e){this._helper&&this._helper.set_second_point(this,e)}get_x1(){return this.x1}get_y1(){return this.y1}get_x2(){return this.x2}get_y2(){return this.y2}get_price(e){return this._helper?this._helper.get_price(this,e):NaN}delete(){this._deleted=!0}copy(){return new ir(this.x1,this.y1,this.x2,this.y2,this.xloc,this.extend,this.color,this.style,this.width,this.force_overlay)}toPlotData(){return{id:this.id,x1:this.x1,y1:this.y1,x2:this.x2,y2:this.y2,xloc:this.xloc,extend:this.extend,color:this.color,style:this.style,width:this.width,force_overlay:this.force_overlay}}}var hf=Object.defineProperty,uf=(t,e,i)=>e in t?hf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,pf=(t,e,i)=>uf(t,typeof e!="symbol"?e+"":e,i);const ff=[["x1","y1","x2","y2","xloc","extend","color","style","width","force_overlay"],["first_point","second_point","xloc","extend","color","style","width","force_overlay"]],df={x1:"number",y1:"number",x2:"number",y2:"number",xloc:"string",extend:"string",color:"color",style:"string",width:"number",force_overlay:"boolean",first_point:"point",second_point:"point"};class mf{constructor(e){this.context=e,pf(this,"_lines",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__lines__||(this.context.plots.__lines__={title:"__lines__",data:[],options:{style:"drawing_line",overlay:this.context.indicator?.overlay||!1}})}_syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__lines__.data=[{time:e,value:this._lines,options:{style:"drawing_line"}}]}_resolvePoint(e){return e.index!==void 0?{x:e.index,xloc:"bi"}:e.time!==void 0?{x:e.time,xloc:"bt"}:{x:0,xloc:"bi"}}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}_createLine(e,i,r,s,a="bi",n="none",o="",l="style_solid",c=1,h=!1){const p=new ir(e,i,r,s,a,this._resolve(n),this._resolve(o),this._resolve(l),this._resolve(c)||1,h);return p._helper=this,p._createdAtBar=this.context.idx,this._lines.push(p),this._syncToPlot(),p}new(...e){const i=se(e,ff,df);let r,s,a,n,o=i.xloc;if(i.first_point instanceof me){const l=i.first_point,c=i.second_point,h=this._resolvePoint(l);r=h.x,s=l.price,o=o||h.xloc,c instanceof me?(a=this._resolvePoint(c).x,n=c.price):(a=0,n=NaN)}else r=i.x1,s=i.y1,a=i.x2,n=i.y2;return this._createLine(r,s,a,n,o,i.extend,i.color,i.style,i.width,i.force_overlay)}any(...e){return this.new(...e)}set_x1(e,i){e&&!e._deleted&&(e.x1=i)}set_y1(e,i){e&&!e._deleted&&(e.y1=i)}set_x2(e,i){e&&!e._deleted&&(e.x2=i)}set_y2(e,i){e&&!e._deleted&&(e.y2=i)}set_xy1(e,i,r){e&&!e._deleted&&(e.x1=i,e.y1=r)}set_xy2(e,i,r){e&&!e._deleted&&(e.x2=i,e.y2=r)}set_color(e,i){e&&!e._deleted&&(e.color=this._resolve(i))}set_width(e,i){e&&!e._deleted&&(e.width=this._resolve(i)||1)}set_style(e,i){e&&!e._deleted&&(e.style=this._resolve(i))}set_extend(e,i){e&&!e._deleted&&(e.extend=this._resolve(i))}set_xloc(e,i,r,s){e&&!e._deleted&&(e.x1=i,e.x2=r,e.xloc=s)}set_first_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.x1=r.x,e.y1=i.price,e.xloc=r.xloc}}set_second_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.x2=r.x,e.y2=i.price,e.xloc=r.xloc}}get_x1(e){return e?e.x1:NaN}get_y1(e){return e?e.y1:NaN}get_x2(e){return e?e.x2:NaN}get_y2(e){return e?e.y2:NaN}get_price(e,i){if(!e||e._deleted)return NaN;if(e.xloc!=="bi")return NaN;const r=e.x2-e.x1;return r===0?e.y1:e.y1+(i-e.x1)/r*(e.y2-e.y1)}copy(e){if(!e)return;const i=e.copy();return i._helper=this,i._createdAtBar=this.context.idx,this._lines.push(i),this._syncToPlot(),i}delete(e){e&&(e._deleted=!0)}get all(){return this._lines.filter(e=>!e._deleted)}rollbackFromBar(e){this._lines=this._lines.filter(i=>i._createdAtBar<e),this._syncToPlot()}get style_solid(){return"style_solid"}get style_dotted(){return"style_dotted"}get style_dashed(){return"style_dashed"}get style_arrow_left(){return"style_arrow_left"}get style_arrow_right(){return"style_arrow_right"}get style_arrow_both(){return"style_arrow_both"}}var gf=Object.defineProperty,yf=(t,e,i)=>e in t?gf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,X=(t,e,i)=>yf(t,typeof e!="symbol"?e+"":e,i);let xf=0;class rr{constructor(e,i,r,s,a="bi",n="none",o="#2962ff",l="style_solid",c=1,h="#2962ff",p="",u="#000000",f="auto",m="center",x="center",_="wrap_none",b="default",w="format_none",v=!1){X(this,"id"),X(this,"left"),X(this,"top"),X(this,"right"),X(this,"bottom"),X(this,"xloc"),X(this,"extend"),X(this,"border_color"),X(this,"border_style"),X(this,"border_width"),X(this,"bgcolor"),X(this,"text"),X(this,"text_color"),X(this,"text_size"),X(this,"text_halign"),X(this,"text_valign"),X(this,"text_wrap"),X(this,"text_font_family"),X(this,"text_formatting"),X(this,"force_overlay"),X(this,"_deleted"),X(this,"_helper"),X(this,"_createdAtBar",-1),this.id=xf++,this.left=e,this.top=i,this.right=r,this.bottom=s,this.xloc=a,this.extend=n,this.border_color=o,this.border_style=l,this.border_width=c,this.bgcolor=h,this.text=p,this.text_color=u,this.text_size=f,this.text_halign=m,this.text_valign=x,this.text_wrap=_,this.text_font_family=b,this.text_formatting=w,this.force_overlay=v,this._deleted=!1,this._helper=null}set_left(e){this._helper?this._helper.set_left(this,e):this._deleted||(this.left=e)}set_right(e){this._helper?this._helper.set_right(this,e):this._deleted||(this.right=e)}set_top(e){this._helper?this._helper.set_top(this,e):this._deleted||(this.top=e)}set_bottom(e){this._helper?this._helper.set_bottom(this,e):this._deleted||(this.bottom=e)}set_lefttop(e,i){this._helper?this._helper.set_lefttop(this,e,i):this._deleted||(this.left=e,this.top=i)}set_rightbottom(e,i){this._helper?this._helper.set_rightbottom(this,e,i):this._deleted||(this.right=e,this.bottom=i)}set_top_left_point(e){this._helper&&this._helper.set_top_left_point(this,e)}set_bottom_right_point(e){this._helper&&this._helper.set_bottom_right_point(this,e)}set_xloc(e,i,r){this._helper?this._helper.set_xloc(this,e,i,r):this._deleted||(this.left=e,this.right=i,this.xloc=r)}set_bgcolor(e){this._helper?this._helper.set_bgcolor(this,e):this._deleted||(this.bgcolor=e)}set_border_color(e){this._helper?this._helper.set_border_color(this,e):this._deleted||(this.border_color=e)}set_border_width(e){this._helper?this._helper.set_border_width(this,e):this._deleted||(this.border_width=e)}set_border_style(e){this._helper?this._helper.set_border_style(this,e):this._deleted||(this.border_style=e)}set_extend(e){this._helper?this._helper.set_extend(this,e):this._deleted||(this.extend=e)}set_text(e){this._helper?this._helper.set_text(this,e):this._deleted||(this.text=e)}set_text_color(e){this._helper?this._helper.set_text_color(this,e):this._deleted||(this.text_color=e)}set_text_size(e){this._helper?this._helper.set_text_size(this,e):this._deleted||(this.text_size=e)}set_text_halign(e){this._helper?this._helper.set_text_halign(this,e):this._deleted||(this.text_halign=e)}set_text_valign(e){this._helper?this._helper.set_text_valign(this,e):this._deleted||(this.text_valign=e)}set_text_wrap(e){this._helper?this._helper.set_text_wrap(this,e):this._deleted||(this.text_wrap=e)}set_text_font_family(e){this._helper?this._helper.set_text_font_family(this,e):this._deleted||(this.text_font_family=e)}set_text_formatting(e){this._helper?this._helper.set_text_formatting(this,e):this._deleted||(this.text_formatting=e)}get_left(){return this.left}get_right(){return this.right}get_top(){return this.top}get_bottom(){return this.bottom}delete(){this._deleted=!0}copy(){return new rr(this.left,this.top,this.right,this.bottom,this.xloc,this.extend,this.border_color,this.border_style,this.border_width,this.bgcolor,this.text,this.text_color,this.text_size,this.text_halign,this.text_valign,this.text_wrap,this.text_font_family,this.text_formatting,this.force_overlay)}}var _f=Object.defineProperty,bf=(t,e,i)=>e in t?_f(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,vf=(t,e,i)=>bf(t,typeof e!="symbol"?e+"":e,i);const wf=[["left","top","right","bottom","border_color","border_width","border_style","extend","xloc","bgcolor","text","text_size","text_color","text_halign","text_valign","text_wrap","text_font_family","force_overlay"],["top_left","bottom_right","border_color","border_width","border_style","extend","xloc","bgcolor","text","text_size","text_color","text_halign","text_valign","text_wrap","text_font_family","force_overlay"]],Sf={left:"number",top:"number",right:"number",bottom:"number",top_left:"point",bottom_right:"point",border_color:"color",border_width:"number",border_style:"string",extend:"string",xloc:"string",bgcolor:"color",text:"string",text_size:"string",text_color:"color",text_halign:"string",text_valign:"string",text_wrap:"string",text_font_family:"string",force_overlay:"boolean"};class Ef{constructor(e){this.context=e,vf(this,"_boxes",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__boxes__||(this.context.plots.__boxes__={title:"__boxes__",data:[],options:{style:"drawing_box",overlay:this.context.indicator?.overlay||!1}})}_syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__boxes__.data=[{time:e,value:this._boxes,options:{style:"drawing_box"}}]}_resolvePoint(e){return e.index!==void 0?{x:e.index,xloc:"bi"}:e.time!==void 0?{x:e.time,xloc:"bt"}:{x:0,xloc:"bi"}}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}_resolveColor(e,i){const r=this._resolve(e);return typeof r=="number"&&isNaN(r)?NaN:r||i}_createBox(e,i,r,s,a="bi",n="none",o="#2962ff",l="style_solid",c=1,h="#2962ff",p="",u="#000000",f="auto",m="center",x="center",_="wrap_none",b="default",w="format_none",v=!1){const E=new rr(e,i,r,s,a,this._resolve(n),this._resolveColor(o,"#2962ff"),this._resolve(l)||"style_solid",this._resolve(c)??1,this._resolveColor(h,"#2962ff"),this._resolve(p)||"",this._resolveColor(u,"#000000"),this._resolve(f)||"auto",this._resolve(m)||"center",this._resolve(x)||"center",this._resolve(_)||"wrap_none",this._resolve(b)||"default",this._resolve(w)||"format_none",v);return E._helper=this,E._createdAtBar=this.context.idx,this._boxes.push(E),this._syncToPlot(),E}new(...e){const i=se(e,wf,Sf);let r,s,a,n,o=i.xloc;if(i.top_left instanceof me){const l=i.top_left,c=i.bottom_right,h=this._resolvePoint(l);r=h.x,s=l.price,o=o||h.xloc,c instanceof me?(a=this._resolvePoint(c).x,n=c.price):(a=0,n=NaN)}else r=this._resolve(i.left),s=this._resolve(i.top),a=this._resolve(i.right),n=this._resolve(i.bottom);return this._createBox(r,s,a,n,o,i.extend,i.border_color,i.border_style,i.border_width,i.bgcolor,i.text,i.text_color,i.text_size,i.text_halign,i.text_valign,i.text_wrap,i.text_font_family,void 0,i.force_overlay)}any(...e){return this.new(...e)}set_left(e,i){e&&!e._deleted&&(e.left=i)}set_right(e,i){e&&!e._deleted&&(e.right=i)}set_top(e,i){e&&!e._deleted&&(e.top=i)}set_bottom(e,i){e&&!e._deleted&&(e.bottom=i)}set_lefttop(e,i,r){e&&!e._deleted&&(e.left=i,e.top=r)}set_rightbottom(e,i,r){e&&!e._deleted&&(e.right=i,e.bottom=r)}set_top_left_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.left=r.x,e.top=i.price,e.xloc=r.xloc}}set_bottom_right_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.right=r.x,e.bottom=i.price,e.xloc=r.xloc}}set_xloc(e,i,r,s){e&&!e._deleted&&(e.left=i,e.right=r,e.xloc=s)}set_bgcolor(e,i){e&&!e._deleted&&(e.bgcolor=this._resolve(i))}set_border_color(e,i){e&&!e._deleted&&(e.border_color=this._resolve(i))}set_border_width(e,i){e&&!e._deleted&&(e.border_width=this._resolve(i)??1)}set_border_style(e,i){e&&!e._deleted&&(e.border_style=this._resolve(i))}set_extend(e,i){e&&!e._deleted&&(e.extend=this._resolve(i))}set_text(e,i){e&&!e._deleted&&(e.text=this._resolve(i)||"")}set_text_color(e,i){e&&!e._deleted&&(e.text_color=this._resolve(i))}set_text_size(e,i){e&&!e._deleted&&(e.text_size=this._resolve(i))}set_text_halign(e,i){e&&!e._deleted&&(e.text_halign=this._resolve(i))}set_text_valign(e,i){e&&!e._deleted&&(e.text_valign=this._resolve(i))}set_text_wrap(e,i){e&&!e._deleted&&(e.text_wrap=this._resolve(i))}set_text_font_family(e,i){e&&!e._deleted&&(e.text_font_family=this._resolve(i))}set_text_formatting(e,i){e&&!e._deleted&&(e.text_formatting=this._resolve(i))}get_left(e){return e?e.left:NaN}get_right(e){return e?e.right:NaN}get_top(e){return e?e.top:NaN}get_bottom(e){return e?e.bottom:NaN}copy(e){if(!e)return;const i=e.copy();return i._helper=this,i._createdAtBar=this.context.idx,this._boxes.push(i),this._syncToPlot(),i}delete(e){e&&(e._deleted=!0)}get all(){return this._boxes.filter(e=>!e._deleted)}rollbackFromBar(e){this._boxes=this._boxes.filter(i=>i._createdAtBar<e),this._syncToPlot()}}var Nf=Object.defineProperty,Cf=(t,e,i)=>e in t?Nf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ct=(t,e,i)=>Cf(t,typeof e!="symbol"?e+"":e,i);let If=0;class kf{constructor(e,i,r){Ct(this,"id"),Ct(this,"line1"),Ct(this,"line2"),Ct(this,"color"),Ct(this,"_deleted"),Ct(this,"_createdAtBar",-1),this.id=If++,this.line1=e,this.line2=i,this.color=r,this._deleted=!1}get_line1(){return this.line1}get_line2(){return this.line2}set_color(e){this._deleted||(typeof e=="function"&&(e=e()),e&&typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"&&(e=e.get(0)),this.color=e||"")}delete(){this._deleted=!0}}var Af=Object.defineProperty,Tf=(t,e,i)=>e in t?Af(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Pf=(t,e,i)=>Tf(t,typeof e!="symbol"?e+"":e,i);class Df{constructor(e){this.context=e,Pf(this,"_linefills",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__linefills__||(this.context.plots.__linefills__={title:"__linefills__",data:[],options:{style:"linefill",overlay:this.context.indicator?.overlay||!1}})}_syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__linefills__.data=[{time:e,value:this._linefills,options:{style:"linefill"}}]}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}new(e,i,r){const s=this._resolve(e),a=this._resolve(i),n=r&&typeof r=="object"&&!Array.isArray(r)&&"color"in r?r.color:r,o=this._resolve(n)||"",l=new kf(s,a,o);return l._createdAtBar=this.context.idx,this._linefills.push(l),this._syncToPlot(),l}any(...e){return this.new(e[0],e[1],e[2])}set_color(e,i){e&&!e._deleted&&(e.color=this._resolve(i)||"")}get_line1(e){return e?e.line1:void 0}get_line2(e){return e?e.line2:void 0}delete(e){e&&(e._deleted=!0)}get all(){return this._linefills.filter(e=>!e._deleted)}rollbackFromBar(e){this._linefills=this._linefills.filter(i=>i._createdAtBar<e),this._syncToPlot()}}var Mf=Object.defineProperty,Rf=(t,e,i)=>e in t?Mf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Pe=(t,e,i)=>Rf(t,typeof e!="symbol"?e+"":e,i);let Of=0;class Vf{constructor(e,i=!1,r=!1,s="bi",a="#2962ff",n="",o="style_solid",l=1,c=!1){Pe(this,"id"),Pe(this,"points"),Pe(this,"curved"),Pe(this,"closed"),Pe(this,"xloc"),Pe(this,"line_color"),Pe(this,"fill_color"),Pe(this,"line_style"),Pe(this,"line_width"),Pe(this,"force_overlay"),Pe(this,"_deleted"),Pe(this,"_createdAtBar",-1),this.id=Of++,this.points=e,this.curved=i,this.closed=r,this.xloc=s,this.line_color=a,this.fill_color=n,this.line_style=o,this.line_width=l,this.force_overlay=c,this._deleted=!1}delete(){this._deleted=!0}}var Lf=Object.defineProperty,jf=(t,e,i)=>e in t?Lf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,$f=(t,e,i)=>jf(t,typeof e!="symbol"?e+"":e,i);class Bf{constructor(e){this.context=e,$f(this,"_polylines",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__polylines__||(this.context.plots.__polylines__={title:"__polylines__",data:[],options:{style:"drawing_polyline",overlay:this.context.indicator?.overlay||!1}})}_syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__polylines__.data=[{time:e,value:this._polylines,options:{style:"drawing_polyline"}}]}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}_resolveColor(e,i){const r=this._resolve(e);return typeof r=="number"&&isNaN(r)?NaN:r||i}_extractPoints(e){let i=this._resolve(e);const r=i&&i.array?i.array:i;return Array.isArray(r)?r.filter(s=>s instanceof me):[]}new(...e){let i,r=!1,s=!1,a="bi",n="#2962ff",o="",l="style_solid",c=1,h=!1;const p=_=>{r=_.curved??r,s=_.closed??s,a=_.xloc??a,n=_.line_color??n,o=_.fill_color??o,l=_.line_style??l,c=_.line_width??c,h=_.force_overlay??h},u=e.length>=1?e[e.length-1]:null,f=e.length>=2&&u&&typeof u=="object"&&!Array.isArray(u)&&!(u instanceof y)&&!(u instanceof me);if(e.length===1&&u&&typeof u=="object"&&!Array.isArray(u)&&"points"in u)i=u.points,p(u);else{const _=f?e.slice(0,-1):e;i=_[0],r=_[1]??r,s=_[2]??s,a=_[3]??a,n=_[4]??n,o=_[5]??o,l=_[6]??l,c=_[7]??c,h=_[8]??h,f&&p(u)}const m=this._extractPoints(i),x=new Vf(m,this._resolve(r)??!1,this._resolve(s)??!1,this._resolve(a)||"bi",this._resolveColor(n,"#2962ff"),this._resolveColor(o,""),this._resolve(l)||"style_solid",this._resolve(c)||1,this._resolve(h)??!1);return x._createdAtBar=this.context.idx,this._polylines.push(x),this._syncToPlot(),x}any(...e){return this.new(...e)}delete(e){e&&(e._deleted=!0)}get all(){return this._polylines.filter(e=>!e._deleted)}rollbackFromBar(e){this._polylines=this._polylines.filter(i=>i._createdAtBar<e),this._syncToPlot()}}var Ff=Object.defineProperty,Wf=(t,e,i)=>e in t?Ff(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,_e=(t,e,i)=>Wf(t,typeof e!="symbol"?e+"":e,i);let Uf=0;class qf{constructor(e="top_right",i=1,r=1,s="",a="",n=0,o="",l=0,c=!1){_e(this,"id"),_e(this,"position"),_e(this,"columns"),_e(this,"rows"),_e(this,"bgcolor"),_e(this,"frame_color"),_e(this,"frame_width"),_e(this,"border_color"),_e(this,"border_width"),_e(this,"force_overlay"),_e(this,"_deleted"),_e(this,"cells"),_e(this,"merges"),_e(this,"_helper"),this.id=Uf++,this.position=e,this.columns=i,this.rows=r,this.bgcolor=s,this.frame_color=a,this.frame_width=n,this.border_color=o,this.border_width=l,this.force_overlay=c,this._deleted=!1,this.merges=[],this.cells=[];for(let h=0;h<r;h++){this.cells[h]=[];for(let p=0;p<i;p++)this.cells[h][p]=null}}delete(){this._deleted=!0}setCell(e,i,r){if(i<0||i>=this.rows||e<0||e>=this.columns)return;const s=this.cells[i][e];if(s&&s._merged&&s._merge_parent){const[n,o]=s._merge_parent;if(n===e&&o===i)s._merged=!1,s._merge_parent=void 0;else{this.setCell(n,o,r);return}}const a=s||this._defaultCell();Object.assign(a,r),this.cells[i][e]=a}getCell(e,i){return i<0||i>=this.rows||e<0||e>=this.columns?null:this.cells[i][e]}clearCell(e,i){i<0||i>=this.rows||e<0||e>=this.columns||(this.cells[i][e]=null)}_setHelper(e){this._helper=e}cell(...e){return this._helper.cell(this,...e)}clear(...e){return this._helper.clear(this,...e)}merge_cells(...e){return this._helper.merge_cells(this,...e)}cell_set_text(...e){return this._helper.cell_set_text(this,...e)}cell_set_bgcolor(...e){return this._helper.cell_set_bgcolor(this,...e)}cell_set_text_color(...e){return this._helper.cell_set_text_color(this,...e)}cell_set_text_size(...e){return this._helper.cell_set_text_size(this,...e)}cell_set_height(...e){return this._helper.cell_set_height(this,...e)}cell_set_width(...e){return this._helper.cell_set_width(this,...e)}cell_set_tooltip(...e){return this._helper.cell_set_tooltip(this,...e)}cell_set_text_halign(...e){return this._helper.cell_set_text_halign(this,...e)}cell_set_text_valign(...e){return this._helper.cell_set_text_valign(this,...e)}cell_set_text_font_family(...e){return this._helper.cell_set_text_font_family(this,...e)}set_position(...e){return this._helper.set_position(this,...e)}set_bgcolor(...e){return this._helper.set_bgcolor(this,...e)}set_border_color(...e){return this._helper.set_border_color(this,...e)}set_border_width(...e){return this._helper.set_border_width(this,...e)}set_frame_color(...e){return this._helper.set_frame_color(this,...e)}set_frame_width(...e){return this._helper.set_frame_width(this,...e)}_defaultCell(){return{text:"",width:0,height:0,text_color:"#000000",text_halign:"center",text_valign:"center",text_size:"normal",bgcolor:"",tooltip:"",text_font_family:"default",_merged:!1,_merge_parent:null}}}var Kf=Object.defineProperty,zf=(t,e,i)=>e in t?Kf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Hf=(t,e,i)=>zf(t,typeof e!="symbol"?e+"":e,i);class Gf{constructor(e){this.context=e,Hf(this,"_tables",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__tables__||(this.context.plots.__tables__={title:"__tables__",data:[],options:{style:"table",overlay:!0}})}_syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__tables__.data=[{time:e,value:this._tables,options:{style:"table"}}]}_resolve(e){return e==null?e:typeof e=="object"&&"__value"in e?e.__value:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}new(...e){let i="top_right",r=1,s=1,a="",n="",o=0,l="",c=0,h=!1;const p=e[e.length-1];if(p&&typeof p=="object"&&!Array.isArray(p)&&("bgcolor"in p||"frame_color"in p||"border_color"in p||"position"in p||"columns"in p||"rows"in p)){const f=p,m=e.slice(0,-1);i=m[0]??f.position??i,r=m[1]??f.columns??r,s=m[2]??f.rows??s,a=f.bgcolor??a,n=f.frame_color??n,o=f.frame_width??o,l=f.border_color??l,c=f.border_width??c,h=f.force_overlay??h}else i=e[0]??i,r=e[1]??r,s=e[2]??s,a=e[3]??a,n=e[4]??n,o=e[5]??o,l=e[6]??l,c=e[7]??c,h=e[8]??h;const u=new qf(this._resolve(i)||"top_right",this._resolve(r)||1,this._resolve(s)||1,this._resolve(a)||"",this._resolve(n)||"",this._resolve(o)||0,this._resolve(l)||"",this._resolve(c)||0,this._resolve(h)??!1);return u._setHelper(this),this._tables.push(u),this._syncToPlot(),u}any(...e){return this.new(...e)}cell(...e){let i,r,s,a="",n=0,o=0,l="#000000",c="center",h="center",p="normal",u="",f="",m="default";const x=e[e.length-1];if(x&&typeof x=="object"&&!Array.isArray(x)&&("text"in x||"bgcolor"in x||"text_color"in x||"text_size"in x||"text_halign"in x||"tooltip"in x||"column"in x||"row"in x||"height"in x||"width"in x||"text_valign"in x||"text_font_family"in x)){const v=x,E=e.slice(0,-1);i=E[0],r=E.length>1?E[1]:v.column??0,s=E.length>2?E[2]:v.row??0,a=E[3]??v.text??a,n=E[4]??v.width??n,o=E[5]??v.height??o,l=E[6]??v.text_color??l,c=E[7]??v.text_halign??c,h=E[8]??v.text_valign??h,p=E[9]??v.text_size??p,u=E[10]??v.bgcolor??u,f=E[11]??v.tooltip??f,m=E[12]??v.text_font_family??m}else i=e[0],r=e[1]??0,s=e[2]??0,a=e[3]??a,n=e[4]??n,o=e[5]??o,l=e[6]??l,c=e[7]??c,h=e[8]??h,p=e[9]??p,u=e[10]??u,f=e[11]??f,m=e[12]??m;const _=this._resolve(i);if(!_||_._deleted)return;const b=this._resolve(r)??0,w=this._resolve(s)??0;_.setCell(b,w,{text:this._resolveText(this._resolve(a)),width:this._resolve(n)||0,height:this._resolve(o)||0,text_color:this._resolve(l)||"#000000",text_halign:this._resolve(c)||"center",text_valign:this._resolve(h)||"center",text_size:this._resolve(p)||"normal",bgcolor:this._resolve(u)||"",tooltip:this._resolveText(this._resolve(f)),text_font_family:this._resolve(m)||"default"}),this._syncToPlot()}delete(e){e&&(e._deleted=!0)}clear(...e){let i,r,s,a,n;const o=e[e.length-1];if(o&&typeof o=="object"&&!Array.isArray(o)&&("start_column"in o||"start_row"in o||"end_column"in o)){const f=o;i=e[0],r=e.length>2?e[1]:f.start_column??0,s=e.length>3?e[2]:f.start_row??0,a=f.end_column??(e.length>4?e[3]:r),n=f.end_row??(e.length>5?e[4]:s)}else i=e[0],r=e[1]??0,s=e[2]??0,a=e[3]??r,n=e[4]??s;const l=this._resolve(i);if(!l||l._deleted)return;const c=this._resolve(r)??0,h=this._resolve(s)??0,p=this._resolve(a)??c,u=this._resolve(n)??h;for(let f=h;f<=u;f++)for(let m=c;m<=p;m++)l.clearCell(m,f);this._syncToPlot()}merge_cells(...e){let i,r,s,a,n;const o=e[e.length-1];if(o&&typeof o=="object"&&!Array.isArray(o)&&("start_column"in o||"start_row"in o||"end_column"in o)){const f=o;i=e[0],r=e.length>2?e[1]:f.start_column??0,s=e.length>3?e[2]:f.start_row??0,a=f.end_column??(e.length>4?e[3]:0),n=f.end_row??(e.length>5?e[4]:0)}else i=e[0],r=e[1]??0,s=e[2]??0,a=e[3]??0,n=e[4]??0;const l=this._resolve(i);if(!l||l._deleted)return;const c=this._resolve(r)??0,h=this._resolve(s)??0,p=this._resolve(a)??0,u=this._resolve(n)??0;for(let f=h;f<=u;f++)for(let m=c;m<=p;m++)f===h&&m===c||l.setCell(m,f,{_merged:!0,_merge_parent:[c,h]});l.merges.push({startCol:c,startRow:h,endCol:p,endRow:u}),this._syncToPlot()}cell_set_text(e,i,r,s){this._setCellProp(e,i,r,"text",s,!0)}cell_set_bgcolor(e,i,r,s){this._setCellProp(e,i,r,"bgcolor",s)}cell_set_text_color(e,i,r,s){this._setCellProp(e,i,r,"text_color",s)}cell_set_text_size(e,i,r,s){this._setCellProp(e,i,r,"text_size",s)}cell_set_height(e,i,r,s){this._setCellProp(e,i,r,"height",s)}cell_set_width(e,i,r,s){this._setCellProp(e,i,r,"width",s)}cell_set_tooltip(e,i,r,s){this._setCellProp(e,i,r,"tooltip",s,!0)}cell_set_text_halign(e,i,r,s){this._setCellProp(e,i,r,"text_halign",s)}cell_set_text_valign(e,i,r,s){this._setCellProp(e,i,r,"text_valign",s)}cell_set_text_font_family(e,i,r,s){this._setCellProp(e,i,r,"text_font_family",s)}set_position(e,i){const r=this._resolve(e);!r||r._deleted||(r.position=this._resolve(i)||r.position,this._syncToPlot())}set_bgcolor(e,i){const r=this._resolve(e);!r||r._deleted||(r.bgcolor=this._resolve(i)||"",this._syncToPlot())}set_border_color(e,i){const r=this._resolve(e);!r||r._deleted||(r.border_color=this._resolve(i)||"",this._syncToPlot())}set_border_width(e,i){const r=this._resolve(e);!r||r._deleted||(r.border_width=this._resolve(i)||0,this._syncToPlot())}set_frame_color(e,i){const r=this._resolve(e);!r||r._deleted||(r.frame_color=this._resolve(i)||"",this._syncToPlot())}set_frame_width(e,i){const r=this._resolve(e);!r||r._deleted||(r.frame_width=this._resolve(i)||0,this._syncToPlot())}get all(){return this._tables.filter(e=>!e._deleted)}_setCellProp(e,i,r,s,a,n=!1){const o=this._resolve(e);if(!o||o._deleted)return;const l=this._resolve(i)??0,c=this._resolve(r)??0,h=this._resolve(a);o.setCell(l,c,{[s]:n?this._resolveText(h):h}),this._syncToPlot()}_resolveText(e){return e==null||e!==e?"":String(e)}}var Yf=Object.defineProperty,Xf=(t,e,i)=>e in t?Yf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,j=(t,e,i)=>Xf(t,typeof e!="symbol"?e+"":e,i);const Ui=class si{constructor({marketData:e,source:i,tickerId:r,timeframe:s,limit:a,sDate:n,eDate:o,fullContext:l,inputs:c}){j(this,"data",{open:new y([]),high:new y([]),low:new y([]),close:new y([]),volume:new y([]),hl2:new y([]),hlc3:new y([]),ohlc4:new y([]),hlcc4:new y([]),bar_index:new y([])}),j(this,"indicator"),j(this,"cache",{}),j(this,"taState",{}),j(this,"isSecondaryContext",!1),j(this,"chartTimezone",null),j(this,"dataVersion",0),j(this,"__maxLoops",5e5),j(this,"NA",NaN),j(this,"warnings",[]),j(this,"alerts",[]),j(this,"_alertMode","realtime"),j(this,"_execTick",0),j(this,"lang"),j(this,"length",0),j(this,"_drawingHelpers",[]),j(this,"pine"),j(this,"idx",0),j(this,"params",{}),j(this,"const",{}),j(this,"var",{}),j(this,"let",{}),j(this,"lctx",new Map),j(this,"result"),j(this,"plots",{}),j(this,"marketData"),j(this,"source"),j(this,"tickerId"),j(this,"timeframe",""),j(this,"limit"),j(this,"sDate"),j(this,"eDate"),j(this,"fullContext"),j(this,"pineTSCode"),j(this,"inputs",{}),j(this,"_callStack",[]),this.marketData=e,this.source=i,this.tickerId=r,this.timeframe=s,this.limit=a,this.sDate=n,this.eDate=o,this.fullContext=l||this,this.inputs=c||{};const h=new Wc(this),p={Type:h.Type.bind(h),na:new Ot,nz:h.nz.bind(h),indicator:h.indicator.bind(h),fixnan:h.fixnan.bind(h),alertcondition:h.alertcondition.bind(h),alert:new Fc(this),error:h.error.bind(h),max_bars_back:h.max_bars_back.bind(h),timestamp:h.timestamp.bind(h),time:new Ar(this,"openTime"),time_close:new Ar(this,"closeTime"),dayofmonth:new nt(this,at.dayofmonth),dayofweek:new nt(this,at.dayofweek),hour:new nt(this,at.hour),minute:new nt(this,at.minute),month:new nt(this,at.month),second:new nt(this,at.second),weekofyear:new nt(this,at.weekofyear),year:new nt(this,at.year),bool:h.bool.bind(h),int:h.int.bind(h),float:h.float.bind(h),string:h.string.bind(h)},u=this;this.pine={input:new xh(this),ta:new Sp(this),math:new eu(this),request:new ou(this),array:new ul(this),map:new Cl(this),matrix:new Cc(this),syminfo:null,timeframe:new Pp(this),barstate:new Tc(this),get bar_index(){return u.data.bar_index},get last_bar_index(){return u.data.close.length-1},get last_bar_time(){return u.data.openTime.get(u.data.openTime.length-1)},get timenow(){return new Date().getTime()},get time_tradingday(){const z=y.from(u.data.closeTime).get(0);if(isNaN(z))return NaN;const K=u.pine?.syminfo?.timezone||"UTC",R=Tt(z,K);return Date.UTC(R.year,R.month-1,R.day,0,0,0)},get inputs(){return u.inputs},log:new Cp(this),str:new Ip(this),...p,...Wo};const f=p.dayofweek;Object.assign(f,{sunday:1,monday:2,tuesday:3,wednesday:4,thursday:5,friday:6,saturday:7}),this.pine.dayofweek=f;const m=new qp(this),x=new Kp(this),_=new zp(this);this.bindContextObject(m,["plotchar","plotshape","plotarrow","plotbar","plotcandle","bgcolor","barcolor"]),this.bindContextObject(m,["any","param","linestyle_dashed","linestyle_dotted","linestyle_solid","style_area","style_areabr","style_circles","style_columns","style_cross","style_histogram","style_line","style_linebr","style_stepline","style_stepline_diamond","style_steplinebr"],"plot"),this.bindContextObject(x,["any","style_dashed","style_solid","style_dotted","param"],"hline"),this.bindContextObject(_,["any","param"],"fill");const b=new Xp(this);this.pine.chart={param:b.param.bind(b),bg_color:b.bg_color.bind(b),fg_color:b.fg_color.bind(b),is_standard:b.is_standard.bind(b),is_heikinashi:b.is_heikinashi.bind(b),is_kagi:b.is_kagi.bind(b),is_linebreak:b.is_linebreak.bind(b),is_pnf:b.is_pnf.bind(b),is_range:b.is_range.bind(b),is_renko:b.is_renko.bind(b),point:b.point};const w=new af(this);this.bindContextObject(w,["any","new","param","set_x","set_y","set_xy","set_text","set_color","set_textcolor","set_size","set_style","set_textalign","set_tooltip","set_point","set_xloc","set_yloc","get_x","get_y","get_text","copy","delete","style_label_down","style_label_up","style_label_left","style_label_right","style_label_lower_left","style_label_lower_right","style_label_upper_left","style_label_upper_right","style_label_center","style_circle","style_square","style_diamond","style_flag","style_arrowup","style_arrowdown","style_cross","style_xcross","style_triangleup","style_triangledown","style_none","style_text_outline"],"label"),Object.defineProperty(this.pine.label,"all",{get:()=>w.all});const v=new mf(this);this.bindContextObject(v,["any","new","param","set_x1","set_y1","set_x2","set_y2","set_xy1","set_xy2","set_color","set_width","set_style","set_extend","set_xloc","set_first_point","set_second_point","get_x1","get_y1","get_x2","get_y2","get_price","copy","delete","style_solid","style_dotted","style_dashed","style_arrow_left","style_arrow_right","style_arrow_both"],"line"),Object.defineProperty(this.pine.line,"all",{get:()=>v.all});const E=new Ef(this);this.bindContextObject(E,["any","new","param","copy","delete","set_left","set_right","set_top","set_bottom","set_lefttop","set_rightbottom","set_top_left_point","set_bottom_right_point","set_bgcolor","set_border_color","set_border_width","set_border_style","set_extend","set_xloc","set_text","set_text_color","set_text_size","set_text_halign","set_text_valign","set_text_wrap","set_text_font_family","set_text_formatting","get_left","get_right","get_top","get_bottom"],"box"),Object.defineProperty(this.pine.box,"all",{get:()=>E.all});const T=new Df(this);this.bindContextObject(T,["any","new","param","set_color","get_line1","get_line2","delete"],"linefill"),Object.defineProperty(this.pine.linefill,"all",{get:()=>T.all});const C=new Bf(this);this.bindContextObject(C,["any","new","param","delete"],"polyline"),Object.defineProperty(this.pine.polyline,"all",{get:()=>C.all}),this._drawingHelpers=[w,v,E,T,C];const O=new Gf(this);this.bindContextObject(O,["any","new","param","cell","delete","clear","merge_cells","cell_set_text","cell_set_bgcolor","cell_set_text_color","cell_set_text_size","cell_set_height","cell_set_width","cell_set_tooltip","cell_set_text_halign","cell_set_text_valign","cell_set_text_font_family","set_position","set_bgcolor","set_border_color","set_border_width","set_frame_color","set_frame_width"],"table"),Object.defineProperty(this.pine.table,"all",{get:()=>O.all});const B=new qc(this);this.bindContextObject(B,["any","param","new","rgb","from_gradient","r","g","b","t","aqua","black","blue","fuchsia","gray","green","lime","maroon","navy","olive","orange","purple","red","silver","teal","white","yellow"],"color")}warn(e,i){this.warnings.push({message:e,method:i,bar:this.idx})}rollbackDrawings(e){for(const i of this._drawingHelpers)i.rollbackFromBar(e)}bindContextObject(e,i,r=""){r&&!this.pine[r]&&(this.pine[r]={});const s=r?this.pine[r]:this.pine;for(const a of i)typeof e[a]=="function"?s[a]=e[a].bind(e):s[a]=e[a]}init(e,i,r=0){let s;return i instanceof y?s=i.get(0):Array.isArray(i)?Array.isArray(i[0])?s=i[0]:s=i[i.length-1+r]:s=i,e?e instanceof y?(e.data[e.data.length-1]=s,e):Array.isArray(e)?(e[e.length-1]=s,new y(e)):new y([s]):new y([s])}initVar(e,i){if(e)return e;if(typeof i=="function"&&(i=i()),i instanceof It){const s=i.__def__;for(const a in s)typeof i[a]=="function"&&(i[a]=i[a]())}let r;return i instanceof y?r=i.get(0):Array.isArray(i)?Array.isArray(i[0])?r=i[0]:r=this.precision(i[i.length-1]):r=this.precision(i),new y([r])}precision(e,i=10){const r=i===10?si.PRECISION_EPSILON:10**i;return typeof e=="number"?Math.round(e*r)/r:e}param(e,i,r){return typeof e=="string"?e:e instanceof y?i?new y(e.data,e.offset+i):e:!Array.isArray(e)&&typeof e=="object"?e:(this.params[r]||(this.params[r]=[]),Array.isArray(e)?new y(e,i||0):(this.params[r].length===0?this.params[r].push(e):this.params[r][this.params[r].length-1]=e,new y(this.params[r],i||0)))}get(e,i){if(e instanceof y)return e.get(i);if(Array.isArray(e)){const r=e.length-1-i;return r<0||r>=e.length?NaN:e[r]}return e}set(e,i){if(e instanceof y){e.set(0,typeof i=="number"?this.precision(i):i);return}if(Array.isArray(e)){e.length>0?e[e.length-1]=i:e.push(i);return}}pushId(e){this._callStack.push(e)}popId(){this._callStack.pop()}peekId(){return this._callStack.length>0?this._callStack[this._callStack.length-1]:""}peekCtx(){const e=this.peekId();if(!e)return this;let i=this.lctx.get(e);return i||(i={id:e,let:{},const:{},var:{}},this.lctx.set(e,i)),i}call(e,i,...r){this.pushId(i);try{return e(...r)}finally{this.popId()}}get math(){return this._showDeprecationWarning("const math = context.math","const { math, ta, input } = context.pine"),this.pine.math}get ta(){return this._showDeprecationWarning("const ta = context.ta","const { ta, math, input } = context.pine"),this.pine.ta}get input(){return this._showDeprecationWarning("const input = context.input","const { input, math, ta } = context.pine"),this.pine.input}get request(){return this._showDeprecationWarning("const request = context.request","const { request, math, ta } = context.pine"),this.pine.request}get array(){return this._showDeprecationWarning("const array = context.array","const { array, math, ta } = context.pine"),this.pine.array}get core(){return this._showDeprecationWarning("context.core.*","context.pine (e.g., const { na, plotchar, color, plot, nz } = context.pine)"),{na:this.pine.na,fill:this.pine.fill,plotchar:this.pine.plotchar,plotshape:this.pine.plotshape,plotarrow:this.pine.plotarrow,color:this.pine.color,plot:this.pine.plot,nz:this.pine.nz}}_showDeprecationWarning(e,i){const r=`${e}->${i}`;si._deprecationWarningsShown.has(r)||(si._deprecationWarningsShown.add(r),typeof window<"u"?console.warn("%c[WARNING]%c %s syntax is deprecated. Use %s instead. This will be removed in a future version.","color: #FFA500; font-weight: bold;","color: #FFA500;",e,i):console.warn(`\x1B[33m[WARNING] ${e} syntax is deprecated. Use ${i} instead. This will be removed in a future version.\x1B[0m`))}};j(Ui,"_deprecationWarningsShown",new Set),j(Ui,"PRECISION_EPSILON",10**10);let Lr=Ui;var Qf=Object.defineProperty,Zf=(t,e,i)=>e in t?Qf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,jr=(t,e,i)=>Zf(t,typeof e!="symbol"?e+"":e,i);class $r{constructor(e,i={}){jr(this,"source"),jr(this,"inputs"),this.source=e,this.inputs=i}}var Jf=Object.defineProperty,ed=(t,e,i)=>e in t?Jf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,J=(t,e,i)=>ed(t,typeof e!="symbol"?e+"":e,i);const Br={1:6e4,3:18e4,5:3e5,15:9e5,30:18e5,60:36e5,120:72e5,180:108e5,240:144e5,"4H":144e5,"1D":864e5,D:864e5,"1W":6048e5,W:6048e5,"1M":30*864e5,M:30*864e5};function td(t){return t?Br[t]??Br[t.toUpperCase()]??864e5:864e5}class hn{constructor(e,i,r,s,a,n){this.source=e,this.tickerId=i,this.timeframe=r,this.limit=s,this.sDate=a,this.eDate=n,J(this,"data",[]),J(this,"open",[]),J(this,"high",[]),J(this,"low",[]),J(this,"close",[]),J(this,"volume",[]),J(this,"hl2",[]),J(this,"hlc3",[]),J(this,"ohlc4",[]),J(this,"hlcc4",[]),J(this,"openTime",[]),J(this,"closeTime",[]),J(this,"_readyPromise",null),J(this,"_ready",!1),J(this,"_debugSettings",{ln:!1,debug:!1}),J(this,"_transpiledCode",null),J(this,"_isSecondaryContext",!1),J(this,"_syminfo"),J(this,"_chartTimezone",null),J(this,"_maxLoops",5e5),J(this,"_alertMode","realtime"),this._readyPromise=new Promise(o=>{this.loadMarketData(e,i,r,s,a,n).then(l=>{const c=l;this.data=c;const h=c.map(C=>C.open),p=c.map(C=>C.close),u=c.map(C=>C.high),f=c.map(C=>C.low),m=c.map(C=>C.volume),x=c.map(C=>(C.high+C.low+C.close)/3),_=c.map(C=>(C.high+C.low)/2),b=c.map(C=>(C.high+C.low+C.open+C.close)/4),w=c.map(C=>(C.high+C.low+C.close+C.close)/4),v=c.map(C=>C.openTime),E=td(this.timeframe),T=c.map(C=>C.closeTime!=null?C.closeTime:C.openTime+E);this.open=h,this.close=p,this.high=u,this.low=f,this.volume=m,this.hl2=_,this.hlc3=x,this.ohlc4=b,this.hlcc4=w,this.openTime=v,this.closeTime=T,e&&e.getSymbolInfo?e.getSymbolInfo(i).then(C=>{this._syminfo=C,this._ready=!0,o(!0)}).catch(C=>{console.warn("Failed to get symbol info, using default values:",C),this._ready=!0,o(!0)}):(this._ready=!0,o(!0))})})}get transpiledCode(){return this._transpiledCode}markAsSecondary(){this._isSecondaryContext=!0}setTimezone(e){this._chartTimezone=e}setMaxLoops(e){this._maxLoops=e}setAlertMode(e){this._alertMode=e}setDebugSettings({ln:e,debug:i}){this._debugSettings.ln=e,this._debugSettings.debug=i}async loadMarketData(e,i,r,s,a,n){return Array.isArray(e)?e:e.getMarketData(i,r,s,a,n)}async ready(){if(this._ready)return!0;if(!this._readyPromise)throw new Error("PineTS is not ready");return this._readyPromise}run(e,i,r){let s,a={};if(e instanceof $r?(s=e.source,a=e.inputs||{}):s=e,r&&r>0){const n=typeof this.eDate>"u"&&!Array.isArray(this.source);return this._runPaginated(s,a,i,r,n)}else return this._runComplete(s,a,i)}stream(e,i={}){const{live:r=!0,interval:s=1e3}=i,a=i.pageSize||this.data.length;let n,o={};e instanceof $r?(n=e.source,o=e.inputs||{}):n=e;const l={data:[],error:[],warning:[],alert:[]};let c=!1;const h=(f,...m)=>{l[f]&&l[f].forEach(x=>x(...m))},p=(f,m)=>{l[f]||(l[f]=[]),l[f].push(m)},u=()=>{c=!0};return(async()=>{try{const f=typeof this.eDate>"u"&&!Array.isArray(this.source)&&r,m=this._runPaginated(n,o,void 0,a,f);for await(const x of m){if(c)break;if(x===null){await new Promise(_=>setTimeout(_,s));continue}if(h("data",x),x.warnings&&x.warnings.length>0){for(const _ of x.warnings)h("warning",_);x.warnings.length=0}if(x.alerts&&x.alerts.length>0){for(const _ of x.alerts)h("alert",_);x.alerts.length=0}if(f&&!c){const _=x.marketData[x.idx];_&&_.closeTime<Date.now()||await new Promise(b=>setTimeout(b,s))}}}catch(f){h("error",f)}})(),{on:p,stop:u}}async _runComplete(e,i,r){await this.ready(),r||(r=this.data.length);const s=this._initializeContext(e,i,this._isSecondaryContext);return this._transpiledCode=this._transpileCode(e),await this._executeIterations(s,this._transpiledCode,this.data.length-r,this.data.length),s}async*_runPaginated(e,i,r,s,a=!1){await this.ready(),r||(r=this.data.length);const n=this._initializeContext(e,i,this._isSecondaryContext);this._transpiledCode=this._transpileCode(e);let o=this.data.length-r;for(;;){const l=this.data.length-o;if(l>0){const p=Math.min(l,s),u=this._getResultLength(n.result);await this._executeIterations(n,this._transpiledCode,o,o+p),o+=p,yield this._createPageContext(n,u);continue}if(!a||Array.isArray(this.source))break;const{newCandles:c,updatedLastCandle:h}=await this._updateMarketData();if(c===0&&!h){yield null;continue}n.dataVersion++,n.length=this.data.length,this._removeLastResult(n),o=this.data.length-(c+1),n.rollbackDrawings(o),n.pine.barstate.setLive()}}_getResultLength(e){if(Array.isArray(e))return e.length;if(typeof e=="object"&&e!==null){const i=Object.keys(e);if(i.length>0&&Array.isArray(e[i[0]]))return e[i[0]].length}return 0}_createPageContext(e,i){const r=new Lr({marketData:this.data,source:this.source,tickerId:this.tickerId,timeframe:this.timeframe,limit:this.limit,sDate:this.sDate,eDate:this.eDate,fullContext:e,inputs:e.inputs});if(r.pineTSCode=e.pineTSCode,r.idx=e.idx,Array.isArray(e.result))r.result=e.result.slice(i);else if(typeof e.result=="object"&&e.result!==null){r.result={};for(let s in e.result)Array.isArray(e.result[s])?r.result[s]=e.result[s].slice(i):r.result[s]=e.result[s]}else r.result=e.result;return r.plots={...e.plots},r.warnings=e.warnings,r.alerts=e.alerts,r}async _updateMarketData(e){if(Array.isArray(this.source))return{newCandles:0,updatedLastCandle:!1};const i=this.source,r=this.data.length-1,s=this.data[r].openTime;try{const a=await i.getMarketData(this.tickerId,this.timeframe,void 0,s,e);if(!a||a.length===0)return{newCandles:0,updatedLastCandle:!1};let n=!1,o=0;for(let l=0;l<a.length;l++){const c=a[l];c.openTime===s?(this._replaceCandle(r,c),n=!0):c.openTime>s&&(this._appendCandle(c),o++)}return{newCandles:o,updatedLastCandle:n}}catch(a){return console.error("Error updating market data:",a),{newCandles:0,updatedLastCandle:!1}}}_replaceCandle(e,i){this.data[e]=i,this.open[e]=i.open,this.close[e]=i.close,this.high[e]=i.high,this.low[e]=i.low,this.volume[e]=i.volume,this.hl2[e]=(i.high+i.low)/2,this.hlc3[e]=(i.high+i.low+i.close)/3,this.ohlc4[e]=(i.high+i.low+i.open+i.close)/4,this.hlcc4[e]=(i.high+i.low+i.close+i.close)/4,this.openTime[e]=i.openTime,this.closeTime[e]=i.closeTime}_appendCandle(e){this.data.push(e),this.open.push(e.open),this.close.push(e.close),this.high.push(e.high),this.low.push(e.low),this.volume.push(e.volume),this.hl2.push((e.high+e.low)/2),this.hlc3.push((e.high+e.low+e.close)/3),this.ohlc4.push((e.high+e.low+e.open+e.close)/4),this.hlcc4.push((e.high+e.low+e.close+e.close)/4),this.openTime.push(e.openTime),this.closeTime.push(e.closeTime)}async updateTail(e){if(this.data.length===0||Array.isArray(this.source))return!1;const{newCandles:i,updatedLastCandle:r}=await this._updateMarketData();if(i===0&&!r)return!1;this._removeLastResult(e),e.length=this.data.length;const s=this.data.length-(i+1);return e.rollbackDrawings(s),await this._executeIterations(e,this._transpiledCode,s,this.data.length),!0}_removeLastResult(e){if(Array.isArray(e.result))e.result.pop();else if(typeof e.result=="object"&&e.result!==null)for(let s in e.result)Array.isArray(e.result[s])&&e.result[s].pop();e.data.close.data.pop(),e.data.open.data.pop(),e.data.high.data.pop(),e.data.low.data.pop(),e.data.volume.data.pop(),e.data.hl2.data.pop(),e.data.hlc3.data.pop(),e.data.ohlc4.data.pop(),e.data.hlcc4.data.pop(),e.data.openTime.data.pop(),e.data.closeTime&&e.data.closeTime.data.pop(),e.data.bar_index.data.pop();const i=["const","var","let","params"],r=s=>{for(let a of i)if(s[a])for(let n in s[a]){const o=s[a][n];o instanceof y?o.data.pop():Array.isArray(o)&&o.pop()}};r(e),e.lctx&&e.lctx.forEach(s=>r(s))}_initializeContext(e,i={},r=!1){const s=new Lr({marketData:this.data,source:this.source,tickerId:this.tickerId,timeframe:this.timeframe,limit:this.limit,sDate:this.sDate,eDate:this.eDate,inputs:i});return s.pine.syminfo=this._syminfo,this._chartTimezone&&(s.chartTimezone=this._chartTimezone),s.__maxLoops=this._maxLoops,s._alertMode=this._alertMode,s.pineTSCode=e,s.isSecondaryContext=r,s.data.close=new y([]),s.data.open=new y([]),s.data.high=new y([]),s.data.low=new y([]),s.data.volume=new y([]),s.data.hl2=new y([]),s.data.hlc3=new y([]),s.data.ohlc4=new y([]),s.data.hlcc4=new y([]),s.data.openTime=new y([]),s.data.closeTime=new y([]),s.length=this.data.length,s}_transpileCode(e){return io.bind(this)(e,this._debugSettings)}async _executeIterations(e,i,r,s){const a=["const","var","let","params"];for(let n=r;n<s;n++){e.idx=n,e._execTick=(e._execTick||0)+1,e.data.close.data.push(this.close[n]),e.data.open.data.push(this.open[n]),e.data.high.data.push(this.high[n]),e.data.low.data.push(this.low[n]),e.data.volume.data.push(this.volume[n]),e.data.hl2.data.push(this.hl2[n]),e.data.hlc3.data.push(this.hlc3[n]),e.data.ohlc4.data.push(this.ohlc4[n]),e.data.hlcc4.data.push(this.hlcc4[n]),e.data.openTime.data.push(this.openTime[n]),e.data.closeTime.data.push(this.closeTime[n]),e.data.bar_index.data.push(n);const o=await i(e);if(typeof o=="object"){typeof e.result!="object"&&(e.result={});for(let c in o){e.result[c]===void 0&&(e.result[c]=[]);let h;o[c]instanceof y?h=o[c].get(0):Array.isArray(o[c])?h=o[c][o[c].length-1]:h=o[c],e.result[c].push(h)}}else Array.isArray(e.result)||(e.result=[]),e.result.push(o);const l=c=>{for(let h of a)if(c[h])for(let p in c[h]){const u=c[h][p];if(u instanceof y){const f=u.get(0);u.data.push(f)}else if(Array.isArray(u)){const f=u[u.length-1];u.push(f)}}};l(e),e.lctx&&e.lctx.forEach(c=>l(c))}}}const Fr={"1m":6e4,"3m":18e4,"5m":3e5,"15m":9e5,"30m":18e5,"1h":36e5,"2h":72e5,"4h":144e5,"1d":864e5,"1w":6048e5,"1M":2592e6},Ft={"1S":1,"5S":5,"10S":10,"15S":15,"30S":30,1:60,3:180,5:300,15:900,30:1800,45:2700,60:3600,120:7200,180:10800,240:14400,D:86400,W:604800,M:2592e3},Ld={"1S":{periodType:"second",multiplier:1},"5S":{periodType:"second",multiplier:5},"10S":{periodType:"second",multiplier:10},"15S":{periodType:"second",multiplier:15},"30S":{periodType:"second",multiplier:30},1:{periodType:"minute",multiplier:1},3:{periodType:"minute",multiplier:3},5:{periodType:"minute",multiplier:5},15:{periodType:"minute",multiplier:15},30:{periodType:"minute",multiplier:30},45:{periodType:"minute",multiplier:45},60:{periodType:"hour",multiplier:1},120:{periodType:"hour",multiplier:2},180:{periodType:"hour",multiplier:3},240:{periodType:"hour",multiplier:4},D:{periodType:"day",multiplier:1},W:{periodType:"week",multiplier:1},M:{periodType:"month",multiplier:1}};function Wt(t,e,i=1){if(e==="month"){const s=new Date(t);return Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+i,1,s.getUTCHours(),s.getUTCMinutes(),s.getUTCSeconds(),s.getUTCMilliseconds())}const r={second:1e3,minute:6e4,hour:36e5,day:864e5,week:7*864e5};return t+i*r[e]}function qe(t,e,i){const[r,s,a]=t.split("-").map(Number),[n,o]=e.split(":").map(Number),l=Date.UTC(r,s-1,a,n,o,0,0),c=new Intl.DateTimeFormat("en-US",{timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(new Date(l)),h=b=>parseInt(c.find(w=>w.type===b).value,10);let p=h("year"),u=h("month"),f=h("day"),m=h("hour");m===24&&(m=0);let x=h("minute");const _=Date.UTC(p,u-1,f,m,x,0,0)-l;return l-_}function Wr(t,e,i,r,s=1){if(e==="24x7")return Wt(t,r,s);const a=e.split("-")[1];if(!a||a.length!==4)return Wt(t,r,s);const n=a.slice(0,2),o=a.slice(2,4),l=`${n}:${o}`,c=Ur(t,i);if(r==="second"||r==="minute"||r==="hour"){const h=t+s*{second:1e3,minute:6e4,hour:36e5}[r],p=qe(c,l,i);return Math.min(h,p)}if(r==="day")return qe(c,l,i);if(r==="week"){const h=new Date(t).getUTCDay(),p=h<=5?5-h:5-h+7,u=t+p*864e5,f=Ur(u,i);return qe(f,l,i)}if(r==="month"){const h=new Date(t),p=h.getUTCFullYear(),u=h.getUTCMonth()+s,f=new Date(Date.UTC(p,u,1)),m=new Date(f.getTime()-864e5);for(;m.getUTCDay()===0||m.getUTCDay()===6;)m.setUTCDate(m.getUTCDate()-1);const x=m.toISOString().split("T")[0];return qe(x,l,i)}return Wt(t,r,s)}function Ur(t,e){return new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date(t))}function id(t){for(let e=0;e<t.length-1;e++)t[e].closeTime=t[e+1].openTime;t.length>0&&(t[t.length-1].closeTime=t[t.length-1].closeTime+1)}const rd=["1S","5S","10S","15S","30S","1","3","5","15","30","45","60","120","180","240","D","W","M"];function sd(t,e){if(t==="W"||t==="M")return e.has("D")?"D":null;const i=Ft[t];if(!i)return null;const r=rd.filter(s=>s!=="W"&&s!=="M"&&e.has(s)&&Ft[s]<i&&i%Ft[s]===0);return r.length===0?null:r[r.length-1]}function un(t,e){if(t==="W"||t==="M")return 1/0;const i=Ft[t],r=Ft[e];return!i||!r||r===0?1/0:i/r}function nd(t,e,i){if(t.length===0)return[];if(e==="W")return od(t);if(e==="M")return ld(t);const r=un(e,i);return ad(t,r)}function ad(t,e){if(t.length===0)return[];const i=[];let r=[t[0]];const s=cd(t),a=s>0?s*1.5:0;for(let n=1;n<t.length;n++){const o=t[n].openTime-t[n-1].openTime;(a>0&&o>a||r.length>=e)&&(i.push(ui(r)),r=[]),r.push(t[n])}return r.length>0&&i.push(ui(r)),i}function od(t){const e=[];let i=[],r="";for(const s of t){const a=hd(s.openTime);a!==r&&i.length>0&&(e.push(i),i=[]),r=a,i.push(s)}return i.length>0&&e.push(i),e.map(ui)}function ld(t){const e=[];let i=[],r="";for(const s of t){const a=new Date(s.openTime),n=`${a.getUTCFullYear()}-${a.getUTCMonth()}`;n!==r&&i.length>0&&(e.push(i),i=[]),r=n,i.push(s)}return i.length>0&&e.push(i),e.map(ui)}function ui(t){const e=t[0],i=t[t.length-1];let r=e.high,s=e.low,a=0,n=0,o=0,l=0,c=0;for(let h=0;h<t.length;h++){const p=t[h];p.high>r&&(r=p.high),p.low<s&&(s=p.low),a+=p.volume,n+=p.quoteAssetVolume,o+=p.numberOfTrades,l+=p.takerBuyBaseAssetVolume,c+=p.takerBuyQuoteAssetVolume}return{openTime:e.openTime,open:e.open,high:r,low:s,close:i.close,volume:a,closeTime:i.closeTime,quoteAssetVolume:n,numberOfTrades:o,takerBuyBaseAssetVolume:l,takerBuyQuoteAssetVolume:c,ignore:0}}function cd(t){if(t.length<2)return 0;const e=Math.min(t.length-1,20);let i=1/0;for(let r=0;r<e;r++){const s=t[r+1].openTime-t[r].openTime;s>0&&s<i&&(i=s)}return i===1/0?0:i}function hd(t){const e=new Date(t),i=e.getUTCDay()||7;e.setUTCDate(e.getUTCDate()+4-i);const r=new Date(Date.UTC(e.getUTCFullYear(),0,1)),s=Math.ceil(((e.getTime()-r.getTime())/864e5+1)/7);return`${e.getUTCFullYear()}-W${s}`}var ud=Object.defineProperty,pd=(t,e,i)=>e in t?ud(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ei=(t,e,i)=>pd(t,typeof e!="symbol"?e+"":e,i);const ti={"1s":"1S","5s":"5S","10s":"10S","15s":"15S","30s":"30S","1m":"1","3m":"3","5m":"5","15m":"15","30m":"30","45m":"45","1h":"60","2h":"120","3h":"180","4h":"240","1d":"D","1w":"W","1D":"D","1W":"W","1M":"M","4H":"240",D:"D",W:"W",M:"M"};function fd(t){if(ti[t]!==void 0)return ti[t];const e=t.toLowerCase();return ti[e]!==void 0?ti[e]:/^\d+$/.test(t)?t:/^\d+S$/i.test(t)?t.toUpperCase():t}class sr{constructor(e){ei(this,"_configured"),ei(this,"_requiresApiKey"),ei(this,"_providerName"),ei(this,"_aggregationSubTimeframe",null),this._requiresApiKey=e.requiresApiKey,this._providerName=e.providerName,this._configured=!e.requiresApiKey}ensureConfigured(){if(!this._configured)throw new Error(`${this._providerName} requires configuration before use. Call Provider.${this._providerName}.configure({ apiKey: '...' }) or instantiate directly: new ${this._providerName}Provider({ apiKey: '...' })`)}configure(e){this._configured=!0}get isConfigured(){return this._configured}normalizeCloseTime(e){id(e)}setAggregationSubTimeframe(e){this._aggregationSubTimeframe=e}getSupportedTimeframes(){return new Set(["1S","5S","10S","15S","30S","1","3","5","15","30","45","60","120","180","240","D","W","M"])}async getMarketData(e,i,r,s,a){const n=fd(i),o=this.getSupportedTimeframes();if(o.has(n))return this._getMarketDataNative(e,n,r,s,a);const l=this._aggregationSubTimeframe,c=l&&o.has(l)?l:sd(n,o);if(!c)return console.error(`${this._providerName}: Timeframe '${i}' is not supported and no valid sub-timeframe found for aggregation.`),[];const h=this._computeSubLimit(n,c,r),p=await this._getMarketDataNative(e,c,h,s,a);if(p.length===0)return[];const u=nd(p,n,c);return r&&r>0&&u.length>r?u.slice(u.length-r):u}_computeSubLimit(e,i,r){if(!r)return;const s=un(e,i);return s===1/0?e==="W"?r*7+14:e==="M"?r*31+31:r*30:Math.ceil(r*s)+Math.ceil(s)}}var dd=Object.defineProperty,md=(t,e,i)=>e in t?dd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,pi=(t,e,i)=>md(t,typeof e!="symbol"?e+"":e,i);const Ai="https://api.binance.com/api/v3",qr="https://api.binance.us/api/v3",ii={1:"1m",3:"3m",5:"5m",15:"15m",30:"30m",45:null,60:"1h",120:"2h",180:null,240:"4h","4H":"4h","1D":"1d",D:"1d","1W":"1w",W:"1w","1M":"1M",M:"1M"};class gd{constructor(e=300*1e3){pi(this,"cache"),pi(this,"cacheDuration"),this.cache=new Map,this.cacheDuration=e}generateKey(e){return Object.entries(e).filter(([i,r])=>r!==void 0).map(([i,r])=>`${i}:${r}`).join("|")}get(e){const i=this.generateKey(e),r=this.cache.get(i);return r?Date.now()-r.timestamp>this.cacheDuration?(this.cache.delete(i),null):r.data:null}set(e,i){const r=this.generateKey(e);this.cache.set(r,{data:i,timestamp:Date.now()})}clear(){this.cache.clear()}cleanup(){const e=Date.now();for(const[i,r]of this.cache.entries())e-r.timestamp>this.cacheDuration&&this.cache.delete(i)}}class yd extends sr{constructor(){super({requiresApiKey:!1,providerName:"Binance"}),pi(this,"cacheManager"),pi(this,"activeApiUrl",null),this.cacheManager=new gd(300*1e3)}async getBaseUrl(){if(this.activeApiUrl)return this.activeApiUrl;try{const e=new AbortController,i=setTimeout(()=>e.abort(),5e3),r=await fetch(`${Ai}/ping`,{signal:e.signal});if(clearTimeout(i),r.ok)return this.activeApiUrl=Ai,this.activeApiUrl}catch{}try{const e=new AbortController,i=setTimeout(()=>e.abort(),5e3),r=await fetch(`${qr}/ping`,{signal:e.signal});if(clearTimeout(i),r.ok)return this.activeApiUrl=qr,this.activeApiUrl}catch{}return Ai}async _fetchRawChunk(e,i,r,s,a){const n=ii[i.toUpperCase()];if(!n)return console.error(`Unsupported timeframe: ${i}`),[];let o=`${await this.getBaseUrl()}/klines?symbol=${e}&interval=${n}`;r&&(o+=`&limit=${Math.min(r,1e3)}`),s&&(o+=`&startTime=${s}`),a&&(o+=`&endTime=${a}`);const l=await fetch(o);if(!l.ok)throw new Error(`HTTP error! status: ${l.status}`);return(await l.json()).map(c=>({openTime:parseInt(c[0]),open:parseFloat(c[1]),high:parseFloat(c[2]),low:parseFloat(c[3]),close:parseFloat(c[4]),volume:parseFloat(c[5]),closeTime:parseInt(c[6]),quoteAssetVolume:parseFloat(c[7]),numberOfTrades:parseInt(c[8]),takerBuyBaseAssetVolume:parseFloat(c[9]),takerBuyQuoteAssetVolume:parseFloat(c[10]),ignore:c[11]}))}async getMarketDataInterval(e,i,r,s){try{const a=ii[i.toUpperCase()];if(!a)return console.error(`Unsupported timeframe: ${i}`),[];let n=[],o=r;const l=s,c=Fr[a];if(!c)return console.error(`Duration not defined for interval: ${a}`),[];for(;o<l;){const h=Math.min(o+1e3*c,l),p=await this._fetchRawChunk(e,i,1e3,o,h);if(p.length===0)break;n=n.concat(p),o=p[p.length-1].closeTime+1}return this.normalizeCloseTime(n),n}catch(a){return console.error("Error in getMarketDataInterval:",a),[]}}async getMarketDataBackwards(e,i,r,s){let a=r,n=[],o=s,l=0;const c=Math.ceil(r/1e3)+5;for(;a>0&&l<c;){l++;const h=Math.min(a,1e3),p=await this._fetchRawChunk(e,i,h,void 0,o);if(p.length===0||(n=p.concat(n),a-=p.length,o=p[0].openTime-1,p.length<h))break}return this.normalizeCloseTime(n),n}getSupportedTimeframes(){return new Set(["1","3","5","15","30","60","120","240","D","W","M"])}async _getMarketDataNative(e,i,r,s,a){try{const n=a!==void 0,o={tickerId:e,timeframe:i,limit:r,sDate:s,eDate:a};if(n){const c=this.cacheManager.get(o);if(c)return c}if(!ii[i.toUpperCase()])return console.error(`Unsupported timeframe: ${i}`),[];if(this.shouldPaginate(i,r,s,a)){if(s&&a){const c=await this.getMarketDataInterval(e,i,s,a),h=r?c.slice(0,r):c;return this.cacheManager.set(o,h),h}else if(r&&r>1e3){const c=await this.getMarketDataBackwards(e,i,r,a);return this.cacheManager.set(o,c),c}}const l=await this._fetchRawChunk(e,i,r,s,a);return this.normalizeCloseTime(l),n&&this.cacheManager.set(o,l),l}catch(n){return console.error("Error in binance.klines:",n),[]}}shouldPaginate(e,i,r,s){if(i&&i>1e3)return!0;if(r&&s){const a=ii[e.toUpperCase()],n=Fr[a];if(n)return Math.ceil((s-r)/n)>1e3}return!1}async getSymbolInfo(e){try{let i="crypto",r=await this.getBaseUrl(),s=e,a="";e.endsWith(".P")?(i="futures",s=e.replace(".P",""),r="https://fapi.binance.com/fapi/v1",a="Perpetual"):e.includes("_")&&(i="futures",s=e,r="https://dapi.binance.com/dapi/v1",a="Delivery");const n=i==="crypto"?`${r}/exchangeInfo?symbol=${s}`:`${r}/exchangeInfo`,o=await fetch(n);if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);const l=(await o.json()).symbols;if(!l||l.length===0)return console.error(`Symbol ${e} not found`),null;const c=i==="futures"?l.find(v=>v.symbol===s):l[0];if(!c)return console.error(`Symbol ${s} not found in exchange info`),null;const h=c.filters?.find(v=>v.filterType==="PRICE_FILTER"),p=c.filters?.find(v=>v.filterType==="LOT_SIZE"),u=h?parseFloat(h.tickSize):.01,f=p?parseFloat(p.minQty):0,m=Math.round(1/u),x=c.baseAsset,_=c.quoteAsset,b=a?` ${a}`:"",w=`${x} / ${_}${b}`;return{ticker:e,tickerid:`BINANCE:${e}`,prefix:"BINANCE",root:x,description:w,type:i,main_tickerid:`BINANCE:${e}`,current_contract:a,isin:"",basecurrency:x,currency:_,timezone:"Etc/UTC",country:"",mintick:u,pricescale:m,minmove:1,pointvalue:c.contractSize||1,mincontract:f,session:"24x7",volumetype:"base",expiration_date:c.deliveryDate||0,employees:0,industry:"",sector:"",shareholders:0,shares_outstanding_float:0,shares_outstanding_total:0,recommendations_buy:0,recommendations_buy_strong:0,recommendations_date:0,recommendations_hold:0,recommendations_sell:0,recommendations_sell_strong:0,recommendations_total:0,target_price_average:0,target_price_date:0,target_price_estimates:0,target_price_high:0,target_price_low:0,target_price_median:0}}catch(i){return console.error("Error in binance.exchangeInfo:",i),null}}}var xd=Object.defineProperty,_d=(t,e,i)=>e in t?xd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ti=(t,e,i)=>_d(t,typeof e!="symbol"?e+"":e,i);const bd="https://financialmodelingprep.com",Kr={"1D":{endpoint:"/stable/historical-price-eod/full",type:"daily"},D:{endpoint:"/stable/historical-price-eod/full",type:"daily"},1:{endpoint:"/stable/historical-chart/1min",interval:"1min",type:"intraday"},5:{endpoint:"/stable/historical-chart/5min",interval:"5min",type:"intraday"},15:{endpoint:"/stable/historical-chart/15min",interval:"15min",type:"intraday"},30:{endpoint:"/stable/historical-chart/30min",interval:"30min",type:"intraday"},60:{endpoint:"/stable/historical-chart/1hour",interval:"1hour",type:"intraday"},240:{endpoint:"/stable/historical-chart/4hour",interval:"4hour",type:"intraday"},"4H":{endpoint:"/stable/historical-chart/4hour",interval:"4hour",type:"intraday"}},zr={NASDAQ:"America/New_York",NYSE:"America/New_York",AMEX:"America/New_York",NYSEArca:"America/New_York",BATS:"America/New_York",OTC:"America/New_York",PNK:"America/New_York",TSX:"America/Toronto",TSXV:"America/Toronto",LSE:"Europe/London",EURONEXT:"Europe/Paris",XETRA:"Europe/Berlin",JPX:"Asia/Tokyo",HKSE:"Asia/Hong_Kong",SSE:"Asia/Shanghai",SHZ:"Asia/Shanghai",ASX:"Australia/Sydney",NSE:"Asia/Kolkata",BSE:"Asia/Kolkata",KRX:"Asia/Seoul",CRYPTO:"Etc/UTC"},Hr={NASDAQ:"0930-1600",NYSE:"0930-1600",AMEX:"0930-1600",NYSEArca:"0930-1600",BATS:"0930-1600",OTC:"0930-1600",PNK:"0930-1600",TSX:"0930-1600",TSXV:"0930-1600",LSE:"0800-1630",EURONEXT:"0900-1730",XETRA:"0900-1730",JPX:"0900-1530",HKSE:"0930-1600",SSE:"0930-1500",SHZ:"0930-1500",ASX:"1000-1600",NSE:"0915-1530",BSE:"0915-1530",KRX:"0900-1530",CRYPTO:"24x7"},vd={daily:{periodType:"day",multiplier:1},"1min":{periodType:"minute",multiplier:1},"5min":{periodType:"minute",multiplier:5},"15min":{periodType:"minute",multiplier:15},"30min":{periodType:"minute",multiplier:30},"1hour":{periodType:"hour",multiplier:1},"4hour":{periodType:"hour",multiplier:4}};class wd extends sr{constructor(e){super({requiresApiKey:!0,providerName:"FMP"}),Ti(this,"_apiKey",null),Ti(this,"_baseUrl",bd),Ti(this,"_profileCache",new Map),e?.apiKey&&this.configure(e)}configure(e){super.configure(e),this._apiKey=e.apiKey,e.baseUrl&&(this._baseUrl=e.baseUrl)}getSupportedTimeframes(){return new Set(["1","5","15","30","60","240","D"])}async _getMarketDataNative(e,i,r,s,a){this.ensureConfigured();try{const n=i.toUpperCase(),o=Kr[n]||Kr[i];return o?o.type==="intraday"?this._fetchIntradayData(e,o.endpoint,o.interval,s,a,r):this._fetchDailyData(e,s,a,r):(console.error(`FMP: Unsupported timeframe: ${i}`),[])}catch(n){return console.error("Error in FMPProvider.getMarketData:",n),[]}}async _fetchDailyData(e,i,r,s){let a=`${this._baseUrl}/stable/historical-price-eod/full?symbol=${e}&apikey=${this._apiKey}`;i&&(a+=`&from=${this._msToDateStr(i)}`),r&&(a+=`&to=${this._msToDateStr(r)}`);const n=await fetch(a);if(!n.ok){const p=await n.text();throw new Error(`FMP HTTP ${n.status}: ${p}`)}const o=await n.json();if(!Array.isArray(o)||o.length===0)return[];o.reverse();const l=s&&s>0&&s<o.length?o.slice(o.length-s):o,{session:c,timezone:h}=await this._resolveSessionInfo(e);return l.map(p=>{const u=this._dateStrToMs(p.date),f=Wr(u,c,h,"day");return{openTime:u,open:p.open,high:p.high,low:p.low,close:p.close,volume:p.volume,closeTime:f,quoteAssetVolume:0,numberOfTrades:0,takerBuyBaseAssetVolume:0,takerBuyQuoteAssetVolume:0,ignore:0}})}async _fetchIntradayData(e,i,r,s,a,n){let o=`${this._baseUrl}${i}?symbol=${e}&apikey=${this._apiKey}`;s&&(o+=`&from=${this._msToDateStr(s)}`),a&&(o+=`&to=${this._msToDateStr(a)}`);const l=await fetch(o);if(!l.ok){const x=await l.text();if(l.status===403||x.includes("Restricted Endpoint"))return console.error(`FMP: Intraday data (${r}) requires a paid plan. Use daily timeframe ('D') with a free API key, or upgrade at https://financialmodelingprep.com/`),[];throw new Error(`FMP HTTP ${l.status}: ${x}`)}const c=await l.json();if(!Array.isArray(c)||c.length===0)return[];c.reverse();const h=n&&n>0&&n<c.length?c.slice(c.length-n):c,{periodType:p,multiplier:u}=vd[r]||{periodType:"minute",multiplier:1},{session:f,timezone:m}=await this._resolveSessionInfo(e);return h.map(x=>{const _=this._dateTimeStrToMs(x.date),b=Wr(_,f,m,p,u);return{openTime:_,open:x.open,high:x.high,low:x.low,close:x.close,volume:x.volume,closeTime:b,quoteAssetVolume:0,numberOfTrades:0,takerBuyBaseAssetVolume:0,takerBuyQuoteAssetVolume:0,ignore:0}})}async getSymbolInfo(e){this.ensureConfigured();try{const i=await this._fetchProfile(e);if(!i)return console.error(`FMP: Symbol ${e} not found`),null;const r=i.exchange||"",s=zr[r]||"America/New_York",a=Hr[r]||"0930-1600";let n="stock";return i.isEtf?n="etf":i.isFund?n="fund":this._isCrypto(e)?n="crypto":this._isForex(e)&&(n="forex"),{ticker:i.symbol,tickerid:`${r}:${i.symbol}`,prefix:r,root:i.symbol,description:i.companyName||i.symbol,type:n,main_tickerid:`${r}:${i.symbol}`,current_contract:"",isin:i.isin||"",basecurrency:i.currency||"USD",currency:i.currency||"USD",timezone:n==="crypto"?"Etc/UTC":s,country:i.country||"",mintick:.01,pricescale:100,minmove:1,pointvalue:1,mincontract:0,session:n==="crypto"?"24x7":a,volumetype:"base",expiration_date:0,employees:parseInt(i.fullTimeEmployees)||0,industry:i.industry||"",sector:i.sector||"",shareholders:0,shares_outstanding_float:0,shares_outstanding_total:0,recommendations_buy:0,recommendations_buy_strong:0,recommendations_date:0,recommendations_hold:0,recommendations_sell:0,recommendations_sell_strong:0,recommendations_total:0,target_price_average:0,target_price_date:0,target_price_estimates:0,target_price_high:0,target_price_low:0,target_price_median:0}}catch(i){return console.error("Error in FMPProvider.getSymbolInfo:",i),null}}async _fetchProfile(e){if(this._profileCache.has(e))return this._profileCache.get(e);const i=`${this._baseUrl}/stable/profile?symbol=${e}&apikey=${this._apiKey}`,r=await fetch(i);if(!r.ok)return null;const s=await r.json();if(!Array.isArray(s)||s.length===0)return null;const a=s[0];return this._profileCache.set(e,a),a}async _resolveSessionInfo(e){try{const i=await this._fetchProfile(e);if(i){const r=i.exchange||"",s=this._isCrypto(e),a=s?"Etc/UTC":zr[r]||"America/New_York";return{session:s?"24x7":Hr[r]||"0930-1600",timezone:a}}}catch{}return{session:"0930-1600",timezone:"America/New_York"}}_msToDateStr(e){return new Date(e).toISOString().split("T")[0]}_dateStrToMs(e){return new Date(e+"T00:00:00Z").getTime()}_dateTimeStrToMs(e){return new Date(e.replace(" ","T")+"Z").getTime()}_isCrypto(e){return/^[A-Z]+(USD|USDT|BTC|ETH)$/.test(e)&&e.length<=10}_isForex(e){return/^[A-Z]{6}$/.test(e)&&!this._isCrypto(e)}}var Sd=Object.defineProperty,Ed=(t,e,i)=>e in t?Sd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ft=(t,e,i)=>Ed(t,typeof e!="symbol"?e+"":e,i);const Nd="https://data.alpaca.markets",Cd="https://paper-api.alpaca.markets/v2",Id="https://api.alpaca.markets/v2",Pi=1e4,Gr={1:"1Min",3:"3Min",5:"5Min",15:"15Min",30:"30Min",60:"1Hour",120:"2Hour",240:"4Hour","4H":"4Hour","1D":"1Day",D:"1Day","1W":"1Week",W:"1Week","1M":"1Month",M:"1Month"},kd={NASDAQ:"America/New_York",NYSE:"America/New_York",AMEX:"America/New_York",ARCA:"America/New_York",BATS:"America/New_York",OTC:"America/New_York",CRYPTO:"Etc/UTC"},Ad={NASDAQ:"0930-1600",NYSE:"0930-1600",AMEX:"0930-1600",ARCA:"0930-1600",BATS:"0930-1600",OTC:"0930-1600",CRYPTO:"24x7"},Td={Min:"minute",Hour:"hour",Day:"day",Week:"week",Month:"month"};class Pd extends sr{constructor(e){super({requiresApiKey:!0,providerName:"Alpaca"}),ft(this,"_apiKey",null),ft(this,"_apiSecret",null),ft(this,"_dataUrl",Nd),ft(this,"_tradingUrl",Cd),ft(this,"_feed",null),ft(this,"_assetCache",new Map),ft(this,"_calendarCache",new Map),e?.apiKey&&e?.apiSecret&&this.configure(e)}configure(e){super.configure(e),this._apiKey=e.apiKey,this._apiSecret=e.apiSecret,e.feed&&(this._feed=e.feed),e.dataUrl&&(this._dataUrl=e.dataUrl),e.tradingUrl?this._tradingUrl=e.tradingUrl:e.paper===!1&&(this._tradingUrl=Id)}_headers(){return{"APCA-API-KEY-ID":this._apiKey,"APCA-API-SECRET-KEY":this._apiSecret}}getSupportedTimeframes(){return new Set(["1","3","5","15","30","45","60","120","180","240","D","W","M"])}async _getMarketDataNative(e,i,r,s,a){this.ensureConfigured();try{const n=this._resolveTimeframe(i);if(!n)return console.error(`Alpaca: Unsupported timeframe: ${i}`),[];const o=this._isCrypto(e),l=await this._fetchAllBars(e,n,o,s,a,r);if(l.length===0)return[];const{periodType:c,multiplier:h}=this._parseAlpacaTimeframe(n);if(o)return this._convertBarsCrypto(l,c,h);const p=l[0].t.slice(0,10),u=l[l.length-1].t.slice(0,10),f=this._addDaysToDate(u,40);return await this._ensureCalendar(p,f),this._convertBarsStock(l,c,h)}catch(n){return console.error("Error in AlpacaProvider.getMarketData:",n),[]}}async _fetchAllBars(e,i,r,s,a,n){const o=[];let l=null;const c=n||1/0,h=Math.min(n||Pi,Pi);do{const p=this._buildBarsUrl(e,i,r,s,a,h,l),u=await fetch(p,{headers:this._headers()});if(!u.ok){const x=await u.text();throw new Error(`Alpaca HTTP ${u.status}: ${x}`)}const f=await u.json(),m=Object.keys(f.bars||{})[0];if(!m||!f.bars[m]||(o.push(...f.bars[m]),l=f.next_page_token,o.length>=c))break}while(l);return n&&n>0&&o.length>n?o.slice(0,n):o}_buildBarsUrl(e,i,r,s,a,n,o){const l=r?`${this._dataUrl}/v1beta3/crypto/us/bars`:`${this._dataUrl}/v2/stocks/bars`,c=new URLSearchParams;return c.set("symbols",e),c.set("timeframe",i),c.set("sort","asc"),s&&c.set("start",new Date(s).toISOString()),a&&c.set("end",new Date(a).toISOString()),n&&c.set("limit",String(Math.min(n,Pi))),o&&c.set("page_token",o),!r&&this._feed&&c.set("feed",this._feed),`${l}?${c.toString()}`}async getSymbolInfo(e){this.ensureConfigured();try{const i=await this._fetchAsset(e);if(!i)return console.error(`Alpaca: Symbol ${e} not found`),null;const r=i.exchange||"",s=i.class==="crypto",a=s?"Etc/UTC":kd[r]||"America/New_York",n=s?"24x7":Ad[r]||"0930-1600";let o="stock";s&&(o="crypto");const l=s&&e.split("/")[1]||"USD",c=s?e.split("/")[0]||e:l,h=i.price_increment?parseFloat(i.price_increment):.01,p=Math.round(1/h);return{ticker:i.symbol,tickerid:`${r}:${i.symbol}`,prefix:r,root:s?e.split("/")[0]:i.symbol,description:i.name||i.symbol,type:o,main_tickerid:`${r}:${i.symbol}`,current_contract:"",isin:"",basecurrency:c,currency:l,timezone:a,country:s?"":"US",mintick:h,pricescale:p,minmove:1,pointvalue:1,mincontract:i.min_order_size?parseFloat(i.min_order_size):0,session:n,volumetype:"base",expiration_date:0,employees:0,industry:"",sector:"",shareholders:0,shares_outstanding_float:0,shares_outstanding_total:0,recommendations_buy:0,recommendations_buy_strong:0,recommendations_date:0,recommendations_hold:0,recommendations_sell:0,recommendations_sell_strong:0,recommendations_total:0,target_price_average:0,target_price_date:0,target_price_estimates:0,target_price_high:0,target_price_low:0,target_price_median:0}}catch(i){return console.error("Error in AlpacaProvider.getSymbolInfo:",i),null}}_convertBarsCrypto(e,i,r){return e.map((s,a,n)=>{const o=new Date(s.t).getTime(),l=a<n.length-1?new Date(n[a+1].t).getTime():Wt(o,i,r);return this._toKline(s,o,l)})}_convertBarsStock(e,i,r){const s="America/New_York";return e.map(a=>{const n=new Date(a.t).getTime(),o=a.t.slice(0,10);let l;if(i==="day"){const c=this._calendarCache.get(o),h=c?c.close:"16:00";l=qe(o,h,s)}else if(i==="minute"||i==="hour"){const c=n+r*{minute:6e4,hour:36e5}[i],h=this._calendarCache.get(o),p=h?h.close:"16:00",u=qe(o,p,s);l=Math.min(c,u)}else i==="week"?l=this._weeklyCloseFromCalendar(o,s):i==="month"?l=this._monthlyCloseFromCalendar(o,s):l=Wt(n,i,r);return this._toKline(a,n,l)})}_toKline(e,i,r){return{openTime:i,open:e.o,high:e.h,low:e.l,close:e.c,volume:e.v,closeTime:r,quoteAssetVolume:0,numberOfTrades:e.n,takerBuyBaseAssetVolume:0,takerBuyQuoteAssetVolume:0,ignore:0}}_weeklyCloseFromCalendar(e,i){const r=new Date(e+"T00:00:00Z"),s=r.getUTCDay(),a=s<=5?5-s:5-s+7;for(let l=a;l>=0;l--){const c=r.getTime()+l*864e5,h=new Date(c).toISOString().split("T")[0],p=this._calendarCache.get(h);if(p)return qe(h,p.close,i)}const n=r.getTime()+a*864e5,o=new Date(n).toISOString().split("T")[0];return qe(o,"16:00",i)}_monthlyCloseFromCalendar(e,i){const[r,s]=e.split("-").map(Number),a=new Date(Date.UTC(r,s,0)).getUTCDate();for(let o=a;o>=1;o--){const l=`${r}-${String(s).padStart(2,"0")}-${String(o).padStart(2,"0")}`,c=this._calendarCache.get(l);if(c)return qe(l,c.close,i)}const n=new Date(Date.UTC(r,s,0));for(;n.getUTCDay()===0||n.getUTCDay()===6;)n.setUTCDate(n.getUTCDate()-1);return qe(n.toISOString().split("T")[0],"16:00",i)}async _ensureCalendar(e,i){if(this._calendarCache.has(e)&&this._calendarCache.has(i))return;const r=`${this._tradingUrl}/calendar?start=${e}&end=${i}`,s=await fetch(r,{headers:this._headers()});if(!s.ok){console.warn(`Alpaca calendar API returned ${s.status}, falling back to defaults`);return}const a=await s.json();for(const n of a)this._calendarCache.set(n.date,n)}async _fetchAsset(e){if(this._assetCache.has(e))return this._assetCache.get(e);const i=encodeURIComponent(e),r=`${this._tradingUrl}/assets/${i}`,s=await fetch(r,{headers:this._headers()});if(!s.ok)return null;const a=await s.json();return this._assetCache.set(e,a),a}_parseAlpacaTimeframe(e){const i=e.match(/^(\d+)(Min|Hour|Day|Week|Month)$/);if(i){const r=parseInt(i[1],10),s=Td[i[2]];if(s)return{periodType:s,multiplier:r}}return{periodType:"day",multiplier:1}}_resolveTimeframe(e){return Gr[e.toUpperCase()]||Gr[e]||null}_isCrypto(e){return e.includes("/")}_addDaysToDate(e,i){const r=new Date(e+"T00:00:00Z");return r.setUTCDate(r.getUTCDate()+i),r.toISOString().split("T")[0]}}class Dd{async getMarketData(){return[]}}const Md=typeof process<"u"&&process.versions&&process.versions.node;let fi=null;if(Md)try{fi=new Dd}catch{fi=null}const jd={Binance:new yd,FMP:new wd,Alpaca:new Pd,...fi?{Mock:fi}:{}};var Rd=Object.defineProperty,Od=(t,e,i)=>e in t?Rd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Vd=(t,e,i)=>Od(t,typeof e!="symbol"?e+"":e,i);class $d extends Error{constructor(e,i){super(e),Vd(this,"method"),this.name="PineRuntimeError",this.method=i}}export{Pd as AlpacaProvider,sr as BaseProvider,yd as BinanceProvider,Lr as Context,wd as FMPProvider,$r as Indicator,$d as PineRuntimeError,hn as PineTS,jd as Provider,Ld as TIMEFRAME_PERIOD_INFO,Ft as TIMEFRAME_SECONDS,nd as aggregateCandles,Wt as computeNextPeriodStart,Wr as computeSessionClose,un as getAggregationRatio,qe as localTimeToUTC,sd as selectSubTimeframe};
|
|
118
|
+
`),this.indent--,this.write(this.indentStr.repeat(this.indent)),this.write("})()")}generateSequenceExpression(e){this.write("(");for(let i=0;i<e.expressions.length;i++)this.generateExpression(e.expressions[i]),i<e.expressions.length-1&&this.write(", ");this.write(")")}getPrecedence(e){switch(e.type){case"Literal":case"Identifier":case"ArrayExpression":case"ObjectExpression":return 20;case"CallExpression":case"MemberExpression":return 19;case"UnaryExpression":case"UpdateExpression":return 15;case"BinaryExpression":case"LogicalExpression":switch(e.operator){case"*":case"/":case"%":return 13;case"+":case"-":return 12;case"<":case"<=":case">":case">=":return 10;case"==":case"!=":return 9;case"and":case"&&":return 5;case"or":case"||":return 4;default:return 0}case"ConditionalExpression":return 3;case"AssignmentExpression":case"AssignmentPattern":return 2;case"SequenceExpression":return 1;default:return 0}}}function js(t){const e=/^\s*\/\/\s*@version\s*=\s*(\d+)\s*$/im,i=t.match(e);return i&&i[1]?parseInt(i[1],10):null}function Za(t,e={}){const i=js(t);if(i===null)return{success:!1,version:null,error:"Pine Script version not found. Please add //@version=X comment to your script."};if(i<5)return{success:!1,version:i,error:`Pine Script version ${i} is not supported. Only version 5 and above are supported.`};try{const r=new Ra(t).tokenize(),s=new Ha(r).parse(),a={...e,sourceCode:t},n=new Qa(a).generate(s);return{success:!0,version:i,code:n,ast:s,tokens:r}}catch(r){return{success:!1,version:i,error:r.message,stack:r.stack}}}function Ja(t){if(typeof t=="function")return t.toString();{const e=js(t);if(e===null)return t;if(e>=5){const i=Za(t);if(i.success)return i.code;throw new Error(`Failed to transpile Pine Script version ${e}: ${i.error}`)}else throw new Error(`Unsupported Pine Script version ${e}. Only version 5 and above are supported.`)}}function eo(t,e={debug:!1,ln:!1}){typeof e=="boolean"&&(e={debug:e,ln:!0});const{debug:i}=e;let r=Ja(t);r=ma(r);const s=i?r.split(`
|
|
119
|
+
`):[],a=Ts(r,{ecmaVersion:"latest",sourceType:"module",locations:i});ga(a),pa(a),ua(a);const n=new na;ya(a,n);const o=_a(a,n)||"";if(ka(a,n,o,e,s),Ia(a),Ca(a),a.type==="Program"&&a.body.length>0){const p=a.body[0],u=p?.expression||p;u.body?.type==="BlockStatement"&&u.body.body.unshift({type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:"__maxLoops"},init:{type:"LogicalExpression",operator:"||",left:{type:"MemberExpression",object:{type:"Identifier",name:"$"},property:{type:"Identifier",name:"__maxLoops"},computed:!1},right:{type:"Literal",value:5e5}}}]})}const l=Jn||Qi||void 0,c=Object.assign({},l,{LineComment(p,u){u.write("//"+p.value)}}),h=Ds(a,{generator:c,comments:i});return new Function("",`var _r = ${h}
|
|
120
|
+
; return _r;`)(this)}function to(t){return e=>new R(e.array.map(i=>Math.abs(i)),e.type,t)}function io(t){return e=>{let i=0,r=0;for(const s of e.array){const a=Number(s);isNaN(a)||(r++,i+=(a-i)/r)}return r===0?NaN:t.precision(i)}}function ro(t){return(e,i)=>{const r=e.array;let s=0,a=r.length-1;for(;s<=a;){const n=Math.floor((s+a)/2),o=r[n];if(o===i)return n;o<i?s=n+1:a=n-1}return-1}}function so(t){return(e,i)=>{const r=e.array;let s=0,a=r.length;for(;s<a;){const n=Math.floor((s+a)/2);r[n]<i?s=n+1:a=n}return s<r.length&&r[s]===i?s:s-1}}function no(t){return(e,i)=>{const r=e.array;let s=0,a=r.length;for(;s<a;){const n=Math.floor((s+a)/2);r[n]<=i?s=n+1:a=n}return s>0&&r[s-1]===i?s-1:s}}function ao(t){return e=>{e.array.length=0}}function oo(t){return(e,i)=>(e.array.push(...i.array),e)}function lo(t){return e=>new R([...e.array],e.type,t)}function co(t){return(e,i,r=!0)=>{const s=e.array,a=i.array;if(s.length!==a.length)return NaN;let n=0,o=0,l=0;const c=[];for(let m=0;m<s.length;m++){const x=Number(s[m]),_=Number(a[m]);!isNaN(x)&&x!==null&&x!==void 0&&!isNaN(_)&&_!==null&&_!==void 0&&(n+=x,o+=_,l++,c.push(m))}if(l===0)return NaN;const h=n/l,p=o/l;let u=0;for(const m of c){const x=Number(s[m]),_=Number(a[m]);u+=(x-h)*(_-p)}const f=r?l:l-1;return f<=0?NaN:t.precision(u/f)}}function ho(t){return e=>e.array.every(i=>!isNaN(i)&&i)}function uo(t){return t.every(e=>typeof e=="number")?t.every(e=>Number.isInteger(e))?D.int:D.float:t.every(e=>typeof e=="string")?D.string:t.every(e=>typeof e=="boolean")?D.bool:D.any}function Re(t){return typeof t=="number"?Number.isInteger(t)?D.int:D.float:typeof t=="string"?D.string:typeof t=="boolean"?D.bool:D.any}function zt(t,e){if(typeof t=="number"&&isNaN(t)||e===D.any)return!0;switch(e){case D.int:return Number.isInteger(t)||isNaN(t);case D.float:return typeof t=="number";case D.string:return typeof t=="string";case D.bool:return typeof t=="boolean";case D.box:case D.label:case D.line:case D.linefill:case D.table:case D.color:return t===null||typeof t=="object"||typeof t=="string"}return!1}function po(t){return(e,i,r=0,s)=>{const a=e.array.length,n=s!==void 0?Math.min(s,a):a;for(let o=r;o<n;o++){if(!zt(i,e.type))throw new Error(`Cannot call 'array.fill' with argument 'value'='${i}'. An argument of 'literal ${typeof i}' type was used but a '${e.type}' is expected.`);e.array[o]=typeof i=="number"?t.precision(i):i}}}function fo(t){return e=>e.array.length>0?e.array[0]:t.NA}function mo(t){return(e,i)=>(i<0&&(i=e.array.length+i),i<0||i>=e.array.length?(t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.get"),NaN):e.array[i])}function go(t){return(e,i)=>e.array.includes(i)}function yo(t){return(e,i)=>typeof i=="number"&&i!==i?e.array.findIndex(r=>typeof r=="number"&&r!==r):e.array.indexOf(i)}function xo(t){return(e,i,r)=>{if(!zt(r,e.type))throw new Error(`Cannot call 'array.insert' with argument 'value'='${r}'. An argument of 'literal ${typeof r}' type was used but a '${e.type}' is expected.`);if(i<0&&(i=e.array.length+i),i<0||i>e.array.length){t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.insert");return}e.array.splice(i,0,r)}}function _o(t){return(e,i=",")=>e.array.join(i)}function bo(t){return e=>e.array.length>0?e.array[e.array.length-1]:t.NA}function vo(t){return(e,i)=>e.array.lastIndexOf(i)}function wo(t){return(e,i=0)=>{const r=e.array;if(r.length===0)return t.NA;if(i===0){let s=r[0];for(let a=1;a<r.length;a++)r[a]>s&&(s=r[a]);return s??t.NA}return[...r].sort((s,a)=>a-s)[i]??t.NA}}function So(t){return e=>{const i=e.array;if(i.length===0)return NaN;const r=new Array(i.length);for(let a=0;a<i.length;a++)r[a]=i[a];r.sort((a,n)=>a-n);const s=Math.floor(r.length/2);return r.length%2!==0?r[s]:(r[s-1]+r[s])/2}}function Eo(t){return(e,i=0)=>{const r=e.array;if(r.length===0)return t.NA;if(i===0){let s=r[0];for(let a=1;a<r.length;a++)r[a]<s&&(s=r[a]);return s??t.NA}return[...r].sort((s,a)=>s-a)[i]??t.NA}}function No(t){return e=>{if(e.array.length===0)return NaN;const i=new Map;let r=0;for(const a of e.array){const n=(i.get(a)||0)+1;i.set(a,n),n>r&&(r=n)}const s=[];for(const[a,n]of i)n===r&&s.push(a);return s.sort((a,n)=>typeof a=="number"&&typeof n=="number"?a-n:typeof a=="string"&&typeof n=="string"?a<n?-1:a>n?1:0:0),s[0]}}function Co(t){return(e,i)=>{const r=e.array,s=r.length;if(s===0)return NaN;const a=new Array(s);for(let c=0;c<s;c++){const h=Number(r[c]);if(isNaN(h)||h===null||h===void 0)return NaN;a[c]=h}a.sort((c,h)=>c-h),i<0&&(i=0),i>100&&(i=100);const n=i/100*s-.5;if(n<=0)return t.precision(a[0]);if(n>=s-1)return t.precision(a[s-1]);const o=Math.floor(n),l=n-o;return t.precision(a[o]*(1-l)+a[o+1]*l)}}function Io(t){return(e,i)=>{const r=e.array,s=r.length;if(s===0)return NaN;const a=new Array;for(let o=0;o<s;o++){const l=Number(r[o]);!isNaN(l)&&l!==null&&l!==void 0&&a.push(l)}if(a.length===0)return NaN;a.sort((o,l)=>o-l),i<0&&(i=0),i>100&&(i=100);const n=Math.ceil(i/100*s);return n<=0?a[0]:n>a.length?NaN:a[n-1]}}function ko(t){return(e,i)=>{if(e.array.length===0)return NaN;const r=Math.floor(i);if(r<0||r>=e.array.length)return NaN;const s=Number(e.array[r]);if(isNaN(s)||s===null||s===void 0)return NaN;let a=0;for(const o of e.array){const l=Number(o);!isNaN(l)&&l!==null&&l!==void 0&&l<s&&a++}const n=e.array.length-1;return n<=0?NaN:a/n*100}}function Ao(t){return e=>e.array.pop()}function To(t){return(e,i)=>{if(!zt(i,e.type))throw new Error(`Cannot call 'array.push' with argument 'value'='${i}'. An argument of 'literal ${typeof i}' type was used but a '${e.type}' is expected.`);e.array.push(typeof i=="number"?t.precision(i):i)}}function Po(t){return e=>t.precision(t.pine.array.max(e)-t.pine.array.min(e))}function Do(t){return(e,i)=>(i<0&&(i=e.array.length+i),i<0||i>=e.array.length?(t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.remove"),NaN):e.array.splice(i,1)[0])}function Mo(t){return e=>{e.array.reverse()}}function Ro(t){return(e,i,r)=>{if(!zt(r,e.type))throw new Error(`Cannot call 'array.set' with argument 'value'='${r}'. An argument of 'literal ${typeof r}' type was used but a '${e.type}' is expected.`);if(i<0&&(i=e.array.length+i),i<0||i>=e.array.length){t.warn(`Index ${i} is out of bounds, array size is ${e.array.length}.`,"array.set");return}e.array[i]=typeof r=="number"?t.precision(r):r}}function Oo(t){return e=>e.array.shift()}function Vo(t){return e=>e.array.length}function Lo(t){return(e,i,r)=>{const s=r!==void 0?r:void 0;return new R(e.array.slice(i,s),e.type,t)}}function jo(t){return e=>e.array.some(i=>!isNaN(i)&&i)}var At=(t=>(t[t.ascending=1]="ascending",t[t.descending=0]="descending",t))(At||{}),$s=(t=>(t.AED="AED",t.ARS="ARS",t.AUD="AUD",t.BDT="BDT",t.BHD="BHD",t.BRL="BRL",t.BTC="BTC",t.CAD="CAD",t.CHF="CHF",t.CLP="CLP",t.CNY="CNY",t.COP="COP",t.CZK="CZK",t.DKK="DKK",t.EGP="EGP",t.ETH="ETH",t.EUR="EUR",t.GBP="GBP",t.HKD="HKD",t.HUF="HUF",t.IDR="IDR",t.ILS="ILS",t.INR="INR",t.ISK="ISK",t.JPY="JPY",t.KES="KES",t.KRW="KRW",t.KWD="KWD",t.LKR="LKR",t.MAD="MAD",t.MXN="MXN",t.MYR="MYR",t.NGN="NGN",t.NOK="NOK",t.NONE="NONE",t.NZD="NZD",t.PEN="PEN",t.PHP="PHP",t.PKR="PKR",t.PLN="PLN",t.QAR="QAR",t.RON="RON",t.RSD="RSD",t.RUB="RUB",t.SAR="SAR",t.SEK="SEK",t.SGD="SGD",t.THB="THB",t.TND="TND",t.TRY="TRY",t.TWD="TWD",t.USD="USD",t.USDT="USDT",t.VES="VES",t.VND="VND",t.ZAR="ZAR",t))($s||{}),Bs=(t=>(t[t.sunday=1]="sunday",t[t.monday=2]="monday",t[t.tuesday=3]="tuesday",t[t.wednesday=4]="wednesday",t[t.thursday=5]="thursday",t[t.friday=6]="friday",t[t.saturday=7]="saturday",t))(Bs||{}),Fs=(t=>(t.all="all",t.data_window="data_window",t.none="none",t.pane="pane",t.price_scale="price_scale",t.status_line="status_line",t))(Fs||{}),Ws=(t=>(t.flag="shape_flag",t.arrowdown="shape_arrow_down",t.arrowup="shape_arrow_up",t.circle="shape_circle",t.cross="shape_cross",t.diamond="shape_diamond",t.labeldown="shape_label_down",t.labelup="shape_label_up",t.square="shape_square",t.triangledown="shape_triangle_down",t.triangleup="shape_triangle_up",t.xcross="shape_xcross",t))(Ws||{}),Us=(t=>(t.abovebar="AboveBar",t.belowbar="BelowBar",t.absolute="Absolute",t.bottom="Bottom",t.top="Top",t))(Us||{}),qs=(t=>(t.auto="auto",t.tiny="tiny",t.small="small",t.normal="normal",t.large="large",t.huge="huge",t))(qs||{}),Ks=(t=>(t.inherit="inherit",t.mintick="mintick",t.percent="percent",t.price="price",t.volume="volume",t))(Ks||{}),$o=(t=>(t.linestyle_dashed="linestyle_dashed",t.linestyle_dotted="linestyle_dotted",t.linestyle_solid="linestyle_solid",t.style_area="style_area",t.style_areabr="style_areabr",t.style_circles="style_circles",t.style_columns="style_columns",t.style_cross="style_cross",t.style_histogram="style_histogram",t.style_line="style_line",t.style_linebr="style_linebr",t.style_stepline="style_stepline",t.style_stepline_diamond="style_stepline_diamond",t.style_steplinebr="style_steplinebr",t))($o||{}),zs=(t=>(t.gaps_on="gaps_on",t.gaps_off="gaps_off",t.lookahead_on="lookahead_on",t.lookahead_off="lookahead_off",t))(zs||{}),Hs=(t=>(t.bar_index="bi",t.bar_time="bt",t))(Hs||{}),Gs=(t=>(t.price="pr",t.abovebar="ab",t.belowbar="bl",t))(Gs||{}),Ys=(t=>(t.left="l",t.right="r",t.both="b",t.none="n",t))(Ys||{}),Xs=(t=>(t.align_bottom="bottom",t.align_top="top",t.align_left="left",t.align_center="center",t.align_right="right",t.wrap_auto="auto",t.wrap_none="none",t.format_bold="bold",t.format_italic="italic",t.format_none="none",t))(Xs||{}),Qs=(t=>(t.family_default="default",t.family_monospace="monospace",t))(Qs||{}),Zs=(t=>(t.none="none",t.splits="splits",t.dividends="dividends",t))(Zs||{}),Js=(t=>(t.inherit="inherit",t.off="off",t.on="on",t))(Js||{}),en=(t=>(t.actual="earnings_actual",t.estimate="earnings_estimate",t.standardized="earnings_standardized",t.future_eps="earnings_future_eps",t.future_period_end_time="earnings_future_period_end_time",t.future_revenue="earnings_future_revenue",t.future_time="earnings_future_time",t))(en||{}),tn=(t=>(t.gross="dividends_gross",t.net="dividends_net",t.future_amount="dividends_future_amount",t.future_ex_date="dividends_future_ex_date",t.future_pay_date="dividends_future_pay_date",t))(tn||{}),rn=(t=>(t.denominator="splits_denominator",t.numerator="splits_numerator",t))(rn||{}),sn=(t=>(t.top_left="top_left",t.top_center="top_center",t.top_right="top_right",t.middle_left="middle_left",t.middle_center="middle_center",t.middle_right="middle_right",t.bottom_left="bottom_left",t.bottom_center="bottom_center",t.bottom_right="bottom_right",t))(sn||{}),nn=(t=>(t.left="left",t.none="none",t.right="right",t))(nn||{}),an=(t=>(t.inherit="inherit",t.off="off",t.on="on",t))(an||{});const Bo={order:At,currency:$s,dayofweek:Bs,display:Fs,shape:Ws,location:Us,size:qs,format:Ks,barmerge:zs,xloc:Hs,yloc:Gs,extend:Ys,text:Xs,font:Qs,adjustment:Zs,backadjustment:Js,earnings:en,dividends:tn,splits:rn,position:sn,scale:nn,settlement_as_close:an};function Fo(t){return(e,i=At.ascending)=>{e.array.sort((r,s)=>{let a=isNaN(r)?1/0:r,n=isNaN(s)?1/0:s;return i===At.ascending?a-n:n-a})}}function Wo(t){return(e,i=At.ascending)=>{const r=e.array.map((s,a)=>a);return r.sort((s,a)=>{const n=isNaN(e.array[s])?1/0:e.array[s],o=isNaN(e.array[a])?1/0:e.array[a];return i===At.ascending?n-o:o-n}),new R(r,D.int,t)}}function Uo(t){return e=>{const i=t.array.avg(e),r=t.array.stdev(e);return isNaN(r)?new R(e.array.map(()=>NaN),D.int,t):r===0?new R(e.array.map(()=>1),D.int,t):new R(e.array.map(s=>(s-i)/r),D.int,t)}}function qo(t){return(e,i=!0)=>{const r=e.array,s=r.length;if(s===0)return NaN;let a=0,n=0,o=0;for(let h=0;h<s;h++){const p=Number(r[h]);!isNaN(p)&&p!==null&&p!==void 0&&(a+=p,n+=p*p,o++)}if(o===0)return NaN;const l=a/o;let c=n/o-l*l;return c<0?NaN:(!i&&o>1&&(c=c*o/(o-1)),!i&&o===1?0:t.precision(Math.sqrt(c)))}}function Ko(t){return e=>t.precision(e.array.reduce((i,r)=>{const s=Number(r);return isNaN(s)?i:i+s},0))}function zo(t){return(e,i)=>{if(!zt(i,e.type))throw new Error(`Cannot call 'array.unshift' with argument 'value'='${i}'. An argument of 'literal ${typeof i}' type was used but a '${e.type}' is expected.`);e.array.unshift(typeof i=="number"?t.precision(i):i)}}function Ho(t){return(e,i=!0)=>{let r=0,s=0;for(const l of e.array){const c=Number(l);!isNaN(c)&&c!==null&&c!==void 0&&(r+=c,s++)}if(s===0)return NaN;const a=r/s;let n=0;for(const l of e.array){const c=Number(l);!isNaN(c)&&c!==null&&c!==void 0&&(n+=(c-a)*(c-a))}const o=i?s:s-1;return o<=0?NaN:t.precision(n/o)}}var Go=Object.defineProperty,Yo=(t,e,i)=>e in t?Go(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,L=(t,e,i)=>Yo(t,typeof e!="symbol"?e+"":e,i),D=(t=>(t.any="",t.box="box",t.bool="bool",t.color="color",t.float="float",t.int="int",t.label="label",t.line="line",t.linefill="linefill",t.string="string",t.table="table",t))(D||{});class R{constructor(e,i,r){this.array=e,this.type=i,this.context=r,L(this,"_abs"),L(this,"_avg"),L(this,"_binary_search"),L(this,"_binary_search_leftmost"),L(this,"_binary_search_rightmost"),L(this,"_clear"),L(this,"_concat"),L(this,"_copy"),L(this,"_covariance"),L(this,"_every"),L(this,"_fill"),L(this,"_first"),L(this,"_get"),L(this,"_includes"),L(this,"_indexof"),L(this,"_insert"),L(this,"_join"),L(this,"_last"),L(this,"_lastindexof"),L(this,"_max"),L(this,"_median"),L(this,"_min"),L(this,"_mode"),L(this,"_percentile_linear_interpolation"),L(this,"_percentile_nearest_rank"),L(this,"_percentrank"),L(this,"_pop"),L(this,"_push"),L(this,"_range"),L(this,"_remove"),L(this,"_reverse"),L(this,"_set"),L(this,"_shift"),L(this,"_size"),L(this,"_slice"),L(this,"_some"),L(this,"_sort"),L(this,"_sort_indices"),L(this,"_standardize"),L(this,"_stdev"),L(this,"_sum"),L(this,"_unshift"),L(this,"_variance"),this._abs=to(this.context),this._avg=io(this.context),this._binary_search=ro(this.context),this._binary_search_leftmost=so(this.context),this._binary_search_rightmost=no(this.context),this._clear=ao(this.context),this._concat=oo(this.context),this._copy=lo(this.context),this._covariance=co(this.context),this._every=ho(this.context),this._fill=po(this.context),this._first=fo(this.context),this._get=mo(this.context),this._includes=go(this.context),this._indexof=yo(this.context),this._insert=xo(this.context),this._join=_o(this.context),this._last=bo(this.context),this._lastindexof=vo(this.context),this._max=wo(this.context),this._median=So(this.context),this._min=Eo(this.context),this._mode=No(this.context),this._percentile_linear_interpolation=Co(this.context),this._percentile_nearest_rank=Io(this.context),this._percentrank=ko(this.context),this._pop=Ao(this.context),this._push=To(this.context),this._range=Po(this.context),this._remove=Do(this.context),this._reverse=Mo(this.context),this._set=Ro(this.context),this._shift=Oo(this.context),this._size=Vo(this.context),this._slice=Lo(this.context),this._some=jo(this.context),this._sort=Fo(this.context),this._sort_indices=Wo(this.context),this._standardize=Uo(this.context),this._stdev=qo(this.context),this._sum=Ko(this.context),this._unshift=zo(this.context),this._variance=Ho(this.context)}toString(){return"["+this.array.toString().replace(/,/g,", ")+"]"}[Symbol.iterator](){return this.array[Symbol.iterator]()}abs(...e){return this._abs(this,...e)}avg(...e){return this._avg(this,...e)}binary_search(...e){return this._binary_search(this,...e)}binary_search_leftmost(...e){return this._binary_search_leftmost(this,...e)}binary_search_rightmost(...e){return this._binary_search_rightmost(this,...e)}clear(...e){return this._clear(this,...e)}concat(...e){return this._concat(this,...e)}copy(...e){return this._copy(this,...e)}covariance(...e){return this._covariance(this,...e)}every(...e){return this._every(this,...e)}fill(...e){return this._fill(this,...e)}first(...e){return this._first(this,...e)}get(...e){return this._get(this,...e)}includes(...e){return this._includes(this,...e)}indexof(...e){return this._indexof(this,...e)}insert(...e){return this._insert(this,...e)}join(...e){return this._join(this,...e)}last(...e){return this._last(this,...e)}lastindexof(...e){return this._lastindexof(this,...e)}max(...e){return this._max(this,...e)}median(...e){return this._median(this,...e)}min(...e){return this._min(this,...e)}mode(...e){return this._mode(this,...e)}percentile_linear_interpolation(...e){return this._percentile_linear_interpolation(this,...e)}percentile_nearest_rank(...e){return this._percentile_nearest_rank(this,...e)}percentrank(...e){return this._percentrank(this,...e)}pop(...e){return this._pop(this,...e)}push(...e){return this._push(this,...e)}range(...e){return this._range(this,...e)}remove(...e){return this._remove(this,...e)}reverse(...e){return this._reverse(this,...e)}set(...e){return this._set(this,...e)}shift(...e){return this._shift(this,...e)}size(...e){return this._size(this,...e)}slice(...e){return this._slice(this,...e)}some(...e){return this._some(this,...e)}sort(...e){return this._sort(this,...e)}sort_indices(...e){return this._sort_indices(this,...e)}standardize(...e){return this._standardize(this,...e)}stdev(...e){return this._stdev(this,...e)}sum(...e){return this._sum(this,...e)}unshift(...e){return this._unshift(this,...e)}variance(...e){return this._variance(this,...e)}}function Xo(t){return(...e)=>new R([...e],uo(e),t)}function Qo(t){return(e,i)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;if(i===void 0){const s=r?Array(r).fill(0):[];return new R(s,D.any,t)}return new R(Array(r).fill(t.precision(i||0)),Re(i||0),t)}}function Zo(t){return(e=0,i=!1)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.bool,t)}}function Jo(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.box,t)}}function el(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.color,t)}}function tl(t){return(e=0,i=NaN)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(t.precision(i)),D.float,t)}}function il(t){return(e=0,i=0)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(t.precision(i)),D.int,t)}}function rl(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.label,t)}}function sl(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.line,t)}}function nl(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.linefill,t)}}function al(t){return(e=0,i="")=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.string,t)}}function ol(t){return(e=0,i=null)=>{const r=typeof e=="number"&&e>0&&!isNaN(e)?Math.floor(e):0;return new R(Array(r).fill(i),D.table,t)}}class y{constructor(e,i=0){this.data=e,this.offset=i}get(e){const i=this.data.length-1-(this.offset+e);return i<0||i>=this.data.length?NaN:this.data[i]}set(e,i){const r=this.data.length-1-(this.offset+e);r>=0&&r<this.data.length&&(this.data[r]=i)}get length(){return this.data.length}toArray(){return this.data}static from(e){return e instanceof y?e:Array.isArray(e)?new y(e):e!=null&&typeof e=="object"&&"__value"in e&&e.__value instanceof y?e.__value:new y([e])}}function ll(t){return(e,i=0)=>y.from(e).get(i)}class cl{constructor(e){this.context=e,this.abs=(i,...r)=>i.abs(...r),this.avg=(i,...r)=>i.avg(...r),this.binary_search=(i,...r)=>i.binary_search(...r),this.binary_search_leftmost=(i,...r)=>i.binary_search_leftmost(...r),this.binary_search_rightmost=(i,...r)=>i.binary_search_rightmost(...r),this.clear=(i,...r)=>i.clear(...r),this.concat=(i,...r)=>i.concat(...r),this.copy=(i,...r)=>i.copy(...r),this.covariance=(i,...r)=>i.covariance(...r),this.every=(i,...r)=>i.every(...r),this.fill=(i,...r)=>i.fill(...r),this.first=(i,...r)=>i.first(...r),this.from=Xo(e),this.get=(i,...r)=>i.get(...r),this.includes=(i,...r)=>i.includes(...r),this.indexof=(i,...r)=>i.indexof(...r),this.insert=(i,...r)=>i.insert(...r),this.join=(i,...r)=>i.join(...r),this.last=(i,...r)=>i.last(...r),this.lastindexof=(i,...r)=>i.lastindexof(...r),this.max=(i,...r)=>i.max(...r),this.median=(i,...r)=>i.median(...r),this.min=(i,...r)=>i.min(...r),this.mode=(i,...r)=>i.mode(...r),this.new=Qo(e),this.new_bool=Zo(e),this.new_box=Jo(e),this.new_color=el(e),this.new_float=tl(e),this.new_int=il(e),this.new_label=rl(e),this.new_line=sl(e),this.new_linefill=nl(e),this.new_string=al(e),this.new_table=ol(e),this.param=ll(),this.percentile_linear_interpolation=(i,...r)=>i.percentile_linear_interpolation(...r),this.percentile_nearest_rank=(i,...r)=>i.percentile_nearest_rank(...r),this.percentrank=(i,...r)=>i.percentrank(...r),this.pop=(i,...r)=>i.pop(...r),this.push=(i,...r)=>i.push(...r),this.range=(i,...r)=>i.range(...r),this.remove=(i,...r)=>i.remove(...r),this.reverse=(i,...r)=>i.reverse(...r),this.set=(i,...r)=>i.set(...r),this.shift=(i,...r)=>i.shift(...r),this.size=(i,...r)=>i.size(...r),this.slice=(i,...r)=>i.slice(...r),this.some=(i,...r)=>i.some(...r),this.sort=(i,...r)=>i.sort(...r),this.sort_indices=(i,...r)=>i.sort_indices(...r),this.standardize=(i,...r)=>i.standardize(...r),this.stdev=(i,...r)=>i.stdev(...r),this.sum=(i,...r)=>i.sum(...r),this.unshift=(i,...r)=>i.unshift(...r),this.variance=(i,...r)=>i.variance(...r)}}function hl(t){return e=>{e.map.clear()}}function ul(t){return(e,i)=>e.map.has(i)}function pl(t){return e=>{const i=new on(t);return i.map=new Map(e.map),i}}function fl(t){return(e,i)=>{const r=e.map.get(i);return r===void 0?NaN:r}}function dl(t){return e=>{const i=Array.from(e.map.keys()),r=Re(i[0]);return new R(i,r,t)}}function ml(t){return(e,i,r)=>{const s=e.map.get(i);return e.map.set(i,r),s===void 0?NaN:s}}function gl(t){return(e,i)=>{for(const[r,s]of i.map)e.map.set(r,s)}}function yl(t){return(e,i)=>{const r=e.map.get(i);return e.map.delete(i)?r:NaN}}function xl(t){return e=>e.map.size}function _l(t){return e=>{const i=Array.from(e.map.values()),r=Re(i[0]);return new R(i,r,t)}}var bl=Object.defineProperty,vl=(t,e,i)=>e in t?bl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Le=(t,e,i)=>vl(t,typeof e!="symbol"?e+"":e,i);class on{constructor(e){this.context=e,Le(this,"map"),Le(this,"_clear"),Le(this,"_contains"),Le(this,"_copy"),Le(this,"_get"),Le(this,"_keys"),Le(this,"_put"),Le(this,"_put_all"),Le(this,"_remove"),Le(this,"_size"),Le(this,"_values"),this.map=new Map,this._clear=hl(this.context),this._contains=ul(this.context),this._copy=pl(this.context),this._get=fl(this.context),this._keys=dl(this.context),this._put=ml(this.context),this._put_all=gl(this.context),this._remove=yl(this.context),this._size=xl(this.context),this._values=_l(this.context)}toString(){return`PineMapObject(${this.map.size})`}clear(...e){return this._clear(this,...e)}contains(...e){return this._contains(this,...e)}copy(...e){return this._copy(this,...e)}get(...e){return this._get(this,...e)}keys(...e){return this._keys(this,...e)}put(...e){return this._put(this,...e)}put_all(...e){return this._put_all(this,...e)}remove(...e){return this._remove(this,...e)}size(...e){return this._size(this,...e)}values(...e){return this._values(this,...e)}}function wl(t){return()=>new on(t)}function Sl(t){return(e,i=0)=>y.from(e).get(i)}class El{constructor(e){this.context=e,this.clear=(i,...r)=>i.clear(...r),this.contains=(i,...r)=>i.contains(...r),this.copy=(i,...r)=>i.copy(...r),this.get=(i,...r)=>i.get(...r),this.keys=(i,...r)=>i.keys(...r),this.new=wl(e),this.param=Sl(),this.put=(i,...r)=>i.put(...r),this.put_all=(i,...r)=>i.put_all(...r),this.remove=(i,...r)=>i.remove(...r),this.size=(i,...r)=>i.size(...r),this.values=(i,...r)=>i.values(...r)}}function Nl(t){return(e,i,r)=>{const s=e.matrix.length;let a=[];if(r&&(r instanceof R?a=r.array:Array.isArray(r)?a=r:a=[r]),s===0){for(let l=0;l<a.length;l++){let c=a[l];c instanceof y&&(c=c.get(0)),e.matrix.push([c])}return}const n=e.matrix[0].length,o=i!==void 0?i:n;for(let l=0;l<s;l++){let c=l<a.length?a[l]:NaN;c instanceof y&&(c=c.get(0)),e.matrix[l].splice(o,0,c)}}}function Cl(t){return(e,i,r)=>{const s=e.matrix.length;let a=[];if(r)if(r instanceof R)a=r.array;else if(Array.isArray(r))a=r;else if(r instanceof y){const c=r.get(0);Array.isArray(c)?a=c:a=[c]}else a=[r];const n=s>0?e.matrix[0].length:a.length,o=i!==void 0?i:s,l=[];for(let c=0;c<n;c++)if(c<a.length){let h=a[c];h instanceof y&&(h=h.get(0)),l.push(h)}else l.push(NaN);e.matrix.splice(o,0,l)}}function Il(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length;if(r===0)return NaN;let s=0,a=0;for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||(s+=l,a++)}return a===0?NaN:s/a}}function kl(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0;if(i<0||i>=s){t.warn(`Column index ${i} is out of bounds, matrix has ${s} columns.`,"matrix.col");const o=r>0?Re(e.matrix[0][0]):"float";return new R([],o,t)}const a=[];for(let o=0;o<r;o++)a.push(e.matrix[o][i]);const n=Re(a[0]);return new R(a,n,t)}}function Al(t){return e=>e.matrix.length===0?0:e.matrix[0].length}function Tl(t){return(e,i)=>{const r=e.matrix.length,s=i.matrix.length;if(r===0){for(let o=0;o<s;o++)e.matrix.push([...i.matrix[o]]);return}const a=e.matrix[0].length,n=s>0?i.matrix[0].length:0;if(a!==n&&s>0){console.error(`matrix.concat: Column count mismatch ${a} vs ${n}`);return}for(let o=0;o<s;o++)e.matrix.push([...i.matrix[o]])}}function Pl(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0,s=new K(i,r,NaN,t);return s.matrix=e.matrix.map(a=>[...a]),s}}function Dl(t){const e=t.length;if(e===0)return 0;if(e===1)return t[0][0];if(e===2)return t[0][0]*t[1][1]-t[0][1]*t[1][0];const i=t.map(s=>[...s]);let r=1;for(let s=0;s<e;s++){let a=s;for(;a<e&&i[a][s]===0;)a++;if(a===e)return 0;a!==s&&([i[s],i[a]]=[i[a],i[s]],r*=-1),r*=i[s][s];for(let n=s+1;n<e;n++){const o=i[n][s]/i[s][s];for(let l=s;l<e;l++)i[n][l]-=o*i[s][l]}}return r}function Ml(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;return i!==r?NaN:Dl(e.matrix)}}function Rl(t){return(e,i)=>{const r=e.matrix.length;if(r===0)return new K(0,0,NaN,t);const s=e.matrix[0].length,a=new K(r,s,NaN,t);if(i instanceof K)for(let n=0;n<r;n++)for(let o=0;o<s;o++){const l=e.matrix[n][o],c=i.matrix[n]&&i.matrix[n][o]!==void 0?i.matrix[n][o]:NaN;a.matrix[n][o]=l-c}else{const n=i;for(let o=0;o<r;o++)for(let l=0;l<s;l++)a.matrix[o][l]=e.matrix[o][l]-n}return a}}function Ol(t){const e=t.length;if(e!==2)return Array(e).fill(NaN);const i=t[0][0],r=t[0][1],s=t[1][0],a=t[1][1],n=i+a,o=i*a-r*s,l=n*n-4*o;if(l<0)return[NaN,NaN];const c=(n+Math.sqrt(l))/2,h=(n-Math.sqrt(l))/2;return[c,h]}function Vl(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;if(i!==r){const n=Re(e.matrix[0][0]);return new R([],n,t)}const s=Ol(e.matrix),a=Re(s[0]);return new R(s,a,t)}}function Ll(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;if(i!==r)return new K(0,0,NaN,t);const s=new K(i,r,0,t);for(let a=0;a<i;a++)s.matrix[a][a]=1;return s}}function jl(t){return e=>{const i=e.matrix.length;return i===0?0:i*e.matrix[0].length}}function $l(t){return(e,i,r,s,a,n)=>{const o=e.matrix.length;if(o===0)return;const l=e.matrix[0].length,c=r!==void 0?r:0,h=s!==void 0?s:o,p=a!==void 0?a:0,u=n!==void 0?n:l;for(let f=c;f<h&&!(f>=o);f++)for(let m=p;m<u&&!(m>=l);m++)e.matrix[f][m]=i}}function Bl(t){return(e,i,r)=>{const s=e.matrix.length,a=s>0?e.matrix[0].length:0;if(i<0||i>=s)return t.warn(`Row index ${i} is out of bounds, matrix has ${s} rows.`,"matrix.get"),NaN;if(r<0||r>=a)return t.warn(`Column index ${r} is out of bounds, matrix has ${a} columns.`,"matrix.get"),NaN;const n=e.matrix[i][r];return n===void 0?NaN:n}}function ri(t){const e=t.length;if(e===0)return[];const i=new Array(e);for(let s=0;s<e;s++){i[s]=new Array(2*e);for(let a=0;a<e;a++)i[s][a]=t[s][a];for(let a=0;a<e;a++)i[s][e+a]=s===a?1:0}for(let s=0;s<e;s++){let a=Math.abs(i[s][s]),n=s;for(let l=s+1;l<e;l++){const c=Math.abs(i[l][s]);c>a&&(a=c,n=l)}if(a<1e-14)return t.map(l=>l.map(()=>NaN));if(n!==s){const l=i[s];i[s]=i[n],i[n]=l}const o=i[s][s];for(let l=s;l<2*e;l++)i[s][l]/=o;for(let l=0;l<e;l++){if(l===s)continue;const c=i[l][s];if(c!==0)for(let h=s;h<2*e;h++)i[l][h]-=c*i[s][h]}}const r=new Array(e);for(let s=0;s<e;s++){r[s]=new Array(e);for(let a=0;a<e;a++)r[s][a]=i[s][e+a]}return r}function Fl(t){return e=>{const i=e.matrix.length,r=i>0?e.matrix[0].length:0;if(i!==r)return new K(i,r,NaN,t);const s=ri(e.matrix),a=new K(i,r,NaN,t);return a.matrix=s,a}}function Wl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(s+a!==i-1&&e.matrix[s][a]!==0)return!1;return!0}}function Ul(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(e.matrix[a][s]!==-e.matrix[s][a])return!1;return!0}}function ql(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;for(let s=0;s<i;s++)for(let a=0;a<r;a++){const n=e.matrix[s][a];if(n!==0&&n!==1)return!1}return!0}}function Kl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(s!==a&&e.matrix[s][a]!==0)return!1;return!0}}function zl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(s===a){if(e.matrix[s][a]!==1)return!1}else if(e.matrix[s][a]!==0)return!1;return!0}}function Hl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;return i===r}}function Gl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;for(let s=0;s<i;s++){let a=0;for(let n=0;n<r;n++){const o=e.matrix[s][n];if(o<0)return!1;a+=o}if(Math.abs(a-1)>1e-10)return!1}return!0}}function Yl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;for(let s=0;s<i;s++)for(let a=0;a<s;a++)if(e.matrix[s][a]!==e.matrix[a][s])return!1;return!0}}function Xl(t){return e=>{const i=e.matrix.length;if(i===0)return!1;const r=e.matrix[0].length;if(i!==r)return!1;let s=!0,a=!0;for(let n=0;n<i;n++)for(let o=0;o<r;o++)n>o&&e.matrix[n][o]!==0&&(s=!1),n<o&&e.matrix[n][o]!==0&&(a=!1);return s||a}}function Ql(t){return e=>{const i=e.matrix.length;if(i===0)return!0;const r=e.matrix[0].length;for(let s=0;s<i;s++)for(let a=0;a<r;a++)if(e.matrix[s][a]!==0)return!1;return!0}}function Zl(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0,a=i.matrix.length,n=a>0?i.matrix[0].length:0,o=r*a,l=s*n,c=new K(o,l,NaN,t);for(let h=0;h<r;h++)for(let p=0;p<s;p++){const u=e.matrix[h][p];for(let f=0;f<a;f++)for(let m=0;m<n;m++){const x=i.matrix[f][m];c.matrix[h*a+f][p*n+m]=u*x}}return c}}function Jl(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length;let s=-1/0,a=!1;for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||(l>s&&(s=l),a=!0)}return a?s:NaN}}function ec(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length,s=[];for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||s.push(l)}if(s.length===0)return NaN;s.sort((n,o)=>n-o);const a=Math.floor(s.length/2);return s.length%2!==0?s[a]:(s[a-1]+s[a])/2}}function tc(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length;let s=1/0,a=!1;for(let n=0;n<i;n++)for(let o=0;o<r;o++){const l=e.matrix[n][o];isNaN(l)||(l<s&&(s=l),a=!0)}return a?s:NaN}}function ic(t){return e=>{const i=e.matrix.length;if(i===0)return NaN;const r=e.matrix[0].length,s=new Map;let a=0,n=NaN;for(let o=0;o<i;o++)for(let l=0;l<r;l++){const c=e.matrix[o][l];if(!isNaN(c)){const h=(s.get(c)||0)+1;s.set(c,h),h>a?(a=h,n=c):h===a&&c<n&&(n=c)}}return n}}function rc(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0;if(i instanceof K){const a=i.matrix.length,n=a>0?i.matrix[0].length:0;if(s!==a)return new K(0,0,NaN,t);const o=new K(r,n,0,t);for(let l=0;l<r;l++)for(let c=0;c<n;c++){let h=0;for(let p=0;p<s;p++)h+=e.matrix[l][p]*i.matrix[p][c];o.matrix[l][c]=h}return o}else if(i instanceof R||Array.isArray(i.array||i)){const a=i.array||i;if(s!==a.length)return new R([],"float",t);const n=[];for(let o=0;o<r;o++){let l=0;for(let c=0;c<s;c++)l+=e.matrix[o][c]*a[c];n.push(l)}return new R(n,"float",t)}else{const a=i,n=new K(r,s,NaN,t);for(let o=0;o<r;o++)for(let l=0;l<s;l++)n.matrix[o][l]=e.matrix[o][l]*a;return n}}}function sc(t){return e=>{const i=e.matrix.length;if(i===0)return new K(0,0,NaN,t);const r=e.matrix[0].length;if(i===r){const h=ri(e.matrix),p=new K(i,r,NaN,t);return p.matrix=h,p}const s=h=>{const p=h.length,u=h[0].length,f=new Array(u);for(let m=0;m<u;m++){f[m]=new Array(p);for(let x=0;x<p;x++)f[m][x]=h[x][m]}return f},a=(h,p)=>{const u=h.length,f=h[0].length,m=p[0].length,x=new Array(u);for(let _=0;_<u;_++){x[_]=new Array(m).fill(0);for(let b=0;b<f;b++){const S=h[_][b];if(S!==0)for(let v=0;v<m;v++)x[_][v]+=S*p[b][v]}}return x},n=e.matrix,o=s(n);let l;if(i>r){const h=a(o,n),p=ri(h);l=a(p,o)}else{const h=a(n,o),p=ri(h);l=a(o,p)}const c=new K(r,i,NaN,t);return c.matrix=l,c}}function nc(t){return(e,i)=>{const r=e.matrix.length,s=r>0?e.matrix[0].length:0;if(r!==s)return new K(0,0,NaN,t);let a=new K(r,s,0,t);for(let l=0;l<r;l++)a.matrix[l][l]=1;let n=new K(r,s,NaN,t);for(let l=0;l<r;l++)n.matrix[l]=[...e.matrix[l]];let o=Math.floor(i);if(o<0)return new K(r,s,NaN,t);for(;o>0;){if(o%2===1){const c=new K(r,s,0,t);for(let h=0;h<r;h++)for(let p=0;p<s;p++){let u=0;for(let f=0;f<r;f++)u+=a.matrix[h][f]*n.matrix[f][p];c.matrix[h][p]=u}a=c}const l=new K(r,s,0,t);for(let c=0;c<r;c++)for(let h=0;h<s;h++){let p=0;for(let u=0;u<r;u++)p+=n.matrix[c][u]*n.matrix[u][h];l.matrix[c][h]=p}n=l,o=Math.floor(o/2)}return a}}function ac(t){return e=>{const i=e.matrix.length;if(i===0)return 0;const r=e.matrix[0].length,s=e.matrix.map(n=>[...n]);let a=0;for(let n=0;n<r&&a<i;n++){let o=a;for(;o<i&&Math.abs(s[o][n])<1e-10;)o++;if(o<i){[s[a],s[o]]=[s[o],s[a]];const l=s[a][n];for(let c=n;c<r;c++)s[a][c]/=l;for(let c=0;c<i;c++)if(c!==a){const h=s[c][n];for(let p=n;p<r;p++)s[c][p]-=h*s[a][p]}a++}}return a}}function oc(t){return(e,i)=>{const r=e.matrix.length;if(r===0){const n=Re(e.matrix[0][0]);return new R([],n,t)}const s=[];for(let n=0;n<r;n++){const o=e.matrix[n].splice(i,1);s.push(o[0])}const a=Re(s[0]);return new R(s,a,t)}}function lc(t){return(e,i)=>{const r=e.matrix.splice(i,1),s=Re(r[0][0]);return new R(r[0]||[],s,t)}}function cc(t){return(e,i,r)=>{const s=e.matrix.length,a=s>0?e.matrix[0].length:0,n=i*r,o=[];for(let h=0;h<s;h++)for(let p=0;p<a;p++)o.push(e.matrix[h][p]);for(;o.length<n;)o.push(NaN);o.length>n&&(o.length=n);const l=[];let c=0;for(let h=0;h<i;h++){const p=[];for(let u=0;u<r;u++)p.push(o[c++]);l.push(p)}e.matrix=l}}function hc(t){return e=>{e.matrix.reverse();for(const i of e.matrix)i.reverse()}}function uc(t){return(e,i)=>{const r=e.matrix.length;if(i<0||i>=r){t.warn(`Row index ${i} is out of bounds, matrix has ${r} rows.`,"matrix.row");const a=r>0?Re(e.matrix[0][0]):"float";return new R([],a,t)}const s=Re(e.matrix[i][0]);return new R([...e.matrix[i]],s,t)}}function pc(t){return e=>e.matrix.length}function fc(t){return(e,i,r,s)=>{const a=e.matrix.length,n=a>0?e.matrix[0].length:0;if(i<0||i>=a){t.warn(`Row index ${i} is out of bounds, matrix has ${a} rows.`,"matrix.set");return}if(r<0||r>=n){t.warn(`Column index ${r} is out of bounds, matrix has ${n} columns.`,"matrix.set");return}e.matrix[i][r]=s}}function dc(t){return(e,i=0,r="asc")=>{e.matrix.length!==0&&e.matrix.sort((s,a)=>{const n=s[i],o=a[i];return n<o?r==="asc"?-1:1:n>o?r==="asc"?1:-1:0})}}function mc(t){return(e,i,r,s,a)=>{const n=r-i,o=a-s,l=new K(n,o,NaN,t);for(let c=0;c<n;c++){const h=i+c;if(h>=e.matrix.length)break;for(let p=0;p<o;p++){const u=s+p;if(u>=e.matrix[h].length)break;l.matrix[c][p]=e.matrix[h][u]}}return l}}function gc(t){return(e,i)=>{const r=e.matrix.length;if(r===0)return new K(0,0,NaN,t);const s=e.matrix[0].length,a=new K(r,s,NaN,t);if(i instanceof K)for(let n=0;n<r;n++)for(let o=0;o<s;o++){const l=e.matrix[n][o],c=i.matrix[n]&&i.matrix[n][o]!==void 0?i.matrix[n][o]:NaN;a.matrix[n][o]=l+c}else{const n=i;for(let o=0;o<r;o++)for(let l=0;l<s;l++)a.matrix[o][l]=e.matrix[o][l]+n}return a}}function yc(t){return(e,i,r)=>{const s=e.matrix.length;for(let a=0;a<s;a++){const n=e.matrix[a][i];e.matrix[a][i]=e.matrix[a][r],e.matrix[a][r]=n}}}function xc(t){return(e,i,r)=>{const s=e.matrix[i];e.matrix[i]=e.matrix[r],e.matrix[r]=s}}function _c(t){return e=>{const i=e.matrix.length;if(i===0)return 0;const r=e.matrix[0].length,s=Math.min(i,r);let a=0;for(let n=0;n<s;n++)a+=e.matrix[n][n];return a}}function bc(t){return e=>{const i=e.matrix.length;if(i===0)return new K(0,0,NaN,t);const r=e.matrix[0].length,s=new K(r,i,NaN,t);for(let a=0;a<i;a++)for(let n=0;n<r;n++)s.matrix[n][a]=e.matrix[a][n];return s}}var vc=Object.defineProperty,wc=(t,e,i)=>e in t?vc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,P=(t,e,i)=>wc(t,typeof e!="symbol"?e+"":e,i);class K{constructor(e=0,i=0,r=NaN,s){if(this.context=s,P(this,"matrix"),P(this,"_add_col"),P(this,"_add_row"),P(this,"_avg"),P(this,"_col"),P(this,"_columns"),P(this,"_concat"),P(this,"_copy"),P(this,"_det"),P(this,"_diff"),P(this,"_eigenvalues"),P(this,"_eigenvectors"),P(this,"_elements_count"),P(this,"_fill"),P(this,"_get"),P(this,"_inv"),P(this,"_is_antidiagonal"),P(this,"_is_antisymmetric"),P(this,"_is_binary"),P(this,"_is_diagonal"),P(this,"_is_identity"),P(this,"_is_square"),P(this,"_is_stochastic"),P(this,"_is_symmetric"),P(this,"_is_triangular"),P(this,"_is_zero"),P(this,"_kron"),P(this,"_max"),P(this,"_median"),P(this,"_min"),P(this,"_mode"),P(this,"_mult"),P(this,"_pinv"),P(this,"_pow"),P(this,"_rank"),P(this,"_remove_col"),P(this,"_remove_row"),P(this,"_reshape"),P(this,"_reverse"),P(this,"_row"),P(this,"_rows"),P(this,"_set"),P(this,"_sort"),P(this,"_submatrix"),P(this,"_sum"),P(this,"_swap_columns"),P(this,"_swap_rows"),P(this,"_trace"),P(this,"_transpose"),this.matrix=[],e>0&&i>0)for(let a=0;a<e;a++)this.matrix.push(Array(i).fill(r));this._add_col=Nl(this.context),this._add_row=Cl(this.context),this._avg=Il(this.context),this._col=kl(this.context),this._columns=Al(this.context),this._concat=Tl(this.context),this._copy=Pl(this.context),this._det=Ml(this.context),this._diff=Rl(this.context),this._eigenvalues=Vl(this.context),this._eigenvectors=Ll(this.context),this._elements_count=jl(this.context),this._fill=$l(this.context),this._get=Bl(this.context),this._inv=Fl(this.context),this._is_antidiagonal=Wl(this.context),this._is_antisymmetric=Ul(this.context),this._is_binary=ql(this.context),this._is_diagonal=Kl(this.context),this._is_identity=zl(this.context),this._is_square=Hl(this.context),this._is_stochastic=Gl(this.context),this._is_symmetric=Yl(this.context),this._is_triangular=Xl(this.context),this._is_zero=Ql(this.context),this._kron=Zl(this.context),this._max=Jl(this.context),this._median=ec(this.context),this._min=tc(this.context),this._mode=ic(this.context),this._mult=rc(this.context),this._pinv=sc(this.context),this._pow=nc(this.context),this._rank=ac(this.context),this._remove_col=oc(this.context),this._remove_row=lc(this.context),this._reshape=cc(this.context),this._reverse=hc(this.context),this._row=uc(this.context),this._rows=pc(this.context),this._set=fc(this.context),this._sort=dc(this.context),this._submatrix=mc(this.context),this._sum=gc(this.context),this._swap_columns=yc(this.context),this._swap_rows=xc(this.context),this._trace=_c(this.context),this._transpose=bc(this.context)}toString(){let e="";for(let i=0;i<this.matrix.length;i++)e+=e===""?"":`
|
|
121
|
+
`,e+="["+this.matrix[i].join(", ")+"]";return e}add_col(...e){return this._add_col(this,...e)}add_row(...e){return this._add_row(this,...e)}avg(...e){return this._avg(this,...e)}col(...e){return this._col(this,...e)}columns(...e){return this._columns(this,...e)}concat(...e){return this._concat(this,...e)}copy(...e){return this._copy(this,...e)}det(...e){return this._det(this,...e)}diff(...e){return this._diff(this,...e)}eigenvalues(...e){return this._eigenvalues(this,...e)}eigenvectors(...e){return this._eigenvectors(this,...e)}elements_count(...e){return this._elements_count(this,...e)}fill(...e){return this._fill(this,...e)}get(...e){return this._get(this,...e)}inv(...e){return this._inv(this,...e)}is_antidiagonal(...e){return this._is_antidiagonal(this,...e)}is_antisymmetric(...e){return this._is_antisymmetric(this,...e)}is_binary(...e){return this._is_binary(this,...e)}is_diagonal(...e){return this._is_diagonal(this,...e)}is_identity(...e){return this._is_identity(this,...e)}is_square(...e){return this._is_square(this,...e)}is_stochastic(...e){return this._is_stochastic(this,...e)}is_symmetric(...e){return this._is_symmetric(this,...e)}is_triangular(...e){return this._is_triangular(this,...e)}is_zero(...e){return this._is_zero(this,...e)}kron(...e){return this._kron(this,...e)}max(...e){return this._max(this,...e)}median(...e){return this._median(this,...e)}min(...e){return this._min(this,...e)}mode(...e){return this._mode(this,...e)}mult(...e){return this._mult(this,...e)}pinv(...e){return this._pinv(this,...e)}pow(...e){return this._pow(this,...e)}rank(...e){return this._rank(this,...e)}remove_col(...e){return this._remove_col(this,...e)}remove_row(...e){return this._remove_row(this,...e)}reshape(...e){return this._reshape(this,...e)}reverse(...e){return this._reverse(this,...e)}row(...e){return this._row(this,...e)}rows(...e){return this._rows(this,...e)}set(...e){return this._set(this,...e)}sort(...e){return this._sort(this,...e)}submatrix(...e){return this._submatrix(this,...e)}sum(...e){return this._sum(this,...e)}swap_columns(...e){return this._swap_columns(this,...e)}swap_rows(...e){return this._swap_rows(this,...e)}trace(...e){return this._trace(this,...e)}transpose(...e){return this._transpose(this,...e)}}function je(t){return(e,i,r)=>new K(e,i,r,t)}function Sc(t){return(e,i=0)=>y.from(e).get(i)}class Ec{constructor(e){this.context=e,this.add_col=(i,...r)=>i.add_col(...r),this.add_row=(i,...r)=>i.add_row(...r),this.avg=(i,...r)=>i.avg(...r),this.col=(i,...r)=>i.col(...r),this.columns=(i,...r)=>i.columns(...r),this.concat=(i,...r)=>i.concat(...r),this.copy=(i,...r)=>i.copy(...r),this.det=(i,...r)=>i.det(...r),this.diff=(i,...r)=>i.diff(...r),this.eigenvalues=(i,...r)=>i.eigenvalues(...r),this.eigenvectors=(i,...r)=>i.eigenvectors(...r),this.elements_count=(i,...r)=>i.elements_count(...r),this.fill=(i,...r)=>i.fill(...r),this.get=(i,...r)=>i.get(...r),this.inv=(i,...r)=>i.inv(...r),this.is_antidiagonal=(i,...r)=>i.is_antidiagonal(...r),this.is_antisymmetric=(i,...r)=>i.is_antisymmetric(...r),this.is_binary=(i,...r)=>i.is_binary(...r),this.is_diagonal=(i,...r)=>i.is_diagonal(...r),this.is_identity=(i,...r)=>i.is_identity(...r),this.is_square=(i,...r)=>i.is_square(...r),this.is_stochastic=(i,...r)=>i.is_stochastic(...r),this.is_symmetric=(i,...r)=>i.is_symmetric(...r),this.is_triangular=(i,...r)=>i.is_triangular(...r),this.is_zero=(i,...r)=>i.is_zero(...r),this.kron=(i,...r)=>i.kron(...r),this.max=(i,...r)=>i.max(...r),this.median=(i,...r)=>i.median(...r),this.min=(i,...r)=>i.min(...r),this.mode=(i,...r)=>i.mode(...r),this.mult=(i,...r)=>i.mult(...r),this.new=je(e),this.param=Sc(),this.pinv=(i,...r)=>i.pinv(...r),this.pow=(i,...r)=>i.pow(...r),this.rank=(i,...r)=>i.rank(...r),this.remove_col=(i,...r)=>i.remove_col(...r),this.remove_row=(i,...r)=>i.remove_row(...r),this.reshape=(i,...r)=>i.reshape(...r),this.reverse=(i,...r)=>i.reverse(...r),this.row=(i,...r)=>i.row(...r),this.rows=(i,...r)=>i.rows(...r),this.set=(i,...r)=>i.set(...r),this.sort=(i,...r)=>i.sort(...r),this.submatrix=(i,...r)=>i.submatrix(...r),this.sum=(i,...r)=>i.sum(...r),this.swap_columns=(i,...r)=>i.swap_columns(...r),this.swap_rows=(i,...r)=>i.swap_rows(...r),this.trace=(i,...r)=>i.trace(...r),this.transpose=(i,...r)=>i.transpose(...r),this.new_float=je(e),this.new_int=je(e),this.new_string=je(e),this.new_bool=je(e),this.new_color=je(e),this.new_line=je(e),this.new_label=je(e),this.new_box=je(e),this.new_linefill=je(e),this.new_table=je(e)}}var Nc=Object.defineProperty,Cc=(t,e,i)=>e in t?Nc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ic=(t,e,i)=>Cc(t,typeof e!="symbol"?e+"":e,i);class kc{constructor(e){this.context=e,Ic(this,"_live",!1)}setLive(){this._live=!0}get isnew(){return!this._live}get islast(){return this.context.idx===this.context.length-1}get isfirst(){return this.context.idx===0}get ishistory(){return this.context.idx<this.context.length-1}get isrealtime(){return this.context.idx===this.context.length-1}get isconfirmed(){return this.context.data.closeTime.data[this.context.idx]<=Date.now()}get islastconfirmedhistory(){const e=this.context.idx,i=this.context.length;if(e===i-1)return this.context.data.closeTime.data[e]<=Date.now();if(e===i-2){const r=this.context.marketData?.[i-1]?.closeTime;return r!==void 0?r>Date.now():!1}return!1}}class It{constructor(e,i){this._definition=e,this.context=i;for(let r in e)this[r]=e[r]}get __def__(){return this._definition}copy(){return new It(this.__def__,this.context)}toString(){const e={};for(let i in this.__def__){const r=this[i];r!=null&&typeof r=="object"&&typeof r.toString=="function"&&!(r instanceof Array)?e[i]=r.toString():e[i]=r}try{return JSON.stringify(e)}catch{return"{"+Object.keys(e).map(i=>`"${i}":${String(e[i])}`).join(",")+"}"}}}var Ac=Object.defineProperty,Tc=(t,e,i)=>e in t?Ac(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ii=(t,e,i)=>Tc(t,typeof e!="symbol"?e+"":e,i);class me{constructor(e,i,r){Ii(this,"time"),Ii(this,"index"),Ii(this,"price"),this.time=e,this.index=i,this.price=r}copy(){return new me(this.time,this.index,this.price)}toString(){return JSON.stringify({time:this.time,index:this.index,price:this.price})}}function Pc(t){return typeof t=="object"&&t&&(t.title!==void 0||t._plotKey!==void 0)&&t.data!==void 0&&t.options!==void 0}const kr={series:t=>t instanceof y||typeof t=="number"||typeof t=="string"||typeof t=="boolean",string:t=>typeof t=="string",color:t=>typeof t=="string"||t===null||typeof t=="number"&&isNaN(t)||t instanceof y,number:t=>typeof t=="number",boolean:t=>typeof t=="boolean",array:t=>Array.isArray(t),object:t=>typeof t=="object",point:t=>t instanceof me,primitive:t=>typeof t===null||typeof t!="object"&&typeof t!="function",function:t=>typeof t=="function",undefined:t=>t===void 0,null:t=>t===null,NaN:t=>isNaN(t),remaining_options:t=>t!==null&&typeof t=="object"&&!(t instanceof y)&&!(t instanceof me)&&!Pc(t)};function Ue(t){const e=t[t.length-1];if(e&&typeof e=="object"&&"__callsiteId"in e)return t.pop().__callsiteId}function se(t,e,i,r){Array.isArray(e)&&typeof e[0]=="string"&&(e=[e]);const s={};let a={};const n=new Array(e.length).fill(!0);for(let o=0;o<t.length;o++){const l=t[o];if(kr.remaining_options(l)){a=l;break}const c=e.map((h,p)=>n[p]?h[o]:void 0);for(let h=0;h<c.length;h++){const p=c[h];if(p===void 0){n[h]=!1;continue}const u=i[p];if(typeof l=="number"&&isNaN(l)&&(u==="number"||u==="series"))s[p]=l;else{const f=kr[i[p]];typeof f=="function"&&f(l)?s[p]=l:n[h]=!1}}}return{...s,...a,...r}}var Dc=Object.defineProperty,Mc=(t,e,i)=>e in t?Dc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,kt=(t,e,i)=>Mc(t,typeof e!="symbol"?e+"":e,i);const Rc=[["dateString"],["year","month","day","hour","minute","second"],["timezone","year","month","day","hour","minute","second"]],Oc={dateString:"string",timezone:"string",year:"number",month:"number",day:"number",hour:"number",minute:"number",second:"number"},Vc=["title","shorttitle","overlay","format","precision","scale","max_bars_back","timeframe","timeframe_gaps","explicit_plot_zorder","max_lines_count","max_labels_count","max_boxes_count","calc_bars_count","max_polylines_count","dynamic_requests","behind_chart"],Lc={title:"string",shorttitle:"string",overlay:"boolean",format:"string",precision:"number",scale:"string",max_bars_back:"number",timeframe:"string",timeframe_gaps:"boolean",explicit_plot_zorder:"boolean",max_lines_count:"number",max_labels_count:"number",max_boxes_count:"number",calc_bars_count:"number",max_polylines_count:"number",dynamic_requests:"boolean",behind_chart:"boolean"};function jc(t){return se(t,Vc,Lc)}class Ot{get __value(){return NaN}param(e,i=0){return y.from(e).get(i)}any(e){const i=y.from(e).get(0);return i==null?!0:typeof i=="number"?i!==i:!1}}const St={freq_all:"alert.freq_all",freq_once_per_bar:"alert.freq_once_per_bar",freq_once_per_bar_close:"alert.freq_once_per_bar_close"};class $c{constructor(e){this.context=e,kt(this,"_firedKeys",new Set),kt(this,"_fallbackCounter",0),kt(this,"_fallbackLastExecTick",-1)}get freq_all(){return St.freq_all}get freq_once_per_bar(){return St.freq_once_per_bar}get freq_once_per_bar_close(){return St.freq_once_per_bar_close}param(e,i,r){return y.from(e).get(0)}any(e,i,r){const s=y.from(e).get(0),a=i?y.from(i).get(0):St.freq_once_per_bar;let n;if(r&&typeof r=="object"&&r.__callsiteId)n=r.__callsiteId;else{const h=this.context._execTick||0;h!==this._fallbackLastExecTick&&(this._fallbackCounter=0,this._fallbackLastExecTick=h),n=`alert_${this._fallbackCounter++}`}const o=this.context.idx,l=this.context.pine?.barstate?.isrealtime??o===this.context.length-1;if((this.context._alertMode||"realtime")==="realtime"&&!l)return;const c=`${n}:${o}`;if(a===St.freq_once_per_bar){if(this._firedKeys.has(c))return;this._firedKeys.add(c)}else if(a===St.freq_once_per_bar_close){if(!(this.context.pine?.barstate?.isconfirmed??!0)||this._firedKeys.has(c))return;this._firedKeys.add(c)}this.context.alerts.push({type:"alert",id:n,message:s,freq:a,bar_index:o,time:this.context.data.openTime?.data?.[o]??0})}}class Bc{constructor(e){this.context=e,kt(this,"_acCounter",0),kt(this,"_acLastExecTick",-1),kt(this,"_acFiredKeys",new Set)}extractPlotOptions(e){const i={};for(let r in e)i[r]=y.from(e[r]).get(0);return i}indicator(...e){const i=jc(e),r={title:"",shorttitle:"",overlay:!1,format:"inherit",precision:10,scale:"points",max_bars_back:0,timeframe:"",timeframe_gaps:!0,explicit_plot_zorder:!1,max_lines_count:50,max_labels_count:50,max_boxes_count:50,calc_bars_count:0,max_polylines_count:50,dynamic_requests:!1,behind_chart:!0};return this.context.indicator={...r,...i},this.context.indicator}get bar_index(){return this.context.idx}na(e){const i=y.from(e).get(0);return i==null||typeof i=="number"&&isNaN(i)}nz(e,i=0){const r=y.from(e).get(0),s=y.from(i).get(0);return r==null||typeof r=="number"&&isNaN(r)?s:r}fixnan(e){const i=y.from(e);for(let r=0;r<i.length;r++){const s=i.get(r);if(!isNaN(s))return s}return NaN}alertcondition(e,i,r){const s=y.from(e).get(0),a=this.context.idx,n=this.context._execTick||0;n!==this._acLastExecTick&&(this._acCounter=0,this._acLastExecTick=n);const o=`alertcondition_${this._acCounter++}`;if(!s)return;const l=this.context.pine?.barstate?.isrealtime??a===this.context.length-1;if((this.context._alertMode||"realtime")==="realtime"&&!l)return;const c=`${o}:${a}`;if(this._acFiredKeys.has(c))return;this._acFiredKeys.add(c);const h=i?y.from(i).get(0):"",p=r?y.from(r).get(0):"";this.context.alerts.push({type:"alertcondition",id:o,title:h,message:p,bar_index:a,time:this.context.data.openTime?.data?.[a]??0})}error(...e){console.error("error called but is currently not implemented",e)}max_bars_back(e,i){}timestamp(...e){const i=e.map(s=>s instanceof y?s.get(0):s),r=se(i,Rc,Oc);if(r.year!==void 0){const s=r.year,a=r.month,n=r.day,o=r.hour||0,l=r.minute||0,c=r.second||0,h=r.timezone||this.context.pine?.syminfo?.timezone||"UTC";return this._timestampFromComponents(h,s,a,n,o,l,c)}if(r.dateString!==void 0){const s=r.dateString.trim();if(/[Zz]$/.test(s)||/[+-]\d{2}:?\d{2}$/.test(s))return new Date(s).getTime();const a=s.includes("T")?s+"Z":s.replace(/\s+/,"T")+"Z",n=new Date(a);if(!isNaN(n.getTime())){const o=this.context.pine?.syminfo?.timezone||"UTC";return this._timestampFromComponents(o,n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds())}return new Date(s).getTime()}return NaN}_timestampFromComponents(e,i,r,s,a,n,o){const l=new Date(Date.UTC(i,r-1,s,a,n,o));i>=0&&i<100&&l.setUTCFullYear(i);const c=e.trim();if(c==="UTC"||c==="GMT"||c==="Etc/UTC")return l.getTime();const h=c.match(/^(?:UTC|GMT)([+-])(\d{1,2})(?::(\d{2}))?$/i);if(h){const p=h[1]==="+"?1:-1,u=parseInt(h[2],10),f=parseInt(h[3]||"0",10),m=p*(u*60+f)*60*1e3;return l.getTime()-m}try{return this._timestampFromIANA(e,i,r,s,a,n,o)}catch{return l.getTime()}}_timestampFromIANA(e,i,r,s,a,n,o){const l=new Date(Date.UTC(i,r-1,s,a,n,o));i>=0&&i<100&&l.setUTCFullYear(i);const c=new Intl.DateTimeFormat("en-US",{timeZone:e,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(l),h=v=>parseInt(c.find(E=>E.type===v)?.value||"0",10),p=h("year"),u=h("month"),f=h("day");let m=h("hour");m===24&&(m=0);const x=h("minute"),_=h("second"),b=new Date(Date.UTC(p,u-1,f,m,x,_));p>=0&&p<100&&b.setUTCFullYear(p);const S=b.getTime()-l.getTime();return l.getTime()-S}bool(e){const i=y.from(e).get(0);return!isNaN(i)&&i!==0}int(e){const i=y.from(e).get(0);if(typeof i!="number")throw new Error(`Cannot call "int" with argument "x"="${i}". An argument of "literal string" type was used but a "simple int" is expected.`);return Math.trunc(i)}float(e){const i=y.from(e).get(0);if(typeof i!="number")throw new Error(`Cannot call "float" with argument "x"="${i}". An argument of "literal string" type was used but a "const float" is expected.`);return i}string(e){return y.from(e).get(0).toString()}Type(e){const i=Object.keys(e),r={};for(const s of i){let a=e[s];a instanceof y&&(a=a.data),Array.isArray(a)&&(a[0],r[s]=a[1])}return{new:function(...s){const a={};let n=null;if(s.length===1&&s[0]&&typeof s[0]=="object"&&!(s[0]instanceof y)&&!Array.isArray(s[0])&&!(s[0]instanceof It)){const o=Object.keys(s[0]);o.length>0&&o.some(l=>i.includes(l))&&(n=s[0],s=[])}for(let o=0;o<i.length;o++){const l=i[o];n&&l in n?a[l]=n[l]:o<s.length?a[l]=s[o]:l in r&&(a[l]=y.from(r[l]).get(0))}return new It(a,this.context)},copy:function(s){return new It(s.__def__,this.context)}}}}function Et(t){if(!t||typeof t!="string")return null;if(t.startsWith("#")){const i=t.slice(1);return i.length===6?[parseInt(i.slice(0,2),16),parseInt(i.slice(2,4),16),parseInt(i.slice(4,6),16),1]:i.length===8?[parseInt(i.slice(0,2),16),parseInt(i.slice(2,4),16),parseInt(i.slice(4,6),16),parseInt(i.slice(6,8),16)/255]:null}const e=t.match(/rgba?\(\s*(\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\s*\)/);return e?[parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),e[4]?parseFloat(e[4]):1]:null}function Fc(t,e,i,r){const s=Math.round(Math.max(0,Math.min(255,t))).toString(16).padStart(2,"0"),a=Math.round(Math.max(0,Math.min(255,e))).toString(16).padStart(2,"0"),n=Math.round(Math.max(0,Math.min(255,i))).toString(16).padStart(2,"0");if(r>=1)return`#${s}${a}${n}`.toUpperCase();const o=Math.round(Math.max(0,Math.min(255,r*255))).toString(16).padStart(2,"0");return`#${s}${a}${n}${o}`.toUpperCase()}const re={aqua:"#00BCD4",black:"#363A45",blue:"#2196F3",fuchsia:"#E040FB",gray:"#787B86",green:"#4CAF50",lime:"#00E676",maroon:"#880E4F",navy:"#311B92",olive:"#808000",orange:"#FF9800",purple:"#9C27B0",red:"#F23645",silver:"#B2B5BE",teal:"#089981",white:"#FFFFFF",yellow:"#FDD835"};function We(t){return typeof t=="function"&&(t=t()),t&&typeof t=="object"&&Array.isArray(t.data)&&typeof t.get=="function"&&(t=t.get(0)),t}class Wc{constructor(e){this.context=e}any(e){const i=y.from(e).get(0);return typeof i=="number"&&isNaN(i)?null:i}param(e,i=0){return y.from(e).get(i)}new(e,i){if(e=We(e),!e||typeof e!="string")return e;if(typeof i=="number"&&isNaN(i)&&(i=void 0),e.startsWith("#")){const r=e.slice(1),s=r.length===8?r.slice(0,6):r;return i!=null?`#${s}${Math.round(255/100*(100-i)).toString(16).padStart(2,"0").toUpperCase()}`:`#${r}`}else{const r=re[e];if(r)return i!=null?`#${r.slice(1)}${Math.round(255/100*(100-i)).toString(16).padStart(2,"0").toUpperCase()}`:r;const s=e.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\d.]+))?\s*\)/);if(s){const a=s[1],n=s[2],o=s[3];if(i!=null){const l=parseInt(a).toString(16).padStart(2,"0"),c=parseInt(n).toString(16).padStart(2,"0"),h=parseInt(o).toString(16).padStart(2,"0"),p=Math.round(255/100*(100-i)).toString(16).padStart(2,"0").toUpperCase();return`#${l}${c}${h}${p}`}return e}return i!=null?`rgba(${e}, ${(100-i)/100})`:e}}rgb(e,i,r,s){return typeof s=="number"&&isNaN(s)&&(s=void 0),s!=null?`rgba(${e}, ${i}, ${r}, ${(100-s)/100})`:`rgb(${e}, ${i}, ${r})`}from_gradient(e,i,r,s,a){if(e=We(e),i=We(i),r=We(r),s=We(s),a=We(a),e==null||typeof e=="number"&&isNaN(e)||i==null||typeof i=="number"&&isNaN(i)||r==null||typeof r=="number"&&isNaN(r)||s==null||typeof s=="number"&&isNaN(s)||a==null||typeof a=="number"&&isNaN(a))return;let n=0;r!==i&&(n=(e-i)/(r-i)),n=Math.max(0,Math.min(1,n));const o=Et(typeof s=="string"?s:"#000000")||[0,0,0,1],l=Et(typeof a=="string"?a:"#FFFFFF")||[255,255,255,1],c=o[0]+(l[0]-o[0])*n,h=o[1]+(l[1]-o[1])*n,p=o[2]+(l[2]-o[2])*n,u=o[3]+(l[3]-o[3])*n;return Fc(c,h,p,u)}r(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?i[0]:NaN}g(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?i[1]:NaN}b(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?i[2]:NaN}t(e){if(e=We(e),!e||typeof e!="string")return NaN;const i=Et(e);return i?Math.round(100-i[3]*100):NaN}aqua(){return re.aqua}black(){return re.black}blue(){return re.blue}fuchsia(){return re.fuchsia}gray(){return re.gray}green(){return re.green}lime(){return re.lime}maroon(){return re.maroon}navy(){return re.navy}olive(){return re.olive}orange(){return re.orange}purple(){return re.purple}red(){return re.red}silver(){return re.silver}teal(){return re.teal}white(){return re.white}yellow(){return re.yellow}}var Uc=Object.defineProperty,qc=(t,e,i)=>e in t?Uc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ci=(t,e,i)=>qc(t,typeof e!="symbol"?e+"":e,i);function Tt(t,e){const i=e.trim();if(i==="UTC"||i==="GMT"||i==="Etc/UTC"){const s=new Date(t);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate(),hour:s.getUTCHours(),minute:s.getUTCMinutes(),second:s.getUTCSeconds(),dayOfWeek:s.getUTCDay()}}const r=i.match(/^(?:UTC|GMT)([+-])(\d{1,2})(?::(\d{2}))?$/i);if(r){const s=r[1]==="+"?1:-1,a=parseInt(r[2],10),n=parseInt(r[3]||"0",10),o=s*(a*60+n)*60*1e3,l=new Date(t+o);return{year:l.getUTCFullYear(),month:l.getUTCMonth()+1,day:l.getUTCDate(),hour:l.getUTCHours(),minute:l.getUTCMinutes(),second:l.getUTCSeconds(),dayOfWeek:l.getUTCDay()}}try{const s=new Intl.DateTimeFormat("en-US",{timeZone:e,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",weekday:"short",hour12:!1}).formatToParts(new Date(t)),a=c=>parseInt(s.find(h=>h.type===c)?.value||"0",10);let n=a("hour");n===24&&(n=0);const o=s.find(c=>c.type==="weekday")?.value||"Sun",l={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};return{year:a("year"),month:a("month"),day:a("day"),hour:n,minute:a("minute"),second:a("second"),dayOfWeek:l[o]??0}}catch{const s=new Date(t);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate(),hour:s.getUTCHours(),minute:s.getUTCMinutes(),second:s.getUTCSeconds(),dayOfWeek:s.getUTCDay()}}}function Kc(t,e,i){const r=new Date(Date.UTC(t,e-1,i)),s=r.getUTCDay()||7;r.setUTCDate(r.getUTCDate()+4-s);const a=new Date(Date.UTC(r.getUTCFullYear(),0,1));return Math.ceil(((r.getTime()-a.getTime())/864e5+1)/7)}const zc=[["timeframe"],["timeframe","bars_back"],["timeframe","session","bars_back"],["timeframe","session","bars_back","timeframe_bars_back"],["timeframe","session","timezone","bars_back","timeframe_bars_back"]],Hc={timeframe:"string",session:"string",timezone:"string",bars_back:"number",timeframe_bars_back:"number"};class Ar{constructor(e,i="openTime"){ci(this,"context"),ci(this,"dataField"),this.context=e,this.dataField=i}get __value(){return this.context.data[this.dataField]}param(e,i=0){return y.from(e).get(i)}any(...e){const i=e.map(c=>c instanceof y?c.get(0):c),r=se(i,zc,Hc),s=r.bars_back??0,a=r.timeframe_bars_back??0,n=s+a,o=this.context.data[this.dataField],l=y.from(o).get(n);if(r.session!==void 0){const c=r.timezone||this.context.pine?.syminfo?.timezone||"UTC";return this._isInSession(l,r.session,c)?l:NaN}return l}_isInSession(e,i,r){const s=i.match(/^(\d{2})(\d{2})-(\d{2})(\d{2})$/);if(!s)return!0;const a=parseInt(s[1],10),n=parseInt(s[2],10),o=parseInt(s[3],10),l=parseInt(s[4],10),c=Tt(e,r),h=c.hour,p=c.minute,u=h*60+p,f=a*60+n,m=o*60+l;return f<=m?u>=f&&u<m:u>=f||u<m}}const Gc=[[],["time"],["time","timezone"]],Yc={time:"number",timezone:"string"};class nt{constructor(e,i){ci(this,"context"),ci(this,"extractor"),this.context=e,this.extractor=i}get __value(){const e=y.from(this.context.data.openTime).get(0);if(isNaN(e))return NaN;const i=this.context.pine?.syminfo?.timezone||"UTC",r=Tt(e,i);return this.extractor(r)}param(e,i=0){return y.from(e).get(i)}any(...e){const i=e.map(o=>o instanceof y?o.get(0):o);if(i.length===0)return this.__value;const r=se(i,Gc,Yc),s=r.time;if(s===void 0||isNaN(s))return NaN;const a=r.timezone||this.context.pine?.syminfo?.timezone||"UTC",n=Tt(s,a);return this.extractor(n)}}const at={dayofmonth:t=>t.day,dayofweek:t=>t.dayOfWeek===0?1:t.dayOfWeek+1,hour:t=>t.hour,minute:t=>t.minute,month:t=>t.month,second:t=>t.second,weekofyear:t=>Kc(t.year,t.month,t.day),year:t=>t.year},Xc=[["defval","title","tooltip","inline","group","display"],["defval","title","tooltip","group","confirm","display"],["defval","title","tooltip","inline","group","confirm","display"],["defval","title","options","tooltip","inline","group","confirm","display"],["defval","title","minval","maxval","step","tooltip","inline","group","confirm","display"]],Qc={defval:"primitive",title:"string",tooltip:"string",inline:"string",group:"string",display:"string",confirm:"boolean",options:"array",minval:"number",maxval:"number",step:"number"};function we(t){return se(t,Xc,Qc)}function Ne(t,e){return e.title&&t.inputs&&t.inputs[e.title]!==void 0?t.inputs[e.title]:e.defval}function Zc(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function Jc(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function eh(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function th(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function ih(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function rh(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function sh(t){return(e,i=0)=>y.from(e).get(i)}function nh(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function ah(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function oh(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function lh(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function ch(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function hh(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function uh(t){return(...e)=>{const i=we(e);return Ne(t,i)}}function ph(t){return(...e)=>we(e).defval}var fh=Object.defineProperty,dh=(t,e,i)=>e in t?fh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,de=(t,e,i)=>dh(t,typeof e!="symbol"?e+"":e,i);const mh={any:Zc,bool:Jc,color:eh,enum:th,float:ih,int:rh,param:sh,price:nh,session:ah,source:oh,string:lh,symbol:ch,text_area:hh,time:uh,timeframe:ph};class gh{constructor(e){this.context=e,de(this,"any"),de(this,"bool"),de(this,"color"),de(this,"enum"),de(this,"float"),de(this,"int"),de(this,"param"),de(this,"price"),de(this,"session"),de(this,"source"),de(this,"string"),de(this,"symbol"),de(this,"text_area"),de(this,"time"),de(this,"timeframe"),Object.entries(mh).forEach(([i,r])=>{this[i]=r(e)})}}function yh(t){return e=>Math.abs(y.from(e).get(0))}function xh(t){return e=>Math.acos(y.from(e).get(0))}function _h(t){return e=>Math.asin(y.from(e).get(0))}function bh(t){return e=>Math.atan(y.from(e).get(0))}function vh(t){return(...e)=>{const i=e.map(r=>y.from(r).get(0));return i.reduce((r,s)=>r+s,0)/i.length}}function wh(t){return e=>Math.ceil(y.from(e).get(0))}function Sh(t){return e=>Math.cos(y.from(e).get(0))}function Eh(t){return()=>Math.E}function Nh(t){return e=>Math.exp(y.from(e).get(0))}function Ch(t){return e=>Math.floor(y.from(e).get(0))}function Ih(t){return e=>Math.log(y.from(e).get(0))}function kh(t){return e=>Math.log(y.from(e).get(0))}function Ah(t){return e=>Math.log10(y.from(e).get(0))}function Th(t){return(...e)=>{const i=e.map(r=>y.from(r).get(0));return Math.max(...i)}}function Ph(t){return(...e)=>{const i=e.map(r=>y.from(r).get(0));return Math.min(...i)}}function Dh(t){return(e,i,r)=>typeof e=="string"?e:e instanceof y?i?new y(e.data,e.offset+i):e:!Array.isArray(e)&&typeof e=="object"?e:(t.params[r]||(t.params[r]=[]),Array.isArray(e)?new y(e,i||0):(t.params[r].length===0?t.params[r].push(e):t.params[r][t.params[r].length-1]=e,new y(t.params[r],i||0)))}function Mh(t){return()=>1.618033988749895}function Rh(t){return()=>Math.PI}function Oh(t){return(e,i)=>Math.pow(y.from(e).get(0),y.from(i).get(0))}function Vh(t){return()=>Math.random()}function ki(t){return t!==t?NaN:Math.sign(t)*Math.round(Math.abs(t))}function Lh(t){return(e,i)=>{const r=y.from(e).get(0);if(i==null)return ki(r);const s=y.from(i).get(0);if(s===0)return ki(r);const a=Math.pow(10,s);return ki(r*a)/a}}function jh(t){return e=>t.precision(Math.round(y.from(e).get(0)/t.pine.syminfo.mintick)*t.pine.syminfo.mintick)}function $h(t){return()=>.6180339887498948}function Bh(t){return e=>Math.sign(y.from(e).get(0))}function Fh(t){return e=>Math.sin(y.from(e).get(0))}function Wh(t){return e=>Math.sqrt(y.from(e).get(0))}function Uh(t){return(e,i)=>{const r=y.from(i).get(0),s=y.from(e);let a=0;for(let n=0;n<r;n++){const o=s.get(n);a+=o}return a}}function qh(t){return e=>Math.tan(y.from(e).get(0))}function Kh(t){return e=>{const i=y.from(e).get(0);return i==null||Number.isNaN(i)?NaN:i*(180/Math.PI)}}function zh(t){return e=>{const i=y.from(e).get(0);return i==null||Number.isNaN(i)?NaN:i*(Math.PI/180)}}function Hh(t){return(e,i)=>{const r=y.from(e).get(0),s=y.from(i).get(0);return typeof r=="number"&&typeof s=="number"?isNaN(r)||isNaN(s)?!1:Math.abs(r-s)<1e-9:r===s}}function Gh(t){return(e,i)=>{const r=y.from(e).get(0),s=y.from(i).get(0);return typeof r=="number"&&typeof s=="number"?isNaN(r)||isNaN(s)?!1:Math.abs(r-s)>=1e-9:r!==s}}var Yh=Object.defineProperty,Xh=(t,e,i)=>e in t?Yh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,W=(t,e,i)=>Xh(t,typeof e!="symbol"?e+"":e,i);const Qh={abs:yh,acos:xh,asin:_h,atan:bh,avg:vh,ceil:wh,cos:Sh,e:Eh,exp:Nh,floor:Ch,ln:Ih,log:kh,log10:Ah,max:Th,min:Ph,param:Dh,phi:Mh,pi:Rh,pow:Oh,random:Vh,round:Lh,round_to_mintick:jh,rphi:$h,sign:Bh,sin:Fh,sqrt:Wh,sum:Uh,tan:qh,todegrees:Kh,toradians:zh,__eq:Hh,__neq:Gh};class Zh{constructor(e){this.context=e,W(this,"_cache",{}),W(this,"abs"),W(this,"acos"),W(this,"asin"),W(this,"atan"),W(this,"avg"),W(this,"ceil"),W(this,"cos"),W(this,"e"),W(this,"exp"),W(this,"floor"),W(this,"ln"),W(this,"log"),W(this,"log10"),W(this,"max"),W(this,"min"),W(this,"param"),W(this,"phi"),W(this,"pi"),W(this,"pow"),W(this,"random"),W(this,"round"),W(this,"round_to_mintick"),W(this,"rphi"),W(this,"sign"),W(this,"sin"),W(this,"sqrt"),W(this,"sum"),W(this,"tan"),W(this,"todegrees"),W(this,"toradians"),W(this,"__eq"),W(this,"__neq"),Object.entries(Qh).forEach(([i,r])=>{this[i]=r(e)})}}function Jh(t){return(e,i,r)=>{t.params[r]||(t.params[r]=[]);let s;if(e instanceof y)s=e.get(i||0);else if(Array.isArray(e)){const a=e.some(o=>o instanceof y),n=e.every(o=>!(o instanceof y)&&!Array.isArray(o));(a||n)&&e.length>=1?s=e.map(o=>o instanceof y?o.get(0):o):s=y.from(e).get(i||0)}else s=e;return t.params[r].length===0?t.params[r].push(s):t.params[r][t.params[r].length-1]=s,[s,r]}}const Pt=["1","3","5","15","30","45","60","120","180","240","D","W","M"],Qt={"1m":"1","3m":"3","5m":"5","15m":"15","30m":"30","45m":"45","1h":"60","2h":"120","3h":"180","4h":"240","1d":"D","1w":"W","1M":"M"};function hi(t){if(Pt.includes(t))return t;if(Qt[t])return Qt[t];const e=t.toLowerCase();if(Qt[e])return Qt[e];const i=t.toUpperCase();return Pt.includes(i)?i:t}function Tr(t,e,i,r,s=!1,a=!1){for(let n=0;n<i.length;n++)if(i[n]<=t&&t<r[n])return s||a||e>=r[n]?n:n-1;return-1}function Pr(t,e,i,r,s=!1,a,n=!1){for(let o=i.length-1;o>=0;o--){if(r[o]<=e&&i[o]>=t){const l=a&&e>a;if(n&&s)for(let c=0;c<i.length;c++){if(i[c]>=t&&i[c]<e)return c;if(i[c]>=e)break}if(l&&s&&!n)for(let c=0;c<i.length;c++){if(i[c]>=t&&i[c]<e)return c;if(i[c]>=e)break}return o}if(r[o]<t)break}return-1}function Wi(t){return t==null||typeof t!="object"?t:"__value"in t?t.__value:t instanceof y?t.get(0):Array.isArray(t)?t.map(Wi):t}function eu(t){return async(e,i,r,s=!1,a=!1,n=!1,o=null,l=null)=>{const c=e[0]instanceof y?e[0].get(0):e[0],h=c===""?t.tickerId:c,p=typeof h=="string"&&h.includes(":")?h.split(":")[1]:h,u=i[0]instanceof y?i[0].get(0):i[0],f=u===""?t.timeframe:typeof u=="string"?u:String(u??""),m=r[0],x=r[1],_=Array.isArray(s)?s[0]:s,b=Array.isArray(a)?a[0]:a,S=_===!0||_==="gaps_on",v=b===!0||b==="lookahead_on";if(t.isSecondaryContext){const Se=Wi(m);return Array.isArray(Se)?[Se]:Se}const E=Pt.indexOf(hi(t.timeframe)),T=Pt.indexOf(hi(f));if(E==-1||T==-1)throw new Error("Invalid timeframe");if(E===T){const Se=Wi(m);return Array.isArray(Se)?[Se]:Se}const C=E>T,O=y.from(t.data.openTime).get(0),B=y.from(t.data.closeTime).get(0),z=t.idx===t.length-1&&B>Date.now(),q=`${p}_${f}_${x}`,V=`${q}_prevIdx`;if(t.cache[q]){const Se=t.cache[q];t.dataVersion>Se.dataVersion&&(await Se.pineTS.updateTail(Se.context),Se.dataVersion=t.dataVersion);const Vt=Se.context,Ht=C?Pr(O,B,Vt.data.openTime.data,Vt.data.closeTime.data,v,t.eDate,S):Tr(O,B,Vt.data.openTime.data,Vt.data.closeTime.data,v,z);if(Ht==-1)return NaN;const vt=Vt.params[x][Ht];if(!C&&S){const nr=t.cache[V];return nr!==void 0&&nr===Ht?NaN:(t.cache[V]=Ht,Array.isArray(vt)?[vt]:vt)}return Array.isArray(vt)?[vt]:vt}const Q=1e3*60*60*24*30,pe=t.sDate||(t.marketData?.length>0?t.marketData[0].openTime:void 0),Ce=pe?pe-Q:void 0,Ie=t.marketData?.length>0?t.marketData[t.marketData.length-1].closeTime:0,ke=t.eDate?Math.max(t.eDate,Ie):(Ie||Date.now())+Q,ut=new ln(t.source,p,f,void 0,Ce,ke);ut.markAsSecondary();const ce=await ut.run(t.pineTSCode);t.cache[q]={pineTS:ut,context:ce,dataVersion:t.dataVersion};const bi=C?Pr(O,B,ce.data.openTime.data,ce.data.closeTime.data,v,t.eDate,S):Tr(O,B,ce.data.openTime.data,ce.data.closeTime.data,v,z);if(bi==-1)return NaN;const vi=ce.params[x][bi];return!C&&S?(t.cache[V]=bi,NaN):Array.isArray(vi)?[vi]:vi}}function Nt(t){return typeof t=="number"?D.float:typeof t=="boolean"?D.bool:typeof t=="string"?D.string:D.any}function tu(t){return async(e,i,r,s=!1,a=null,n=!1,o=0)=>{const l=e[0]instanceof y?e[0].get(0):e[0],c=l===""?t.tickerId:l,h=typeof c=="string"&&c.includes(":")?c.split(":")[1]:c,p=i[0]instanceof y?i[0].get(0):i[0],u=p===""?t.timeframe:typeof p=="string"?p:String(p??""),f=r[0],m=r[1];Array.isArray(s)&&s[0];const x=Array.isArray(n)?n[0]:n;if(t.isSecondaryContext)return Array.isArray(f)?[f.map(V=>new R([V],Nt(V),t))]:new R([f],Nt(f),t);const _=Pt.indexOf(hi(t.timeframe)),b=Pt.indexOf(hi(u));if(_===-1||b===-1){if(x)return NaN;throw new Error("Invalid timeframe")}if(b>_){if(x)return NaN;throw new Error(`Timeframe ${u} is not lower than or equal to chart timeframe ${t.timeframe}`)}if(b===_)return Array.isArray(f)?[f.map(V=>new R([V],Nt(V),t))]:new R([f],Nt(f),t);const S=`${h}_${u}_${m}_lower`;if(!t.cache[S]){const V=t.sDate||(t.marketData?.length>0?t.marketData[0].openTime:void 0),Q=V?V-2592e6:void 0,pe=t.marketData?.length>0?t.marketData[t.marketData.length-1].closeTime:0,Ce=t.eDate?Math.max(t.eDate,pe):(pe||Date.now())+2592e6,Ie=new ln(t.source,h,u,void 0,Q,Ce);Ie.markAsSecondary();const ke=await Ie.run(t.pineTSCode);t.cache[S]={pineTS:Ie,context:ke,dataVersion:t.dataVersion}}const v=t.cache[S];t.dataVersion>v.dataVersion&&(await v.pineTS.updateTail(v.context),v.dataVersion=t.dataVersion);const E=v.context,T=y.from(t.data.openTime).get(0),C=y.from(t.data.closeTime).get(0),O=E.data.openTime.data,B=E.data.closeTime.data,z=E.params[m];if(!z)return Array.isArray(f)?[f.map(()=>new R([],D.float,t))]:new R([],D.float,t);const q=[];for(let V=0;V<O.length;V++){const Q=O[V];if(!(B[V]<=T)){if(Q>=C)break;Q>=T&&Q<C&&q.push(z[V])}}if(q.length>0&&Array.isArray(q[0])){const V=q[0].length,Q=[];for(let pe=0;pe<V;pe++){const Ce=q.map(ke=>ke[pe]),Ie=Ce.length>0?Nt(Ce[0]):D.float;Q.push(new R(Ce,Ie,t))}return[Q]}else{const V=q.length>0?Nt(q[0]):D.float;return new R(q,V,t)}}}var iu=Object.defineProperty,ru=(t,e,i)=>e in t?iu(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Zt=(t,e,i)=>ru(t,typeof e!="symbol"?e+"":e,i);const su={param:Jh,security:eu,security_lower_tf:tu};class nu{constructor(e){this.context=e,Zt(this,"_cache",{}),Zt(this,"param"),Zt(this,"security"),Zt(this,"security_lower_tf"),Object.entries(su).forEach(([i,r])=>{this[i]=r(e)})}}function au(t){return e=>{t.taState||(t.taState={});const i=e||"accdist";t.taState[i]||(t.taState[i]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.prevCumulativeSum=r.currentCumulativeSum),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.high,0),n=t.get(t.data.low,0),o=t.get(t.data.volume,0);if(isNaN(s)||isNaN(a)||isNaN(n)||isNaN(o))return r.currentCumulativeSum=r.prevCumulativeSum,t.precision(r.prevCumulativeSum);const l=a-n;let c=0;l!==0&&(c=(s-n-(a-s))/l*o);const h=r.prevCumulativeSum+c;return r.currentCumulativeSum=h,t.precision(h)}}function ou(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0),l=y.from(s).get(0);t.taState||(t.taState={});const c=a||`alma_${n}_${o}_${l}`;if(!t.taState[c]){const x=o*(n-1),_=n/l,b=[];let S=0;for(let v=0;v<n;v++){const E=Math.exp(-Math.pow(v-x,2)/(2*_*_));b.push(E),S+=E}for(let v=0;v<b.length;v++)b[v]/=S;t.taState[c]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0,weights:b}}const h=t.taState[c];t.idx>h.lastIdx&&(h.lastIdx>=0&&(h.prevWindow=[...h.currentWindow],h.prevCallCount=h.currentCallCount),h.lastIdx=t.idx);const p=y.from(e).get(0),u=[...h.prevWindow];for(u.unshift(p);u.length>n;)u.pop();const f=h.prevCallCount+1;if(u.length<n&&(f>=n||t.idx>=n-1)){const x=y.from(e);for(;u.length<n;)u.push(x.get(u.length))}if(h.currentWindow=u,h.currentCallCount=f,u.length<n)return NaN;let m=0;for(let x=0;x<n;x++)m+=h.weights[x]*u[n-1-x];return t.precision(m)}}function lu(t){return(e,i)=>{const r=y.from(e).get(0);t.taState||(t.taState={});const s=i||`atr_${r}`;t.taState[s]||(t.taState[s]={lastIdx:-1,prevAtr:null,prevInitSum:0,prevInitCount:0,currentAtr:null,currentInitSum:0,currentInitCount:0});const a=t.taState[s];t.idx>a.lastIdx&&(a.lastIdx>=0&&(a.prevAtr=a.currentAtr,a.prevInitSum=a.currentInitSum,a.prevInitCount=a.currentInitCount),a.lastIdx=t.idx);const n=t.get(t.data.high,0),o=t.get(t.data.low,0),l=t.get(t.data.close,0);if(isNaN(n)||isNaN(o)||isNaN(l))return NaN;const c=t.idx>0?t.get(t.data.close,1):null;let h;if(c!==null&&!isNaN(c)){const x=n-o,_=Math.abs(n-c),b=Math.abs(o-c);h=Math.max(x,_,b)}else h=n-o;let p=a.prevInitCount,u=a.prevInitSum,f=a.prevAtr;if(p<r){if(u+=h,p++,a.currentInitSum=u,a.currentInitCount=p,p===r){const x=u/r;return a.currentAtr=x,t.precision(x)}return NaN}const m=(f*(r-1)+h)/r;return a.currentAtr=m,t.precision(m)}}function cu(t){return(e,i)=>{t.taState||(t.taState={});const r=i||"barssince";t.taState[r]||(t.taState[r]={lastIdx:-1,prevLastTrueIndex:null,currentLastTrueIndex:null});const s=t.taState[r];t.idx>s.lastIdx&&(s.lastIdx>=0&&(s.prevLastTrueIndex=s.currentLastTrueIndex),s.lastIdx=t.idx);const a=y.from(e).get(0);let n=s.prevLastTrueIndex;return a&&(n=t.idx),s.currentLastTrueIndex=n,n===null?NaN:t.idx-n}}function hu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`bb_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevSum:0,currentWindow:[],currentSum:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevSum=l.currentSum),l.lastIdx=t.idx);const c=y.from(e).get(0);if(isNaN(c))return l.currentWindow=[...l.prevWindow],l.currentSum=l.prevSum,[[NaN,NaN,NaN]];const h=[...l.prevWindow];let p=l.prevSum;for(h.unshift(c),p+=c;h.length>a;){const b=h.pop();p-=b}if(h.length<a&&t.idx>=a-1){const b=y.from(e);for(;h.length<a;){const S=b.get(h.length);if(isNaN(S))break;h.push(S),p+=S}}if(l.currentWindow=h,l.currentSum=p,h.length<a)return[[NaN,NaN,NaN]];const u=p/a;let f=0;for(let b=0;b<a;b++)f+=Math.pow(h[b]-u,2);const m=Math.sqrt(f/a),x=u+n*m,_=u-n*m;return[[t.precision(u),t.precision(x),t.precision(_)]]}}function uu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`bbw_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevSum:0,currentWindow:[],currentSum:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevSum=l.currentSum),l.lastIdx=t.idx);const c=y.from(e).get(0);if(isNaN(c))return l.currentWindow=[...l.prevWindow],l.currentSum=l.prevSum,NaN;const h=[...l.prevWindow];let p=l.prevSum;for(h.unshift(c),p+=c;h.length>a;){const S=h.pop();p-=S}if(h.length<a&&t.idx>=a-1){const S=y.from(e);for(;h.length<a;){const v=S.get(h.length);if(isNaN(v))break;h.push(v),p+=v}}if(l.currentWindow=h,l.currentSum=p,h.length<a)return NaN;const u=p/a;let f=0;for(let S=0;S<a;S++){const v=h[S]-u;f+=v*v}const m=f/a,x=Math.sqrt(m),_=n*x;if(u===0)return t.precision(0);const b=2*_/u*100;return t.precision(b)}}function pu(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`cci_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevSum=n.currentSum,n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0);if(isNaN(o))return NaN;const l=[...n.prevWindow];let c=n.prevSum;for(l.unshift(o),c+=o;l.length>s;){const x=l.pop();c-=x}const h=n.prevCallCount+1;if(l.length<s&&(h>=s||t.idx>=s-1)){const x=y.from(e);for(;l.length<s;){const _=x.get(l.length);if(isNaN(_))break;l.push(_),c+=_}}if(n.currentWindow=l,n.currentSum=c,n.currentCallCount=h,l.length<s)return NaN;const p=c/s;let u=0;for(let x=0;x<s;x++)u+=Math.abs(l[x]-p);const f=u/s;if(f===0)return 0;const m=(o-p)/(.015*f);return t.precision(m)}}function fu(t){return(e,i=1,r)=>{typeof i=="string"&&(r=i,i=1);const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`change_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s+1;)l.pop();const c=n.prevCallCount+1;if(l.length<s+1&&(c>=s+1||t.idx>=s)){const p=y.from(e);for(;l.length<s+1;)l.push(p.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<=s)return NaN;const h=o-l[s];return t.precision(h)}}function du(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`cmo_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevGainsWindow:[],prevLossesWindow:[],prevGainsSum:0,prevLossesSum:0,currentGainsWindow:[],currentLossesWindow:[],currentGainsSum:0,currentLossesSum:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevGainsWindow=[...n.currentGainsWindow],n.prevLossesWindow=[...n.currentLossesWindow],n.prevGainsSum=n.currentGainsSum,n.prevLossesSum=n.currentLossesSum),n.lastIdx=t.idx);const o=y.from(e).get(0),l=y.from(e).get(1);if(isNaN(o)||isNaN(l))return NaN;const c=o-l,h=c>=0?c:0,p=c>=0?0:-c,u=[...n.prevGainsWindow],f=[...n.prevLossesWindow];let m=n.prevGainsSum,x=n.prevLossesSum;if(u.unshift(h),f.unshift(p),m+=h,x+=p,u.length<s)return n.currentGainsWindow=u,n.currentLossesWindow=f,n.currentGainsSum=m,n.currentLossesSum=x,NaN;if(u.length>s){const S=u.pop(),v=f.pop();m-=S,x-=v}n.currentGainsWindow=u,n.currentLossesWindow=f,n.currentGainsSum=m,n.currentLossesSum=x;const _=m+x;if(_===0)return t.precision(0);const b=100*(m-x)/_;return t.precision(b)}}function mu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);let n=0,o=!1;for(let h=0;h<s;h++){const p=a.get(h);if(isNaN(p)){o=!0;break}n+=p}if(o)return NaN;let l=0;for(let h=0;h<s;h++){const p=a.get(h);l+=p*(h+1)}if(n===0)return NaN;const c=-l/n;return t.precision(c)}}function gu(t){return(e,i,r,s)=>{const a=y.from(r).get(0),n=y.from(e),o=y.from(i);if(t.idx<a-1)return NaN;let l=0,c=0,h=0,p=0,u=0,f=0;for(let S=0;S<a;S++){const v=n.get(S),E=o.get(S);isNaN(v)||isNaN(E)||(l+=v,c+=E,h+=v*E,p+=v*v,u+=E*E,f++)}if(f<2)return NaN;const m=f*h-l*c,x=f*p-l*l,_=f*u-c*c;if(x<=0||_<=0)return t.precision(0);const b=m/Math.sqrt(x*_);return t.precision(b)}}function yu(t){return(e,i,r)=>{const s=y.from(e),a=y.from(i),n=s.get(0),o=a.get(0),l=s.get(1),c=a.get(1);if(isNaN(n)||isNaN(o)||isNaN(l)||isNaN(c))return!1;const h=n>o&&l<=c,p=n<o&&l>=c;return h||p}}function xu(t){return(e,i)=>{const r=y.from(e),s=y.from(i),a=r.get(0),n=s.get(0),o=r.get(1),l=s.get(1);return o<=l&&a>n}}function _u(t){return(e,i)=>{const r=y.from(e),s=y.from(i),a=r.get(0),n=s.get(0),o=r.get(1),l=s.get(1);return o>=l&&a<n}}function bu(t){return(e,i)=>{t.taState||(t.taState={});const r=i||"cum";t.taState[r]||(t.taState[r]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const s=t.taState[r];t.idx>s.lastIdx&&(s.lastIdx>=0&&(s.prevCumulativeSum=s.currentCumulativeSum),s.lastIdx=t.idx);const a=y.from(e).get(0);if(isNaN(a))return s.currentCumulativeSum=s.prevCumulativeSum,t.precision(s.prevCumulativeSum);const n=s.prevCumulativeSum+a;return s.currentCumulativeSum=n,t.precision(n)}}function vu(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`dev_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevSum=n.currentSum,n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0)||0,l=[...n.prevWindow];let c=n.prevSum;for(l.unshift(o),c+=o;l.length>s;){const m=l.pop();c-=m}const h=n.prevCallCount+1;if(l.length<s&&(h>=s||t.idx>=s-1)){const m=y.from(e);for(;l.length<s;){const x=m.get(l.length);l.push(x),c+=x}}if(n.currentWindow=l,n.currentSum=c,n.currentCallCount=h,l.length<s)return NaN;const p=c/s;let u=0;for(let m=0;m<s;m++)u+=Math.abs(l[m]-p);const f=u/s;return t.precision(f)}}function wu(t){return(e,i,r)=>{const s=y.from(e).get(0),a=y.from(i).get(0);t.taState||(t.taState={});const n=r||`dmi_${s}_${a}`;t.taState[n]||(t.taState[n]={lastIdx:-1,prevTrInitSum:0,prevPlusInitSum:0,prevMinusInitSum:0,prevInitCount:0,prevSmoothedTR:NaN,prevSmoothedPlus:NaN,prevSmoothedMinus:NaN,prevDxInitSum:0,prevAdxInitCount:0,prevADX:NaN,currentTrInitSum:0,currentPlusInitSum:0,currentMinusInitSum:0,currentInitCount:0,currentSmoothedTR:NaN,currentSmoothedPlus:NaN,currentSmoothedMinus:NaN,currentDxInitSum:0,currentAdxInitCount:0,currentADX:NaN});const o=t.taState[n];t.idx>o.lastIdx&&(o.lastIdx>=0&&(o.prevTrInitSum=o.currentTrInitSum,o.prevPlusInitSum=o.currentPlusInitSum,o.prevMinusInitSum=o.currentMinusInitSum,o.prevInitCount=o.currentInitCount,o.prevSmoothedTR=o.currentSmoothedTR,o.prevSmoothedPlus=o.currentSmoothedPlus,o.prevSmoothedMinus=o.currentSmoothedMinus,o.prevDxInitSum=o.currentDxInitSum,o.prevAdxInitCount=o.currentAdxInitCount,o.prevADX=o.currentADX),o.lastIdx=t.idx);const l=t.get(t.data.high,0),c=t.get(t.data.low,0),h=t.get(t.data.close,0);if(isNaN(l)||isNaN(c)||isNaN(h))return[[NaN,NaN,NaN]];const p=t.idx>0?t.get(t.data.high,1):NaN,u=t.idx>0?t.get(t.data.low,1):NaN,f=t.idx>0?t.get(t.data.close,1):NaN;if(isNaN(p))return[[NaN,NaN,NaN]];const m=Math.max(l-c,Math.abs(l-f),Math.abs(c-f)),x=l-p,_=u-c,b=x>_&&x>0?x:0,S=_>x&&_>0?_:0;let v=o.prevInitCount,E=o.prevTrInitSum,T=o.prevPlusInitSum,C=o.prevMinusInitSum,O=o.prevSmoothedTR,B=o.prevSmoothedPlus,z=o.prevSmoothedMinus;if(v++,v<=s)E+=m,T+=b,C+=S,v===s&&(O=E/s,B=T/s,z=C/s);else{const ce=1/s;O=ce*m+(1-ce)*O,B=ce*b+(1-ce)*B,z=ce*S+(1-ce)*z}if(o.currentInitCount=v,o.currentTrInitSum=E,o.currentPlusInitSum=T,o.currentMinusInitSum=C,o.currentSmoothedTR=O,o.currentSmoothedPlus=B,o.currentSmoothedMinus=z,v<s)return[[NaN,NaN,NaN]];const q=O===0?0:100*B/O,V=O===0?0:100*z/O,Q=q+V,pe=Q===0?0:100*Math.abs(q-V)/Q;let Ce=o.prevAdxInitCount,Ie=o.prevDxInitSum,ke=o.prevADX,ut=NaN;if(Ce++,Ce<=a)Ie+=pe,Ce===a&&(ke=Ie/a,ut=ke);else{const ce=1/a;ke=ce*pe+(1-ce)*ke,ut=ke}return o.currentAdxInitCount=Ce,o.currentDxInitSum=Ie,o.currentADX=ke,[[t.precision(q),t.precision(V),t.precision(ut)]]}}function Su(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`ema_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevEma:null,prevInitSum:0,prevInitCount:0,currentEma:null,currentInitSum:0,currentInitCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevEma=n.currentEma,n.prevInitSum=n.currentInitSum,n.prevInitCount=n.currentInitCount),n.lastIdx=t.idx);const o=y.from(e).get(0);if(o==null||isNaN(o))return NaN;let l=n.prevInitCount,c=n.prevInitSum,h=n.prevEma;if(l<s){if(c+=o,l++,n.currentInitSum=c,n.currentInitCount=l,l===s){const f=c/s;return n.currentEma=f,t.precision(f)}return NaN}const p=2/(s+1),u=o*p+h*(1-p);return n.currentEma=u,t.precision(u)}}function Eu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);for(let n=0;n<s;n++){const o=a.get(n),l=a.get(n+1);if(isNaN(o)||isNaN(l)||o>=l)return!1}return!0}}function Nu(t){return(e,i,r)=>{typeof i=="string"&&r===void 0&&(r=i,i=e,e=t.data.high);const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`highest_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const u=y.from(e);for(;l.length<s;)l.push(u.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;const h=l.filter(u=>!isNaN(u)&&u!==void 0);if(h.length===0)return NaN;const p=Math.max(...h);return t.precision(p)}}function Cu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s-1)return NaN;let n=-1/0,o=NaN;for(let l=0;l<s;l++){const c=a.get(l);isNaN(c)||(isNaN(o)||c>n)&&(n=c,o=-l)}return o}}function Iu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=Math.floor(s/2),n=Math.floor(Math.sqrt(s)),o=t.pine.ta.wma,l=o(e,a,r?`${r}_wma1`:void 0),c=o(e,s,r?`${r}_wma2`:void 0);if(isNaN(l)||isNaN(c))return NaN;t.taState||(t.taState={});const h=r||`hma_raw_${s}`;t.taState[h]||(t.taState[h]={lastIdx:-1,prevValues:[],currentValues:[]});const p=t.taState[h];t.idx>p.lastIdx&&(p.lastIdx>=0&&(p.prevValues=[...p.currentValues]),p.lastIdx=t.idx);const u=2*l-c,f=[...p.prevValues];f.unshift(u),f.length>n+1&&f.pop(),p.currentValues=f;const m=r?`${r}_hma_final`:`hma_final_${s}`;t.taState[m]||(t.taState[m]={lastIdx:-1,prevWindow:[],currentWindow:[]});const x=t.taState[m];t.idx>x.lastIdx&&(x.lastIdx>=0&&(x.prevWindow=[...x.currentWindow]),x.lastIdx=t.idx);const _=[...x.prevWindow];if(_.unshift(u),_.length<n)return x.currentWindow=_,NaN;for(;_.length>n;)_.pop();x.currentWindow=_;let b=0,S=0;for(let E=0;E<n;E++){const T=n-E;b+=_[E]*T,S+=T}const v=b/S;return t.precision(v)}}function ku(t){return e=>{const i=t.get(t.data.close,0),r=t.get(t.data.high,0),s=t.get(t.data.low,0),a=t.get(t.data.volume,0);if(isNaN(i)||isNaN(r)||isNaN(s)||isNaN(a))return NaN;const n=(r-s)*a;if(n===0)return t.precision(0);const o=(2*i-r-s)/n;return t.precision(o)}}function Au(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0);let l=!0;typeof s=="string"?a=s:s!==void 0&&(l=y.from(s).get(0));let c;const h=t.get(t.data.high,0),p=t.get(t.data.low,0);if(l){const E=t.get(t.data.close,1);isNaN(E)?c=NaN:c=Math.max(h-p,Math.abs(h-E),Math.abs(p-E))}else c=h-p;const u=y.from(e).get(0);t.taState||(t.taState={});const f=a||`kc_${n}_${o}_${l}`;t.taState[f]||(t.taState[f]={lastIdx:-1,basisState:{prevEma:null,initSum:0,initCount:0},rangeState:{prevEma:null,initSum:0,initCount:0},currentBasisState:{prevEma:null,initSum:0,initCount:0},currentRangeState:{prevEma:null,initSum:0,initCount:0}});const m=t.taState[f];t.idx>m.lastIdx&&(m.lastIdx>=0&&(m.basisState={...m.currentBasisState},m.rangeState={...m.currentRangeState}),m.lastIdx=t.idx);const x=(E,T,C,O)=>{if(isNaN(C))return Object.assign(T,E),T.prevEma!==null?T.prevEma:NaN;let B=E.initCount,z=E.initSum,q=E.prevEma;if(B<O){if(z+=C,B++,T.initSum=z,T.initCount=B,T.prevEma=q,B===O){const pe=z/O;return T.prevEma=pe,pe}return NaN}const V=2/(O+1),Q=C*V+q*(1-V);return T.prevEma=Q,T.initSum=z,T.initCount=B,Q},_=x(m.basisState,m.currentBasisState,u,n),b=x(m.rangeState,m.currentRangeState,c,n);if(isNaN(_)||isNaN(b))return[[NaN,NaN,NaN]];const S=_+b*o,v=_-b*o;return[[t.precision(_),t.precision(S),t.precision(v)]]}}function Tu(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0);let l=!0;typeof s=="string"?a=s:s!==void 0&&(l=y.from(s).get(0)),t.taState||(t.taState={});const c=a||`kcw_${n}_${o}_${l}`;t.taState[c]||(t.taState[c]={lastIdx:-1,basisState:{prevEma:null,initSum:0,initCount:0},rangeState:{prevEma:null,initSum:0,initCount:0},currentBasisState:{prevEma:null,initSum:0,initCount:0},currentRangeState:{prevEma:null,initSum:0,initCount:0}});const h=t.taState[c];t.idx>h.lastIdx&&(h.lastIdx>=0&&(h.basisState={...h.currentBasisState},h.rangeState={...h.currentRangeState}),h.lastIdx=t.idx);const p=(v,E,T,C)=>{if(isNaN(T))return Object.assign(E,v),E.prevEma!==null?E.prevEma:NaN;let O=v.initCount,B=v.initSum,z=v.prevEma;if(O<C){if(B+=T,O++,E.initSum=B,E.initCount=O,E.prevEma=z,O===C){const Q=B/C;return E.prevEma=Q,Q}return NaN}const q=2/(C+1),V=T*q+z*(1-q);return E.prevEma=V,E.initSum=B,E.initCount=O,V};let u;const f=t.get(t.data.high,0),m=t.get(t.data.low,0);if(l){const v=t.get(t.data.close,1);isNaN(v)?u=NaN:u=Math.max(f-m,Math.abs(f-v),Math.abs(m-v))}else u=f-m;const x=y.from(e).get(0),_=p(h.basisState,h.currentBasisState,x,n),b=p(h.rangeState,h.currentRangeState,u,n);if(isNaN(_)||isNaN(b))return NaN;if(_===0)return t.precision(0);const S=2*b*o/_;return t.precision(S)}}function Pu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`linreg_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevCallCount=l.currentCallCount),l.lastIdx=t.idx);const c=y.from(e).get(0),h=[...l.prevWindow];for(h.unshift(c);h.length>a;)h.pop();const p=l.prevCallCount+1;if(h.length<a&&(p>=a||t.idx>=a-1)){const E=y.from(e);for(;h.length<a;)h.push(E.get(h.length))}if(l.currentWindow=h,l.currentCallCount=p,h.length<a)return NaN;let u=0,f=0,m=0,x=0;const _=a;for(let E=0;E<a;E++){const T=a-1-E,C=h[E];u+=T,f+=C,m+=T*C,x+=T*T}const b=_*x-u*u;if(b===0)return NaN;const S=(_*m-u*f)/b,v=(f-S*u)/_+S*(a-1-n);return t.precision(v)}}function Du(t){return(e,i,r)=>{typeof i=="string"&&r===void 0&&(r=i,i=e,e=t.data.low);const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`lowest_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const u=y.from(e);for(;l.length<s;)l.push(u.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;const h=l.filter(u=>!isNaN(u)&&u!==void 0);if(h.length===0)return NaN;const p=Math.min(...h);return t.precision(p)}}function Mu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s-1)return NaN;let n=1/0,o=NaN;for(let l=0;l<s;l++){const c=a.get(l);isNaN(c)||(isNaN(o)||c<n)&&(n=c,o=-l)}return o}}function Ru(t){return(e,i,r,s,a)=>{const n=y.from(i).get(0),o=y.from(r).get(0),l=y.from(s).get(0),c=a||`macd_${n}_${o}_${l}`,h=`${c}_fast`,p=`${c}_slow`,u=`${c}_signal`,f=t.pine.ta.ema(e,n,h),m=t.pine.ta.ema(e,o,p);let x=NaN;!isNaN(f)&&!isNaN(m)&&(x=f-m);let _=NaN;isNaN(x)||(_=t.pine.ta.ema(x,l,u));let b=NaN;return!isNaN(x)&&!isNaN(_)&&(b=x-_),[[t.precision(x),t.precision(_),t.precision(b)]]}}function Ou(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`median_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const f=y.from(e);for(;l.length<s;)l.push(f.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;const h=l.slice().sort((f,m)=>f-m),p=Math.floor(s/2),u=s%2===0?(h[p-1]+h[p])/2:h[p];return t.precision(u)}}function Vu(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`mfi_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevUpperWindow:[],prevLowerWindow:[],prevUpperSum:0,prevLowerSum:0,currentUpperWindow:[],currentLowerWindow:[],currentUpperSum:0,currentLowerSum:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevUpperWindow=[...n.currentUpperWindow],n.prevLowerWindow=[...n.currentLowerWindow],n.prevUpperSum=n.currentUpperSum,n.prevLowerSum=n.currentLowerSum),n.lastIdx=t.idx);const o=y.from(e).get(0),l=y.from(e).get(1),c=t.get(t.data.volume,0);if(isNaN(o)||isNaN(c))return NaN;const h=isNaN(l)?NaN:o-l,p=c*(h<=0?0:o),u=c*(h>=0?0:o),f=[...n.prevUpperWindow],m=[...n.prevLowerWindow];let x=n.prevUpperSum,_=n.prevLowerSum;if(f.unshift(p),m.unshift(u),x+=p,_+=u,f.length<s)return n.currentUpperWindow=f,n.currentLowerWindow=m,n.currentUpperSum=x,n.currentLowerSum=_,NaN;if(f.length>s){const S=f.pop(),v=m.pop();x-=S,_-=v}if(n.currentUpperWindow=f,n.currentLowerWindow=m,n.currentUpperSum=x,n.currentLowerSum=_,_===0)return t.precision(100);if(x===0)return t.precision(0);const b=100-100/(1+x/_);return t.precision(b)}}function Lu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s-1)return NaN;const n=new Map;for(let c=0;c<s;c++){const h=a.get(c);isNaN(h)||n.set(h,(n.get(h)||0)+1)}if(n.size===0)return NaN;let o=NaN,l=-1;for(const[c,h]of n.entries())h>l?(l=h,o=c):h===l&&c<o&&(o=c);return o}}function ju(t){return(e,i,r)=>{const s=y.from(i).get(0);return t.pine.ta.change(e,s,r)}}function $u(t){return e=>{t.taState||(t.taState={});const i=e||"nvi";t.taState[i]||(t.taState[i]={lastIdx:-1,committedNVI:1,tentativeNVI:1});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.committedNVI=r.tentativeNVI),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.close,1),n=t.get(t.data.volume,0),o=t.get(t.data.volume,1),l=isNaN(s)?0:s,c=isNaN(a)?0:a,h=isNaN(n)?0:n,p=isNaN(o)?0:o;let u=r.committedNVI;if(!(l===0||c===0)&&h<p){const f=(l-c)/c;u=u+f*u}return r.tentativeNVI=u,t.precision(u)}}function Bu(t){return()=>{t.taState||(t.taState={});const e="obv";t.taState[e]||(t.taState[e]={lastIdx:-1,committedOBV:0,tentativeOBV:0});const i=t.taState[e];t.idx>i.lastIdx&&(i.lastIdx>=0&&(i.committedOBV=i.tentativeOBV),i.lastIdx=t.idx);const r=t.get(t.data.close,0),s=t.get(t.data.volume,0),a=t.get(t.data.close,1);if(isNaN(a))return i.tentativeOBV=0,t.precision(0);let n=i.committedOBV;return r>a?n+=s:r<a&&(n-=s),i.tentativeOBV=n,t.precision(n)}}function Fu(t){return(e,i,r)=>e instanceof y?i?new y(e.data,e.offset+i):e:(t.params[r]||(t.params[r]=[]),Array.isArray(e)?new y(e,i||0):(t.params[r].length===0?t.params[r].push(e):t.params[r][t.params[r].length-1]=e,new y(t.params[r],i||0)))}function Wu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e);if(t.idx<a-1)return NaN;const l=[];for(let m=0;m<a;m++){const x=o.get(m);if(isNaN(x))return NaN;l.push(x)}l.sort((m,x)=>m-x);let c=n/100*a-.5;c<0&&(c=0),c>a-1&&(c=a-1);const h=Math.floor(c),p=Math.ceil(c);if(h===p)return t.precision(l[h]);const u=c-h,f=l[h]+u*(l[p]-l[h]);return t.precision(f)}}function Uu(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e);if(t.idx<a-1)return NaN;const l=[];for(let h=0;h<a;h++){const p=o.get(h);isNaN(p)||l.push(p)}if(l.length===0)return NaN;l.sort((h,p)=>h-p);let c=Math.ceil(n/100*l.length)-1;return c<0&&(c=0),c>=l.length&&(c=l.length-1),t.precision(l[c])}}function qu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);if(t.idx<s)return NaN;const n=a.get(0);if(isNaN(n))return NaN;let o=0,l=0;for(let c=1;c<=s;c++){const h=a.get(c);isNaN(h)||(l++,h<=n&&o++)}return l===0?NaN:t.precision(o/l*100)}}function Ku(t,e,i){const r=new Array(t.length).fill(NaN);for(let s=e+i;s<t.length;s++){const a=t[s-i];let n=!0;for(let o=1;o<=e;o++)if(t[s-i-o]>=a){n=!1;break}if(n){for(let o=1;o<=i;o++)if(t[s-i+o]>=a){n=!1;break}}n&&(r[s]=a)}return r}function zu(t){return(e,i,r,s)=>{typeof r=="string"&&(r=i,i=e,e=t.data.high);const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e).toArray(),l=Ku(o,a,n),c=t.idx;return t.precision(l[c])}}function Hu(t,e,i){const r=new Array(t.length).fill(NaN);for(let s=e+i;s<t.length;s++){const a=t[s-i];let n=!0;for(let o=1;o<=e;o++)if(t[s-i-o]<=a){n=!1;break}if(n){for(let o=1;o<=i;o++)if(t[s-i+o]<=a){n=!1;break}}n&&(r[s]=a)}return r}function Gu(t){return(e,i,r,s)=>{typeof r=="string"&&(r=i,i=e,e=t.data.low);const a=y.from(i).get(0),n=y.from(r).get(0),o=y.from(e).toArray(),l=Hu(o,a,n),c=t.idx;return t.precision(l[c])}}function Yu(t){return e=>{t.taState||(t.taState={});const i=e||"pvi";t.taState[i]||(t.taState[i]={lastIdx:-1,committedPVI:1,tentativePVI:1});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.committedPVI=r.tentativePVI),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.close,1),n=t.get(t.data.volume,0),o=t.get(t.data.volume,1),l=isNaN(s)?0:s,c=isNaN(a)?0:a,h=isNaN(n)?0:n,p=isNaN(o)?0:o;let u=r.committedPVI;if(!(l===0||c===0)&&h>p){const f=(l-c)/c;u=u+f*u}return r.tentativePVI=u,t.precision(u)}}function Xu(t){return e=>{t.taState||(t.taState={});const i=e||"pvt";t.taState[i]||(t.taState[i]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.prevCumulativeSum=r.currentCumulativeSum),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.close,1),n=t.get(t.data.volume,0);let o=r.prevCumulativeSum;if(!isNaN(s)&&!isNaN(a)&&!isNaN(n)&&a!==0){const l=(s-a)/a*n;o+=l}return r.currentCumulativeSum=o,t.precision(o)}}function Qu(t){return(e,i,r)=>{const s=t.pine.ta.highest(e,i,(r||"range")+"_h"),a=t.pine.ta.lowest(e,i,(r||"range")+"_l");return isNaN(s)||isNaN(a)?NaN:t.precision(s-a)}}function Zu(t){return(e,i,r)=>{const s=y.from(i).get(0),a=y.from(e);for(let n=0;n<s;n++){const o=a.get(n),l=a.get(n+1);if(isNaN(o)||isNaN(l)||o<=l)return!1}return!0}}function Ju(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`rma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevRma:null,prevInitSum:0,prevInitCount:0,currentRma:null,currentInitSum:0,currentInitCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevRma=n.currentRma,n.prevInitSum=n.currentInitSum,n.prevInitCount=n.currentInitCount),n.lastIdx=t.idx);const o=y.from(e).get(0)||0;let l=n.prevInitCount,c=n.prevInitSum,h=n.prevRma;if(l<s){if(c+=o,l++,n.currentInitSum=c,n.currentInitCount=l,l===s){const f=c/s;return n.currentRma=f,t.precision(f)}return NaN}const p=1/s,u=o*p+h*(1-p);return n.currentRma=u,t.precision(u)}}function ep(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`roc_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s+1;)l.pop();const c=n.prevCallCount+1;if(l.length<s+1&&(c>=s+1||t.idx>=s)){const u=y.from(e);for(;l.length<s+1;)l.push(u.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<=s)return NaN;const h=l[s],p=(o-h)/h*100;return t.precision(p)}}function tp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`rsi_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevPrevValue:null,prevAvgGain:0,prevAvgLoss:0,prevInitGains:[],prevInitLosses:[],currentPrevValue:null,currentAvgGain:0,currentAvgLoss:0,currentInitGains:[],currentInitLosses:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevPrevValue=n.currentPrevValue,n.prevAvgGain=n.currentAvgGain,n.prevAvgLoss=n.currentAvgLoss,n.prevInitGains=[...n.currentInitGains],n.prevInitLosses=[...n.currentInitLosses]),n.lastIdx=t.idx);const o=y.from(e).get(0);if(o==null||isNaN(o))return NaN;const l=n.prevPrevValue;if(l===null||isNaN(l))return n.currentPrevValue=o,n.currentInitGains=[...n.prevInitGains],n.currentInitLosses=[...n.prevInitLosses],n.currentAvgGain=n.prevAvgGain,n.currentAvgLoss=n.prevAvgLoss,NaN;let c=n.prevAvgGain,h=n.prevAvgLoss;const p=[...n.prevInitGains],u=[...n.prevInitLosses],f=o-l,m=f>0?f:0,x=f<0?-f:0;if(p.length<s){if(p.push(m),u.push(x),n.currentInitGains=p,n.currentInitLosses=u,n.currentPrevValue=o,p.length===s){c=p.reduce((S,v)=>S+v,0)/s,h=u.reduce((S,v)=>S+v,0)/s,n.currentAvgGain=c,n.currentAvgLoss=h;const b=h===0?100:100-100/(1+c/h);return t.precision(b)}return NaN}c=(c*(s-1)+m)/s,h=(h*(s-1)+x)/s,n.currentAvgGain=c,n.currentAvgLoss=h,n.currentPrevValue=o;const _=h===0?100:100-100/(1+c/h);return t.precision(_)}}function ip(t){return(e,i,r,s)=>{const a=y.from(e).get(0),n=y.from(i).get(0),o=y.from(r).get(0);t.taState||(t.taState={});const l=s||`sar_${a}_${n}_${o}`;t.taState[l]||(t.taState[l]={lastIdx:-1,prevResult:NaN,prevMaxMin:NaN,prevAcceleration:NaN,prevIsBelow:!1,prevBarIndex:0,currentResult:NaN,currentMaxMin:NaN,currentAcceleration:NaN,currentIsBelow:!1,currentBarIndex:0});const c=t.taState[l];t.idx>c.lastIdx&&(c.lastIdx>=0&&(c.prevResult=c.currentResult,c.prevMaxMin=c.currentMaxMin,c.prevAcceleration=c.currentAcceleration,c.prevIsBelow=c.currentIsBelow,c.prevBarIndex=c.currentBarIndex),c.lastIdx=t.idx);let h=c.prevResult,p=c.prevMaxMin,u=c.prevAcceleration,f=c.prevIsBelow,m=c.prevBarIndex;const x=t.get(t.data.high,0),_=t.get(t.data.low,0),b=t.get(t.data.close,0),S=t.get(t.data.close,1),v=t.get(t.data.high,1),E=t.get(t.data.low,1),T=t.get(t.data.high,2),C=t.get(t.data.low,2);if(isNaN(x)||isNaN(_)||isNaN(b))return c.currentResult=h,c.currentMaxMin=p,c.currentAcceleration=u,c.currentIsBelow=f,c.currentBarIndex=m,NaN;let O=!1;return m===1&&(b>S?(f=!0,p=x,h=E):(f=!1,p=_,h=v),O=!0,u=a),m>=1&&(h=h+u*(p-h),f?h>_&&(O=!0,f=!1,h=Math.max(x,p),p=_,u=a):h<x&&(O=!0,f=!0,h=Math.min(_,p),p=x,u=a),O||(f?x>p&&(p=x,u=Math.min(u+n,o)):_<p&&(p=_,u=Math.min(u+n,o))),f?(h=Math.min(h,E),m>1&&(h=Math.min(h,C))):(h=Math.max(h,v),m>1&&(h=Math.max(h,T)))),m++,c.currentResult=h,c.currentMaxMin=p,c.currentAcceleration=u,c.currentIsBelow=f,c.currentBarIndex=m,m<=1?NaN:t.precision(h)}}function rp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`sma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevSum=n.currentSum,n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;let h=!1;if(l.length<s&&(c>=s||t.idx>=s-1)){const x=y.from(e);for(;l.length<s;)l.push(x.get(l.length));h=!0}let p;const u=o==null||Number.isNaN(o);let f=!Number.isNaN(n.prevSum)&&!u&&!h;if(f){let x=n.prevSum+o;if(n.prevWindow.length>=s){const _=n.prevWindow[n.prevWindow.length-1];_==null||Number.isNaN(_)?f=!1:x-=_}f&&(p=x)}if(!f){p=0;let x=!1;for(const _ of l){if(_==null||Number.isNaN(_)){x=!0;break}p+=_}x&&(p=NaN)}if(n.currentWindow=l,n.currentSum=p,n.currentCallCount=c,l.length<s)return NaN;const m=p/s;return t.precision(m)}}function sp(t){return(e,i,r=!0,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`stdev_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevWindow:[],prevSum:0,prevCallCount:0,currentWindow:[],currentSum:0,currentCallCount:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevWindow=[...l.currentWindow],l.prevSum=l.currentSum,l.prevCallCount=l.currentCallCount),l.lastIdx=t.idx);const c=y.from(e).get(0);if(c==null||isNaN(c))return NaN;const h=[...l.prevWindow];let p=l.prevSum;for(h.unshift(c),p+=c;h.length>a;){const b=h.pop();p-=b}const u=l.prevCallCount+1;if(h.length<a&&(u>=a||t.idx>=a-1)){const b=y.from(e);for(;h.length<a;){const S=b.get(h.length);if(S==null||isNaN(S))break;h.push(S),p+=S}}if(l.currentWindow=h,l.currentSum=p,l.currentCallCount=u,h.length<a)return NaN;const f=p/a;let m=0;for(let b=0;b<a;b++)m+=Math.pow(h[b]-f,2);const x=n?a:a-1,_=Math.sqrt(m/x);return t.precision(_)}}function np(t){return(e,i,r,s,a)=>{const n=y.from(s).get(0);t.taState||(t.taState={});const o=a||`stoch_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevHighWindow:[],prevLowWindow:[],currentHighWindow:[],currentLowWindow:[]});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevHighWindow=[...l.currentHighWindow],l.prevLowWindow=[...l.currentLowWindow]),l.lastIdx=t.idx);const c=y.from(e).get(0),h=y.from(i).get(0),p=y.from(r).get(0);if(isNaN(c)||isNaN(h)||isNaN(p))return l.currentHighWindow=[...l.prevHighWindow],l.currentLowWindow=[...l.prevLowWindow],NaN;const u=[...l.prevHighWindow],f=[...l.prevLowWindow];if(u.unshift(h),f.unshift(p),u.length>n&&(u.pop(),f.pop()),l.currentHighWindow=u,l.currentLowWindow=f,u.length<n)return NaN;let m=u[0],x=f[0];for(let S=1;S<n;S++)u[S]>m&&(m=u[S]),f[S]<x&&(x=f[S]);const _=m-x;if(_===0)return NaN;const b=100*(c-x)/_;return t.precision(b)}}function ap(t){return(e,i,r)=>{const s=y.from(e).get(0),a=y.from(i).get(0);t.taState||(t.taState={});const n=r||`supertrend_${s}_${a}`;t.taState[n]||(t.taState[n]={lastIdx:-1,prevTrSum:0,prevAtrValue:NaN,prevAtrCount:0,prevLowerBand:NaN,prevUpperBand:NaN,prevSuperTrend:NaN,prevDirection:NaN,currentTrSum:0,currentAtrValue:NaN,currentAtrCount:0,currentLowerBand:NaN,currentUpperBand:NaN,currentSuperTrend:NaN,currentDirection:NaN});const o=t.taState[n];t.idx>o.lastIdx&&(o.lastIdx>=0&&(o.prevTrSum=o.currentTrSum,o.prevAtrValue=o.currentAtrValue,o.prevAtrCount=o.currentAtrCount,o.prevLowerBand=o.currentLowerBand,o.prevUpperBand=o.currentUpperBand,o.prevSuperTrend=o.currentSuperTrend,o.prevDirection=o.currentDirection),o.lastIdx=t.idx);const l=t.get(t.data.high,0),c=t.get(t.data.low,0),h=t.get(t.data.close,0);if(isNaN(l)||isNaN(c)||isNaN(h))return[[NaN,NaN]];const p=(l+c)/2,u=t.idx>0?t.get(t.data.close,1):NaN;let f;isNaN(u)?f=l-c:f=Math.max(l-c,Math.abs(l-u),Math.abs(c-u));let m=o.prevAtrCount,x=o.prevTrSum,_=o.prevAtrValue;m++,m<=a?(x+=f,m===a&&(_=x/a)):_=(_*(a-1)+f)/a;const b=_;if(o.currentAtrCount=m,o.currentTrSum=x,o.currentAtrValue=_,isNaN(b))return[[NaN,NaN]];let S=p+s*b,v=p-s*b;const E=isNaN(o.prevLowerBand)?0:o.prevLowerBand,T=isNaN(o.prevUpperBand)?0:o.prevUpperBand;isNaN(o.prevLowerBand)||v>E||u<E||(v=E),isNaN(o.prevUpperBand)||S<T||u>T||(S=T);let C,O;const B=o.prevSuperTrend;return m===a?C=1:B===o.prevUpperBand?C=h>S?-1:1:C=h<v?1:-1,O=C===-1?v:S,o.currentLowerBand=v,o.currentUpperBand=S,o.currentSuperTrend=O,o.currentDirection=C,[[t.precision(O),C]]}}function op(t){return(e,i)=>{const r=[1,2,2,1],s=6;t.taState||(t.taState={});const a=i||"swma";t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],currentWindow:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow]),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>4;)l.pop();if(l.length<4&&t.idx>=3){const h=y.from(e);for(;l.length<4;)l.push(h.get(l.length))}if(n.currentWindow=l,l.length<4)return NaN;let c=0;for(let h=0;h<4;h++)c+=r[h]*l[3-h];return c/=s,t.precision(c)}}function lp(t){return(e,i)=>{let r=!0;typeof e=="string"||e!==void 0&&(r=y.from(e).get(0));const s=t.get(t.data.high,0),a=t.get(t.data.low,0),n=t.get(t.data.close,1);if(isNaN(n))return r?t.precision(s-a):NaN;const o=Math.max(s-a,Math.abs(s-n),Math.abs(a-n));return t.precision(o)}}function cp(t){return(e,i,r,s)=>{const a=y.from(i).get(0),n=y.from(r).get(0);t.taState||(t.taState={});const o=s||`tsi_${a}_${n}`;t.taState[o]||(t.taState[o]={lastIdx:-1,prevSource:NaN,prevEma1PcValue:NaN,prevEma1PcCount:0,prevEma1PcSum:0,prevEma2PcValue:NaN,prevEma2PcCount:0,prevEma2PcSum:0,prevEma1AbsValue:NaN,prevEma1AbsCount:0,prevEma1AbsSum:0,prevEma2AbsValue:NaN,prevEma2AbsCount:0,prevEma2AbsSum:0,currentSource:NaN,currentEma1PcValue:NaN,currentEma1PcCount:0,currentEma1PcSum:0,currentEma2PcValue:NaN,currentEma2PcCount:0,currentEma2PcSum:0,currentEma1AbsValue:NaN,currentEma1AbsCount:0,currentEma1AbsSum:0,currentEma2AbsValue:NaN,currentEma2AbsCount:0,currentEma2AbsSum:0});const l=t.taState[o];t.idx>l.lastIdx&&(l.lastIdx>=0&&(l.prevSource=l.currentSource,l.prevEma1PcValue=l.currentEma1PcValue,l.prevEma1PcCount=l.currentEma1PcCount,l.prevEma1PcSum=l.currentEma1PcSum,l.prevEma2PcValue=l.currentEma2PcValue,l.prevEma2PcCount=l.currentEma2PcCount,l.prevEma2PcSum=l.currentEma2PcSum,l.prevEma1AbsValue=l.currentEma1AbsValue,l.prevEma1AbsCount=l.currentEma1AbsCount,l.prevEma1AbsSum=l.currentEma1AbsSum,l.prevEma2AbsValue=l.currentEma2AbsValue,l.prevEma2AbsCount=l.currentEma2AbsCount,l.prevEma2AbsSum=l.currentEma2AbsSum),l.lastIdx=t.idx);const c=y.from(e).get(0);if(isNaN(c))return NaN;const h=isNaN(l.prevSource)?NaN:c-l.prevSource;if(l.currentSource=c,isNaN(h))return NaN;const p=Math.abs(h),u=2/(n+1),f=2/(a+1),m=2/(n+1),x=2/(a+1);let _=l.prevEma1PcCount,b=l.prevEma1PcSum,S=l.prevEma1PcValue;_++,_<=n?(b+=h,_===n&&(S=b/n)):S=h*u+S*(1-u);let v=l.prevEma1AbsCount,E=l.prevEma1AbsSum,T=l.prevEma1AbsValue;if(v++,v<=n?(E+=p,v===n&&(T=E/n)):T=p*m+T*(1-m),isNaN(S)||isNaN(T))return l.currentEma1PcCount=_,l.currentEma1PcSum=b,l.currentEma1PcValue=S,l.currentEma1AbsCount=v,l.currentEma1AbsSum=E,l.currentEma1AbsValue=T,NaN;let C=l.prevEma2PcCount,O=l.prevEma2PcSum,B=l.prevEma2PcValue;C++,C<=a?(O+=S,C===a&&(B=O/a)):B=S*f+B*(1-f);let z=l.prevEma2AbsCount,q=l.prevEma2AbsSum,V=l.prevEma2AbsValue;if(z++,z<=a?(q+=T,z===a&&(V=q/a)):V=T*x+V*(1-x),l.currentEma1PcCount=_,l.currentEma1PcSum=b,l.currentEma1PcValue=S,l.currentEma1AbsCount=v,l.currentEma1AbsSum=E,l.currentEma1AbsValue=T,l.currentEma2PcCount=C,l.currentEma2PcSum=O,l.currentEma2PcValue=B,l.currentEma2AbsCount=z,l.currentEma2AbsSum=q,l.currentEma2AbsValue=V,isNaN(B)||isNaN(V))return NaN;if(V===0)return t.precision(0);const Q=B/V;return t.precision(Q)}}function hp(t){return(e,i,r,s)=>{t.taState||(t.taState={});const a=s||"valuewhen";t.taState[a]||(t.taState[a]={lastIdx:-1,prevValues:[],currentValues:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevValues=[...n.currentValues]),n.lastIdx=t.idx);const o=y.from(e).get(0),l=y.from(i).get(0),c=y.from(r).get(0),h=[...n.prevValues];if(o&&h.push(l),n.currentValues=h,isNaN(c)||c<0)return NaN;const p=h.length-1-c;if(p<0)return NaN;const u=h[p];return typeof u=="number"?t.precision(u):u}}function up(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`variance_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const m=y.from(e);for(;l.length<s;)l.push(m.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;let h=0,p=0;for(let m=0;m<s;m++)h+=l[m],p+=l[m]*l[m];const u=h/s,f=p/s-u*u;return t.precision(f)}}function pp(t){return(e,i)=>{t.taState||(t.taState={});const r=i||"vwap";t.taState[r]||(t.taState[r]={lastIdx:-1,prevCumulativePV:0,prevCumulativeVolume:0,prevLastSessionDate:null,currentCumulativePV:0,currentCumulativeVolume:0,currentLastSessionDate:null});const s=t.taState[r];t.idx>s.lastIdx&&(s.lastIdx>=0&&(s.prevCumulativePV=s.currentCumulativePV,s.prevCumulativeVolume=s.currentCumulativeVolume,s.prevLastSessionDate=s.currentLastSessionDate),s.lastIdx=t.idx);const a=y.from(e).get(0),n=y.from(t.data.volume).get(0),o=y.from(t.data.openTime).get(0),l=t.pine?.syminfo?.timezone||"UTC",c=Tt(o,l),h=`${c.year}-${String(c.month).padStart(2,"0")}-${String(c.day).padStart(2,"0")}`;let p=s.prevCumulativePV,u=s.prevCumulativeVolume,f=s.prevLastSessionDate;if(f!==h&&(p=0,u=0,f=h),p+=a*n,u+=n,s.currentCumulativePV=p,s.currentCumulativeVolume=u,s.currentLastSessionDate=f,u===0)return NaN;const m=p/u;return t.precision(m)}}function fp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`vwma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevVolumeWindow:[],currentWindow:[],currentVolumeWindow:[]});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevVolumeWindow=[...n.currentVolumeWindow]),n.lastIdx=t.idx);const o=y.from(e).get(0),l=t.get(t.data.volume,0),c=[...n.prevWindow],h=[...n.prevVolumeWindow];for(c.unshift(o),h.unshift(l);c.length>s;)c.pop(),h.pop();if(c.length<s&&t.idx>=s-1){const m=y.from(e),x=y.from(t.data.volume);for(;c.length<s;)c.push(m.get(c.length)),h.push(x.get(h.length))}if(n.currentWindow=c,n.currentVolumeWindow=h,c.length<s)return NaN;let p=0,u=0;for(let m=0;m<s;m++)p+=c[m]*h[m],u+=h[m];const f=p/u;return t.precision(f)}}function dp(t){return e=>{t.taState||(t.taState={});const i=e||"wad";t.taState[i]||(t.taState[i]={lastIdx:-1,prevCumulativeSum:0,currentCumulativeSum:0});const r=t.taState[i];t.idx>r.lastIdx&&(r.lastIdx>=0&&(r.prevCumulativeSum=r.currentCumulativeSum),r.lastIdx=t.idx);const s=t.get(t.data.close,0),a=t.get(t.data.high,0),n=t.get(t.data.low,0),o=t.get(t.data.close,1);if(isNaN(s)||isNaN(a)||isNaN(n))return r.currentCumulativeSum=r.prevCumulativeSum,t.precision(r.prevCumulativeSum);let l=0;if(!isNaN(o)){const h=Math.max(a,o),p=Math.min(n,o),u=s-o;u>0?l=s-p:u<0&&(l=s-h)}const c=r.prevCumulativeSum+l;return r.currentCumulativeSum=c,t.precision(c)}}function mp(t){return(e,i,r)=>{const s=y.from(i).get(0);t.taState||(t.taState={});const a=r||`wma_${s}`;t.taState[a]||(t.taState[a]={lastIdx:-1,prevWindow:[],prevCallCount:0,currentWindow:[],currentCallCount:0});const n=t.taState[a];t.idx>n.lastIdx&&(n.lastIdx>=0&&(n.prevWindow=[...n.currentWindow],n.prevCallCount=n.currentCallCount),n.lastIdx=t.idx);const o=y.from(e).get(0),l=[...n.prevWindow];for(l.unshift(o);l.length>s;)l.pop();const c=n.prevCallCount+1;if(l.length<s&&(c>=s||t.idx>=s-1)){const f=y.from(e);for(;l.length<s;)l.push(f.get(l.length))}if(n.currentWindow=l,n.currentCallCount=c,l.length<s)return NaN;let h=0,p=0;for(let f=0;f<s;f++){const m=s-f;h+=l[f]*m,p+=m}const u=h/p;return t.precision(u)}}function gp(t){return(e,i)=>{const r=y.from(e).get(0);t.taState||(t.taState={});const s=i||`wpr_${r}`;t.taState[s]||(t.taState[s]={lastIdx:-1,prevHighWindow:[],prevLowWindow:[],currentHighWindow:[],currentLowWindow:[]});const a=t.taState[s];t.idx>a.lastIdx&&(a.lastIdx>=0&&(a.prevHighWindow=[...a.currentHighWindow],a.prevLowWindow=[...a.currentLowWindow]),a.lastIdx=t.idx);const n=t.get(t.data.high,0),o=t.get(t.data.low,0),l=t.get(t.data.close,0);if(isNaN(n)||isNaN(o)||isNaN(l))return a.currentHighWindow=[...a.prevHighWindow],a.currentLowWindow=[...a.prevLowWindow],NaN;const c=[...a.prevHighWindow],h=[...a.prevLowWindow];if(c.unshift(n),h.unshift(o),c.length>r&&(c.pop(),h.pop()),a.currentHighWindow=c,a.currentLowWindow=h,c.length<r)return NaN;let p=c[0],u=h[0];for(let x=1;x<r;x++)c[x]>p&&(p=c[x]),h[x]<u&&(u=h[x]);const f=p-u;if(f===0)return t.precision(0);const m=(p-l)/f*-100;return t.precision(m)}}function yp(t){return e=>{const i=t.get(t.data.close,0),r=t.get(t.data.open,0),s=t.get(t.data.high,0),a=t.get(t.data.low,0),n=t.get(t.data.volume,0);if(isNaN(i)||isNaN(r)||isNaN(s)||isNaN(a)||isNaN(n))return NaN;const o=s-a;if(o===0)return t.precision(0);const l=(i-r)/o*n;return t.precision(l)}}var xp=Object.defineProperty,_p=(t,e,i)=>e in t?xp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,I=(t,e,i)=>_p(t,typeof e!="symbol"?e+"":e,i);const bp={accdist:au,alma:ou,atr:lu,barssince:cu,bb:hu,bbw:uu,cci:pu,change:fu,cmo:du,cog:mu,correlation:gu,cross:yu,crossover:xu,crossunder:_u,cum:bu,dev:vu,dmi:wu,ema:Su,falling:Eu,highest:Nu,highestbars:Cu,hma:Iu,iii:ku,kc:Au,kcw:Tu,linreg:Pu,lowest:Du,lowestbars:Mu,macd:Ru,median:Ou,mfi:Vu,mode:Lu,mom:ju,nvi:$u,obv:Bu,param:Fu,percentile_linear_interpolation:Wu,percentile_nearest_rank:Uu,percentrank:qu,pivothigh:zu,pivotlow:Gu,pvi:Yu,pvt:Xu,range:Qu,rising:Zu,rma:Ju,roc:ep,rsi:tp,sar:ip,sma:rp,stdev:sp,stoch:np,supertrend:ap,swma:op,tr:lp,tsi:cp,valuewhen:hp,variance:up,vwap:pp,vwma:fp,wad:dp,wma:mp,wpr:gp,wvad:yp};class vp{constructor(e){this.context=e,I(this,"accdist"),I(this,"alma"),I(this,"atr"),I(this,"barssince"),I(this,"bb"),I(this,"bbw"),I(this,"cci"),I(this,"change"),I(this,"cmo"),I(this,"cog"),I(this,"correlation"),I(this,"cross"),I(this,"crossover"),I(this,"crossunder"),I(this,"cum"),I(this,"dev"),I(this,"dmi"),I(this,"ema"),I(this,"falling"),I(this,"highest"),I(this,"highestbars"),I(this,"hma"),I(this,"iii"),I(this,"kc"),I(this,"kcw"),I(this,"linreg"),I(this,"lowest"),I(this,"lowestbars"),I(this,"macd"),I(this,"median"),I(this,"mfi"),I(this,"mode"),I(this,"mom"),I(this,"nvi"),I(this,"obv"),I(this,"param"),I(this,"percentile_linear_interpolation"),I(this,"percentile_nearest_rank"),I(this,"percentrank"),I(this,"pivothigh"),I(this,"pivotlow"),I(this,"pvi"),I(this,"pvt"),I(this,"range"),I(this,"rising"),I(this,"rma"),I(this,"roc"),I(this,"rsi"),I(this,"sar"),I(this,"sma"),I(this,"stdev"),I(this,"stoch"),I(this,"supertrend"),I(this,"swma"),I(this,"tr"),I(this,"tsi"),I(this,"valuewhen"),I(this,"variance"),I(this,"vwap"),I(this,"vwma"),I(this,"wad"),I(this,"wma"),I(this,"wpr"),I(this,"wvad"),Object.entries(bp).forEach(([i,r])=>{this[i]=r(e)})}}function wp(t,e){const i=e.trim();if(i==="UTC"||i==="GMT"||i==="Etc/UTC")return 0;const r=i.match(/^(?:UTC|GMT)([+-])(\d{1,2})(?::(\d{2}))?$/i);if(r){const n=r[1]==="+"?1:-1,o=parseInt(r[2],10),l=parseInt(r[3]||"0",10);return n*(o*60+l)}const s=Tt(t,e),a=new Date(Date.UTC(s.year,s.month-1,s.day,s.hour,s.minute,s.second));return Math.round((a.getTime()-t)/6e4)}function Sp(t,e){const i=e>=0?"+":"-",r=a=>String(Math.floor(Math.abs(a))).padStart(2,"0"),s=i+r(e/60)+":"+r(e%60);return`[${new Date(t+e*6e4).toISOString().slice(0,-1)}${s}]`}class Ep{constructor(e){this.context=e}logFormat(e,...i){return e.replace(/{(\d+)}/g,(r,s)=>i[s])}param(e,i=0,r){return y.from(e).get(i)}_formatTimestamp(){const e=this.context.data.openTime.data[this.context.idx],i=this.context.chartTimezone||this.context.pine?.syminfo?.timezone||"UTC",r=wp(e,i);return Sp(e,r)}warning(e,...i){this.context.isSecondaryContext||console.warn(`${this._formatTimestamp()} ${this.logFormat(e,...i)}`)}error(e,...i){this.context.isSecondaryContext||console.error(`${this._formatTimestamp()} ${this.logFormat(e,...i)}`)}info(e,...i){this.context.isSecondaryContext||console.log(`${this._formatTimestamp()} ${this.logFormat(e,...i)}`)}}class Np{constructor(e){this.context=e}param(e,i=0,r){return y.from(e).get(i)}tostring(e,i){if(typeof e!="number"||isNaN(e)||!i)return String(e);if(i==="mintick"){const s=this.context.pine?.syminfo?.mintick||.01,a=Math.max(0,-Math.floor(Math.log10(s)));return e.toFixed(a)}if(i==="integer")return String(Math.round(e));if(i==="percent")return(e*100).toFixed(2)+"%";if(i==="price"){const s=this.context.pine?.syminfo?.mintick||.01,a=Math.max(0,-Math.floor(Math.log10(s)));return e.toFixed(a)}if(i==="volume")return String(Math.round(e));const r=i.indexOf(".");if(r>=0){const s=i.substring(r+1).length;return e.toFixed(s)}return i.includes("#")||i.includes("0")?String(Math.round(e)):String(e)}tonumber(e){return Number(e)}lower(e){return String(e).toLowerCase()}upper(e){return String(e).toUpperCase()}trim(e){return String(e).trim()}repeat(e,i,r=""){return Array(i).fill(e).join(r||"")}replace_all(e,i,r){return String(e).replaceAll(i,r)}replace(e,i,r,s=0){const a=String(e),n=String(i),o=String(r),l=Math.floor(Number(s))||0;if(n==="")return a;let c=0,h=0;for(;;){const p=a.indexOf(n,c);if(p===-1)return a;if(h===l)return a.substring(0,p)+o+a.substring(p+n.length);h++,c=p+n.length}}contains(e,i){return String(e).includes(i)}endswith(e,i){return String(e).endsWith(i)}startswith(e,i){return String(e).startsWith(i)}pos(e,i){const r=String(e).indexOf(i);return r===-1?NaN:r}length(e){return String(e).length}match(e,i){return String(e).match(new RegExp(i))}split(e,i){return new R(String(e).split(i),D.string,this.context)}substring(e,i,r){return String(e).substring(i,r)}format(e,...i){return e.replace(/\{(\d+)(?:,number,([^}]+))?\}/g,(r,s,a)=>{const n=i[s];return a&&typeof n=="number"&&!isNaN(n)?this.tostring(n,a):String(n)})}}var Cp=Object.defineProperty,Ip=(t,e,i)=>e in t?Cp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,kp=(t,e,i)=>Ip(t,typeof e!="symbol"?e+"":e,i);const Jt={"1m":"1","3m":"3","5m":"5","15m":"15","30m":"30","45m":"45","1h":"60","2h":"120","3h":"180","4h":"240","1d":"D","1w":"W","1M":"M"};function Dr(t){if(!t||/^\d+$/.test(t))return t;if(Jt[t])return Jt[t];const e=t.toLowerCase();if(Jt[e])return Jt[e];if(t.length===1){const r=t.toUpperCase();if(["D","W","M","S"].includes(r))return r}const i=t.slice(-1).toUpperCase();if(["D","W","M","S"].includes(i)){const r=parseInt(t);if(!isNaN(r))return r+i}return t}class Ap{constructor(e){this.context=e,kp(this,"_normalized",null)}param(e,i=0,r){return y.from(e).get(i)}get normalized(){return this._normalized===null&&(this._normalized=Dr(this.context.timeframe)),this._normalized}get unit(){return this.normalized.slice(-1).toUpperCase()}get main_period(){return this.normalized}get period(){return this.normalized}get multiplier(){const e=parseInt(this.normalized);return isNaN(e)?1:e}get isdwm(){return["D","W","M"].includes(this.unit)}get isdaily(){return this.unit==="D"}get isweekly(){return this.unit==="W"}get ismonthly(){return this.unit==="M"}get isseconds(){return this.unit==="S"}get isminutes(){return/^\d+$/.test(this.normalized)}get isintraday(){return!this.isdwm}from_seconds(e){return e<60?Math.ceil(e/5)*5+"S":e<3600*24?Math.ceil(e/60):e<=3600*24*7*52?e%(3600*24*7)===0?Math.ceil(e/604800)+"W":Math.ceil(e/(3600*24))+"D":"12M"}in_seconds(e){e==null?e=this.normalized:e=Dr(e);const i=e.slice(-1).toUpperCase(),r=parseInt(e);return i==="S"?isNaN(r)?1:r:i==="D"?(isNaN(r)?1:r)*60*60*24:i==="W"?(isNaN(r)?1:r)*60*60*24*7:i==="M"?(isNaN(r)?1:r)*60*60*24*30:isNaN(r)?0:r*60}}const Tp=["series","title","color","linewidth","style","trackprice","histbase","offset","join","editable","show_last","display","format","precision","force_overlay"],Pp=["series","title","char","location","color","offset","text","textcolor","editable","size","show_last","display","format","precision","force_overlay"],Dp={series:"series",title:"string",char:"string",location:"string",color:"color",offset:"number",text:"string",textcolor:"color",editable:"boolean",size:"string",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Mp=["series","title","style","location","color","offset","text","textcolor","editable","size","show_last","display","format","precision","force_overlay"],Rp=["series","title","colorup","colordown","offset","minheight","maxheight","editable","show_last","display","format","precision","force_overlay"],Op=["open","high","low","close","title","color","editable","show_last","display","format","precision","force_overlay"],Vp=["open","high","low","close","title","color","wickcolor","editable","show_last","bordercolor","display","format","precision","force_overlay"],Mr=["color","offset","editable","show_last","title","display","force_overlay"],Lp=["price","title","color","linestyle","linewidth","editable","display"],jp=["plot1","plot2","color","title","editable","show_last","fillgaps","display"],$p={series:"series",title:"string",color:"color",linewidth:"number",style:"string",trackprice:"boolean",histbase:"number",offset:"number",join:"bool",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Bp={series:"series",title:"string",style:"string",location:"string",color:"color",offset:"number",text:"string",textcolor:"color",editable:"boolean",size:"string",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Fp={series:"series",title:"string",colorup:"color",colordown:"color",offset:"number",minheight:"number",maxheight:"number",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Wp={open:"series",high:"series",low:"series",close:"series",title:"string",color:"color",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Up={open:"series",high:"series",low:"series",close:"series",title:"string",color:"color",wickcolor:"color",bordercolor:"color",editable:"boolean",show_last:"number",display:"string",format:"string",precision:"number",force_overlay:"boolean"},Rr={color:"color",offset:"number",editable:"boolean",show_last:"number",title:"string",display:"string",force_overlay:"boolean"},qp={price:"series",title:"string",color:"color",linestyle:"string",linewidth:"number",editable:"boolean",display:"string"},Kp={plot1:"object",plot2:"object",color:"color",title:"string",editable:"boolean",show_last:"number",fillgaps:"boolean",display:"string"};class zp{constructor(e){this.context=e}_resolvePlotKey(e,i){if(e){const r=this.context.plots[e];return!r||!i||r._callsiteId===i?e:e+i}return i||"plot"}extractPlotOptions(e){const i={};for(let r in e)i[r]=y.from(e[r]).get(0);return i}get linestyle_dashed(){return"linestyle_dashed"}get linestyle_dotted(){return"linestyle_dotted"}get linestyle_solid(){return"linestyle_solid"}get style_area(){return"style_area"}get style_areabr(){return"style_areabr"}get style_circles(){return"style_circles"}get style_columns(){return"style_columns"}get style_cross(){return"style_cross"}get style_histogram(){return"style_histogram"}get style_line(){return"style_line"}get style_linebr(){return"style_linebr"}get style_stepline(){return"style_stepline"}get style_stepline_diamond(){return"style_stepline_diamond"}get style_steplinebr(){return"style_steplinebr"}param(e,i=0,r){return y.from(e).get(i)}plotchar(...e){const i=Ue(e),r=se(e,Pp,Dp),{series:s,title:a,...n}=r,o=this.extractPlotOptions(n),l=this._resolvePlotKey(a,i);this.context.plots[l]||(this.context.plots[l]={data:[],options:{...o,style:"char"},title:a,_plotKey:l,_callsiteId:i});const c=y.from(s).get(0);return this.context.plots[l].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:c,options:{char:o.char,color:o.color,textcolor:o.textcolor,location:o.location,size:o.size,offset:o.offset}}),this.context.plots[l]}any(...e){const i=Ue(e),r=se(e,Tp,$p),{series:s,title:a,...n}=r,o=this.extractPlotOptions(n),l=this._resolvePlotKey(a,i),c="color"in n;if(!this.context.plots[l]){const f=o.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[l]={data:[],options:{...o,overlay:f},title:a,_plotKey:l,_callsiteId:i}}const h=y.from(s).get(0),p=o.color,u={color:c?typeof p=="string"?p:void 0:p||"#2962ff"};return"offset"in n&&(u.offset=o.offset),this.context.plots[l].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:h,options:u}),this.context.plots[l]}plotshape(...e){const i=Ue(e),r=se(e,Mp,Bp),{series:s,title:a,...n}=r,o=this.extractPlotOptions(n),l=this._resolvePlotKey(a,i);if(!this.context.plots[l]){const h=o.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[l]={data:[],options:{...o,style:"shape",shape:o.style,overlay:h},title:a,_plotKey:l,_callsiteId:i}}const c=y.from(s).get(0);return this.context.plots[l].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:c,options:o?.location==="absolute"||c?{text:o.text,textcolor:o.textcolor,color:o.color,offset:o.offset,shape:o.style,location:o.location,size:o.size}:void 0}),this.context.plots[l]}plotarrow(...e){const i=Ue(e),r=se(e,Rp,Fp),{series:s,title:a,...n}=r,o=y.from(s).get(0),l=this.extractPlotOptions(n),c=this._resolvePlotKey(a,i);if(!this.context.plots[c]){const h=l.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[c]={data:[],options:{...l,style:"shape",overlay:h},title:a,_plotKey:c,_callsiteId:i}}return this.context.plots[c].data.push({title:a,time:this.context.marketData[this.context.idx].openTime,value:o,options:typeof o=="number"&&!isNaN(o)&&o!==0?{text:void 0,textcolor:void 0,color:o>0?l.colorup:l.colordown,offset:l.offset,shape:o>0?"shape_arrow_up":"shape_arrow_down",location:o>0?"BelowBar":"AboveBar",height:l.maxheight}:void 0}),this.context.plots[c]}plotbar(...e){const i=Ue(e),r=se(e,Op,Wp),{open:s,high:a,low:n,close:o,title:l,...c}=r,h=this.extractPlotOptions(c),p=this._resolvePlotKey(l,i);if(!this.context.plots[p]){const f=h.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[p]={data:[],options:{...h,style:"bar",overlay:f},title:l,_plotKey:p,_callsiteId:i}}const u=[y.from(s).get(0),y.from(a).get(0),y.from(n).get(0),y.from(o).get(0)];this.context.plots[p].data.push({title:l,time:this.context.marketData[this.context.idx].openTime,value:u,options:{color:h.color}})}plotcandle(...e){const i=Ue(e),r=se(e,Vp,Up),{open:s,high:a,low:n,close:o,title:l,...c}=r,h=this.extractPlotOptions(c),p=this._resolvePlotKey(l,i);if(!this.context.plots[p]){const f=h.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[p]={data:[],options:{...h,style:"candle",overlay:f},title:l,_plotKey:p,_callsiteId:i}}const u=[y.from(s).get(0),y.from(a).get(0),y.from(n).get(0),y.from(o).get(0)];return this.context.plots[p].data.push({title:l,time:this.context.marketData[this.context.idx].openTime,value:u,options:{color:h.color,wickcolor:h.wickcolor,bordercolor:h.bordercolor}}),this.context.plots[p]}bgcolor(...e){const i=Ue(e),r=se(e,Mr,Rr),{title:s,...a}=r,n=this.extractPlotOptions(a),o=this._resolvePlotKey(s,i);if(!this.context.plots[o]){const l=n.force_overlay??(this.context?.indicator?.overlay||!1);this.context.plots[o]={data:[],options:{...n,style:"background",overlay:l},title:s,_plotKey:o,_callsiteId:i}}this.context.plots[o].data.push({title:s,time:this.context.marketData[this.context.idx].openTime,value:n.color&&n.color!=="na"&&n?.color.toString()!=="NaN",options:{color:n.color}})}barcolor(...e){const i=Ue(e),r=se(e,Mr,Rr),{title:s,...a}=r,n=this.extractPlotOptions(a),o=this._resolvePlotKey(s,i);return this.context.plots[o]||(this.context.plots[o]={data:[],options:{...n,style:"barcolor"},title:s,_plotKey:o,_callsiteId:i}),this.context.plots[o].data.push({title:s,time:this.context.marketData[this.context.idx].openTime,value:n.color&&n.color!=="na"&&n?.color.toString()!=="NaN",options:{color:n.color}}),this.context.plots[o]}}class Hp{constructor(e){this.context=e}get style_dashed(){return"dashed"}get style_solid(){return"solid"}get style_dotted(){return"dotted"}param(e,i=0,r){return y.from(e).get(i)}any(...e){const i=Ue(e),r=se(e,Lp,qp),{price:s,title:a,color:n,linestyle:o,linewidth:l,editable:c,display:h}=r,p=[s,{title:a,color:n,linestyle:o,linewidth:l,editable:c,display:h,style:"hline"}];return i&&p.push({__callsiteId:i}),this.context.pine.plot.any(...p)}}class Gp{constructor(e){this.context=e}param(e,i=0,r){return y.from(e).get(i)}any(...e){const i=Ue(e),r=e.length>=6&&typeof e[2]=="number",s=!r&&e.length>=3&&e[2]!==null&&typeof e[2]=="object"&&"top_value"in e[2]?e[2]:null;if(r||s!==null){const a=e[0],n=e[1],o=s?y.from(s.top_value).get(0):e[2],l=s?y.from(s.bottom_value).get(0):e[3],c=s?y.from(s.top_color).get(0):e[4],h=s?y.from(s.bottom_color).get(0):e[5],p=s?s.title||void 0:e.length>6&&typeof e[6]=="string"?e[6]:void 0,u=a?._plotKey||a?.title,f=n?._plotKey||n?.title;let m=p||"fill";const x=this.context.plots[m];x&&i&&x._callsiteId!==i&&(m=i),this.context.plots[m]||(this.context.plots[m]={title:p||"Fill",plot1:u,plot2:f,data:[],options:{plot1:u,plot2:f,style:"fill",gradient:!0},_plotKey:m,_callsiteId:i}),this.context.plots[m].data.push({time:this.context.marketData[this.context.idx].openTime,value:null,options:{top_value:o,bottom_value:l,top_color:c,bottom_color:h}})}else{const a=se(e,jp,Kp),{plot1:n,plot2:o,color:l,title:c,editable:h,show_last:p,fillgaps:u,display:f}=a;let m=c||"fill";const x=this.context.plots[m];x&&i&&x._callsiteId!==i&&(m=i);const _=y.from(l).get(0);if(!this.context.plots[m]){const b=n?._plotKey||n?.title,S=o?._plotKey||o?.title;this.context.plots[m]={title:c||"Fill",plot1:b,plot2:S,data:[],options:{plot1:b,plot2:S,color:_,editable:h,show_last:p,fillgaps:u,display:f,style:"fill"},_plotKey:m,_callsiteId:i}}this.context.plots[m].data.push({time:this.context.marketData[this.context.idx].openTime,value:null,options:{color:_}})}}}var Yp=Object.defineProperty,Xp=(t,e,i)=>e in t?Yp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Qp=(t,e,i)=>Xp(t,typeof e!="symbol"?e+"":e,i);class Zp{constructor(e){this.context=e,Qp(this,"point");const i=this.context;this.point={new(r,s,a){return new me(r,s,a??NaN)},from_index(r,s){return new me(void 0,r,s)},from_time(r,s){return new me(r,void 0,s)},copy(r){return r.copy()},now(r){const s=i.idx,a=i.marketData[s]?.openTime;return new me(a,s,r)}}}param(e,i=0,r){return y.from(e).get(i)}bg_color(){return"#1e293b"}fg_color(){return"#d1d4dc"}is_standard(){return!0}is_heikinashi(){return!1}is_kagi(){return!1}is_linebreak(){return!1}is_pnf(){return!1}is_range(){return!1}is_renko(){return!1}}var Jp=Object.defineProperty,ef=(t,e,i)=>e in t?Jp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,oe=(t,e,i)=>ef(t,typeof e!="symbol"?e+"":e,i);let tf=0;class tr{constructor(e,i,r="",s="bi",a="pr",n="",o="style_label_down",l="",c="normal",h="center",p="",u="default",f=!1){oe(this,"id"),oe(this,"x"),oe(this,"y"),oe(this,"text"),oe(this,"xloc"),oe(this,"yloc"),oe(this,"color"),oe(this,"style"),oe(this,"textcolor"),oe(this,"size"),oe(this,"textalign"),oe(this,"tooltip"),oe(this,"text_font_family"),oe(this,"force_overlay"),oe(this,"_deleted"),oe(this,"_helper"),oe(this,"_createdAtBar",-1),this.id=tf++,this.x=e,this.y=i,this.text=r,this.xloc=s,this.yloc=a,this.color=n,this.style=o,this.textcolor=l,this.size=c,this.textalign=h,this.tooltip=p,this.text_font_family=u,this.force_overlay=f,this._deleted=!1,this._helper=null}set_x(e){this._helper?this._helper.set_x(this,e):this._deleted||(this.x=e)}set_y(e){this._helper?this._helper.set_y(this,e):this._deleted||(this.y=e)}set_xy(e,i){this._helper?this._helper.set_xy(this,e,i):this._deleted||(this.x=e,this.y=i)}set_text(e){this._helper?this._helper.set_text(this,e):this._deleted||(this.text=e)}set_color(e){this._helper?this._helper.set_color(this,e):this._deleted||(this.color=e)}set_textcolor(e){this._helper?this._helper.set_textcolor(this,e):this._deleted||(this.textcolor=e)}set_size(e){this._helper?this._helper.set_size(this,e):this._deleted||(this.size=e)}set_style(e){this._helper?this._helper.set_style(this,e):this._deleted||(this.style=e)}set_textalign(e){this._helper?this._helper.set_textalign(this,e):this._deleted||(this.textalign=e)}set_tooltip(e){this._helper?this._helper.set_tooltip(this,e):this._deleted||(this.tooltip=e)}set_xloc(e){this._helper?this._helper.set_xloc(this,e):this._deleted||(this.xloc=e)}set_yloc(e){this._helper?this._helper.set_yloc(this,e):this._deleted||(this.yloc=e)}set_point(e){this._helper&&this._helper.set_point(this,e)}set_text_font_family(e){this._deleted||(this.text_font_family=e)}get_x(){return this.x}get_y(){return this.y}get_text(){return this.text}delete(){this._deleted=!0}copy(){return new tr(this.x,this.y,this.text,this.xloc,this.yloc,this.color,this.style,this.textcolor,this.size,this.textalign,this.tooltip,this.text_font_family,this.force_overlay)}toPlotData(){return{id:this.id,x:this.x,y:this.y,text:this.text,xloc:this.xloc,yloc:this.yloc,color:this.color,style:this.style,textcolor:this.textcolor,size:this.size,textalign:this.textalign,tooltip:this.tooltip,text_font_family:this.text_font_family,force_overlay:this.force_overlay,_deleted:this._deleted}}}var rf=Object.defineProperty,sf=(t,e,i)=>e in t?rf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,nf=(t,e,i)=>sf(t,typeof e!="symbol"?e+"":e,i);const af=[["x","y","text","xloc","yloc","color","style","textcolor","size","textalign","tooltip","text_font_family","force_overlay"],["point","text","xloc","yloc","color","style","textcolor","size","textalign","tooltip","text_font_family","force_overlay"]],of={x:"number",y:"number",text:"string",xloc:"string",yloc:"string",color:"color",style:"string",textcolor:"color",size:"string",textalign:"string",tooltip:"string",text_font_family:"string",force_overlay:"boolean",point:"point"};class lf{constructor(e){this.context=e,nf(this,"_labels",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__labels__||(this.context.plots.__labels__={title:"__labels__",data:[],options:{style:"label",overlay:this.context.indicator?.overlay||!1}})}syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__labels__.data=[{time:e,value:this._labels.map(i=>i.toPlotData()),options:{style:"label"}}]}_resolve(e){if(e==null)return e;if(e instanceof Ot)return null;if(typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"){const i=e.get(0);return typeof i=="number"&&isNaN(i)?null:i}return typeof e=="function"?e():typeof e=="number"&&isNaN(e)?null:e}_createLabel(e,i,r="",s="bi",a="pr",n="",o="style_label_down",l="",c="normal",h="center",p="",u="default",f=!1){const m=new tr(e,i,this._resolve(r),this._resolve(s),this._resolve(a),this._resolve(n),this._resolve(o),this._resolve(l),this._resolve(c),this._resolve(h),this._resolve(p),this._resolve(u),f);return m._helper=this,m._createdAtBar=this.context.idx,this._labels.push(m),this.syncToPlot(),m}new(...e){const i=se(e,af,of);let r,s,a=i.xloc;if(i.point instanceof me){const n=i.point;n.index!==void 0?(r=n.index,a=a||"bi"):n.time!==void 0?(r=n.time,a=a||"bt"):(r=0,a=a||"bi"),s=n.price}else r=i.x,s=i.y;return this._createLabel(r,s,i.text,a,i.yloc,i.color,i.style,i.textcolor,i.size,i.textalign,i.tooltip,i.text_font_family,i.force_overlay)}any(...e){return this.new(...e)}set_x(e,i){e&&!e._deleted&&(e.x=i)}set_y(e,i){e&&!e._deleted&&(e.y=i)}set_xy(e,i,r){e&&!e._deleted&&(e.x=i,e.y=r)}set_text(e,i){e&&!e._deleted&&(e.text=i)}set_color(e,i){e&&!e._deleted&&(e.color=i)}set_textcolor(e,i){e&&!e._deleted&&(e.textcolor=i)}set_size(e,i){e&&!e._deleted&&(e.size=i)}set_style(e,i){e&&!e._deleted&&(e.style=i)}set_textalign(e,i){e&&!e._deleted&&(e.textalign=i)}set_tooltip(e,i){e&&!e._deleted&&(e.tooltip=i)}set_xloc(e,i){e&&!e._deleted&&(e.xloc=i)}set_yloc(e,i){e&&!e._deleted&&(e.yloc=i)}set_point(e,i){e&&!e._deleted&&i&&(i.index!==void 0?(e.x=i.index,e.xloc="bi"):i.time!==void 0&&(e.x=i.time,e.xloc="bt"),e.y=i.price)}get_x(e){return e?e.x:NaN}get_y(e){return e?e.y:NaN}get_text(e){return e?e.text:""}copy(e){if(!e)return;const i=e.copy();return i._helper=this,i._createdAtBar=this.context.idx,this._labels.push(i),this.syncToPlot(),i}delete(e){e&&(e._deleted=!0)}get all(){return this._labels.filter(e=>!e._deleted)}rollbackFromBar(e){this._labels=this._labels.filter(i=>i._createdAtBar<e),this.syncToPlot()}get style_label_down(){return"style_label_down"}get style_label_up(){return"style_label_up"}get style_label_left(){return"style_label_left"}get style_label_right(){return"style_label_right"}get style_label_lower_left(){return"style_label_lower_left"}get style_label_lower_right(){return"style_label_lower_right"}get style_label_upper_left(){return"style_label_upper_left"}get style_label_upper_right(){return"style_label_upper_right"}get style_label_center(){return"style_label_center"}get style_circle(){return"style_circle"}get style_square(){return"style_square"}get style_diamond(){return"style_diamond"}get style_flag(){return"style_flag"}get style_arrowup(){return"style_arrowup"}get style_arrowdown(){return"style_arrowdown"}get style_cross(){return"style_cross"}get style_xcross(){return"style_xcross"}get style_triangleup(){return"style_triangleup"}get style_triangledown(){return"style_triangledown"}get style_none(){return"style_none"}get style_text_outline(){return"style_text_outline"}}var cf=Object.defineProperty,hf=(t,e,i)=>e in t?cf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,xe=(t,e,i)=>hf(t,typeof e!="symbol"?e+"":e,i);let uf=0;class ir{constructor(e,i,r,s,a="bi",n="none",o="",l="style_solid",c=1,h=!1){xe(this,"id"),xe(this,"x1"),xe(this,"y1"),xe(this,"x2"),xe(this,"y2"),xe(this,"xloc"),xe(this,"extend"),xe(this,"color"),xe(this,"style"),xe(this,"width"),xe(this,"force_overlay"),xe(this,"_deleted"),xe(this,"_helper"),xe(this,"_createdAtBar",-1),this.id=uf++,this.x1=e,this.y1=i,this.x2=r,this.y2=s,this.xloc=a,this.extend=n,this.color=o,this.style=l,this.width=c,this.force_overlay=h,this._deleted=!1,this._helper=null}set_x1(e){this._helper?this._helper.set_x1(this,e):this._deleted||(this.x1=e)}set_y1(e){this._helper?this._helper.set_y1(this,e):this._deleted||(this.y1=e)}set_x2(e){this._helper?this._helper.set_x2(this,e):this._deleted||(this.x2=e)}set_y2(e){this._helper?this._helper.set_y2(this,e):this._deleted||(this.y2=e)}set_xy1(e,i){this._helper?this._helper.set_xy1(this,e,i):this._deleted||(this.x1=e,this.y1=i)}set_xy2(e,i){this._helper?this._helper.set_xy2(this,e,i):this._deleted||(this.x2=e,this.y2=i)}set_color(e){this._helper?this._helper.set_color(this,e):this._deleted||(this.color=e)}set_width(e){this._helper?this._helper.set_width(this,e):this._deleted||(this.width=e)}set_style(e){this._helper?this._helper.set_style(this,e):this._deleted||(this.style=e)}set_extend(e){this._helper?this._helper.set_extend(this,e):this._deleted||(this.extend=e)}set_xloc(e,i,r){this._helper?this._helper.set_xloc(this,e,i,r):this._deleted||(this.x1=e,this.x2=i,this.xloc=r)}set_first_point(e){this._helper&&this._helper.set_first_point(this,e)}set_second_point(e){this._helper&&this._helper.set_second_point(this,e)}get_x1(){return this.x1}get_y1(){return this.y1}get_x2(){return this.x2}get_y2(){return this.y2}get_price(e){return this._helper?this._helper.get_price(this,e):NaN}delete(){this._deleted=!0}copy(){return new ir(this.x1,this.y1,this.x2,this.y2,this.xloc,this.extend,this.color,this.style,this.width,this.force_overlay)}toPlotData(){return{id:this.id,x1:this.x1,y1:this.y1,x2:this.x2,y2:this.y2,xloc:this.xloc,extend:this.extend,color:this.color,style:this.style,width:this.width,force_overlay:this.force_overlay,_deleted:this._deleted}}}var pf=Object.defineProperty,ff=(t,e,i)=>e in t?pf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,df=(t,e,i)=>ff(t,typeof e!="symbol"?e+"":e,i);const mf=[["x1","y1","x2","y2","xloc","extend","color","style","width","force_overlay"],["first_point","second_point","xloc","extend","color","style","width","force_overlay"]],gf={x1:"number",y1:"number",x2:"number",y2:"number",xloc:"string",extend:"string",color:"color",style:"string",width:"number",force_overlay:"boolean",first_point:"point",second_point:"point"};class yf{constructor(e){this.context=e,df(this,"_lines",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__lines__||(this.context.plots.__lines__={title:"__lines__",data:[],options:{style:"drawing_line",overlay:this.context.indicator?.overlay||!1}})}syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__lines__.data=[{time:e,value:this._lines.map(i=>i.toPlotData()),options:{style:"drawing_line"}}]}_resolvePoint(e){return e.index!==void 0?{x:e.index,xloc:"bi"}:e.time!==void 0?{x:e.time,xloc:"bt"}:{x:0,xloc:"bi"}}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}_createLine(e,i,r,s,a="bi",n="none",o="",l="style_solid",c=1,h=!1){const p=new ir(e,i,r,s,a,this._resolve(n),this._resolve(o),this._resolve(l),this._resolve(c)||1,h);return p._helper=this,p._createdAtBar=this.context.idx,this._lines.push(p),this.syncToPlot(),p}new(...e){const i=se(e,mf,gf);let r,s,a,n,o=i.xloc;if(i.first_point instanceof me){const l=i.first_point,c=i.second_point,h=this._resolvePoint(l);r=h.x,s=l.price,o=o||h.xloc,c instanceof me?(a=this._resolvePoint(c).x,n=c.price):(a=0,n=NaN)}else r=i.x1,s=i.y1,a=i.x2,n=i.y2;return this._createLine(r,s,a,n,o,i.extend,i.color,i.style,i.width,i.force_overlay)}any(...e){return this.new(...e)}set_x1(e,i){e&&!e._deleted&&(e.x1=i)}set_y1(e,i){e&&!e._deleted&&(e.y1=i)}set_x2(e,i){e&&!e._deleted&&(e.x2=i)}set_y2(e,i){e&&!e._deleted&&(e.y2=i)}set_xy1(e,i,r){e&&!e._deleted&&(e.x1=i,e.y1=r)}set_xy2(e,i,r){e&&!e._deleted&&(e.x2=i,e.y2=r)}set_color(e,i){e&&!e._deleted&&(e.color=this._resolve(i))}set_width(e,i){e&&!e._deleted&&(e.width=this._resolve(i)||1)}set_style(e,i){e&&!e._deleted&&(e.style=this._resolve(i))}set_extend(e,i){e&&!e._deleted&&(e.extend=this._resolve(i))}set_xloc(e,i,r,s){e&&!e._deleted&&(e.x1=i,e.x2=r,e.xloc=s)}set_first_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.x1=r.x,e.y1=i.price,e.xloc=r.xloc}}set_second_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.x2=r.x,e.y2=i.price,e.xloc=r.xloc}}get_x1(e){return e?e.x1:NaN}get_y1(e){return e?e.y1:NaN}get_x2(e){return e?e.x2:NaN}get_y2(e){return e?e.y2:NaN}get_price(e,i){if(!e||e._deleted)return NaN;if(e.xloc!=="bi")return NaN;const r=e.x2-e.x1;return r===0?e.y1:e.y1+(i-e.x1)/r*(e.y2-e.y1)}copy(e){if(!e)return;const i=e.copy();return i._helper=this,i._createdAtBar=this.context.idx,this._lines.push(i),this.syncToPlot(),i}delete(e){e&&(e._deleted=!0)}get all(){return this._lines.filter(e=>!e._deleted)}rollbackFromBar(e){this._lines=this._lines.filter(i=>i._createdAtBar<e),this.syncToPlot()}get style_solid(){return"style_solid"}get style_dotted(){return"style_dotted"}get style_dashed(){return"style_dashed"}get style_arrow_left(){return"style_arrow_left"}get style_arrow_right(){return"style_arrow_right"}get style_arrow_both(){return"style_arrow_both"}}var xf=Object.defineProperty,_f=(t,e,i)=>e in t?xf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,X=(t,e,i)=>_f(t,typeof e!="symbol"?e+"":e,i);let bf=0;class rr{constructor(e,i,r,s,a="bi",n="none",o="#2962ff",l="style_solid",c=1,h="#2962ff",p="",u="#000000",f="auto",m="center",x="center",_="wrap_none",b="default",S="format_none",v=!1){X(this,"id"),X(this,"left"),X(this,"top"),X(this,"right"),X(this,"bottom"),X(this,"xloc"),X(this,"extend"),X(this,"border_color"),X(this,"border_style"),X(this,"border_width"),X(this,"bgcolor"),X(this,"text"),X(this,"text_color"),X(this,"text_size"),X(this,"text_halign"),X(this,"text_valign"),X(this,"text_wrap"),X(this,"text_font_family"),X(this,"text_formatting"),X(this,"force_overlay"),X(this,"_deleted"),X(this,"_helper"),X(this,"_createdAtBar",-1),this.id=bf++,this.left=e,this.top=i,this.right=r,this.bottom=s,this.xloc=a,this.extend=n,this.border_color=o,this.border_style=l,this.border_width=c,this.bgcolor=h,this.text=p,this.text_color=u,this.text_size=f,this.text_halign=m,this.text_valign=x,this.text_wrap=_,this.text_font_family=b,this.text_formatting=S,this.force_overlay=v,this._deleted=!1,this._helper=null}set_left(e){this._helper?this._helper.set_left(this,e):this._deleted||(this.left=e)}set_right(e){this._helper?this._helper.set_right(this,e):this._deleted||(this.right=e)}set_top(e){this._helper?this._helper.set_top(this,e):this._deleted||(this.top=e)}set_bottom(e){this._helper?this._helper.set_bottom(this,e):this._deleted||(this.bottom=e)}set_lefttop(e,i){this._helper?this._helper.set_lefttop(this,e,i):this._deleted||(this.left=e,this.top=i)}set_rightbottom(e,i){this._helper?this._helper.set_rightbottom(this,e,i):this._deleted||(this.right=e,this.bottom=i)}set_top_left_point(e){this._helper&&this._helper.set_top_left_point(this,e)}set_bottom_right_point(e){this._helper&&this._helper.set_bottom_right_point(this,e)}set_xloc(e,i,r){this._helper?this._helper.set_xloc(this,e,i,r):this._deleted||(this.left=e,this.right=i,this.xloc=r)}set_bgcolor(e){this._helper?this._helper.set_bgcolor(this,e):this._deleted||(this.bgcolor=e)}set_border_color(e){this._helper?this._helper.set_border_color(this,e):this._deleted||(this.border_color=e)}set_border_width(e){this._helper?this._helper.set_border_width(this,e):this._deleted||(this.border_width=e)}set_border_style(e){this._helper?this._helper.set_border_style(this,e):this._deleted||(this.border_style=e)}set_extend(e){this._helper?this._helper.set_extend(this,e):this._deleted||(this.extend=e)}set_text(e){this._helper?this._helper.set_text(this,e):this._deleted||(this.text=e)}set_text_color(e){this._helper?this._helper.set_text_color(this,e):this._deleted||(this.text_color=e)}set_text_size(e){this._helper?this._helper.set_text_size(this,e):this._deleted||(this.text_size=e)}set_text_halign(e){this._helper?this._helper.set_text_halign(this,e):this._deleted||(this.text_halign=e)}set_text_valign(e){this._helper?this._helper.set_text_valign(this,e):this._deleted||(this.text_valign=e)}set_text_wrap(e){this._helper?this._helper.set_text_wrap(this,e):this._deleted||(this.text_wrap=e)}set_text_font_family(e){this._helper?this._helper.set_text_font_family(this,e):this._deleted||(this.text_font_family=e)}set_text_formatting(e){this._helper?this._helper.set_text_formatting(this,e):this._deleted||(this.text_formatting=e)}get_left(){return this.left}get_right(){return this.right}get_top(){return this.top}get_bottom(){return this.bottom}delete(){this._deleted=!0}toPlotData(){return{id:this.id,left:this.left,top:this.top,right:this.right,bottom:this.bottom,xloc:this.xloc,extend:this.extend,border_color:this.border_color,border_style:this.border_style,border_width:this.border_width,bgcolor:this.bgcolor,text:this.text,text_color:this.text_color,text_size:this.text_size,text_halign:this.text_halign,text_valign:this.text_valign,text_wrap:this.text_wrap,text_font_family:this.text_font_family,text_formatting:this.text_formatting,force_overlay:this.force_overlay,_deleted:this._deleted}}copy(){return new rr(this.left,this.top,this.right,this.bottom,this.xloc,this.extend,this.border_color,this.border_style,this.border_width,this.bgcolor,this.text,this.text_color,this.text_size,this.text_halign,this.text_valign,this.text_wrap,this.text_font_family,this.text_formatting,this.force_overlay)}}var vf=Object.defineProperty,wf=(t,e,i)=>e in t?vf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Sf=(t,e,i)=>wf(t,typeof e!="symbol"?e+"":e,i);const Ef=[["left","top","right","bottom","border_color","border_width","border_style","extend","xloc","bgcolor","text","text_size","text_color","text_halign","text_valign","text_wrap","text_font_family","force_overlay"],["top_left","bottom_right","border_color","border_width","border_style","extend","xloc","bgcolor","text","text_size","text_color","text_halign","text_valign","text_wrap","text_font_family","force_overlay"]],Nf={left:"number",top:"number",right:"number",bottom:"number",top_left:"point",bottom_right:"point",border_color:"color",border_width:"number",border_style:"string",extend:"string",xloc:"string",bgcolor:"color",text:"string",text_size:"string",text_color:"color",text_halign:"string",text_valign:"string",text_wrap:"string",text_font_family:"string",force_overlay:"boolean"};class Cf{constructor(e){this.context=e,Sf(this,"_boxes",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__boxes__||(this.context.plots.__boxes__={title:"__boxes__",data:[],options:{style:"drawing_box",overlay:this.context.indicator?.overlay||!1}})}syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__boxes__.data=[{time:e,value:this._boxes.map(i=>i.toPlotData()),options:{style:"drawing_box"}}]}_resolvePoint(e){return e.index!==void 0?{x:e.index,xloc:"bi"}:e.time!==void 0?{x:e.time,xloc:"bt"}:{x:0,xloc:"bi"}}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}_resolveColor(e,i){const r=this._resolve(e);return typeof r=="number"&&isNaN(r)?NaN:r||i}_createBox(e,i,r,s,a="bi",n="none",o="#2962ff",l="style_solid",c=1,h="#2962ff",p="",u="#000000",f="auto",m="center",x="center",_="wrap_none",b="default",S="format_none",v=!1){const E=new rr(e,i,r,s,a,this._resolve(n),this._resolveColor(o,"#2962ff"),this._resolve(l)||"style_solid",this._resolve(c)??1,this._resolveColor(h,"#2962ff"),this._resolve(p)||"",this._resolveColor(u,"#000000"),this._resolve(f)||"auto",this._resolve(m)||"center",this._resolve(x)||"center",this._resolve(_)||"wrap_none",this._resolve(b)||"default",this._resolve(S)||"format_none",v);return E._helper=this,E._createdAtBar=this.context.idx,this._boxes.push(E),this.syncToPlot(),E}new(...e){const i=se(e,Ef,Nf);let r,s,a,n,o=i.xloc;if(i.top_left instanceof me){const l=i.top_left,c=i.bottom_right,h=this._resolvePoint(l);r=h.x,s=l.price,o=o||h.xloc,c instanceof me?(a=this._resolvePoint(c).x,n=c.price):(a=0,n=NaN)}else r=this._resolve(i.left),s=this._resolve(i.top),a=this._resolve(i.right),n=this._resolve(i.bottom);return this._createBox(r,s,a,n,o,i.extend,i.border_color,i.border_style,i.border_width,i.bgcolor,i.text,i.text_color,i.text_size,i.text_halign,i.text_valign,i.text_wrap,i.text_font_family,void 0,i.force_overlay)}any(...e){return this.new(...e)}set_left(e,i){e&&!e._deleted&&(e.left=i)}set_right(e,i){e&&!e._deleted&&(e.right=i)}set_top(e,i){e&&!e._deleted&&(e.top=i)}set_bottom(e,i){e&&!e._deleted&&(e.bottom=i)}set_lefttop(e,i,r){e&&!e._deleted&&(e.left=i,e.top=r)}set_rightbottom(e,i,r){e&&!e._deleted&&(e.right=i,e.bottom=r)}set_top_left_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.left=r.x,e.top=i.price,e.xloc=r.xloc}}set_bottom_right_point(e,i){if(e&&!e._deleted&&i){const r=this._resolvePoint(i);e.right=r.x,e.bottom=i.price,e.xloc=r.xloc}}set_xloc(e,i,r,s){e&&!e._deleted&&(e.left=i,e.right=r,e.xloc=s)}set_bgcolor(e,i){e&&!e._deleted&&(e.bgcolor=this._resolve(i))}set_border_color(e,i){e&&!e._deleted&&(e.border_color=this._resolve(i))}set_border_width(e,i){e&&!e._deleted&&(e.border_width=this._resolve(i)??1)}set_border_style(e,i){e&&!e._deleted&&(e.border_style=this._resolve(i))}set_extend(e,i){e&&!e._deleted&&(e.extend=this._resolve(i))}set_text(e,i){e&&!e._deleted&&(e.text=this._resolve(i)||"")}set_text_color(e,i){e&&!e._deleted&&(e.text_color=this._resolve(i))}set_text_size(e,i){e&&!e._deleted&&(e.text_size=this._resolve(i))}set_text_halign(e,i){e&&!e._deleted&&(e.text_halign=this._resolve(i))}set_text_valign(e,i){e&&!e._deleted&&(e.text_valign=this._resolve(i))}set_text_wrap(e,i){e&&!e._deleted&&(e.text_wrap=this._resolve(i))}set_text_font_family(e,i){e&&!e._deleted&&(e.text_font_family=this._resolve(i))}set_text_formatting(e,i){e&&!e._deleted&&(e.text_formatting=this._resolve(i))}get_left(e){return e?e.left:NaN}get_right(e){return e?e.right:NaN}get_top(e){return e?e.top:NaN}get_bottom(e){return e?e.bottom:NaN}copy(e){if(!e)return;const i=e.copy();return i._helper=this,i._createdAtBar=this.context.idx,this._boxes.push(i),this.syncToPlot(),i}delete(e){e&&(e._deleted=!0)}get all(){return this._boxes.filter(e=>!e._deleted)}rollbackFromBar(e){this._boxes=this._boxes.filter(i=>i._createdAtBar<e),this.syncToPlot()}}var If=Object.defineProperty,kf=(t,e,i)=>e in t?If(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ct=(t,e,i)=>kf(t,typeof e!="symbol"?e+"":e,i);let Af=0;class Tf{constructor(e,i,r){Ct(this,"id"),Ct(this,"line1"),Ct(this,"line2"),Ct(this,"color"),Ct(this,"_deleted"),Ct(this,"_createdAtBar",-1),this.id=Af++,this.line1=e,this.line2=i,this.color=r,this._deleted=!1}get_line1(){return this.line1}get_line2(){return this.line2}set_color(e){this._deleted||(typeof e=="function"&&(e=e()),e&&typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"&&(e=e.get(0)),this.color=e||"")}delete(){this._deleted=!0}toPlotData(){const e=i=>i?{id:i.id,x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2,xloc:i.xloc,extend:i.extend,color:i.color,style:i.style,width:i.width,_deleted:i._deleted}:null;return{id:this.id,line1:e(this.line1),line2:e(this.line2),color:this.color,_deleted:this._deleted}}}var Pf=Object.defineProperty,Df=(t,e,i)=>e in t?Pf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Mf=(t,e,i)=>Df(t,typeof e!="symbol"?e+"":e,i);class Rf{constructor(e){this.context=e,Mf(this,"_linefills",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__linefills__||(this.context.plots.__linefills__={title:"__linefills__",data:[],options:{style:"linefill",overlay:this.context.indicator?.overlay||!1}})}syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__linefills__.data=[{time:e,value:this._linefills.map(i=>i.toPlotData()),options:{style:"linefill"}}]}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}new(e,i,r){const s=this._resolve(e),a=this._resolve(i),n=r&&typeof r=="object"&&!Array.isArray(r)&&"color"in r?r.color:r,o=this._resolve(n)||"",l=new Tf(s,a,o);return l._createdAtBar=this.context.idx,this._linefills.push(l),this.syncToPlot(),l}any(...e){return this.new(e[0],e[1],e[2])}set_color(e,i){e&&!e._deleted&&(e.color=this._resolve(i)||"")}get_line1(e){return e?e.line1:void 0}get_line2(e){return e?e.line2:void 0}delete(e){e&&(e._deleted=!0)}get all(){return this._linefills.filter(e=>!e._deleted)}rollbackFromBar(e){this._linefills=this._linefills.filter(i=>i._createdAtBar<e),this.syncToPlot()}}var Of=Object.defineProperty,Vf=(t,e,i)=>e in t?Of(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,De=(t,e,i)=>Vf(t,typeof e!="symbol"?e+"":e,i);let Lf=0;class jf{constructor(e,i=!1,r=!1,s="bi",a="#2962ff",n="",o="style_solid",l=1,c=!1){De(this,"id"),De(this,"points"),De(this,"curved"),De(this,"closed"),De(this,"xloc"),De(this,"line_color"),De(this,"fill_color"),De(this,"line_style"),De(this,"line_width"),De(this,"force_overlay"),De(this,"_deleted"),De(this,"_createdAtBar",-1),this.id=Lf++,this.points=e,this.curved=i,this.closed=r,this.xloc=s,this.line_color=a,this.fill_color=n,this.line_style=o,this.line_width=l,this.force_overlay=c,this._deleted=!1}delete(){this._deleted=!0}toPlotData(){return{id:this.id,points:this.points.map(e=>({time:e.time,index:e.index,price:e.price})),curved:this.curved,closed:this.closed,xloc:this.xloc,line_color:this.line_color,fill_color:this.fill_color,line_style:this.line_style,line_width:this.line_width,force_overlay:this.force_overlay,_deleted:this._deleted}}}var $f=Object.defineProperty,Bf=(t,e,i)=>e in t?$f(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ff=(t,e,i)=>Bf(t,typeof e!="symbol"?e+"":e,i);class Wf{constructor(e){this.context=e,Ff(this,"_polylines",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__polylines__||(this.context.plots.__polylines__={title:"__polylines__",data:[],options:{style:"drawing_polyline",overlay:this.context.indicator?.overlay||!1}})}syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__polylines__.data=[{time:e,value:this._polylines.map(i=>i.toPlotData()),options:{style:"drawing_polyline"}}]}_resolve(e){return e==null?e:e instanceof Ot?NaN:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}_resolveColor(e,i){const r=this._resolve(e);return typeof r=="number"&&isNaN(r)?NaN:r||i}_extractPoints(e){let i=this._resolve(e);const r=i&&i.array?i.array:i;return Array.isArray(r)?r.filter(s=>s instanceof me):[]}new(...e){let i,r=!1,s=!1,a="bi",n="#2962ff",o="",l="style_solid",c=1,h=!1;const p=_=>{r=_.curved??r,s=_.closed??s,a=_.xloc??a,n=_.line_color??n,o=_.fill_color??o,l=_.line_style??l,c=_.line_width??c,h=_.force_overlay??h},u=e.length>=1?e[e.length-1]:null,f=e.length>=2&&u&&typeof u=="object"&&!Array.isArray(u)&&!(u instanceof y)&&!(u instanceof me);if(e.length===1&&u&&typeof u=="object"&&!Array.isArray(u)&&"points"in u)i=u.points,p(u);else{const _=f?e.slice(0,-1):e;i=_[0],r=_[1]??r,s=_[2]??s,a=_[3]??a,n=_[4]??n,o=_[5]??o,l=_[6]??l,c=_[7]??c,h=_[8]??h,f&&p(u)}const m=this._extractPoints(i),x=new jf(m,this._resolve(r)??!1,this._resolve(s)??!1,this._resolve(a)||"bi",this._resolveColor(n,"#2962ff"),this._resolveColor(o,""),this._resolve(l)||"style_solid",this._resolve(c)||1,this._resolve(h)??!1);return x._createdAtBar=this.context.idx,this._polylines.push(x),this.syncToPlot(),x}any(...e){return this.new(...e)}delete(e){e&&(e._deleted=!0)}get all(){return this._polylines.filter(e=>!e._deleted)}rollbackFromBar(e){this._polylines=this._polylines.filter(i=>i._createdAtBar<e),this.syncToPlot()}}var Uf=Object.defineProperty,qf=(t,e,i)=>e in t?Uf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,_e=(t,e,i)=>qf(t,typeof e!="symbol"?e+"":e,i);let Kf=0;class zf{constructor(e="top_right",i=1,r=1,s="",a="",n=0,o="",l=0,c=!1){_e(this,"id"),_e(this,"position"),_e(this,"columns"),_e(this,"rows"),_e(this,"bgcolor"),_e(this,"frame_color"),_e(this,"frame_width"),_e(this,"border_color"),_e(this,"border_width"),_e(this,"force_overlay"),_e(this,"_deleted"),_e(this,"cells"),_e(this,"merges"),_e(this,"_helper"),this.id=Kf++,this.position=e,this.columns=i,this.rows=r,this.bgcolor=s,this.frame_color=a,this.frame_width=n,this.border_color=o,this.border_width=l,this.force_overlay=c,this._deleted=!1,this.merges=[],this.cells=[];for(let h=0;h<r;h++){this.cells[h]=[];for(let p=0;p<i;p++)this.cells[h][p]=null}}delete(){this._deleted=!0}toPlotData(){const e=this.cells.map(i=>i.map(r=>r?{...r}:null));return{id:this.id,position:this.position,columns:this.columns,rows:this.rows,bgcolor:this.bgcolor,frame_color:this.frame_color,frame_width:this.frame_width,border_color:this.border_color,border_width:this.border_width,force_overlay:this.force_overlay,_deleted:this._deleted,cells:e,merges:this.merges.map(i=>({...i}))}}setCell(e,i,r){if(i<0||i>=this.rows||e<0||e>=this.columns)return;const s=this.cells[i][e];if(s&&s._merged&&s._merge_parent){const[n,o]=s._merge_parent;if(n===e&&o===i)s._merged=!1,s._merge_parent=void 0;else{this.setCell(n,o,r);return}}const a=s||this._defaultCell();Object.assign(a,r),this.cells[i][e]=a}getCell(e,i){return i<0||i>=this.rows||e<0||e>=this.columns?null:this.cells[i][e]}clearCell(e,i){i<0||i>=this.rows||e<0||e>=this.columns||(this.cells[i][e]=null)}_setHelper(e){this._helper=e}cell(...e){return this._helper.cell(this,...e)}clear(...e){return this._helper.clear(this,...e)}merge_cells(...e){return this._helper.merge_cells(this,...e)}cell_set_text(...e){return this._helper.cell_set_text(this,...e)}cell_set_bgcolor(...e){return this._helper.cell_set_bgcolor(this,...e)}cell_set_text_color(...e){return this._helper.cell_set_text_color(this,...e)}cell_set_text_size(...e){return this._helper.cell_set_text_size(this,...e)}cell_set_height(...e){return this._helper.cell_set_height(this,...e)}cell_set_width(...e){return this._helper.cell_set_width(this,...e)}cell_set_tooltip(...e){return this._helper.cell_set_tooltip(this,...e)}cell_set_text_halign(...e){return this._helper.cell_set_text_halign(this,...e)}cell_set_text_valign(...e){return this._helper.cell_set_text_valign(this,...e)}cell_set_text_font_family(...e){return this._helper.cell_set_text_font_family(this,...e)}set_position(...e){return this._helper.set_position(this,...e)}set_bgcolor(...e){return this._helper.set_bgcolor(this,...e)}set_border_color(...e){return this._helper.set_border_color(this,...e)}set_border_width(...e){return this._helper.set_border_width(this,...e)}set_frame_color(...e){return this._helper.set_frame_color(this,...e)}set_frame_width(...e){return this._helper.set_frame_width(this,...e)}_defaultCell(){return{text:"",width:0,height:0,text_color:"#000000",text_halign:"center",text_valign:"center",text_size:"normal",bgcolor:"",tooltip:"",text_font_family:"default",_merged:!1,_merge_parent:null}}}var Hf=Object.defineProperty,Gf=(t,e,i)=>e in t?Hf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Yf=(t,e,i)=>Gf(t,typeof e!="symbol"?e+"":e,i);class Xf{constructor(e){this.context=e,Yf(this,"_tables",[])}param(e,i=0,r){return y.from(e).get(i)}_ensurePlotsEntry(){this.context.plots.__tables__||(this.context.plots.__tables__={title:"__tables__",data:[],options:{style:"table",overlay:!0}})}syncToPlot(){this._ensurePlotsEntry();const e=this.context.marketData[0]?.openTime||0;this.context.plots.__tables__.data=[{time:e,value:this._tables.map(i=>i.toPlotData()),options:{style:"table"}}]}_resolve(e){return e==null?e:typeof e=="object"&&"__value"in e?e.__value:typeof e=="object"&&Array.isArray(e.data)&&typeof e.get=="function"?e.get(0):typeof e=="function"?e():e}new(...e){let i="top_right",r=1,s=1,a="",n="",o=0,l="",c=0,h=!1;const p=e[e.length-1];if(p&&typeof p=="object"&&!Array.isArray(p)&&("bgcolor"in p||"frame_color"in p||"border_color"in p||"position"in p||"columns"in p||"rows"in p)){const f=p,m=e.slice(0,-1);i=m[0]??f.position??i,r=m[1]??f.columns??r,s=m[2]??f.rows??s,a=f.bgcolor??a,n=f.frame_color??n,o=f.frame_width??o,l=f.border_color??l,c=f.border_width??c,h=f.force_overlay??h}else i=e[0]??i,r=e[1]??r,s=e[2]??s,a=e[3]??a,n=e[4]??n,o=e[5]??o,l=e[6]??l,c=e[7]??c,h=e[8]??h;const u=new zf(this._resolve(i)||"top_right",this._resolve(r)||1,this._resolve(s)||1,this._resolve(a)||"",this._resolve(n)||"",this._resolve(o)||0,this._resolve(l)||"",this._resolve(c)||0,this._resolve(h)??!1);return u._setHelper(this),this._tables.push(u),this.syncToPlot(),u}any(...e){return this.new(...e)}cell(...e){let i,r,s,a="",n=0,o=0,l="#000000",c="center",h="center",p="normal",u="",f="",m="default";const x=e[e.length-1];if(x&&typeof x=="object"&&!Array.isArray(x)&&("text"in x||"bgcolor"in x||"text_color"in x||"text_size"in x||"text_halign"in x||"tooltip"in x||"column"in x||"row"in x||"height"in x||"width"in x||"text_valign"in x||"text_font_family"in x)){const v=x,E=e.slice(0,-1);i=E[0],r=E.length>1?E[1]:v.column??0,s=E.length>2?E[2]:v.row??0,a=E[3]??v.text??a,n=E[4]??v.width??n,o=E[5]??v.height??o,l=E[6]??v.text_color??l,c=E[7]??v.text_halign??c,h=E[8]??v.text_valign??h,p=E[9]??v.text_size??p,u=E[10]??v.bgcolor??u,f=E[11]??v.tooltip??f,m=E[12]??v.text_font_family??m}else i=e[0],r=e[1]??0,s=e[2]??0,a=e[3]??a,n=e[4]??n,o=e[5]??o,l=e[6]??l,c=e[7]??c,h=e[8]??h,p=e[9]??p,u=e[10]??u,f=e[11]??f,m=e[12]??m;const _=this._resolve(i);if(!_||_._deleted)return;const b=this._resolve(r)??0,S=this._resolve(s)??0;_.setCell(b,S,{text:this._resolveText(this._resolve(a)),width:this._resolve(n)||0,height:this._resolve(o)||0,text_color:this._resolve(l)||"#000000",text_halign:this._resolve(c)||"center",text_valign:this._resolve(h)||"center",text_size:this._resolve(p)||"normal",bgcolor:this._resolve(u)||"",tooltip:this._resolveText(this._resolve(f)),text_font_family:this._resolve(m)||"default"}),this.syncToPlot()}delete(e){e&&(e._deleted=!0)}clear(...e){let i,r,s,a,n;const o=e[e.length-1];if(o&&typeof o=="object"&&!Array.isArray(o)&&("start_column"in o||"start_row"in o||"end_column"in o)){const f=o;i=e[0],r=e.length>2?e[1]:f.start_column??0,s=e.length>3?e[2]:f.start_row??0,a=f.end_column??(e.length>4?e[3]:r),n=f.end_row??(e.length>5?e[4]:s)}else i=e[0],r=e[1]??0,s=e[2]??0,a=e[3]??r,n=e[4]??s;const l=this._resolve(i);if(!l||l._deleted)return;const c=this._resolve(r)??0,h=this._resolve(s)??0,p=this._resolve(a)??c,u=this._resolve(n)??h;for(let f=h;f<=u;f++)for(let m=c;m<=p;m++)l.clearCell(m,f);this.syncToPlot()}merge_cells(...e){let i,r,s,a,n;const o=e[e.length-1];if(o&&typeof o=="object"&&!Array.isArray(o)&&("start_column"in o||"start_row"in o||"end_column"in o)){const f=o;i=e[0],r=e.length>2?e[1]:f.start_column??0,s=e.length>3?e[2]:f.start_row??0,a=f.end_column??(e.length>4?e[3]:0),n=f.end_row??(e.length>5?e[4]:0)}else i=e[0],r=e[1]??0,s=e[2]??0,a=e[3]??0,n=e[4]??0;const l=this._resolve(i);if(!l||l._deleted)return;const c=this._resolve(r)??0,h=this._resolve(s)??0,p=this._resolve(a)??0,u=this._resolve(n)??0;for(let f=h;f<=u;f++)for(let m=c;m<=p;m++)f===h&&m===c||l.setCell(m,f,{_merged:!0,_merge_parent:[c,h]});l.merges.push({startCol:c,startRow:h,endCol:p,endRow:u}),this.syncToPlot()}cell_set_text(e,i,r,s){this._setCellProp(e,i,r,"text",s,!0)}cell_set_bgcolor(e,i,r,s){this._setCellProp(e,i,r,"bgcolor",s)}cell_set_text_color(e,i,r,s){this._setCellProp(e,i,r,"text_color",s)}cell_set_text_size(e,i,r,s){this._setCellProp(e,i,r,"text_size",s)}cell_set_height(e,i,r,s){this._setCellProp(e,i,r,"height",s)}cell_set_width(e,i,r,s){this._setCellProp(e,i,r,"width",s)}cell_set_tooltip(e,i,r,s){this._setCellProp(e,i,r,"tooltip",s,!0)}cell_set_text_halign(e,i,r,s){this._setCellProp(e,i,r,"text_halign",s)}cell_set_text_valign(e,i,r,s){this._setCellProp(e,i,r,"text_valign",s)}cell_set_text_font_family(e,i,r,s){this._setCellProp(e,i,r,"text_font_family",s)}set_position(e,i){const r=this._resolve(e);!r||r._deleted||(r.position=this._resolve(i)||r.position,this.syncToPlot())}set_bgcolor(e,i){const r=this._resolve(e);!r||r._deleted||(r.bgcolor=this._resolve(i)||"",this.syncToPlot())}set_border_color(e,i){const r=this._resolve(e);!r||r._deleted||(r.border_color=this._resolve(i)||"",this.syncToPlot())}set_border_width(e,i){const r=this._resolve(e);!r||r._deleted||(r.border_width=this._resolve(i)||0,this.syncToPlot())}set_frame_color(e,i){const r=this._resolve(e);!r||r._deleted||(r.frame_color=this._resolve(i)||"",this.syncToPlot())}set_frame_width(e,i){const r=this._resolve(e);!r||r._deleted||(r.frame_width=this._resolve(i)||0,this.syncToPlot())}get all(){return this._tables.filter(e=>!e._deleted)}rollbackFromBar(e){this.syncToPlot()}_setCellProp(e,i,r,s,a,n=!1){const o=this._resolve(e);if(!o||o._deleted)return;const l=this._resolve(i)??0,c=this._resolve(r)??0,h=this._resolve(a);o.setCell(l,c,{[s]:n?this._resolveText(h):h}),this.syncToPlot()}_resolveText(e){return e==null||e!==e?"":String(e)}}var Qf=Object.defineProperty,Zf=(t,e,i)=>e in t?Qf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,j=(t,e,i)=>Zf(t,typeof e!="symbol"?e+"":e,i);const Ui=class si{constructor({marketData:e,source:i,tickerId:r,timeframe:s,limit:a,sDate:n,eDate:o,fullContext:l,inputs:c}){j(this,"data",{open:new y([]),high:new y([]),low:new y([]),close:new y([]),volume:new y([]),hl2:new y([]),hlc3:new y([]),ohlc4:new y([]),hlcc4:new y([]),bar_index:new y([])}),j(this,"indicator"),j(this,"cache",{}),j(this,"taState",{}),j(this,"isSecondaryContext",!1),j(this,"chartTimezone",null),j(this,"dataVersion",0),j(this,"__maxLoops",5e5),j(this,"NA",NaN),j(this,"warnings",[]),j(this,"alerts",[]),j(this,"_alertMode","realtime"),j(this,"_execTick",0),j(this,"lang"),j(this,"length",0),j(this,"_drawingHelpers",[]),j(this,"pine"),j(this,"idx",0),j(this,"params",{}),j(this,"const",{}),j(this,"var",{}),j(this,"let",{}),j(this,"lctx",new Map),j(this,"result"),j(this,"plots",{}),j(this,"marketData"),j(this,"source"),j(this,"tickerId"),j(this,"timeframe",""),j(this,"limit"),j(this,"sDate"),j(this,"eDate"),j(this,"fullContext"),j(this,"pineTSCode"),j(this,"inputs",{}),j(this,"_callStack",[]),this.marketData=e,this.source=i,this.tickerId=r,this.timeframe=s,this.limit=a,this.sDate=n,this.eDate=o,this.fullContext=l||this,this.inputs=c||{};const h=new Bc(this),p={Type:h.Type.bind(h),na:new Ot,nz:h.nz.bind(h),indicator:h.indicator.bind(h),fixnan:h.fixnan.bind(h),alertcondition:h.alertcondition.bind(h),alert:new $c(this),error:h.error.bind(h),max_bars_back:h.max_bars_back.bind(h),timestamp:h.timestamp.bind(h),time:new Ar(this,"openTime"),time_close:new Ar(this,"closeTime"),dayofmonth:new nt(this,at.dayofmonth),dayofweek:new nt(this,at.dayofweek),hour:new nt(this,at.hour),minute:new nt(this,at.minute),month:new nt(this,at.month),second:new nt(this,at.second),weekofyear:new nt(this,at.weekofyear),year:new nt(this,at.year),bool:h.bool.bind(h),int:h.int.bind(h),float:h.float.bind(h),string:h.string.bind(h)},u=this;this.pine={input:new gh(this),ta:new vp(this),math:new Zh(this),request:new nu(this),array:new cl(this),map:new El(this),matrix:new Ec(this),syminfo:null,timeframe:new Ap(this),barstate:new kc(this),get bar_index(){return u.data.bar_index},get last_bar_index(){return u.data.close.length-1},get last_bar_time(){return u.data.openTime.get(u.data.openTime.length-1)},get timenow(){return new Date().getTime()},get time_tradingday(){const z=y.from(u.data.closeTime).get(0);if(isNaN(z))return NaN;const q=u.pine?.syminfo?.timezone||"UTC",V=Tt(z,q);return Date.UTC(V.year,V.month-1,V.day,0,0,0)},get inputs(){return u.inputs},log:new Ep(this),str:new Np(this),...p,...Bo};const f=p.dayofweek;Object.assign(f,{sunday:1,monday:2,tuesday:3,wednesday:4,thursday:5,friday:6,saturday:7}),this.pine.dayofweek=f;const m=new zp(this),x=new Hp(this),_=new Gp(this);this.bindContextObject(m,["plotchar","plotshape","plotarrow","plotbar","plotcandle","bgcolor","barcolor"]),this.bindContextObject(m,["any","param","linestyle_dashed","linestyle_dotted","linestyle_solid","style_area","style_areabr","style_circles","style_columns","style_cross","style_histogram","style_line","style_linebr","style_stepline","style_stepline_diamond","style_steplinebr"],"plot"),this.bindContextObject(x,["any","style_dashed","style_solid","style_dotted","param"],"hline"),this.bindContextObject(_,["any","param"],"fill");const b=new Zp(this);this.pine.chart={param:b.param.bind(b),bg_color:b.bg_color.bind(b),fg_color:b.fg_color.bind(b),is_standard:b.is_standard.bind(b),is_heikinashi:b.is_heikinashi.bind(b),is_kagi:b.is_kagi.bind(b),is_linebreak:b.is_linebreak.bind(b),is_pnf:b.is_pnf.bind(b),is_range:b.is_range.bind(b),is_renko:b.is_renko.bind(b),point:b.point};const S=new lf(this);this.bindContextObject(S,["any","new","param","set_x","set_y","set_xy","set_text","set_color","set_textcolor","set_size","set_style","set_textalign","set_tooltip","set_point","set_xloc","set_yloc","get_x","get_y","get_text","copy","delete","style_label_down","style_label_up","style_label_left","style_label_right","style_label_lower_left","style_label_lower_right","style_label_upper_left","style_label_upper_right","style_label_center","style_circle","style_square","style_diamond","style_flag","style_arrowup","style_arrowdown","style_cross","style_xcross","style_triangleup","style_triangledown","style_none","style_text_outline"],"label"),Object.defineProperty(this.pine.label,"all",{get:()=>S.all});const v=new yf(this);this.bindContextObject(v,["any","new","param","set_x1","set_y1","set_x2","set_y2","set_xy1","set_xy2","set_color","set_width","set_style","set_extend","set_xloc","set_first_point","set_second_point","get_x1","get_y1","get_x2","get_y2","get_price","copy","delete","style_solid","style_dotted","style_dashed","style_arrow_left","style_arrow_right","style_arrow_both"],"line"),Object.defineProperty(this.pine.line,"all",{get:()=>v.all});const E=new Cf(this);this.bindContextObject(E,["any","new","param","copy","delete","set_left","set_right","set_top","set_bottom","set_lefttop","set_rightbottom","set_top_left_point","set_bottom_right_point","set_bgcolor","set_border_color","set_border_width","set_border_style","set_extend","set_xloc","set_text","set_text_color","set_text_size","set_text_halign","set_text_valign","set_text_wrap","set_text_font_family","set_text_formatting","get_left","get_right","get_top","get_bottom"],"box"),Object.defineProperty(this.pine.box,"all",{get:()=>E.all});const T=new Rf(this);this.bindContextObject(T,["any","new","param","set_color","get_line1","get_line2","delete"],"linefill"),Object.defineProperty(this.pine.linefill,"all",{get:()=>T.all});const C=new Wf(this);this.bindContextObject(C,["any","new","param","delete"],"polyline"),Object.defineProperty(this.pine.polyline,"all",{get:()=>C.all});const O=new Xf(this);this.bindContextObject(O,["any","new","param","cell","delete","clear","merge_cells","cell_set_text","cell_set_bgcolor","cell_set_text_color","cell_set_text_size","cell_set_height","cell_set_width","cell_set_tooltip","cell_set_text_halign","cell_set_text_valign","cell_set_text_font_family","set_position","set_bgcolor","set_border_color","set_border_width","set_frame_color","set_frame_width"],"table"),Object.defineProperty(this.pine.table,"all",{get:()=>O.all}),this._drawingHelpers=[S,v,E,T,C,O];const B=new Wc(this);this.bindContextObject(B,["any","param","new","rgb","from_gradient","r","g","b","t","aqua","black","blue","fuchsia","gray","green","lime","maroon","navy","olive","orange","purple","red","silver","teal","white","yellow"],"color")}warn(e,i){this.warnings.push({message:e,method:i,bar:this.idx})}rollbackDrawings(e){for(const i of this._drawingHelpers)i.rollbackFromBar(e)}bindContextObject(e,i,r=""){r&&!this.pine[r]&&(this.pine[r]={});const s=r?this.pine[r]:this.pine;for(const a of i)typeof e[a]=="function"?s[a]=e[a].bind(e):s[a]=e[a]}init(e,i,r=0){let s;return i instanceof y?s=i.get(0):Array.isArray(i)?Array.isArray(i[0])?s=i[0]:s=i[i.length-1+r]:s=i,e?e instanceof y?(e.data[e.data.length-1]=s,e):Array.isArray(e)?(e[e.length-1]=s,new y(e)):new y([s]):new y([s])}initVar(e,i){if(e)return e;if(typeof i=="function"&&(i=i()),i instanceof It){const s=i.__def__;for(const a in s)typeof i[a]=="function"&&(i[a]=i[a]())}let r;return i instanceof y?r=i.get(0):Array.isArray(i)?Array.isArray(i[0])?r=i[0]:r=this.precision(i[i.length-1]):r=this.precision(i),new y([r])}precision(e,i=10){const r=i===10?si.PRECISION_EPSILON:10**i;return typeof e=="number"?Math.round(e*r)/r:e}param(e,i,r){return typeof e=="string"?e:e instanceof y?i?new y(e.data,e.offset+i):e:!Array.isArray(e)&&typeof e=="object"?e:(this.params[r]||(this.params[r]=[]),Array.isArray(e)?new y(e,i||0):(this.params[r].length===0?this.params[r].push(e):this.params[r][this.params[r].length-1]=e,new y(this.params[r],i||0)))}get(e,i){if(e instanceof y)return e.get(i);if(Array.isArray(e)){const r=e.length-1-i;return r<0||r>=e.length?NaN:e[r]}return e}set(e,i){if(e instanceof y){e.set(0,typeof i=="number"?this.precision(i):i);return}if(Array.isArray(e)){e.length>0?e[e.length-1]=i:e.push(i);return}}pushId(e){this._callStack.push(e)}popId(){this._callStack.pop()}peekId(){return this._callStack.length>0?this._callStack[this._callStack.length-1]:""}peekCtx(){const e=this.peekId();if(!e)return this;let i=this.lctx.get(e);return i||(i={id:e,let:{},const:{},var:{}},this.lctx.set(e,i)),i}call(e,i,...r){this.pushId(i);try{return e(...r)}finally{this.popId()}}get math(){return this._showDeprecationWarning("const math = context.math","const { math, ta, input } = context.pine"),this.pine.math}get ta(){return this._showDeprecationWarning("const ta = context.ta","const { ta, math, input } = context.pine"),this.pine.ta}get input(){return this._showDeprecationWarning("const input = context.input","const { input, math, ta } = context.pine"),this.pine.input}get request(){return this._showDeprecationWarning("const request = context.request","const { request, math, ta } = context.pine"),this.pine.request}get array(){return this._showDeprecationWarning("const array = context.array","const { array, math, ta } = context.pine"),this.pine.array}get core(){return this._showDeprecationWarning("context.core.*","context.pine (e.g., const { na, plotchar, color, plot, nz } = context.pine)"),{na:this.pine.na,fill:this.pine.fill,plotchar:this.pine.plotchar,plotshape:this.pine.plotshape,plotarrow:this.pine.plotarrow,color:this.pine.color,plot:this.pine.plot,nz:this.pine.nz}}_showDeprecationWarning(e,i){const r=`${e}->${i}`;si._deprecationWarningsShown.has(r)||(si._deprecationWarningsShown.add(r),typeof window<"u"?console.warn("%c[WARNING]%c %s syntax is deprecated. Use %s instead. This will be removed in a future version.","color: #FFA500; font-weight: bold;","color: #FFA500;",e,i):console.warn(`\x1B[33m[WARNING] ${e} syntax is deprecated. Use ${i} instead. This will be removed in a future version.\x1B[0m`))}};j(Ui,"_deprecationWarningsShown",new Set),j(Ui,"PRECISION_EPSILON",10**10);let Or=Ui;var Jf=Object.defineProperty,ed=(t,e,i)=>e in t?Jf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Vr=(t,e,i)=>ed(t,typeof e!="symbol"?e+"":e,i);class Lr{constructor(e,i={}){Vr(this,"source"),Vr(this,"inputs"),this.source=e,this.inputs=i}}var td=Object.defineProperty,id=(t,e,i)=>e in t?td(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,J=(t,e,i)=>id(t,typeof e!="symbol"?e+"":e,i);const jr={1:6e4,3:18e4,5:3e5,15:9e5,30:18e5,60:36e5,120:72e5,180:108e5,240:144e5,"4H":144e5,"1D":864e5,D:864e5,"1W":6048e5,W:6048e5,"1M":30*864e5,M:30*864e5};function rd(t){return t?jr[t]??jr[t.toUpperCase()]??864e5:864e5}class ln{constructor(e,i,r,s,a,n){this.source=e,this.tickerId=i,this.timeframe=r,this.limit=s,this.sDate=a,this.eDate=n,J(this,"data",[]),J(this,"open",[]),J(this,"high",[]),J(this,"low",[]),J(this,"close",[]),J(this,"volume",[]),J(this,"hl2",[]),J(this,"hlc3",[]),J(this,"ohlc4",[]),J(this,"hlcc4",[]),J(this,"openTime",[]),J(this,"closeTime",[]),J(this,"_readyPromise",null),J(this,"_ready",!1),J(this,"_debugSettings",{ln:!1,debug:!1}),J(this,"_transpiledCode",null),J(this,"_isSecondaryContext",!1),J(this,"_syminfo"),J(this,"_chartTimezone",null),J(this,"_maxLoops",5e5),J(this,"_alertMode","realtime"),this._readyPromise=new Promise(o=>{this.loadMarketData(e,i,r,s,a,n).then(l=>{const c=l;this.data=c;const h=c.map(C=>C.open),p=c.map(C=>C.close),u=c.map(C=>C.high),f=c.map(C=>C.low),m=c.map(C=>C.volume),x=c.map(C=>(C.high+C.low+C.close)/3),_=c.map(C=>(C.high+C.low)/2),b=c.map(C=>(C.high+C.low+C.open+C.close)/4),S=c.map(C=>(C.high+C.low+C.close+C.close)/4),v=c.map(C=>C.openTime),E=rd(this.timeframe),T=c.map(C=>C.closeTime!=null?C.closeTime:C.openTime+E);this.open=h,this.close=p,this.high=u,this.low=f,this.volume=m,this.hl2=_,this.hlc3=x,this.ohlc4=b,this.hlcc4=S,this.openTime=v,this.closeTime=T,e&&e.getSymbolInfo?e.getSymbolInfo(i).then(C=>{this._syminfo=C,this._ready=!0,o(!0)}).catch(C=>{console.warn("Failed to get symbol info, using default values:",C),this._ready=!0,o(!0)}):(this._ready=!0,o(!0))})})}get transpiledCode(){return this._transpiledCode}markAsSecondary(){this._isSecondaryContext=!0}setTimezone(e){this._chartTimezone=e}setMaxLoops(e){this._maxLoops=e}setAlertMode(e){this._alertMode=e}setDebugSettings({ln:e,debug:i}){this._debugSettings.ln=e,this._debugSettings.debug=i}async loadMarketData(e,i,r,s,a,n){return Array.isArray(e)?e:e.getMarketData(i,r,s,a,n)}async ready(){if(this._ready)return!0;if(!this._readyPromise)throw new Error("PineTS is not ready");return this._readyPromise}run(e,i,r){let s,a={};if(e instanceof Lr?(s=e.source,a=e.inputs||{}):s=e,r&&r>0){const n=typeof this.eDate>"u"&&!Array.isArray(this.source);return this._runPaginated(s,a,i,r,n)}else return this._runComplete(s,a,i)}stream(e,i={}){const{live:r=!0,interval:s=1e3}=i,a=i.pageSize||this.data.length;let n,o={};e instanceof Lr?(n=e.source,o=e.inputs||{}):n=e;const l={data:[],error:[],warning:[],alert:[]};let c=!1;const h=(f,...m)=>{l[f]&&l[f].forEach(x=>x(...m))},p=(f,m)=>{l[f]||(l[f]=[]),l[f].push(m)},u=()=>{c=!0};return(async()=>{try{const f=typeof this.eDate>"u"&&!Array.isArray(this.source)&&r,m=this._runPaginated(n,o,void 0,a,f);for await(const x of m){if(c)break;if(x===null){await new Promise(_=>setTimeout(_,s));continue}if(h("data",x),x.warnings&&x.warnings.length>0){for(const _ of x.warnings)h("warning",_);x.warnings.length=0}if(x.alerts&&x.alerts.length>0){for(const _ of x.alerts)h("alert",_);x.alerts.length=0}if(f&&!c){const _=x.marketData[x.idx];_&&_.closeTime<Date.now()||await new Promise(b=>setTimeout(b,s))}}}catch(f){h("error",f)}})(),{on:p,stop:u}}async _runComplete(e,i,r){await this.ready(),r||(r=this.data.length);const s=this._initializeContext(e,i,this._isSecondaryContext);return this._transpiledCode=this._transpileCode(e),await this._executeIterations(s,this._transpiledCode,this.data.length-r,this.data.length),s}async*_runPaginated(e,i,r,s,a=!1){await this.ready(),r||(r=this.data.length);const n=this._initializeContext(e,i,this._isSecondaryContext);this._transpiledCode=this._transpileCode(e);let o=this.data.length-r;for(;;){const l=this.data.length-o;if(l>0){const p=Math.min(l,s),u=this._getResultLength(n.result);await this._executeIterations(n,this._transpiledCode,o,o+p),o+=p,yield this._createPageContext(n,u);continue}if(!a||Array.isArray(this.source))break;const{newCandles:c,updatedLastCandle:h}=await this._updateMarketData();if(c===0&&!h){yield null;continue}n.dataVersion++,n.length=this.data.length,this._removeLastResult(n),o=this.data.length-(c+1),n.rollbackDrawings(o),n.pine.barstate.setLive()}}_getResultLength(e){if(Array.isArray(e))return e.length;if(typeof e=="object"&&e!==null){const i=Object.keys(e);if(i.length>0&&Array.isArray(e[i[0]]))return e[i[0]].length}return 0}_createPageContext(e,i){const r=new Or({marketData:this.data,source:this.source,tickerId:this.tickerId,timeframe:this.timeframe,limit:this.limit,sDate:this.sDate,eDate:this.eDate,fullContext:e,inputs:e.inputs});if(r.pineTSCode=e.pineTSCode,r.idx=e.idx,Array.isArray(e.result))r.result=e.result.slice(i);else if(typeof e.result=="object"&&e.result!==null){r.result={};for(let s in e.result)Array.isArray(e.result[s])?r.result[s]=e.result[s].slice(i):r.result[s]=e.result[s]}else r.result=e.result;return r.plots={...e.plots},r.warnings=e.warnings,r.alerts=e.alerts,r}async _updateMarketData(e){if(Array.isArray(this.source))return{newCandles:0,updatedLastCandle:!1};const i=this.source,r=this.data.length-1,s=this.data[r].openTime;try{const a=await i.getMarketData(this.tickerId,this.timeframe,void 0,s,e);if(!a||a.length===0)return{newCandles:0,updatedLastCandle:!1};let n=!1,o=0;for(let l=0;l<a.length;l++){const c=a[l];c.openTime===s?(this._replaceCandle(r,c),n=!0):c.openTime>s&&(this._appendCandle(c),o++)}return{newCandles:o,updatedLastCandle:n}}catch(a){return console.error("Error updating market data:",a),{newCandles:0,updatedLastCandle:!1}}}_replaceCandle(e,i){this.data[e]=i,this.open[e]=i.open,this.close[e]=i.close,this.high[e]=i.high,this.low[e]=i.low,this.volume[e]=i.volume,this.hl2[e]=(i.high+i.low)/2,this.hlc3[e]=(i.high+i.low+i.close)/3,this.ohlc4[e]=(i.high+i.low+i.open+i.close)/4,this.hlcc4[e]=(i.high+i.low+i.close+i.close)/4,this.openTime[e]=i.openTime,this.closeTime[e]=i.closeTime}_appendCandle(e){this.data.push(e),this.open.push(e.open),this.close.push(e.close),this.high.push(e.high),this.low.push(e.low),this.volume.push(e.volume),this.hl2.push((e.high+e.low)/2),this.hlc3.push((e.high+e.low+e.close)/3),this.ohlc4.push((e.high+e.low+e.open+e.close)/4),this.hlcc4.push((e.high+e.low+e.close+e.close)/4),this.openTime.push(e.openTime),this.closeTime.push(e.closeTime)}async updateTail(e){if(this.data.length===0||Array.isArray(this.source))return!1;const{newCandles:i,updatedLastCandle:r}=await this._updateMarketData();if(i===0&&!r)return!1;this._removeLastResult(e),e.length=this.data.length;const s=this.data.length-(i+1);return e.rollbackDrawings(s),await this._executeIterations(e,this._transpiledCode,s,this.data.length),!0}_removeLastResult(e){if(Array.isArray(e.result))e.result.pop();else if(typeof e.result=="object"&&e.result!==null)for(let s in e.result)Array.isArray(e.result[s])&&e.result[s].pop();e.data.close.data.pop(),e.data.open.data.pop(),e.data.high.data.pop(),e.data.low.data.pop(),e.data.volume.data.pop(),e.data.hl2.data.pop(),e.data.hlc3.data.pop(),e.data.ohlc4.data.pop(),e.data.hlcc4.data.pop(),e.data.openTime.data.pop(),e.data.closeTime&&e.data.closeTime.data.pop(),e.data.bar_index.data.pop();const i=["const","var","let","params"],r=s=>{for(let a of i)if(s[a])for(let n in s[a]){const o=s[a][n];o instanceof y?o.data.pop():Array.isArray(o)&&o.pop()}};r(e),e.lctx&&e.lctx.forEach(s=>r(s))}_initializeContext(e,i={},r=!1){const s=new Or({marketData:this.data,source:this.source,tickerId:this.tickerId,timeframe:this.timeframe,limit:this.limit,sDate:this.sDate,eDate:this.eDate,inputs:i});return s.pine.syminfo=this._syminfo,this._chartTimezone&&(s.chartTimezone=this._chartTimezone),s.__maxLoops=this._maxLoops,s._alertMode=this._alertMode,s.pineTSCode=e,s.isSecondaryContext=r,s.data.close=new y([]),s.data.open=new y([]),s.data.high=new y([]),s.data.low=new y([]),s.data.volume=new y([]),s.data.hl2=new y([]),s.data.hlc3=new y([]),s.data.ohlc4=new y([]),s.data.hlcc4=new y([]),s.data.openTime=new y([]),s.data.closeTime=new y([]),s.length=this.data.length,s}_transpileCode(e){return eo.bind(this)(e,this._debugSettings)}async _executeIterations(e,i,r,s){const a=["const","var","let","params"];for(let n=r;n<s;n++){e.idx=n,e._execTick=(e._execTick||0)+1,e.data.close.data.push(this.close[n]),e.data.open.data.push(this.open[n]),e.data.high.data.push(this.high[n]),e.data.low.data.push(this.low[n]),e.data.volume.data.push(this.volume[n]),e.data.hl2.data.push(this.hl2[n]),e.data.hlc3.data.push(this.hlc3[n]),e.data.ohlc4.data.push(this.ohlc4[n]),e.data.hlcc4.data.push(this.hlcc4[n]),e.data.openTime.data.push(this.openTime[n]),e.data.closeTime.data.push(this.closeTime[n]),e.data.bar_index.data.push(n);const o=await i(e);if(typeof o=="object"){typeof e.result!="object"&&(e.result={});for(let c in o){e.result[c]===void 0&&(e.result[c]=[]);let h;o[c]instanceof y?h=o[c].get(0):Array.isArray(o[c])?h=o[c][o[c].length-1]:h=o[c],e.result[c].push(h)}}else Array.isArray(e.result)||(e.result=[]),e.result.push(o);for(const c of e._drawingHelpers)c.syncToPlot&&c.syncToPlot();const l=c=>{for(let h of a)if(c[h])for(let p in c[h]){const u=c[h][p];if(u instanceof y){const f=u.get(0);u.data.push(f)}else if(Array.isArray(u)){const f=u[u.length-1];u.push(f)}}};l(e),e.lctx&&e.lctx.forEach(c=>l(c))}}}const $r={"1m":6e4,"3m":18e4,"5m":3e5,"15m":9e5,"30m":18e5,"1h":36e5,"2h":72e5,"4h":144e5,"1d":864e5,"1w":6048e5,"1M":2592e6},Ft={"1S":1,"5S":5,"10S":10,"15S":15,"30S":30,1:60,3:180,5:300,15:900,30:1800,45:2700,60:3600,120:7200,180:10800,240:14400,D:86400,W:604800,M:2592e3},$d={"1S":{periodType:"second",multiplier:1},"5S":{periodType:"second",multiplier:5},"10S":{periodType:"second",multiplier:10},"15S":{periodType:"second",multiplier:15},"30S":{periodType:"second",multiplier:30},1:{periodType:"minute",multiplier:1},3:{periodType:"minute",multiplier:3},5:{periodType:"minute",multiplier:5},15:{periodType:"minute",multiplier:15},30:{periodType:"minute",multiplier:30},45:{periodType:"minute",multiplier:45},60:{periodType:"hour",multiplier:1},120:{periodType:"hour",multiplier:2},180:{periodType:"hour",multiplier:3},240:{periodType:"hour",multiplier:4},D:{periodType:"day",multiplier:1},W:{periodType:"week",multiplier:1},M:{periodType:"month",multiplier:1}};function Wt(t,e,i=1){if(e==="month"){const s=new Date(t);return Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+i,1,s.getUTCHours(),s.getUTCMinutes(),s.getUTCSeconds(),s.getUTCMilliseconds())}const r={second:1e3,minute:6e4,hour:36e5,day:864e5,week:7*864e5};return t+i*r[e]}function qe(t,e,i){const[r,s,a]=t.split("-").map(Number),[n,o]=e.split(":").map(Number),l=Date.UTC(r,s-1,a,n,o,0,0),c=new Intl.DateTimeFormat("en-US",{timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(new Date(l)),h=b=>parseInt(c.find(S=>S.type===b).value,10);let p=h("year"),u=h("month"),f=h("day"),m=h("hour");m===24&&(m=0);let x=h("minute");const _=Date.UTC(p,u-1,f,m,x,0,0)-l;return l-_}function Br(t,e,i,r,s=1){if(e==="24x7")return Wt(t,r,s);const a=e.split("-")[1];if(!a||a.length!==4)return Wt(t,r,s);const n=a.slice(0,2),o=a.slice(2,4),l=`${n}:${o}`,c=Fr(t,i);if(r==="second"||r==="minute"||r==="hour"){const h=t+s*{second:1e3,minute:6e4,hour:36e5}[r],p=qe(c,l,i);return Math.min(h,p)}if(r==="day")return qe(c,l,i);if(r==="week"){const h=new Date(t).getUTCDay(),p=h<=5?5-h:5-h+7,u=t+p*864e5,f=Fr(u,i);return qe(f,l,i)}if(r==="month"){const h=new Date(t),p=h.getUTCFullYear(),u=h.getUTCMonth()+s,f=new Date(Date.UTC(p,u,1)),m=new Date(f.getTime()-864e5);for(;m.getUTCDay()===0||m.getUTCDay()===6;)m.setUTCDate(m.getUTCDate()-1);const x=m.toISOString().split("T")[0];return qe(x,l,i)}return Wt(t,r,s)}function Fr(t,e){return new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date(t))}function sd(t){for(let e=0;e<t.length-1;e++)t[e].closeTime=t[e+1].openTime;t.length>0&&(t[t.length-1].closeTime=t[t.length-1].closeTime+1)}const nd=["1S","5S","10S","15S","30S","1","3","5","15","30","45","60","120","180","240","D","W","M"];function ad(t,e){if(t==="W"||t==="M")return e.has("D")?"D":null;const i=Ft[t];if(!i)return null;const r=nd.filter(s=>s!=="W"&&s!=="M"&&e.has(s)&&Ft[s]<i&&i%Ft[s]===0);return r.length===0?null:r[r.length-1]}function cn(t,e){if(t==="W"||t==="M")return 1/0;const i=Ft[t],r=Ft[e];return!i||!r||r===0?1/0:i/r}function od(t,e,i){if(t.length===0)return[];if(e==="W")return cd(t);if(e==="M")return hd(t);const r=cn(e,i);return ld(t,r)}function ld(t,e){if(t.length===0)return[];const i=[];let r=[t[0]];const s=ud(t),a=s>0?s*1.5:0;for(let n=1;n<t.length;n++){const o=t[n].openTime-t[n-1].openTime;(a>0&&o>a||r.length>=e)&&(i.push(ui(r)),r=[]),r.push(t[n])}return r.length>0&&i.push(ui(r)),i}function cd(t){const e=[];let i=[],r="";for(const s of t){const a=pd(s.openTime);a!==r&&i.length>0&&(e.push(i),i=[]),r=a,i.push(s)}return i.length>0&&e.push(i),e.map(ui)}function hd(t){const e=[];let i=[],r="";for(const s of t){const a=new Date(s.openTime),n=`${a.getUTCFullYear()}-${a.getUTCMonth()}`;n!==r&&i.length>0&&(e.push(i),i=[]),r=n,i.push(s)}return i.length>0&&e.push(i),e.map(ui)}function ui(t){const e=t[0],i=t[t.length-1];let r=e.high,s=e.low,a=0,n=0,o=0,l=0,c=0;for(let h=0;h<t.length;h++){const p=t[h];p.high>r&&(r=p.high),p.low<s&&(s=p.low),a+=p.volume,n+=p.quoteAssetVolume,o+=p.numberOfTrades,l+=p.takerBuyBaseAssetVolume,c+=p.takerBuyQuoteAssetVolume}return{openTime:e.openTime,open:e.open,high:r,low:s,close:i.close,volume:a,closeTime:i.closeTime,quoteAssetVolume:n,numberOfTrades:o,takerBuyBaseAssetVolume:l,takerBuyQuoteAssetVolume:c,ignore:0}}function ud(t){if(t.length<2)return 0;const e=Math.min(t.length-1,20);let i=1/0;for(let r=0;r<e;r++){const s=t[r+1].openTime-t[r].openTime;s>0&&s<i&&(i=s)}return i===1/0?0:i}function pd(t){const e=new Date(t),i=e.getUTCDay()||7;e.setUTCDate(e.getUTCDate()+4-i);const r=new Date(Date.UTC(e.getUTCFullYear(),0,1)),s=Math.ceil(((e.getTime()-r.getTime())/864e5+1)/7);return`${e.getUTCFullYear()}-W${s}`}var fd=Object.defineProperty,dd=(t,e,i)=>e in t?fd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ei=(t,e,i)=>dd(t,typeof e!="symbol"?e+"":e,i);const ti={"1s":"1S","5s":"5S","10s":"10S","15s":"15S","30s":"30S","1m":"1","3m":"3","5m":"5","15m":"15","30m":"30","45m":"45","1h":"60","2h":"120","3h":"180","4h":"240","1d":"D","1w":"W","1D":"D","1W":"W","1M":"M","4H":"240",D:"D",W:"W",M:"M"};function md(t){if(ti[t]!==void 0)return ti[t];const e=t.toLowerCase();return ti[e]!==void 0?ti[e]:/^\d+$/.test(t)?t:/^\d+S$/i.test(t)?t.toUpperCase():t}class sr{constructor(e){ei(this,"_configured"),ei(this,"_requiresApiKey"),ei(this,"_providerName"),ei(this,"_aggregationSubTimeframe",null),this._requiresApiKey=e.requiresApiKey,this._providerName=e.providerName,this._configured=!e.requiresApiKey}ensureConfigured(){if(!this._configured)throw new Error(`${this._providerName} requires configuration before use. Call Provider.${this._providerName}.configure({ apiKey: '...' }) or instantiate directly: new ${this._providerName}Provider({ apiKey: '...' })`)}configure(e){this._configured=!0}get isConfigured(){return this._configured}normalizeCloseTime(e){sd(e)}setAggregationSubTimeframe(e){this._aggregationSubTimeframe=e}getSupportedTimeframes(){return new Set(["1S","5S","10S","15S","30S","1","3","5","15","30","45","60","120","180","240","D","W","M"])}async getMarketData(e,i,r,s,a){const n=md(i),o=this.getSupportedTimeframes();if(o.has(n))return this._getMarketDataNative(e,n,r,s,a);const l=this._aggregationSubTimeframe,c=l&&o.has(l)?l:ad(n,o);if(!c)return console.error(`${this._providerName}: Timeframe '${i}' is not supported and no valid sub-timeframe found for aggregation.`),[];const h=this._computeSubLimit(n,c,r),p=await this._getMarketDataNative(e,c,h,s,a);if(p.length===0)return[];const u=od(p,n,c);return r&&r>0&&u.length>r?u.slice(u.length-r):u}_computeSubLimit(e,i,r){if(!r)return;const s=cn(e,i);return s===1/0?e==="W"?r*7+14:e==="M"?r*31+31:r*30:Math.ceil(r*s)+Math.ceil(s)}}var gd=Object.defineProperty,yd=(t,e,i)=>e in t?gd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,pi=(t,e,i)=>yd(t,typeof e!="symbol"?e+"":e,i);const Ai="https://api.binance.com/api/v3",Wr="https://api.binance.us/api/v3",ii={1:"1m",3:"3m",5:"5m",15:"15m",30:"30m",45:null,60:"1h",120:"2h",180:null,240:"4h","4H":"4h","1D":"1d",D:"1d","1W":"1w",W:"1w","1M":"1M",M:"1M"};class xd{constructor(e=300*1e3){pi(this,"cache"),pi(this,"cacheDuration"),this.cache=new Map,this.cacheDuration=e}generateKey(e){return Object.entries(e).filter(([i,r])=>r!==void 0).map(([i,r])=>`${i}:${r}`).join("|")}get(e){const i=this.generateKey(e),r=this.cache.get(i);return r?Date.now()-r.timestamp>this.cacheDuration?(this.cache.delete(i),null):r.data:null}set(e,i){const r=this.generateKey(e);this.cache.set(r,{data:i,timestamp:Date.now()})}clear(){this.cache.clear()}cleanup(){const e=Date.now();for(const[i,r]of this.cache.entries())e-r.timestamp>this.cacheDuration&&this.cache.delete(i)}}class _d extends sr{constructor(){super({requiresApiKey:!1,providerName:"Binance"}),pi(this,"cacheManager"),pi(this,"activeApiUrl",null),this.cacheManager=new xd(300*1e3)}async getBaseUrl(){if(this.activeApiUrl)return this.activeApiUrl;try{const e=new AbortController,i=setTimeout(()=>e.abort(),5e3),r=await fetch(`${Ai}/ping`,{signal:e.signal});if(clearTimeout(i),r.ok)return this.activeApiUrl=Ai,this.activeApiUrl}catch{}try{const e=new AbortController,i=setTimeout(()=>e.abort(),5e3),r=await fetch(`${Wr}/ping`,{signal:e.signal});if(clearTimeout(i),r.ok)return this.activeApiUrl=Wr,this.activeApiUrl}catch{}return Ai}async _fetchRawChunk(e,i,r,s,a){const n=ii[i.toUpperCase()];if(!n)return console.error(`Unsupported timeframe: ${i}`),[];let o=`${await this.getBaseUrl()}/klines?symbol=${e}&interval=${n}`;r&&(o+=`&limit=${Math.min(r,1e3)}`),s&&(o+=`&startTime=${s}`),a&&(o+=`&endTime=${a}`);const l=await fetch(o);if(!l.ok)throw new Error(`HTTP error! status: ${l.status}`);return(await l.json()).map(c=>({openTime:parseInt(c[0]),open:parseFloat(c[1]),high:parseFloat(c[2]),low:parseFloat(c[3]),close:parseFloat(c[4]),volume:parseFloat(c[5]),closeTime:parseInt(c[6]),quoteAssetVolume:parseFloat(c[7]),numberOfTrades:parseInt(c[8]),takerBuyBaseAssetVolume:parseFloat(c[9]),takerBuyQuoteAssetVolume:parseFloat(c[10]),ignore:c[11]}))}async getMarketDataInterval(e,i,r,s){try{const a=ii[i.toUpperCase()];if(!a)return console.error(`Unsupported timeframe: ${i}`),[];let n=[],o=r;const l=s,c=$r[a];if(!c)return console.error(`Duration not defined for interval: ${a}`),[];for(;o<l;){const h=Math.min(o+1e3*c,l),p=await this._fetchRawChunk(e,i,1e3,o,h);if(p.length===0)break;n=n.concat(p),o=p[p.length-1].closeTime+1}return this.normalizeCloseTime(n),n}catch(a){return console.error("Error in getMarketDataInterval:",a),[]}}async getMarketDataBackwards(e,i,r,s){let a=r,n=[],o=s,l=0;const c=Math.ceil(r/1e3)+5;for(;a>0&&l<c;){l++;const h=Math.min(a,1e3),p=await this._fetchRawChunk(e,i,h,void 0,o);if(p.length===0||(n=p.concat(n),a-=p.length,o=p[0].openTime-1,p.length<h))break}return this.normalizeCloseTime(n),n}getSupportedTimeframes(){return new Set(["1","3","5","15","30","60","120","240","D","W","M"])}async _getMarketDataNative(e,i,r,s,a){try{const n=a!==void 0,o={tickerId:e,timeframe:i,limit:r,sDate:s,eDate:a};if(n){const c=this.cacheManager.get(o);if(c)return c}if(!ii[i.toUpperCase()])return console.error(`Unsupported timeframe: ${i}`),[];if(this.shouldPaginate(i,r,s,a)){if(s&&a){const c=await this.getMarketDataInterval(e,i,s,a),h=r?c.slice(0,r):c;return this.cacheManager.set(o,h),h}else if(r&&r>1e3){const c=await this.getMarketDataBackwards(e,i,r,a);return this.cacheManager.set(o,c),c}}const l=await this._fetchRawChunk(e,i,r,s,a);return this.normalizeCloseTime(l),n&&this.cacheManager.set(o,l),l}catch(n){return console.error("Error in binance.klines:",n),[]}}shouldPaginate(e,i,r,s){if(i&&i>1e3)return!0;if(r&&s){const a=ii[e.toUpperCase()],n=$r[a];if(n)return Math.ceil((s-r)/n)>1e3}return!1}async getSymbolInfo(e){try{let i="crypto",r=await this.getBaseUrl(),s=e,a="";e.endsWith(".P")?(i="futures",s=e.replace(".P",""),r="https://fapi.binance.com/fapi/v1",a="Perpetual"):e.includes("_")&&(i="futures",s=e,r="https://dapi.binance.com/dapi/v1",a="Delivery");const n=i==="crypto"?`${r}/exchangeInfo?symbol=${s}`:`${r}/exchangeInfo`,o=await fetch(n);if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);const l=(await o.json()).symbols;if(!l||l.length===0)return console.error(`Symbol ${e} not found`),null;const c=i==="futures"?l.find(v=>v.symbol===s):l[0];if(!c)return console.error(`Symbol ${s} not found in exchange info`),null;const h=c.filters?.find(v=>v.filterType==="PRICE_FILTER"),p=c.filters?.find(v=>v.filterType==="LOT_SIZE"),u=h?parseFloat(h.tickSize):.01,f=p?parseFloat(p.minQty):0,m=Math.round(1/u),x=c.baseAsset,_=c.quoteAsset,b=a?` ${a}`:"",S=`${x} / ${_}${b}`;return{ticker:e,tickerid:`BINANCE:${e}`,prefix:"BINANCE",root:x,description:S,type:i,main_tickerid:`BINANCE:${e}`,current_contract:a,isin:"",basecurrency:x,currency:_,timezone:"Etc/UTC",country:"",mintick:u,pricescale:m,minmove:1,pointvalue:c.contractSize||1,mincontract:f,session:"24x7",volumetype:"base",expiration_date:c.deliveryDate||0,employees:0,industry:"",sector:"",shareholders:0,shares_outstanding_float:0,shares_outstanding_total:0,recommendations_buy:0,recommendations_buy_strong:0,recommendations_date:0,recommendations_hold:0,recommendations_sell:0,recommendations_sell_strong:0,recommendations_total:0,target_price_average:0,target_price_date:0,target_price_estimates:0,target_price_high:0,target_price_low:0,target_price_median:0}}catch(i){return console.error("Error in binance.exchangeInfo:",i),null}}}var bd=Object.defineProperty,vd=(t,e,i)=>e in t?bd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ti=(t,e,i)=>vd(t,typeof e!="symbol"?e+"":e,i);const wd="https://financialmodelingprep.com",Ur={"1D":{endpoint:"/stable/historical-price-eod/full",type:"daily"},D:{endpoint:"/stable/historical-price-eod/full",type:"daily"},1:{endpoint:"/stable/historical-chart/1min",interval:"1min",type:"intraday"},5:{endpoint:"/stable/historical-chart/5min",interval:"5min",type:"intraday"},15:{endpoint:"/stable/historical-chart/15min",interval:"15min",type:"intraday"},30:{endpoint:"/stable/historical-chart/30min",interval:"30min",type:"intraday"},60:{endpoint:"/stable/historical-chart/1hour",interval:"1hour",type:"intraday"},240:{endpoint:"/stable/historical-chart/4hour",interval:"4hour",type:"intraday"},"4H":{endpoint:"/stable/historical-chart/4hour",interval:"4hour",type:"intraday"}},qr={NASDAQ:"America/New_York",NYSE:"America/New_York",AMEX:"America/New_York",NYSEArca:"America/New_York",BATS:"America/New_York",OTC:"America/New_York",PNK:"America/New_York",TSX:"America/Toronto",TSXV:"America/Toronto",LSE:"Europe/London",EURONEXT:"Europe/Paris",XETRA:"Europe/Berlin",JPX:"Asia/Tokyo",HKSE:"Asia/Hong_Kong",SSE:"Asia/Shanghai",SHZ:"Asia/Shanghai",ASX:"Australia/Sydney",NSE:"Asia/Kolkata",BSE:"Asia/Kolkata",KRX:"Asia/Seoul",CRYPTO:"Etc/UTC"},Kr={NASDAQ:"0930-1600",NYSE:"0930-1600",AMEX:"0930-1600",NYSEArca:"0930-1600",BATS:"0930-1600",OTC:"0930-1600",PNK:"0930-1600",TSX:"0930-1600",TSXV:"0930-1600",LSE:"0800-1630",EURONEXT:"0900-1730",XETRA:"0900-1730",JPX:"0900-1530",HKSE:"0930-1600",SSE:"0930-1500",SHZ:"0930-1500",ASX:"1000-1600",NSE:"0915-1530",BSE:"0915-1530",KRX:"0900-1530",CRYPTO:"24x7"},Sd={daily:{periodType:"day",multiplier:1},"1min":{periodType:"minute",multiplier:1},"5min":{periodType:"minute",multiplier:5},"15min":{periodType:"minute",multiplier:15},"30min":{periodType:"minute",multiplier:30},"1hour":{periodType:"hour",multiplier:1},"4hour":{periodType:"hour",multiplier:4}};class Ed extends sr{constructor(e){super({requiresApiKey:!0,providerName:"FMP"}),Ti(this,"_apiKey",null),Ti(this,"_baseUrl",wd),Ti(this,"_profileCache",new Map),e?.apiKey&&this.configure(e)}configure(e){super.configure(e),this._apiKey=e.apiKey,e.baseUrl&&(this._baseUrl=e.baseUrl)}getSupportedTimeframes(){return new Set(["1","5","15","30","60","240","D"])}async _getMarketDataNative(e,i,r,s,a){this.ensureConfigured();try{const n=i.toUpperCase(),o=Ur[n]||Ur[i];return o?o.type==="intraday"?this._fetchIntradayData(e,o.endpoint,o.interval,s,a,r):this._fetchDailyData(e,s,a,r):(console.error(`FMP: Unsupported timeframe: ${i}`),[])}catch(n){return console.error("Error in FMPProvider.getMarketData:",n),[]}}async _fetchDailyData(e,i,r,s){let a=`${this._baseUrl}/stable/historical-price-eod/full?symbol=${e}&apikey=${this._apiKey}`;i&&(a+=`&from=${this._msToDateStr(i)}`),r&&(a+=`&to=${this._msToDateStr(r)}`);const n=await fetch(a);if(!n.ok){const p=await n.text();throw new Error(`FMP HTTP ${n.status}: ${p}`)}const o=await n.json();if(!Array.isArray(o)||o.length===0)return[];o.reverse();const l=s&&s>0&&s<o.length?o.slice(o.length-s):o,{session:c,timezone:h}=await this._resolveSessionInfo(e);return l.map(p=>{const u=this._dateStrToMs(p.date),f=Br(u,c,h,"day");return{openTime:u,open:p.open,high:p.high,low:p.low,close:p.close,volume:p.volume,closeTime:f,quoteAssetVolume:0,numberOfTrades:0,takerBuyBaseAssetVolume:0,takerBuyQuoteAssetVolume:0,ignore:0}})}async _fetchIntradayData(e,i,r,s,a,n){let o=`${this._baseUrl}${i}?symbol=${e}&apikey=${this._apiKey}`;s&&(o+=`&from=${this._msToDateStr(s)}`),a&&(o+=`&to=${this._msToDateStr(a)}`);const l=await fetch(o);if(!l.ok){const x=await l.text();if(l.status===403||x.includes("Restricted Endpoint"))return console.error(`FMP: Intraday data (${r}) requires a paid plan. Use daily timeframe ('D') with a free API key, or upgrade at https://financialmodelingprep.com/`),[];throw new Error(`FMP HTTP ${l.status}: ${x}`)}const c=await l.json();if(!Array.isArray(c)||c.length===0)return[];c.reverse();const h=n&&n>0&&n<c.length?c.slice(c.length-n):c,{periodType:p,multiplier:u}=Sd[r]||{periodType:"minute",multiplier:1},{session:f,timezone:m}=await this._resolveSessionInfo(e);return h.map(x=>{const _=this._dateTimeStrToMs(x.date),b=Br(_,f,m,p,u);return{openTime:_,open:x.open,high:x.high,low:x.low,close:x.close,volume:x.volume,closeTime:b,quoteAssetVolume:0,numberOfTrades:0,takerBuyBaseAssetVolume:0,takerBuyQuoteAssetVolume:0,ignore:0}})}async getSymbolInfo(e){this.ensureConfigured();try{const i=await this._fetchProfile(e);if(!i)return console.error(`FMP: Symbol ${e} not found`),null;const r=i.exchange||"",s=qr[r]||"America/New_York",a=Kr[r]||"0930-1600";let n="stock";return i.isEtf?n="etf":i.isFund?n="fund":this._isCrypto(e)?n="crypto":this._isForex(e)&&(n="forex"),{ticker:i.symbol,tickerid:`${r}:${i.symbol}`,prefix:r,root:i.symbol,description:i.companyName||i.symbol,type:n,main_tickerid:`${r}:${i.symbol}`,current_contract:"",isin:i.isin||"",basecurrency:i.currency||"USD",currency:i.currency||"USD",timezone:n==="crypto"?"Etc/UTC":s,country:i.country||"",mintick:.01,pricescale:100,minmove:1,pointvalue:1,mincontract:0,session:n==="crypto"?"24x7":a,volumetype:"base",expiration_date:0,employees:parseInt(i.fullTimeEmployees)||0,industry:i.industry||"",sector:i.sector||"",shareholders:0,shares_outstanding_float:0,shares_outstanding_total:0,recommendations_buy:0,recommendations_buy_strong:0,recommendations_date:0,recommendations_hold:0,recommendations_sell:0,recommendations_sell_strong:0,recommendations_total:0,target_price_average:0,target_price_date:0,target_price_estimates:0,target_price_high:0,target_price_low:0,target_price_median:0}}catch(i){return console.error("Error in FMPProvider.getSymbolInfo:",i),null}}async _fetchProfile(e){if(this._profileCache.has(e))return this._profileCache.get(e);const i=`${this._baseUrl}/stable/profile?symbol=${e}&apikey=${this._apiKey}`,r=await fetch(i);if(!r.ok)return null;const s=await r.json();if(!Array.isArray(s)||s.length===0)return null;const a=s[0];return this._profileCache.set(e,a),a}async _resolveSessionInfo(e){try{const i=await this._fetchProfile(e);if(i){const r=i.exchange||"",s=this._isCrypto(e),a=s?"Etc/UTC":qr[r]||"America/New_York";return{session:s?"24x7":Kr[r]||"0930-1600",timezone:a}}}catch{}return{session:"0930-1600",timezone:"America/New_York"}}_msToDateStr(e){return new Date(e).toISOString().split("T")[0]}_dateStrToMs(e){return new Date(e+"T00:00:00Z").getTime()}_dateTimeStrToMs(e){return new Date(e.replace(" ","T")+"Z").getTime()}_isCrypto(e){return/^[A-Z]+(USD|USDT|BTC|ETH)$/.test(e)&&e.length<=10}_isForex(e){return/^[A-Z]{6}$/.test(e)&&!this._isCrypto(e)}}var Nd=Object.defineProperty,Cd=(t,e,i)=>e in t?Nd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ft=(t,e,i)=>Cd(t,typeof e!="symbol"?e+"":e,i);const Id="https://data.alpaca.markets",kd="https://paper-api.alpaca.markets/v2",Ad="https://api.alpaca.markets/v2",Pi=1e4,zr={1:"1Min",3:"3Min",5:"5Min",15:"15Min",30:"30Min",60:"1Hour",120:"2Hour",240:"4Hour","4H":"4Hour","1D":"1Day",D:"1Day","1W":"1Week",W:"1Week","1M":"1Month",M:"1Month"},Td={NASDAQ:"America/New_York",NYSE:"America/New_York",AMEX:"America/New_York",ARCA:"America/New_York",BATS:"America/New_York",OTC:"America/New_York",CRYPTO:"Etc/UTC"},Pd={NASDAQ:"0930-1600",NYSE:"0930-1600",AMEX:"0930-1600",ARCA:"0930-1600",BATS:"0930-1600",OTC:"0930-1600",CRYPTO:"24x7"},Dd={Min:"minute",Hour:"hour",Day:"day",Week:"week",Month:"month"};class Md extends sr{constructor(e){super({requiresApiKey:!0,providerName:"Alpaca"}),ft(this,"_apiKey",null),ft(this,"_apiSecret",null),ft(this,"_dataUrl",Id),ft(this,"_tradingUrl",kd),ft(this,"_feed",null),ft(this,"_assetCache",new Map),ft(this,"_calendarCache",new Map),e?.apiKey&&e?.apiSecret&&this.configure(e)}configure(e){super.configure(e),this._apiKey=e.apiKey,this._apiSecret=e.apiSecret,e.feed&&(this._feed=e.feed),e.dataUrl&&(this._dataUrl=e.dataUrl),e.tradingUrl?this._tradingUrl=e.tradingUrl:e.paper===!1&&(this._tradingUrl=Ad)}_headers(){return{"APCA-API-KEY-ID":this._apiKey,"APCA-API-SECRET-KEY":this._apiSecret}}getSupportedTimeframes(){return new Set(["1","3","5","15","30","45","60","120","180","240","D","W","M"])}async _getMarketDataNative(e,i,r,s,a){this.ensureConfigured();try{const n=this._resolveTimeframe(i);if(!n)return console.error(`Alpaca: Unsupported timeframe: ${i}`),[];const o=this._isCrypto(e),l=await this._fetchAllBars(e,n,o,s,a,r);if(l.length===0)return[];const{periodType:c,multiplier:h}=this._parseAlpacaTimeframe(n);if(o)return this._convertBarsCrypto(l,c,h);const p=l[0].t.slice(0,10),u=l[l.length-1].t.slice(0,10),f=this._addDaysToDate(u,40);return await this._ensureCalendar(p,f),this._convertBarsStock(l,c,h)}catch(n){return console.error("Error in AlpacaProvider.getMarketData:",n),[]}}async _fetchAllBars(e,i,r,s,a,n){const o=[];let l=null;const c=n||1/0,h=Math.min(n||Pi,Pi);do{const p=this._buildBarsUrl(e,i,r,s,a,h,l),u=await fetch(p,{headers:this._headers()});if(!u.ok){const x=await u.text();throw new Error(`Alpaca HTTP ${u.status}: ${x}`)}const f=await u.json(),m=Object.keys(f.bars||{})[0];if(!m||!f.bars[m]||(o.push(...f.bars[m]),l=f.next_page_token,o.length>=c))break}while(l);return n&&n>0&&o.length>n?o.slice(0,n):o}_buildBarsUrl(e,i,r,s,a,n,o){const l=r?`${this._dataUrl}/v1beta3/crypto/us/bars`:`${this._dataUrl}/v2/stocks/bars`,c=new URLSearchParams;return c.set("symbols",e),c.set("timeframe",i),c.set("sort","asc"),s&&c.set("start",new Date(s).toISOString()),a&&c.set("end",new Date(a).toISOString()),n&&c.set("limit",String(Math.min(n,Pi))),o&&c.set("page_token",o),!r&&this._feed&&c.set("feed",this._feed),`${l}?${c.toString()}`}async getSymbolInfo(e){this.ensureConfigured();try{const i=await this._fetchAsset(e);if(!i)return console.error(`Alpaca: Symbol ${e} not found`),null;const r=i.exchange||"",s=i.class==="crypto",a=s?"Etc/UTC":Td[r]||"America/New_York",n=s?"24x7":Pd[r]||"0930-1600";let o="stock";s&&(o="crypto");const l=s&&e.split("/")[1]||"USD",c=s?e.split("/")[0]||e:l,h=i.price_increment?parseFloat(i.price_increment):.01,p=Math.round(1/h);return{ticker:i.symbol,tickerid:`${r}:${i.symbol}`,prefix:r,root:s?e.split("/")[0]:i.symbol,description:i.name||i.symbol,type:o,main_tickerid:`${r}:${i.symbol}`,current_contract:"",isin:"",basecurrency:c,currency:l,timezone:a,country:s?"":"US",mintick:h,pricescale:p,minmove:1,pointvalue:1,mincontract:i.min_order_size?parseFloat(i.min_order_size):0,session:n,volumetype:"base",expiration_date:0,employees:0,industry:"",sector:"",shareholders:0,shares_outstanding_float:0,shares_outstanding_total:0,recommendations_buy:0,recommendations_buy_strong:0,recommendations_date:0,recommendations_hold:0,recommendations_sell:0,recommendations_sell_strong:0,recommendations_total:0,target_price_average:0,target_price_date:0,target_price_estimates:0,target_price_high:0,target_price_low:0,target_price_median:0}}catch(i){return console.error("Error in AlpacaProvider.getSymbolInfo:",i),null}}_convertBarsCrypto(e,i,r){return e.map((s,a,n)=>{const o=new Date(s.t).getTime(),l=a<n.length-1?new Date(n[a+1].t).getTime():Wt(o,i,r);return this._toKline(s,o,l)})}_convertBarsStock(e,i,r){const s="America/New_York";return e.map(a=>{const n=new Date(a.t).getTime(),o=a.t.slice(0,10);let l;if(i==="day"){const c=this._calendarCache.get(o),h=c?c.close:"16:00";l=qe(o,h,s)}else if(i==="minute"||i==="hour"){const c=n+r*{minute:6e4,hour:36e5}[i],h=this._calendarCache.get(o),p=h?h.close:"16:00",u=qe(o,p,s);l=Math.min(c,u)}else i==="week"?l=this._weeklyCloseFromCalendar(o,s):i==="month"?l=this._monthlyCloseFromCalendar(o,s):l=Wt(n,i,r);return this._toKline(a,n,l)})}_toKline(e,i,r){return{openTime:i,open:e.o,high:e.h,low:e.l,close:e.c,volume:e.v,closeTime:r,quoteAssetVolume:0,numberOfTrades:e.n,takerBuyBaseAssetVolume:0,takerBuyQuoteAssetVolume:0,ignore:0}}_weeklyCloseFromCalendar(e,i){const r=new Date(e+"T00:00:00Z"),s=r.getUTCDay(),a=s<=5?5-s:5-s+7;for(let l=a;l>=0;l--){const c=r.getTime()+l*864e5,h=new Date(c).toISOString().split("T")[0],p=this._calendarCache.get(h);if(p)return qe(h,p.close,i)}const n=r.getTime()+a*864e5,o=new Date(n).toISOString().split("T")[0];return qe(o,"16:00",i)}_monthlyCloseFromCalendar(e,i){const[r,s]=e.split("-").map(Number),a=new Date(Date.UTC(r,s,0)).getUTCDate();for(let o=a;o>=1;o--){const l=`${r}-${String(s).padStart(2,"0")}-${String(o).padStart(2,"0")}`,c=this._calendarCache.get(l);if(c)return qe(l,c.close,i)}const n=new Date(Date.UTC(r,s,0));for(;n.getUTCDay()===0||n.getUTCDay()===6;)n.setUTCDate(n.getUTCDate()-1);return qe(n.toISOString().split("T")[0],"16:00",i)}async _ensureCalendar(e,i){if(this._calendarCache.has(e)&&this._calendarCache.has(i))return;const r=`${this._tradingUrl}/calendar?start=${e}&end=${i}`,s=await fetch(r,{headers:this._headers()});if(!s.ok){console.warn(`Alpaca calendar API returned ${s.status}, falling back to defaults`);return}const a=await s.json();for(const n of a)this._calendarCache.set(n.date,n)}async _fetchAsset(e){if(this._assetCache.has(e))return this._assetCache.get(e);const i=encodeURIComponent(e),r=`${this._tradingUrl}/assets/${i}`,s=await fetch(r,{headers:this._headers()});if(!s.ok)return null;const a=await s.json();return this._assetCache.set(e,a),a}_parseAlpacaTimeframe(e){const i=e.match(/^(\d+)(Min|Hour|Day|Week|Month)$/);if(i){const r=parseInt(i[1],10),s=Dd[i[2]];if(s)return{periodType:s,multiplier:r}}return{periodType:"day",multiplier:1}}_resolveTimeframe(e){return zr[e.toUpperCase()]||zr[e]||null}_isCrypto(e){return e.includes("/")}_addDaysToDate(e,i){const r=new Date(e+"T00:00:00Z");return r.setUTCDate(r.getUTCDate()+i),r.toISOString().split("T")[0]}}class Rd{async getMarketData(){return[]}}const Od=typeof process<"u"&&process.versions&&process.versions.node;let fi=null;if(Od)try{fi=new Rd}catch{fi=null}const Bd={Binance:new _d,FMP:new Ed,Alpaca:new Md,...fi?{Mock:fi}:{}};var Vd=Object.defineProperty,Ld=(t,e,i)=>e in t?Vd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,jd=(t,e,i)=>Ld(t,typeof e!="symbol"?e+"":e,i);class Fd extends Error{constructor(e,i){super(e),jd(this,"method"),this.name="PineRuntimeError",this.method=i}}export{Md as AlpacaProvider,sr as BaseProvider,_d as BinanceProvider,Or as Context,Ed as FMPProvider,Lr as Indicator,Fd as PineRuntimeError,ln as PineTS,Bd as Provider,$d as TIMEFRAME_PERIOD_INFO,Ft as TIMEFRAME_SECONDS,od as aggregateCandles,Wt as computeNextPeriodStart,Br as computeSessionClose,cn as getAggregationRatio,qe as localTimeToUTC,ad as selectSubTimeframe};
|
|
122
122
|
//# sourceMappingURL=pinets.min.browser.es.js.map
|