3 lines
704 KiB
JavaScript
Executable File
3 lines
704 KiB
JavaScript
Executable File
/*! For license information please see main.js.LICENSE.txt */
|
||
(()=>{var e={1264(e){e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},955(e,t,r){var n;e.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,o=[],i=[],a=[],s=[],l=[],c=[],d=[],u=[],p=[],h=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var f=n^n<<1^n<<2^n<<3^n<<4;f=f>>>8^255&f^99,o[r]=f,i[f]=r;var g=e[r],m=e[g],v=e[m],b=257*e[f]^16843008*f;a[r]=b<<24|b>>>8,s[r]=b<<16|b>>>16,l[r]=b<<8|b>>>24,c[r]=b,b=16843009*v^65537*m^257*g^16843008*r,d[f]=b<<24|b>>>8,u[f]=b<<16|b>>>16,p[f]=b<<8|b>>>24,h[f]=b,r?(r=g^e[e[e[v^g]]],n^=e[e[n]]):r=n=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],g=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),i=this._keySchedule=[],a=0;a<n;a++)a<r?i[a]=t[a]:(c=i[a-1],a%r?r>6&&a%r==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=o[(c=c<<8|c>>>24)>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=f[a/r|0]<<24),i[a]=i[a-r]^c);for(var s=this._invKeySchedule=[],l=0;l<n;l++){if(a=n-l,l%4)var c=i[a];else c=i[a-4];s[l]=l<4||a<=4?c:d[o[c>>>24]]^u[o[c>>>16&255]]^p[o[c>>>8&255]]^h[o[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,s,l,c,o)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,d,u,p,h,i),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,o,i,a,s){for(var l=this._nRounds,c=e[t]^r[0],d=e[t+1]^r[1],u=e[t+2]^r[2],p=e[t+3]^r[3],h=4,f=1;f<l;f++){var g=n[c>>>24]^o[d>>>16&255]^i[u>>>8&255]^a[255&p]^r[h++],m=n[d>>>24]^o[u>>>16&255]^i[p>>>8&255]^a[255&c]^r[h++],v=n[u>>>24]^o[p>>>16&255]^i[c>>>8&255]^a[255&d]^r[h++],b=n[p>>>24]^o[c>>>16&255]^i[d>>>8&255]^a[255&u]^r[h++];c=g,d=m,u=v,p=b}g=(s[c>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&p])^r[h++],m=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[p>>>8&255]<<8|s[255&c])^r[h++],v=(s[u>>>24]<<24|s[p>>>16&255]<<16|s[c>>>8&255]<<8|s[255&d])^r[h++],b=(s[p>>>24]<<24|s[c>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^r[h++],e[t]=g,e[t+1]=m,e[t+2]=v,e[t+3]=b},keySize:8});e.AES=t._createHelper(g)}(),n.AES)},3128(e,t,r){var n;e.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var e=n,t=e.lib.BlockCipher,r=e.algo;const o=16,i=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],a=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var s={pbox:[],sbox:[]};function l(e,t){let r=t>>24&255,n=t>>16&255,o=t>>8&255,i=255&t,a=e.sbox[0][r]+e.sbox[1][n];return a^=e.sbox[2][o],a+=e.sbox[3][i],a}function c(e,t,r){let n,i=t,a=r;for(let t=0;t<o;++t)i^=e.pbox[t],a=l(e,i)^a,n=i,i=a,a=n;return n=i,i=a,a=n,a^=e.pbox[o],i^=e.pbox[17],{left:i,right:a}}var d=r.Blowfish=t.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4;!function(e,t,r){for(let t=0;t<4;t++){e.sbox[t]=[];for(let r=0;r<256;r++)e.sbox[t][r]=a[t][r]}let n=0;for(let o=0;o<18;o++)e.pbox[o]=i[o]^t[n],n++,n>=r&&(n=0);let o=0,s=0,l=0;for(let t=0;t<18;t+=2)l=c(e,o,s),o=l.left,s=l.right,e.pbox[t]=o,e.pbox[t+1]=s;for(let t=0;t<4;t++)for(let r=0;r<256;r+=2)l=c(e,o,s),o=l.left,s=l.right,e.sbox[t][r]=o,e.sbox[t][r+1]=s}(s,t,r)}},encryptBlock:function(e,t){var r=c(s,e[t],e[t+1]);e[t]=r.left,e[t+1]=r.right},decryptBlock:function(e,t){var r=function(e,t,r){let n,o=t,i=r;for(let t=17;t>1;--t)o^=e.pbox[t],i=l(e,o)^i,n=o,o=i,i=n;return n=o,o=i,i=n,i^=e.pbox[1],o^=e.pbox[0],{left:o,right:i}}(s,e[t],e[t+1]);e[t]=r.left,e[t+1]=r.right},blockSize:2,keySize:4,ivSize:2});e.Blowfish=t._createHelper(d)}(),n.Blowfish)},7165(e,t,r){var n,o,i,a,s,l,c,d,u,p,h,f,g,m,v,b,w,y,x;e.exports=(n=r(9021),r(9506),void(n.lib.Cipher||(o=n,i=o.lib,a=i.Base,s=i.WordArray,l=i.BufferedBlockAlgorithm,c=o.enc,c.Utf8,d=c.Base64,u=o.algo.EvpKDF,p=i.Cipher=l.extend({cfg:a.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){l.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?x:w}return function(t){return{encrypt:function(r,n,o){return e(n).encrypt(t,r,n,o)},decrypt:function(r,n,o){return e(n).decrypt(t,r,n,o)}}}}()}),i.StreamCipher=p.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),h=o.mode={},f=i.BlockCipherMode=a.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),g=h.CBC=function(){var e=f.extend();function t(e,t,r){var n,o=this._iv;o?(n=o,this._iv=void 0):n=this._prevBlock;for(var i=0;i<r;i++)e[t+i]^=n[i]}return e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,o=n.blockSize;t.call(this,e,r,o),n.encryptBlock(e,r),this._prevBlock=e.slice(r,r+o)}}),e.Decryptor=e.extend({processBlock:function(e,r){var n=this._cipher,o=n.blockSize,i=e.slice(r,r+o);n.decryptBlock(e,r),t.call(this,e,r,o),this._prevBlock=i}}),e}(),m=(o.pad={}).Pkcs7={pad:function(e,t){for(var r=4*t,n=r-e.sigBytes%r,o=n<<24|n<<16|n<<8|n,i=[],a=0;a<n;a+=4)i.push(o);var l=s.create(i,n);e.concat(l)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},i.BlockCipher=p.extend({cfg:p.cfg.extend({mode:g,padding:m}),reset:function(){var e;p.reset.call(this);var t=this.cfg,r=t.iv,n=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=n.createEncryptor:(e=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,r&&r.words):(this._mode=e.call(n,this,r&&r.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),v=i.CipherParams=a.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),b=(o.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;return(r?s.create([1398893684,1701076831]).concat(r).concat(t):t).toString(d)},parse:function(e){var t,r=d.parse(e),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(t=s.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:t})}},w=i.SerializableCipher=a.extend({cfg:a.extend({format:b}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var o=e.createEncryptor(r,n),i=o.finalize(t),a=o.cfg;return v.create({ciphertext:i,key:r,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(r,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(o.kdf={}).OpenSSL={execute:function(e,t,r,n,o){if(n||(n=s.random(8)),o)i=u.create({keySize:t+r,hasher:o}).compute(e,n);else var i=u.create({keySize:t+r}).compute(e,n);var a=s.create(i.words.slice(t),4*r);return i.sigBytes=4*t,v.create({key:i,iv:a,salt:n})}},x=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:y}),encrypt:function(e,t,r,n){var o=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize,n.salt,n.hasher);n.iv=o.iv;var i=w.encrypt.call(this,e,t,o.key,n);return i.mixIn(o),i},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var o=n.kdf.execute(r,e.keySize,e.ivSize,t.salt,n.hasher);return n.iv=o.iv,w.decrypt.call(this,e,t,o.key,n)}}))))},9021(e,t,r){var n;e.exports=(n=n||function(e){var t;if("undefined"!=typeof window&&window.crypto&&(t=window.crypto),"undefined"!=typeof self&&self.crypto&&(t=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(t=globalThis.crypto),!t&&"undefined"!=typeof window&&window.msCrypto&&(t=window.msCrypto),!t&&"undefined"!=typeof global&&global.crypto&&(t=global.crypto),!t)try{t=r(6982)}catch(e){}var n=function(){if(t){if("function"==typeof t.getRandomValues)try{return t.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof t.randomBytes)try{return t.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),i={},a=i.lib={},s=a.Base={extend:function(e){var t=o(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},l=a.WordArray=s.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||d).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,o=e.sigBytes;if(this.clamp(),n%4)for(var i=0;i<o;i++){var a=r[i>>>2]>>>24-i%4*8&255;t[n+i>>>2]|=a<<24-(n+i)%4*8}else for(var s=0;s<o;s+=4)t[n+s>>>2]=r[s>>>2];return this.sigBytes+=o,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r<e;r+=4)t.push(n());return new l.init(t,e)}}),c=i.enc={},d=c.Hex={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o<r;o++){var i=t[o>>>2]>>>24-o%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n<t;n+=2)r[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new l.init(r,t/2)}},u=c.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o<r;o++){var i=t[o>>>2]>>>24-o%4*8&255;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n<t;n++)r[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new l.init(r,t)}},p=c.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},h=a.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r,n=this._data,o=n.words,i=n.sigBytes,a=this.blockSize,s=i/(4*a),c=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*a,d=e.min(4*c,i);if(c){for(var u=0;u<c;u+=a)this._doProcessBlock(o,u);r=o.splice(0,c),n.sigBytes-=d}return new l.init(r,d)},clone:function(){var e=s.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),f=(a.Hasher=h.extend({cfg:s.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function(e){return function(t,r){return new f.HMAC.init(e,r).finalize(t)}}}),i.algo={});return i}(Math),n)},754(e,t,r){var n,o,i;e.exports=(n=r(9021),i=(o=n).lib.WordArray,o.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var o=[],i=0;i<r;i+=3)for(var a=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;s<4&&i+.75*s<r;s++)o.push(n.charAt(a>>>6*(3-s)&63));var l=n.charAt(64);if(l)for(;o.length%4;)o.push(l);return o.join("")},parse:function(e){var t=e.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o<r.length;o++)n[r.charCodeAt(o)]=o}var a=r.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(t=s)}return function(e,t,r){for(var n=[],o=0,a=0;a<t;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2|r[e.charCodeAt(a)]>>>6-a%4*2;n[o>>>2]|=s<<24-o%4*8,o++}return i.create(n,o)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},n.enc.Base64)},4725(e,t,r){var n,o,i;e.exports=(n=r(9021),i=(o=n).lib.WordArray,o.enc.Base64url={stringify:function(e,t){void 0===t&&(t=!0);var r=e.words,n=e.sigBytes,o=t?this._safe_map:this._map;e.clamp();for(var i=[],a=0;a<n;a+=3)for(var s=(r[a>>>2]>>>24-a%4*8&255)<<16|(r[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|r[a+2>>>2]>>>24-(a+2)%4*8&255,l=0;l<4&&a+.75*l<n;l++)i.push(o.charAt(s>>>6*(3-l)&63));var c=o.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e,t){void 0===t&&(t=!0);var r=e.length,n=t?this._safe_map:this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var a=0;a<n.length;a++)o[n.charCodeAt(a)]=a}var s=n.charAt(64);if(s){var l=e.indexOf(s);-1!==l&&(r=l)}return function(e,t,r){for(var n=[],o=0,a=0;a<t;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2|r[e.charCodeAt(a)]>>>6-a%4*2;n[o>>>2]|=s<<24-o%4*8,o++}return i.create(n,o)}(e,r,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},n.enc.Base64url)},5503(e,t,r){var n;e.exports=(n=r(9021),function(){var e=n,t=e.lib.WordArray,r=e.enc;function o(e){return e<<8&4278255360|e>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o<r;o+=2){var i=t[o>>>2]>>>16-o%4*8&65535;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var r=e.length,n=[],o=0;o<r;o++)n[o>>>1]|=e.charCodeAt(o)<<16-o%2*16;return t.create(n,2*r)}},r.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i<r;i+=2){var a=o(t[i>>>2]>>>16-i%4*8&65535);n.push(String.fromCharCode(a))}return n.join("")},parse:function(e){for(var r=e.length,n=[],i=0;i<r;i++)n[i>>>1]|=o(e.charCodeAt(i)<<16-i%2*16);return t.create(n,2*r)}}}(),n.enc.Utf16)},9506(e,t,r){var n,o,i,a,s,l,c,d;e.exports=(d=r(9021),r(5471),r(1025),i=(o=(n=d).lib).Base,a=o.WordArray,l=(s=n.algo).MD5,c=s.EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:l,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r,n=this.cfg,o=n.hasher.create(),i=a.create(),s=i.words,l=n.keySize,c=n.iterations;s.length<l;){r&&o.update(r),r=o.update(e).finalize(t),o.reset();for(var d=1;d<c;d++)r=o.finalize(r),o.reset();i.concat(r)}return i.sigBytes=4*l,i}}),n.EvpKDF=function(e,t,r){return c.create(r).compute(e,t)},d.EvpKDF)},25(e,t,r){var n,o,i,a;e.exports=(a=r(9021),r(7165),o=(n=a).lib.CipherParams,i=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(i)},parse:function(e){var t=i.parse(e);return o.create({ciphertext:t})}},a.format.Hex)},1025(e,t,r){var n,o,i;e.exports=(o=(n=r(9021)).lib.Base,i=n.enc.Utf8,void(n.algo.HMAC=o.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=i.parse(t));var r=e.blockSize,n=4*r;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),a=this._iKey=t.clone(),s=o.words,l=a.words,c=0;c<r;c++)s[c]^=1549556828,l[c]^=909522486;o.sigBytes=a.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,r=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(r))}})))},1396(e,t,r){var n;e.exports=(n=r(9021),r(3240),r(6440),r(5503),r(754),r(4725),r(4636),r(5471),r(3009),r(6308),r(1380),r(9557),r(5953),r(8056),r(1025),r(19),r(9506),r(7165),r(2169),r(6939),r(6372),r(3797),r(8454),r(2073),r(4905),r(482),r(2155),r(8124),r(25),r(955),r(7628),r(7193),r(6298),r(2696),r(3128),n)},6440(e,t,r){var n;e.exports=(n=r(9021),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var r=e.byteLength,n=[],o=0;o<r;o++)n[o>>>2]|=e[o]<<24-o%4*8;t.call(this,n,r)}else t.apply(this,arguments)};r.prototype=e}}(),n.lib.WordArray)},4636(e,t,r){var n;e.exports=(n=r(9021),function(e){var t=n,r=t.lib,o=r.WordArray,i=r.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var l=a.MD5=i.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,o=e[n];e[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}var i=this._hash.words,a=e[t+0],l=e[t+1],h=e[t+2],f=e[t+3],g=e[t+4],m=e[t+5],v=e[t+6],b=e[t+7],w=e[t+8],y=e[t+9],x=e[t+10],k=e[t+11],E=e[t+12],T=e[t+13],S=e[t+14],D=e[t+15],A=i[0],C=i[1],_=i[2],N=i[3];A=c(A,C,_,N,a,7,s[0]),N=c(N,A,C,_,l,12,s[1]),_=c(_,N,A,C,h,17,s[2]),C=c(C,_,N,A,f,22,s[3]),A=c(A,C,_,N,g,7,s[4]),N=c(N,A,C,_,m,12,s[5]),_=c(_,N,A,C,v,17,s[6]),C=c(C,_,N,A,b,22,s[7]),A=c(A,C,_,N,w,7,s[8]),N=c(N,A,C,_,y,12,s[9]),_=c(_,N,A,C,x,17,s[10]),C=c(C,_,N,A,k,22,s[11]),A=c(A,C,_,N,E,7,s[12]),N=c(N,A,C,_,T,12,s[13]),_=c(_,N,A,C,S,17,s[14]),A=d(A,C=c(C,_,N,A,D,22,s[15]),_,N,l,5,s[16]),N=d(N,A,C,_,v,9,s[17]),_=d(_,N,A,C,k,14,s[18]),C=d(C,_,N,A,a,20,s[19]),A=d(A,C,_,N,m,5,s[20]),N=d(N,A,C,_,x,9,s[21]),_=d(_,N,A,C,D,14,s[22]),C=d(C,_,N,A,g,20,s[23]),A=d(A,C,_,N,y,5,s[24]),N=d(N,A,C,_,S,9,s[25]),_=d(_,N,A,C,f,14,s[26]),C=d(C,_,N,A,w,20,s[27]),A=d(A,C,_,N,T,5,s[28]),N=d(N,A,C,_,h,9,s[29]),_=d(_,N,A,C,b,14,s[30]),A=u(A,C=d(C,_,N,A,E,20,s[31]),_,N,m,4,s[32]),N=u(N,A,C,_,w,11,s[33]),_=u(_,N,A,C,k,16,s[34]),C=u(C,_,N,A,S,23,s[35]),A=u(A,C,_,N,l,4,s[36]),N=u(N,A,C,_,g,11,s[37]),_=u(_,N,A,C,b,16,s[38]),C=u(C,_,N,A,x,23,s[39]),A=u(A,C,_,N,T,4,s[40]),N=u(N,A,C,_,a,11,s[41]),_=u(_,N,A,C,f,16,s[42]),C=u(C,_,N,A,v,23,s[43]),A=u(A,C,_,N,y,4,s[44]),N=u(N,A,C,_,E,11,s[45]),_=u(_,N,A,C,D,16,s[46]),A=p(A,C=u(C,_,N,A,h,23,s[47]),_,N,a,6,s[48]),N=p(N,A,C,_,b,10,s[49]),_=p(_,N,A,C,S,15,s[50]),C=p(C,_,N,A,m,21,s[51]),A=p(A,C,_,N,E,6,s[52]),N=p(N,A,C,_,f,10,s[53]),_=p(_,N,A,C,x,15,s[54]),C=p(C,_,N,A,l,21,s[55]),A=p(A,C,_,N,w,6,s[56]),N=p(N,A,C,_,D,10,s[57]),_=p(_,N,A,C,v,15,s[58]),C=p(C,_,N,A,T,21,s[59]),A=p(A,C,_,N,g,6,s[60]),N=p(N,A,C,_,k,10,s[61]),_=p(_,N,A,C,h,15,s[62]),C=p(C,_,N,A,y,21,s[63]),i[0]=i[0]+A|0,i[1]=i[1]+C|0,i[2]=i[2]+_|0,i[3]=i[3]+N|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,o=8*t.sigBytes;r[o>>>5]|=128<<24-o%32;var i=e.floor(n/4294967296),a=n;r[15+(o+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),r[14+(o+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(r.length+1),this._process();for(var s=this._hash,l=s.words,c=0;c<4;c++){var d=l[c];l[c]=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8)}return s},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,t,r,n,o,i,a){var s=e+(t&r|~t&n)+o+a;return(s<<i|s>>>32-i)+t}function d(e,t,r,n,o,i,a){var s=e+(t&n|r&~n)+o+a;return(s<<i|s>>>32-i)+t}function u(e,t,r,n,o,i,a){var s=e+(t^r^n)+o+a;return(s<<i|s>>>32-i)+t}function p(e,t,r,n,o,i,a){var s=e+(r^(t|~n))+o+a;return(s<<i|s>>>32-i)+t}t.MD5=i._createHelper(l),t.HmacMD5=i._createHmacHelper(l)}(Math),n.MD5)},2169(e,t,r){var n;e.exports=(n=r(9021),r(7165),n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();function t(e,t,r,n){var o,i=this._iv;i?(o=i.slice(0),this._iv=void 0):o=this._prevBlock,n.encryptBlock(o,0);for(var a=0;a<r;a++)e[t+a]^=o[a]}return e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,o=n.blockSize;t.call(this,e,r,o,n),this._prevBlock=e.slice(r,r+o)}}),e.Decryptor=e.extend({processBlock:function(e,r){var n=this._cipher,o=n.blockSize,i=e.slice(r,r+o);t.call(this,e,r,o,n),this._prevBlock=i}}),e}(),n.mode.CFB)},6372(e,t,r){var n;e.exports=(n=r(9021),r(7165),n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(e){if(255&~(e>>24))e+=1<<24;else{var t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}var r=e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,o=n.blockSize,i=this._iv,a=this._counter;i&&(a=this._counter=i.slice(0),this._iv=void 0),function(e){0===(e[0]=t(e[0]))&&(e[1]=t(e[1]))}(a);var s=a.slice(0);n.encryptBlock(s,0);for(var l=0;l<o;l++)e[r+l]^=s[l]}});return e.Decryptor=r,e}(),n.mode.CTRGladman)},6939(e,t,r){var n,o,i;e.exports=(i=r(9021),r(7165),i.mode.CTR=(o=(n=i.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){var r=this._cipher,n=r.blockSize,o=this._iv,i=this._counter;o&&(i=this._counter=o.slice(0),this._iv=void 0);var a=i.slice(0);r.encryptBlock(a,0),i[n-1]=i[n-1]+1|0;for(var s=0;s<n;s++)e[t+s]^=a[s]}}),n.Decryptor=o,n),i.mode.CTR)},8454(e,t,r){var n,o;e.exports=(o=r(9021),r(7165),o.mode.ECB=((n=o.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),o.mode.ECB)},3797(e,t,r){var n,o,i;e.exports=(i=r(9021),r(7165),i.mode.OFB=(o=(n=i.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){var r=this._cipher,n=r.blockSize,o=this._iv,i=this._keystream;o&&(i=this._keystream=o.slice(0),this._iv=void 0),r.encryptBlock(i,0);for(var a=0;a<n;a++)e[t+a]^=i[a]}}),n.Decryptor=o,n),i.mode.OFB)},2073(e,t,r){var n;e.exports=(n=r(9021),r(7165),n.pad.AnsiX923={pad:function(e,t){var r=e.sigBytes,n=4*t,o=n-r%n,i=r+o-1;e.clamp(),e.words[i>>>2]|=o<<24-i%4*8,e.sigBytes+=o},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)},4905(e,t,r){var n;e.exports=(n=r(9021),r(7165),n.pad.Iso10126={pad:function(e,t){var r=4*t,o=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(o-1)).concat(n.lib.WordArray.create([o<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)},482(e,t,r){var n;e.exports=(n=r(9021),r(7165),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)},8124(e,t,r){var n;e.exports=(n=r(9021),r(7165),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)},2155(e,t,r){var n;e.exports=(n=r(9021),r(7165),n.pad.ZeroPadding={pad:function(e,t){var r=4*t;e.clamp(),e.sigBytes+=r-(e.sigBytes%r||r)},unpad:function(e){var t=e.words,r=e.sigBytes-1;for(r=e.sigBytes-1;r>=0;r--)if(t[r>>>2]>>>24-r%4*8&255){e.sigBytes=r+1;break}}},n.pad.ZeroPadding)},19(e,t,r){var n,o,i,a,s,l,c,d,u;e.exports=(u=r(9021),r(3009),r(1025),i=(o=(n=u).lib).Base,a=o.WordArray,l=(s=n.algo).SHA256,c=s.HMAC,d=s.PBKDF2=i.extend({cfg:i.extend({keySize:4,hasher:l,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r=this.cfg,n=c.create(r.hasher,e),o=a.create(),i=a.create([1]),s=o.words,l=i.words,d=r.keySize,u=r.iterations;s.length<d;){var p=n.update(t).finalize(i);n.reset();for(var h=p.words,f=h.length,g=p,m=1;m<u;m++){g=n.finalize(g),n.reset();for(var v=g.words,b=0;b<f;b++)h[b]^=v[b]}o.concat(p),l[0]++}return o.sigBytes=4*d,o}}),n.PBKDF2=function(e,t,r){return d.create(r).compute(e,t)},u.PBKDF2)},2696(e,t,r){var n;e.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,o=[],i=[],a=[],s=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var o=0;o<4;o++)l.call(this);for(o=0;o<8;o++)n[o]^=r[o+4&7];if(t){var i=t.words,a=i[0],s=i[1],c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),d=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=c>>>16|4294901760&d,p=d<<16|65535&c;for(n[0]^=c,n[1]^=u,n[2]^=d,n[3]^=p,n[4]^=c,n[5]^=u,n[6]^=d,n[7]^=p,o=0;o<4;o++)l.call(this)}},_doProcessBlock:function(e,t){var r=this._X;l.call(this),o[0]=r[0]^r[5]>>>16^r[3]<<16,o[1]=r[2]^r[7]>>>16^r[5]<<16,o[2]=r[4]^r[1]>>>16^r[7]<<16,o[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)o[n]=16711935&(o[n]<<8|o[n]>>>24)|4278255360&(o[n]<<24|o[n]>>>8),e[t+n]^=o[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,r=0;r<8;r++)i[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<i[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<i[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<i[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<i[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<i[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<i[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<i[6]>>>0?1:0)|0,this._b=t[7]>>>0<i[7]>>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],o=65535&n,s=n>>>16,l=((o*o>>>17)+o*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=l^c}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=t._createHelper(s)}(),n.RabbitLegacy)},6298(e,t,r){var n;e.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,o=[],i=[],a=[],s=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],o=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,r=0;r<4;r++)l.call(this);for(r=0;r<8;r++)o[r]^=n[r+4&7];if(t){var i=t.words,a=i[0],s=i[1],c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),d=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=c>>>16|4294901760&d,p=d<<16|65535&c;for(o[0]^=c,o[1]^=u,o[2]^=d,o[3]^=p,o[4]^=c,o[5]^=u,o[6]^=d,o[7]^=p,r=0;r<4;r++)l.call(this)}},_doProcessBlock:function(e,t){var r=this._X;l.call(this),o[0]=r[0]^r[5]>>>16^r[3]<<16,o[1]=r[2]^r[7]>>>16^r[5]<<16,o[2]=r[4]^r[1]>>>16^r[7]<<16,o[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)o[n]=16711935&(o[n]<<8|o[n]>>>24)|4278255360&(o[n]<<24|o[n]>>>8),e[t+n]^=o[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,r=0;r<8;r++)i[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<i[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<i[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<i[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<i[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<i[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<i[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<i[6]>>>0?1:0)|0,this._b=t[7]>>>0<i[7]>>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],o=65535&n,s=n>>>16,l=((o*o>>>17)+o*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=l^c}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=t._createHelper(s)}(),n.Rabbit)},7193(e,t,r){var n;e.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,o=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,r=e.sigBytes,n=this._S=[],o=0;o<256;o++)n[o]=o;o=0;for(var i=0;o<256;o++){var a=o%r,s=t[a>>>2]>>>24-a%4*8&255;i=(i+n[o]+s)%256;var l=n[o];n[o]=n[i],n[i]=l}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=i.call(this)},keySize:8,ivSize:0});function i(){for(var e=this._S,t=this._i,r=this._j,n=0,o=0;o<4;o++){r=(r+e[t=(t+1)%256])%256;var i=e[t];e[t]=e[r],e[r]=i,n|=e[(e[t]+e[r])%256]<<24-8*o}return this._i=t,this._j=r,n}e.RC4=t._createHelper(o);var a=r.RC4Drop=o.extend({cfg:o.cfg.extend({drop:192}),_doReset:function(){o._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)i.call(this)}});e.RC4Drop=t._createHelper(a)}(),n.RC4)},8056(e,t,r){var n;e.exports=(n=r(9021),function(){var e=n,t=e.lib,r=t.WordArray,o=t.Hasher,i=e.algo,a=r.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),s=r.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=r.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),c=r.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=r.create([0,1518500249,1859775393,2400959708,2840853838]),u=r.create([1352829926,1548603684,1836072691,2053994217,0]),p=i.RIPEMD160=o.extend({_doReset:function(){this._hash=r.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,o=e[n];e[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}var i,p,w,y,x,k,E,T,S,D,A,C=this._hash.words,_=d.words,N=u.words,L=a.words,O=s.words,B=l.words,I=c.words;for(k=i=C[0],E=p=C[1],T=w=C[2],S=y=C[3],D=x=C[4],r=0;r<80;r+=1)A=i+e[t+L[r]]|0,A+=r<16?h(p,w,y)+_[0]:r<32?f(p,w,y)+_[1]:r<48?g(p,w,y)+_[2]:r<64?m(p,w,y)+_[3]:v(p,w,y)+_[4],A=(A=b(A|=0,B[r]))+x|0,i=x,x=y,y=b(w,10),w=p,p=A,A=k+e[t+O[r]]|0,A+=r<16?v(E,T,S)+N[0]:r<32?m(E,T,S)+N[1]:r<48?g(E,T,S)+N[2]:r<64?f(E,T,S)+N[3]:h(E,T,S)+N[4],A=(A=b(A|=0,I[r]))+D|0,k=D,D=S,S=b(T,10),T=E,E=A;A=C[1]+w+S|0,C[1]=C[2]+y+D|0,C[2]=C[3]+x+k|0,C[3]=C[4]+i+E|0,C[4]=C[0]+p+T|0,C[0]=A},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var o=this._hash,i=o.words,a=0;a<5;a++){var s=i[a];i[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return o},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function h(e,t,r){return e^t^r}function f(e,t,r){return e&t|~e&r}function g(e,t,r){return(e|~t)^r}function m(e,t,r){return e&r|t&~r}function v(e,t,r){return e^(t|~r)}function b(e,t){return e<<t|e>>>32-t}e.RIPEMD160=o._createHelper(p),e.HmacRIPEMD160=o._createHmacHelper(p)}(Math),n.RIPEMD160)},5471(e,t,r){var n,o,i,a,s,l,c,d;e.exports=(o=(n=d=r(9021)).lib,i=o.WordArray,a=o.Hasher,s=n.algo,l=[],c=s.SHA1=a.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],c=0;c<80;c++){if(c<16)l[c]=0|e[t+c];else{var d=l[c-3]^l[c-8]^l[c-14]^l[c-16];l[c]=d<<1|d>>>31}var u=(n<<5|n>>>27)+s+l[c];u+=c<20?1518500249+(o&i|~o&a):c<40?1859775393+(o^i^a):c<60?(o&i|o&a|i&a)-1894007588:(o^i^a)-899497514,s=a,a=i,i=o<<30|o>>>2,o=n,n=u}r[0]=r[0]+n|0,r[1]=r[1]+o|0,r[2]=r[2]+i|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=a._createHelper(c),n.HmacSHA1=a._createHmacHelper(c),d.SHA1)},6308(e,t,r){var n,o,i,a,s,l;e.exports=(l=r(9021),r(3009),o=(n=l).lib.WordArray,i=n.algo,a=i.SHA256,s=i.SHA224=a.extend({_doReset:function(){this._hash=new o.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=a._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=a._createHelper(s),n.HmacSHA224=a._createHmacHelper(s),l.SHA224)},3009(e,t,r){var n;e.exports=(n=r(9021),function(e){var t=n,r=t.lib,o=r.WordArray,i=r.Hasher,a=t.algo,s=[],l=[];!function(){function t(t){for(var r=e.sqrt(t),n=2;n<=r;n++)if(!(t%n))return!1;return!0}function r(e){return 4294967296*(e-(0|e))|0}for(var n=2,o=0;o<64;)t(n)&&(o<8&&(s[o]=r(e.pow(n,.5))),l[o]=r(e.pow(n,1/3)),o++),n++}();var c=[],d=a.SHA256=i.extend({_doReset:function(){this._hash=new o.init(s.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],d=r[5],u=r[6],p=r[7],h=0;h<64;h++){if(h<16)c[h]=0|e[t+h];else{var f=c[h-15],g=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,m=c[h-2],v=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;c[h]=g+c[h-7]+v+c[h-16]}var b=n&o^n&i^o&i,w=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),y=p+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&d^~s&u)+l[h]+c[h];p=u,u=d,d=s,s=a+y|0,a=i,i=o,o=n,n=y+(w+b)|0}r[0]=r[0]+n|0,r[1]=r[1]+o|0,r[2]=r[2]+i|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0,r[5]=r[5]+d|0,r[6]=r[6]+u|0,r[7]=r[7]+p|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,o=8*t.sigBytes;return r[o>>>5]|=128<<24-o%32,r[14+(o+64>>>9<<4)]=e.floor(n/4294967296),r[15+(o+64>>>9<<4)]=n,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=i._createHelper(d),t.HmacSHA256=i._createHmacHelper(d)}(Math),n.SHA256)},5953(e,t,r){var n;e.exports=(n=r(9021),r(3240),function(e){var t=n,r=t.lib,o=r.WordArray,i=r.Hasher,a=t.x64.Word,s=t.algo,l=[],c=[],d=[];!function(){for(var e=1,t=0,r=0;r<24;r++){l[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var o=1,i=0;i<24;i++){for(var s=0,u=0,p=0;p<7;p++){if(1&o){var h=(1<<p)-1;h<32?u^=1<<h:s^=1<<h-32}128&o?o=o<<1^113:o<<=1}d[i]=a.create(s,u)}}();var u=[];!function(){for(var e=0;e<25;e++)u[e]=a.create()}();var p=s.SHA3=i.extend({cfg:i.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var r=this._state,n=this.blockSize/2,o=0;o<n;o++){var i=e[t+2*o],a=e[t+2*o+1];i=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(C=r[o]).high^=a,C.low^=i}for(var s=0;s<24;s++){for(var p=0;p<5;p++){for(var h=0,f=0,g=0;g<5;g++)h^=(C=r[p+5*g]).high,f^=C.low;var m=u[p];m.high=h,m.low=f}for(p=0;p<5;p++){var v=u[(p+4)%5],b=u[(p+1)%5],w=b.high,y=b.low;for(h=v.high^(w<<1|y>>>31),f=v.low^(y<<1|w>>>31),g=0;g<5;g++)(C=r[p+5*g]).high^=h,C.low^=f}for(var x=1;x<25;x++){var k=(C=r[x]).high,E=C.low,T=l[x];T<32?(h=k<<T|E>>>32-T,f=E<<T|k>>>32-T):(h=E<<T-32|k>>>64-T,f=k<<T-32|E>>>64-T);var S=u[c[x]];S.high=h,S.low=f}var D=u[0],A=r[0];for(D.high=A.high,D.low=A.low,p=0;p<5;p++)for(g=0;g<5;g++){var C=r[x=p+5*g],_=u[x],N=u[(p+1)%5+5*g],L=u[(p+2)%5+5*g];C.high=_.high^~N.high&L.high,C.low=_.low^~N.low&L.low}C=r[0];var O=d[s];C.high^=O.high,C.low^=O.low}},_doFinalize:function(){var t=this._data,r=t.words,n=(this._nDataBytes,8*t.sigBytes),i=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(e.ceil((n+1)/i)*i>>>5)-1]|=128,t.sigBytes=4*r.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,l=s/8,c=[],d=0;d<l;d++){var u=a[d],p=u.high,h=u.low;p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),h=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8),c.push(h),c.push(p)}return new o.init(c,s)},clone:function(){for(var e=i.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}});t.SHA3=i._createHelper(p),t.HmacSHA3=i._createHmacHelper(p)}(Math),n.SHA3)},9557(e,t,r){var n,o,i,a,s,l,c,d;e.exports=(d=r(9021),r(3240),r(1380),o=(n=d).x64,i=o.Word,a=o.WordArray,s=n.algo,l=s.SHA512,c=s.SHA384=l.extend({_doReset:function(){this._hash=new a.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var e=l._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=l._createHelper(c),n.HmacSHA384=l._createHmacHelper(c),d.SHA384)},1380(e,t,r){var n;e.exports=(n=r(9021),r(3240),function(){var e=n,t=e.lib.Hasher,r=e.x64,o=r.Word,i=r.WordArray,a=e.algo;function s(){return o.create.apply(o,arguments)}var l=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],c=[];!function(){for(var e=0;e<80;e++)c[e]=s()}();var d=a.SHA512=t.extend({_doReset:function(){this._hash=new i.init([new o.init(1779033703,4089235720),new o.init(3144134277,2227873595),new o.init(1013904242,4271175723),new o.init(2773480762,1595750129),new o.init(1359893119,2917565137),new o.init(2600822924,725511199),new o.init(528734635,4215389547),new o.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],d=r[5],u=r[6],p=r[7],h=n.high,f=n.low,g=o.high,m=o.low,v=i.high,b=i.low,w=a.high,y=a.low,x=s.high,k=s.low,E=d.high,T=d.low,S=u.high,D=u.low,A=p.high,C=p.low,_=h,N=f,L=g,O=m,B=v,I=b,M=w,P=y,R=x,q=k,F=E,j=T,$=S,U=D,H=A,V=C,z=0;z<80;z++){var K,Y,G=c[z];if(z<16)Y=G.high=0|e[t+2*z],K=G.low=0|e[t+2*z+1];else{var W=c[z-15],J=W.high,X=W.low,Z=(J>>>1|X<<31)^(J>>>8|X<<24)^J>>>7,Q=(X>>>1|J<<31)^(X>>>8|J<<24)^(X>>>7|J<<25),ee=c[z-2],te=ee.high,re=ee.low,ne=(te>>>19|re<<13)^(te<<3|re>>>29)^te>>>6,oe=(re>>>19|te<<13)^(re<<3|te>>>29)^(re>>>6|te<<26),ie=c[z-7],ae=ie.high,se=ie.low,le=c[z-16],ce=le.high,de=le.low;Y=(Y=(Y=Z+ae+((K=Q+se)>>>0<Q>>>0?1:0))+ne+((K+=oe)>>>0<oe>>>0?1:0))+ce+((K+=de)>>>0<de>>>0?1:0),G.high=Y,G.low=K}var ue,pe=R&F^~R&$,he=q&j^~q&U,fe=_&L^_&B^L&B,ge=N&O^N&I^O&I,me=(_>>>28|N<<4)^(_<<30|N>>>2)^(_<<25|N>>>7),ve=(N>>>28|_<<4)^(N<<30|_>>>2)^(N<<25|_>>>7),be=(R>>>14|q<<18)^(R>>>18|q<<14)^(R<<23|q>>>9),we=(q>>>14|R<<18)^(q>>>18|R<<14)^(q<<23|R>>>9),ye=l[z],xe=ye.high,ke=ye.low,Ee=H+be+((ue=V+we)>>>0<V>>>0?1:0),Te=ve+ge;H=$,V=U,$=F,U=j,F=R,j=q,R=M+(Ee=(Ee=(Ee=Ee+pe+((ue+=he)>>>0<he>>>0?1:0))+xe+((ue+=ke)>>>0<ke>>>0?1:0))+Y+((ue+=K)>>>0<K>>>0?1:0))+((q=P+ue|0)>>>0<P>>>0?1:0)|0,M=B,P=I,B=L,I=O,L=_,O=N,_=Ee+(me+fe+(Te>>>0<ve>>>0?1:0))+((N=ue+Te|0)>>>0<ue>>>0?1:0)|0}f=n.low=f+N,n.high=h+_+(f>>>0<N>>>0?1:0),m=o.low=m+O,o.high=g+L+(m>>>0<O>>>0?1:0),b=i.low=b+I,i.high=v+B+(b>>>0<I>>>0?1:0),y=a.low=y+P,a.high=w+M+(y>>>0<P>>>0?1:0),k=s.low=k+q,s.high=x+R+(k>>>0<q>>>0?1:0),T=d.low=T+j,d.high=E+F+(T>>>0<j>>>0?1:0),D=u.low=D+U,u.high=S+$+(D>>>0<U>>>0?1:0),C=p.low=C+V,p.high=A+H+(C>>>0<V>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(n+128>>>10<<5)]=r,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(d),e.HmacSHA512=t._createHmacHelper(d)}(),n.SHA512)},7628(e,t,r){var n;e.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var e=n,t=e.lib,r=t.WordArray,o=t.BlockCipher,i=e.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],u=i.DES=o.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var n=a[r]-1;t[r]=e[n>>>5]>>>31-n%32&1}for(var o=this._subKeys=[],i=0;i<16;i++){var c=o[i]=[],d=l[i];for(r=0;r<24;r++)c[r/6|0]|=t[(s[r]-1+d)%28]<<31-r%6,c[4+(r/6|0)]|=t[28+(s[r+24]-1+d)%28]<<31-r%6;for(c[0]=c[0]<<1|c[0]>>>31,r=1;r<7;r++)c[r]=c[r]>>>4*(r-1)+3;c[7]=c[7]<<5|c[7]>>>27}var u=this._invSubKeys=[];for(r=0;r<16;r++)u[r]=o[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],p.call(this,4,252645135),p.call(this,16,65535),h.call(this,2,858993459),h.call(this,8,16711935),p.call(this,1,1431655765);for(var n=0;n<16;n++){for(var o=r[n],i=this._lBlock,a=this._rBlock,s=0,l=0;l<8;l++)s|=c[l][((a^o[l])&d[l])>>>0];this._lBlock=a,this._rBlock=i^s}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,p.call(this,1,1431655765),h.call(this,8,16711935),h.call(this,2,858993459),p.call(this,16,65535),p.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function p(e,t){var r=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=r,this._lBlock^=r<<e}function h(e,t){var r=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=r,this._rBlock^=r<<e}e.DES=o._createHelper(u);var f=i.TripleDES=o.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),n=e.length<4?e.slice(0,2):e.slice(2,4),o=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=u.createEncryptor(r.create(t)),this._des2=u.createEncryptor(r.create(n)),this._des3=u.createEncryptor(r.create(o))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=o._createHelper(f)}(),n.TripleDES)},3240(e,t,r){var n,o,i,a,s,l;e.exports=(n=r(9021),i=(o=n).lib,a=i.Base,s=i.WordArray,(l=o.x64={}).Word=a.extend({init:function(e,t){this.high=e,this.low=t}}),l.WordArray=a.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:8*e.length},toX32:function(){for(var e=this.words,t=e.length,r=[],n=0;n<t;n++){var o=e[n];r.push(o.high),r.push(o.low)}return s.create(r,this.sigBytes)},clone:function(){for(var e=a.clone.call(this),t=e.words=this.words.slice(0),r=t.length,n=0;n<r;n++)t[n]=t[n].clone();return e}}),n)},1083(e,t,r){"use strict";r.d(t,{A:()=>s});var n=r(1601),o=r.n(n),i=r(6314),a=r.n(i)()(o());a.push([e.id,".weread-view-content {\n\tpadding: 0 !important;\n\toverflow: hidden !important;\n}\n\n.weread-frame {\n\twidth: 100%;\n\theight: 100%;\n\tborder: none;\n\tbackground-clip: content-box;\n}\n\n/* Template Editor Modal Styles */\n.weread-template-editor-modal {\n\twidth: 95vw;\n\theight: 90vh;\n\tmax-width: none;\n\tmax-height: none;\n}\n\n.weread-template-editor-modal .modal-content {\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 0;\n}\n\n.weread-editor-titlebar {\n\tpadding: 12px 20px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tbackground-color: var(--background-secondary);\n}\n\n.weread-editor-titlebar h2 {\n\tmargin: 0;\n\tfont-size: 1.3em;\n\tfont-weight: 600;\n\tflex: 1;\n}\n\n.weread-editor-buttons {\n\tdisplay: flex;\n\tgap: 8px;\n}\n\n.weread-editor-container {\n\tdisplay: flex;\n\tflex: 1;\n\toverflow: hidden;\n\theight: 100%;\n}\n\n/* 左侧:说明文档面板 */\n.weread-editor-instructions {\n\twidth: 300px;\n\tmin-width: 250px;\n\tflex-shrink: 0;\n\tbackground-color: var(--background-secondary);\n\tborder-right: 1px solid var(--background-modifier-border);\n\toverflow-y: auto;\n\tpadding: 20px;\n}\n\n.weread-editor-instructions h2 {\n\tfont-size: 1.2em;\n\tmargin-bottom: 16px;\n\tcolor: var(--text-normal);\n}\n\n.weread-editor-instructions h3 {\n\tfont-size: 1em;\n\tmargin-top: 16px;\n\tmargin-bottom: 4px;\n\tcolor: var(--text-normal);\n}\n\n.weread-editor-instructions p,\n.weread-editor-instructions ul,\n.weread-editor-instructions ol {\n\tfont-size: 0.9em;\n\tline-height: 1.6;\n\tmargin-bottom: 12px;\n\tcolor: var(--text-muted);\n}\n\n.weread-editor-instructions code {\n\tbackground-color: var(--background-primary-alt);\n\tpadding: 2px 6px;\n\tborder-radius: 3px;\n\tfont-family: var(--font-monospace);\n\tfont-size: 0.9em;\n\tcolor: var(--text-accent);\n}\n\n.weread-editor-instructions ul,\n.weread-editor-instructions ol {\n\tpadding-left: 20px;\n}\n\n/* 中间:编辑器面板 */\n.weread-editor-panel {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tbackground-color: var(--background-primary);\n\tborder-right: 1px solid var(--background-modifier-border);\n\tmin-width: 0;\n}\n\n.weread-editor-panel .panel-header {\n\tpadding: 10px 16px;\n\tbackground-color: var(--background-secondary);\n\tborder-bottom: 1px solid var(--background-modifier-border);\n\tfont-size: 0.9em;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n}\n\n.weread-editor-textarea {\n\tflex: 1;\n\twidth: 100%;\n\tpadding: 16px;\n\tborder: none;\n\tresize: none;\n\tfont-family: var(--font-monospace);\n\tfont-size: 13px;\n\tline-height: 1.6;\n\tbackground-color: var(--background-primary);\n\tcolor: var(--text-normal);\n\toutline: none;\n}\n\n.weread-editor-textarea:focus {\n\toutline: none;\n}\n\n/* 右侧:预览面板 */\n.weread-editor-preview {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tbackground-color: var(--background-primary);\n\tmin-width: 0;\n}\n\n.weread-editor-preview .panel-header {\n\tpadding: 10px 16px;\n\tbackground-color: var(--background-secondary);\n\tborder-bottom: 1px solid var(--background-modifier-border);\n\tfont-size: 0.9em;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n}\n\n/* Toggle 开关容器 */\n.weread-toggle-container {\n\tdisplay: flex;\n\tgap: 16px;\n\talign-items: center;\n}\n\n.weread-toggle-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n}\n\n.weread-toggle-label {\n\tfont-size: 0.85em;\n\tcolor: var(--text-normal);\n\twhite-space: nowrap;\n}\n\n/* Toggle 开关样式 */\n.weread-toggle-switch {\n\tposition: relative;\n\twidth: 40px;\n\theight: 20px;\n\tbackground-color: var(--background-modifier-border);\n\tborder-radius: 10px;\n\tcursor: pointer;\n\ttransition: background-color 0.3s;\n}\n\n.weread-toggle-switch::after {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 2px;\n\tleft: 2px;\n\twidth: 16px;\n\theight: 16px;\n\tbackground-color: white;\n\tborder-radius: 50%;\n\ttransition: transform 0.3s;\n}\n\n.weread-toggle-switch.is-enabled {\n\tbackground-color: var(--interactive-accent);\n}\n\n.weread-toggle-switch.is-enabled::after {\n\ttransform: translateX(20px);\n}\n\n.weread-toggle-switch.is-disabled {\n\topacity: 0.4;\n\tcursor: not-allowed;\n}\n\n.weread-toggle-switch:not(.is-disabled):hover {\n\topacity: 0.8;\n}\n\n.weread-editor-preview .preview-content {\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 16px;\n}\n\n.weread-editor-preview .preview-text {\n\tcolor: var(--text-normal);\n\tmargin: 0;\n}\n\n.weread-editor-preview .preview-text.preview-source-mode pre {\n\tfont-family: var(--font-monospace);\n\tfont-size: 13px;\n\tline-height: 1.6;\n\twhite-space: pre-wrap;\n\tword-wrap: break-word;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.weread-editor-preview .preview-text.markdown-preview-view {\n\tfont-family: var(--font-text);\n\tfont-size: var(--font-text-size);\n\tline-height: var(--line-height-normal);\n\tpadding: 0;\n}\n\n.weread-editor-preview .markdown-preview-view h1,\n.weread-editor-preview .markdown-preview-view h2,\n.weread-editor-preview .markdown-preview-view h3,\n.weread-editor-preview .markdown-preview-view h4,\n.weread-editor-preview .markdown-preview-view h5,\n.weread-editor-preview .markdown-preview-view h6 {\n\tfont-weight: var(--font-bold);\n\tline-height: var(--line-height-tight);\n\tmargin-top: 1em;\n\tmargin-bottom: 0.5em;\n}\n\n.weread-editor-preview .markdown-preview-view p {\n\tmargin-bottom: 1em;\n}\n\n.weread-editor-preview .markdown-preview-view ul,\n.weread-editor-preview .markdown-preview-view ol {\n\tpadding-left: 2em;\n\tmargin-bottom: 1em;\n}\n\n.weread-editor-preview .markdown-preview-view code {\n\tfont-family: var(--font-monospace);\n\tbackground-color: var(--code-background);\n\tpadding: 0.2em 0.4em;\n\tborder-radius: 3px;\n}\n\n.weread-editor-preview .markdown-preview-view pre {\n\tbackground-color: var(--code-background);\n\tpadding: 1em;\n\tborder-radius: 5px;\n\toverflow-x: auto;\n}\n\n.weread-editor-preview .markdown-preview-view blockquote {\n\tborder-left: 3px solid var(--background-modifier-border);\n\tpadding-left: 1em;\n\tmargin-left: 0;\n\tcolor: var(--text-muted);\n}\n\n.weread-editor-preview .error-message {\n\tcolor: #ffffff;\n\tbackground-color: #c73e1d;\n\tborder: 1px solid #a02f18;\n\tpadding: 16px;\n\ttext-align: center;\n\tborder-radius: 6px;\n\tmargin: 8px 0;\n\tdisplay: none;\n\tfont-weight: 500;\n\tfont-size: 0.95em;\n\tline-height: 1.5;\n}\n\n/* Template Preview Modal Styles */\n.weread-template-preview-modal {\n\twidth: 95vw;\n\theight: 90vh;\n\tmax-width: none;\n\tmax-height: none;\n}\n\n/* 模态窗口需要绝对定位以支持拖动 */\n.modal.weread-template-preview-modal {\n\tposition: fixed !important;\n}\n\n.weread-template-preview-modal .modal-content {\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.weread-modal-title {\n\tpadding: 12px 20px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tuser-select: none;\n\tbackground-color: var(--background-secondary);\n}\n\n.weread-modal-title:active {\n\tcursor: move;\n}\n\n.weread-modal-title-text {\n\tmargin: 0;\n\tfont-size: 1.3em;\n\tfont-weight: 600;\n\tflex: 1;\n}\n\n.weread-modal-controls {\n\tdisplay: flex;\n\tgap: 8px;\n\talign-items: center;\n}\n\n.weread-modal-control-btn {\n\twidth: 28px;\n\theight: 28px;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground-color: transparent;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 14px;\n\ttransition: all 0.2s ease;\n}\n\n.weread-modal-control-btn:hover {\n\tbackground-color: var(--background-modifier-hover);\n\tcolor: var(--text-normal);\n}\n\n.weread-template-container {\n\tdisplay: flex;\n\tflex: 1;\n\tgap: 10px;\n\tpadding: 10px;\n\toverflow: hidden;\n}\n\n.weread-editor-panel,\n.weread-preview-panel {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\toverflow: hidden;\n\tbackground-color: var(--background-primary);\n}\n\n.weread-panel-header {\n\tpadding: 12px 16px;\n\tbackground-color: var(--background-secondary);\n\tborder-bottom: 1px solid var(--background-modifier-border);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n}\n\n.weread-panel-header h3 {\n\tmargin: 0;\n\tfont-size: 1.1em;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n}\n\n.weread-panel-subtitle {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n\tmargin-left: 10px;\n}\n\n.weread-template-editor {\n\tflex: 1;\n\twidth: 100%;\n\tpadding: 16px;\n\tborder: none;\n\tresize: none;\n\tfont-family: var(--font-monospace);\n\tfont-size: 0.9em;\n\tline-height: 1.6;\n\tbackground-color: var(--background-primary);\n\tcolor: var(--text-normal);\n\toutline: none;\n}\n\n.weread-template-editor:focus {\n\toutline: none;\n}\n\n.weread-preview-content {\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 16px;\n\tbackground-color: var(--background-primary);\n}\n\n.weread-preview-text {\n\tmargin: 0;\n\tpadding: 0;\n\tfont-family: var(--font-monospace);\n\tfont-size: 0.85em;\n\tline-height: 1.6;\n\twhite-space: pre-wrap;\n\tword-wrap: break-word;\n\tcolor: var(--text-normal);\n}\n\n.weread-preview-error {\n\tpadding: 20px;\n\ttext-align: center;\n\tcolor: var(--text-error);\n}\n\n.weread-preview-error span {\n\tfont-size: 1.2em;\n\tfont-weight: 600;\n\tdisplay: block;\n\tmargin-bottom: 10px;\n}\n\n.weread-preview-error p {\n\tmargin: 5px 0;\n\tfont-size: 0.9em;\n\tcolor: var(--text-muted);\n}\n\n.weread-modal-footer {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tgap: 10px;\n\tpadding: 16px 20px;\n\tborder-top: 1px solid var(--background-modifier-border);\n}\n\n.weread-modal-footer button {\n\tpadding: 8px 20px;\n\tborder-radius: 5px;\n\tfont-size: 0.95em;\n\tcursor: pointer;\n\tborder: 1px solid var(--background-modifier-border);\n\tbackground-color: var(--background-primary);\n\tcolor: var(--text-normal);\n\ttransition: all 0.2s ease;\n}\n\n.weread-modal-footer button:hover {\n\tbackground-color: var(--background-modifier-hover);\n}\n\n.weread-modal-footer button.mod-cta {\n\tbackground-color: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n\tborder-color: var(--interactive-accent);\n}\n\n.weread-modal-footer button.mod-cta:hover {\n\tbackground-color: var(--interactive-accent-hover);\n\tborder-color: var(--interactive-accent-hover);\n}\n\n/* Scrollbar styles */\n.weread-preview-content::-webkit-scrollbar,\n.weread-template-editor::-webkit-scrollbar {\n\twidth: 8px;\n}\n\n.weread-preview-content::-webkit-scrollbar-track,\n.weread-template-editor::-webkit-scrollbar-track {\n\tbackground: var(--background-secondary);\n}\n\n.weread-preview-content::-webkit-scrollbar-thumb,\n.weread-template-editor::-webkit-scrollbar-thumb {\n\tbackground: var(--background-modifier-border);\n\tborder-radius: 4px;\n}\n\n.weread-preview-content::-webkit-scrollbar-thumb:hover,\n.weread-template-editor::-webkit-scrollbar-thumb:hover {\n\tbackground: var(--text-muted);\n}\n\n/* Resize handles */\n.weread-resize-handle {\n\tposition: absolute;\n\tz-index: 10;\n}\n\n.weread-resize-n,\n.weread-resize-s {\n\tleft: 0;\n\tright: 0;\n\theight: 8px;\n}\n\n.weread-resize-n {\n\ttop: 0;\n\tcursor: ns-resize;\n}\n\n.weread-resize-s {\n\tbottom: 0;\n\tcursor: ns-resize;\n}\n\n.weread-resize-e,\n.weread-resize-w {\n\ttop: 0;\n\tbottom: 0;\n\twidth: 8px;\n}\n\n.weread-resize-e {\n\tright: 0;\n\tcursor: ew-resize;\n}\n\n.weread-resize-w {\n\tleft: 0;\n\tcursor: ew-resize;\n}\n\n.weread-resize-ne,\n.weread-resize-nw,\n.weread-resize-se,\n.weread-resize-sw {\n\twidth: 16px;\n\theight: 16px;\n}\n\n.weread-resize-ne {\n\ttop: 0;\n\tright: 0;\n\tcursor: nesw-resize;\n}\n\n.weread-resize-nw {\n\ttop: 0;\n\tleft: 0;\n\tcursor: nwse-resize;\n}\n\n.weread-resize-se {\n\tbottom: 0;\n\tright: 0;\n\tcursor: nwse-resize;\n}\n\n.weread-resize-sw {\n\tbottom: 0;\n\tleft: 0;\n\tcursor: nesw-resize;\n}\n\n/* 悬停时显示调整大小手柄 */\n.weread-resize-handle:hover {\n\tbackground-color: var(--interactive-accent);\n\topacity: 0.3;\n}\n\n/* 防止窗口调整大小时选中文本 */\n.weread-template-preview-modal.is-resizing,\n.weread-template-preview-modal.is-dragging {\n\tuser-select: none;\n}\n\n/* 用户信息和头像样式 */\n.weread-user-info {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 12px;\n\tpadding: 20px;\n\tmargin: 15px 0;\n\tbackground-color: var(--background-secondary);\n\tborder-radius: 8px;\n\tborder: 1px solid var(--background-modifier-border);\n}\n\n.weread-user-avatar {\n\twidth: 64px;\n\theight: 64px;\n\tborder-radius: 50%;\n\tobject-fit: cover;\n}\n\n.weread-user-avatar-large {\n\twidth: 80px;\n\theight: 80px;\n\tborder-radius: 50%;\n\tobject-fit: cover;\n\tmargin-top: 10px;\n}\n\n.weread-avatar-container {\n\tdisplay: flex;\n\tjustify-content: center;\n\tmargin-top: 10px;\n\tpadding: 10px 0;\n}\n\n.weread-user-name {\n\tfont-size: 14px;\n\tcolor: var(--text-normal);\n\ttext-align: center;\n\tfont-weight: 500;\n}\n\n/* 桌面端登出面板样式 */\n.weread-user-logout-container {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 20px;\n\tpadding: 20px;\n\tmargin: 15px 0;\n\tbackground-color: var(--background-secondary);\n\tborder-radius: 8px;\n\tborder: 1px solid var(--background-modifier-border);\n}\n\n.weread-user-info-left {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 15px;\n\tflex: 1;\n}\n\n.weread-user-avatar-desktop {\n\twidth: 80px;\n\theight: 80px;\n\tborder-radius: 50%;\n\tobject-fit: cover;\n\tflex-shrink: 0;\n}\n\n.weread-user-text-info {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 5px;\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.weread-user-name-title {\n\tfont-size: 16px;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n}\n\n.weread-user-name-value {\n\tfont-size: 13px;\n\tcolor: var(--text-muted);\n}\n\n.weread-cookie-status {\n\tfont-size: 12px;\n\tcolor: var(--text-muted);\n\tmargin-top: 3px;\n\tline-height: 1.4;\n}\n\n.weread-button-group {\n\tdisplay: flex;\n\tgap: 8px;\n\tflex-shrink: 0;\n}\n\n.weread-action-button {\n\tpadding: 8px 16px;\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tborder: none;\n\tborder-radius: 4px;\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n\twhite-space: nowrap;\n}\n\n.weread-logout-btn {\n\tbackground-color: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n}\n\n.weread-logout-btn:hover:not(:disabled) {\n\tbackground-color: var(--interactive-accent-hover);\n}\n\n.weread-copy-btn {\n\tbackground-color: var(--background-modifier-form-field);\n\tcolor: var(--text-normal);\n\tborder: 1px solid var(--background-modifier-border);\n}\n\n.weread-copy-btn:hover:not(:disabled) {\n\tbackground-color: var(--background-modifier-border);\n}\n\n.weread-refresh-btn {\n\tbackground-color: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n}\n\n.weread-refresh-btn:hover:not(:disabled) {\n\tbackground-color: var(--interactive-accent-hover);\n}\n\n.weread-action-button:disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n}\n\n.weread-logout-desc {\n\tfont-size: 13px;\n\tcolor: var(--text-muted);\n\tpadding: 0 20px;\n\tline-height: 1.6;\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n}\n\n/* 登录相关样式 */\n.weread-login-action {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 15px;\n\tmargin: 15px 0;\n\tpadding: 15px;\n\tbackground-color: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n}\n\n.weread-login-text-info {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.weread-login-title {\n\tfont-size: 14px;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n}\n\n.weread-login-desc-inline {\n\tfont-size: 12px;\n\tcolor: var(--text-muted);\n\tline-height: 1.5;\n\tword-break: break-word;\n}\n\n.weread-login-btn {\n\tbackground-color: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n\tmin-width: 80px;\n\tflex-shrink: 0;\n}\n\n.weread-login-btn:hover:not(:disabled) {\n\tbackground-color: var(--interactive-accent-hover);\n}\n\n/* 移动端登录/登出样式 */\n.weread-mobile-login-container {\n\tbackground-color: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tpadding: 15px;\n\tmargin: 15px 0;\n\ttext-align: center;\n}\n\n.weread-mobile-login-text {\n\tfont-size: 15px;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n\tmargin-bottom: 4px;\n}\n\n.weread-mobile-login-desc {\n\tfont-size: 13px;\n\tcolor: var(--text-muted);\n\tline-height: 1.5;\n}\n\n/* API Key 校验状态 */\n.weread-apikey-validation {\n\tbackground-color: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tpadding: 12px 16px;\n\tmargin: 8px 0 12px;\n}\n\n.weread-apikey-validation-row {\n\tfont-size: 13px;\n\tcolor: var(--text-normal);\n\tmargin-bottom: 4px;\n}\n\n.weread-apikey-validation-row:last-child {\n\tmargin-bottom: 0;\n}\n\n.weread-apikey-validation-valid {\n\tcolor: var(--color-green);\n\tfont-weight: 500;\n}\n\n.weread-apikey-validation-invalid {\n\tcolor: var(--text-error);\n\tfont-weight: 500;\n}\n\n.weread-apikey-validation-status {\n\tfont-size: 13px;\n\tcolor: var(--text-muted);\n}\n\n.weread-apikey-validation-desc {\n\tfont-size: 12px;\n\tcolor: var(--text-muted);\n\tmargin-top: 6px;\n}\n\n.weread-manual-sync-preview {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\n\tgap: 12px;\n\tmargin: 8px 0 18px;\n\tmax-height: 420px;\n\toverflow-y: auto;\n\tpadding-right: 4px;\n\talign-content: start;\n}\n\n.weread-selected-book-card,\n.weread-book-selector-card,\n.weread-book-selector-selected-card {\n\tposition: relative;\n\tdisplay: flex;\n\tgap: 12px;\n\tpadding: 12px;\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 12px;\n\tbackground-color: var(--background-secondary);\n}\n\n.weread-selected-book-cover,\n.weread-book-selector-cover {\n\twidth: 56px;\n\theight: 80px;\n\tborder-radius: 8px;\n\tobject-fit: cover;\n\tflex-shrink: 0;\n}\n\n.weread-selected-book-details,\n.weread-book-selector-card-details {\n\tmin-width: 0;\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n}\n\n.weread-selected-book-title,\n.weread-book-selector-title {\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n\tword-break: break-word;\n}\n\n.weread-selected-book-author,\n.weread-book-selector-author,\n.weread-book-selector-meta,\n.weread-book-selector-count,\n.weread-book-selector-empty {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n}\n\n.weread-book-selector-modal .modal-content {\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n}\n\n.weread-book-selector-header,\n.weread-book-selector-toolbar,\n.weread-book-selector-footer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n}\n\n.weread-book-selector-toolbar,\n.weread-book-selector-footer {\n\tmargin-top: 12px;\n}\n\n.weread-book-selector-search {\n\tflex: 1;\n}\n\n.weread-book-selector-actions {\n\tdisplay: flex;\n\tgap: 8px;\n}\n\n.weread-book-selector-panels {\n\tflex: 1;\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);\n\tgap: 16px;\n\tmin-height: 0;\n\tmargin-top: 16px;\n}\n\n.weread-book-selector-list-panel,\n.weread-book-selector-selected-panel {\n\tmin-height: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n}\n\n.weread-book-selector-grid {\n\tflex: 1;\n\toverflow-y: auto;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n\tgap: 12px;\n\tpadding-right: 4px;\n}\n\n.weread-book-selector-selected-list {\n\tflex: 1;\n\toverflow-y: auto;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n\tpadding-right: 4px;\n}\n\n.weread-book-selector-card {\n\tcursor: pointer;\n\talign-items: flex-start;\n}\n\n.weread-book-selector-card.is-selected {\n\tborder-color: var(--interactive-accent);\n\tbox-shadow: 0 0 0 1px var(--interactive-accent);\n}\n\n.weread-book-selector-checkbox {\n\tposition: absolute;\n\ttop: 12px;\n\tright: 12px;\n}\n\n.weread-book-selector-selected-card {\n\talign-items: flex-start;\n}\n\n.weread-book-selector-selected-card.is-disabled {\n\topacity: 0.8;\n}\n\n.weread-book-selector-section {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n\n.weread-book-selector-section h4 {\n\tmargin: 0;\n\tfont-size: 0.95em;\n}\n\n.weread-book-selector-section-description {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n}\n\n.weread-book-selector-remove {\n\talign-self: center;\n}\n\n.weread-bookshelf-view {\n\tpadding: 16px;\n\theight: 100%;\n\toverflow: auto;\n\tcontainer-type: inline-size;\n}\n\n.weread-bookshelf-toolbar-filters,\n.weread-bookshelf-toolbar-actions,\n.weread-bookshelf-card-actions {\n\tdisplay: flex;\n\tgap: 12px;\n\talign-items: center;\n\tflex-wrap: wrap;\n}\n\n.weread-bookshelf-header {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 8px;\n\ttext-align: center;\n\tmargin-bottom: 12px;\n}\n\n.weread-bookshelf-header-title h2 {\n\tmargin: 0;\n}\n\n.weread-bookshelf-header-subtitle {\n\tmargin: 6px 0 0;\n\tcolor: var(--text-muted);\n\tfont-size: 13px;\n}\n\n.weread-bookshelf-toolbar {\n\tdisplay: flex;\n\tgap: 12px;\n\talign-items: center;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n\tmargin: 0 0 8px;\n}\n\n.weread-bookshelf-toolbar-filters {\n\tflex: 1 1 auto;\n\tjustify-content: flex-start;\n\tdisplay: flex;\n\tgap: 12px;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tposition: relative;\n}\n\n.weread-bookshelf-filter-toggle {\n\tdisplay: none;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 6px 12px;\n\tbackground-color: var(--background-modifier-form-field);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 6px;\n\tcursor: pointer;\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n\ttransition: all 0.2s ease;\n\twhite-space: nowrap;\n}\n\n.weread-bookshelf-filter-toggle:hover {\n\tbackground-color: var(--background-modifier-border);\n}\n\n.weread-bookshelf-filter-dropdowns {\n\tdisplay: flex;\n\tgap: 12px;\n\talign-items: center;\n\tflex-wrap: wrap;\n}\n\n.weread-bookshelf-filter-dropdowns.is-open {\n\tposition: absolute;\n\ttop: 100%;\n\tleft: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n\tmargin-top: 8px;\n\tpadding: 12px;\n\tbackground-color: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tz-index: 1000;\n\tmin-width: 200px;\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.weread-bookshelf-toolbar-actions {\n\tmargin-left: auto;\n\tjustify-content: flex-end;\n}\n\n.weread-bookshelf-search {\n\tflex: 1 1 150px;\n\tmin-width: 120px;\n}\n\n.weread-bookshelf-toggle {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 8px;\n\tfont-size: 13px;\n\tcolor: var(--text-normal);\n\twhite-space: nowrap;\n\tcursor: pointer;\n\tuser-select: none;\n}\n\n.weread-bookshelf-toggle input[type='checkbox'] {\n\tposition: absolute;\n\topacity: 0;\n\tpointer-events: none;\n\twidth: 0;\n\theight: 0;\n}\n\n.weread-bookshelf-toggle .toggle-slider {\n\tposition: relative;\n\twidth: 34px;\n\theight: 20px;\n\tborder-radius: 999px;\n\tbackground: var(--background-modifier-border-hover);\n\tborder: 1px solid var(--background-modifier-border);\n\tbox-sizing: border-box;\n\ttransition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;\n\tflex: 0 0 auto;\n}\n\n.weread-bookshelf-toggle .toggle-slider::before {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 1px;\n\tleft: 1px;\n\twidth: 16px;\n\theight: 16px;\n\tborder-radius: 50%;\n\tbackground: var(--background-primary);\n\tbox-shadow: 0 1px 2px rgb(0 0 0 / 18%);\n\ttransition: transform 0.2s ease;\n}\n\n.weread-bookshelf-toggle input[type='checkbox']:checked + .toggle-slider {\n\tbackground: var(--interactive-accent);\n\tborder-color: var(--interactive-accent);\n}\n\n.weread-bookshelf-toggle input[type='checkbox']:checked + .toggle-slider::before {\n\ttransform: translateX(14px);\n}\n\n.weread-bookshelf-toggle .toggle-text {\n\tmargin-left: -2px;\n}\n\n.weread-bookshelf-toggle.is-disabled {\n\topacity: 0.6;\n\tcursor: not-allowed;\n}\n\n.weread-bookshelf-toggle.is-disabled .toggle-slider {\n\topacity: 0.8;\n}\n\n.weread-bookshelf-group {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n\n.weread-bookshelf-group-title {\n\tmargin: 4px 0 0;\n\tfont-size: 16px;\n\tfont-weight: 600;\n}\n\n.weread-bookshelf-group-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n\tgap: 16px;\n}\n\n.weread-notice-progress {\n\twidth: 260px;\n}\n\n.weread-notice-progress-header {\n\tfont-size: var(--font-small);\n\tmargin-bottom: 6px;\n\twhite-space: nowrap;\n}\n\n.weread-notice-progress-track {\n\theight: 4px;\n\tbackground: var(--background-modifier-border);\n\tborder-radius: 2px;\n\toverflow: hidden;\n\tmargin-bottom: 6px;\n}\n\n.weread-notice-progress-fill {\n\theight: 100%;\n\twidth: 0%;\n\tbackground: var(--interactive-accent);\n\tborder-radius: 2px;\n\ttransition: width 0.3s ease;\n}\n\n.weread-notice-progress-title {\n\tfont-size: var(--font-smallest);\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tmin-height: 1em;\n}\n\n.weread-bookshelf-summary {\n\tmargin: 8px 0 12px;\n}\n\n.weread-bookshelf-empty,\n.weread-bookshelf-load-more {\n\tmargin: 8px 0 12px;\n\tcolor: var(--text-muted);\n}\n\n/* Summary Card Styles */\n.weread-bookshelf-summary-card {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tbackground: transparent;\n\tborder: none;\n\tborder-radius: 6px;\n\tmargin: 0 0 6px;\n\tflex-wrap: wrap;\n}\n\n.weread-bookshelf-summary-item {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 3px;\n\tflex-direction: row;\n\tpadding: 0;\n\tmargin-right: 8px;\n\tborder-radius: 0;\n\ttransition: background-color 0.2s ease;\n}\n\n.weread-bookshelf-summary-item:not(:first-child)::before {\n\tcontent: '';\n\tdisplay: none;\n\twidth: 1px;\n\theight: 16px;\n\tbackground: var(--background-modifier-border);\n\tmargin: 0 8px;\n}\n\n.weread-bookshelf-summary-item:hover {\n\tbackground-color: transparent;\n}\n\n.weread-bookshelf-summary-icon {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 20px;\n\theight: 20px;\n\tflex-shrink: 0;\n\tbackground: transparent;\n\tborder-radius: 0;\n\tcolor: var(--text-accent);\n\tfont-size: 14px;\n}\n\n.weread-bookshelf-summary-info {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: 4px;\n\tflex: 0;\n\tmin-width: auto;\n\talign-items: center;\n}\n\n.weread-bookshelf-summary-label {\n\tdisplay: none;\n\tfont-size: 10px;\n\tcolor: var(--text-muted);\n\tfont-weight: 500;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.2px;\n\tline-height: 1;\n}\n\n.weread-bookshelf-summary-value {\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n\tword-break: normal;\n\tline-height: 1;\n\twhite-space: nowrap;\n}\n\n.weread-bookshelf-summary-loading,\n.weread-bookshelf-summary-error {\n\tpadding: 16px;\n\ttext-align: center;\n\tcolor: var(--text-muted);\n\tmargin: 0 0 12px;\n}\n\n/* Unlogged State Card Styles */\n.weread-bookshelf-unlogged-card {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 20px;\n\tpadding: 40px 24px;\n\tbackground: linear-gradient(135deg, var(--background-secondary) 0%, var(--background-modifier-form-field) 100%);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 16px;\n\tmargin: 20px 0 12px;\n\ttext-align: center;\n}\n\n.weread-bookshelf-unlogged-content {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n\talign-items: center;\n}\n\n.weread-bookshelf-unlogged-title {\n\tfont-size: 18px;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n}\n\n.weread-bookshelf-unlogged-description {\n\tfont-size: 14px;\n\tcolor: var(--text-muted);\n\tmax-width: 300px;\n}\n\n.weread-bookshelf-unlogged-button {\n\tpadding: 10px 24px;\n\tbackground: var(--text-accent);\n\tcolor: var(--background-primary);\n\tborder: none;\n\tborder-radius: 8px;\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n\tmargin-top: 8px;\n}\n\n.weread-bookshelf-unlogged-button:hover {\n\tbackground: var(--interactive-accent);\n\ttransform: translateY(-2px);\n\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n}\n\n.weread-bookshelf-grid {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n}\n\n.weread-bookshelf-card {\n\tdisplay: flex;\n\tgap: 12px;\n\tpadding: 14px;\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 12px;\n\tbackground: var(--background-secondary);\n\tposition: relative;\n}\n\n.weread-bookshelf-card.is-clickable {\n\tcursor: pointer;\n}\n\n.weread-bookshelf-card.is-clickable:hover {\n\tbackground: var(--background-modifier-hover);\n}\n\n.weread-bookshelf-card-cover-wrap {\n\twidth: 88px;\n\tflex: 0 0 88px;\n}\n\n.weread-bookshelf-card-cover-wrap.is-clickable {\n\tcursor: pointer;\n}\n\n.weread-bookshelf-card-cover,\n.weread-bookshelf-card-cover-placeholder {\n\twidth: 88px;\n\theight: 120px;\n\tborder-radius: 8px;\n\tobject-fit: cover;\n\tbackground: var(--background-modifier-border);\n}\n\n.weread-bookshelf-card-cover-placeholder {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 12px;\n\tcolor: var(--text-muted);\n}\n\n.weread-bookshelf-card-details {\n\tflex: 1;\n\tmin-width: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.weread-bookshelf-card-title {\n\tfont-weight: 600;\n\tfont-size: 15px;\n\tline-height: 1.4;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.weread-bookshelf-card-title.is-clickable {\n\tcursor: pointer;\n\tcolor: var(--text-accent);\n}\n\n.weread-bookshelf-card-author,\n.weread-bookshelf-card-meta {\n\tfont-size: 12px;\n\tcolor: var(--text-muted);\n\tline-height: 1.5;\n}\n\n.weread-bookshelf-badges {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n}\n\n.weread-bookshelf-badge {\n\tpadding: 2px 8px;\n\tborder-radius: 999px;\n\tbackground: var(--background-modifier-hover);\n\tfont-size: 11px;\n\tcolor: var(--text-muted);\n}\n\n.weread-bookshelf-card-top-actions {\n\tposition: absolute;\n\ttop: 8px;\n\tright: 8px;\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.weread-bookshelf-icon-button {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tpadding: 0;\n\tborder-radius: 50%;\n\tbackground: var(--background-primary-alt);\n\tborder: 1px solid var(--background-modifier-border);\n\tcolor: var(--text-muted);\n}\n\n.weread-bookshelf-icon-button:hover {\n\tcolor: var(--text-normal);\n\tbackground: var(--background-modifier-hover);\n}\n\n.weread-bookshelf-icon-button:disabled {\n\topacity: 0.5;\n}\n\n.weread-bookshelf-modal-actions {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tgap: 8px;\n\tmargin-top: 16px;\n}\n\n.weread-toolbar-icon-button {\n\twidth: 32px;\n\theight: 32px;\n}\n\n.weread-toolbar-icon-button.mod-cta {\n\tbackground: var(--interactive-accent);\n\tborder-color: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n}\n\n.weread-toolbar-icon-button.mod-cta:hover {\n\tbackground: var(--interactive-accent-hover);\n\tborder-color: var(--interactive-accent-hover);\n\tcolor: var(--text-on-accent);\n}\n\n/* 窄屏优化:隐藏筛选下拉菜单,显示筛选按钮 */\n@container (max-width: 620px) {\n\t.weread-bookshelf-toolbar-filters {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t.weread-bookshelf-search {\n\t\tflex: 1 1 auto;\n\t\tmin-width: 80px;\n\t}\n\n\t.weread-bookshelf-filter-toggle {\n\t\tdisplay: inline-flex;\n\t}\n\n\t.weread-bookshelf-filter-dropdowns {\n\t\tdisplay: none;\n\t\tflex-direction: column;\n\t\talign-items: stretch;\n\t\tgap: 8px;\n\t}\n\n\t.weread-bookshelf-filter-dropdowns.is-open {\n\t\tdisplay: flex;\n\t}\n\n\t.weread-bookshelf-filter-dropdowns.is-open .dropdown {\n\t\twidth: 100%;\n\t}\n\n\t.weread-bookshelf-summary-card {\n\t\tpadding: 6px 8px;\n\t\tgap: 0;\n\t}\n\n\t/* 在更窄的屏幕上,把摘要卡片改为行显示,只显示 icon 和数值 */\n\t@container (max-width: 400px) {\n\t\t.weread-bookshelf-summary-card {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 0;\n\t\t\tpadding: 6px 8px;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t.weread-bookshelf-summary-item {\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tgap: 4px;\n\t\t\tflex: 0 0 auto;\n\t\t\tmin-width: auto;\n\t\t\tpadding: 0;\n\t\t\tbackground: transparent;\n\t\t}\n\n\t\t.weread-bookshelf-summary-icon {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfont-size: 12px;\n\t\t}\n\n\t\t.weread-bookshelf-summary-info {\n\t\t\tgap: 0;\n\t\t}\n\n\t\t.weread-bookshelf-summary-label {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.weread-bookshelf-summary-value {\n\t\t\tfont-size: 11px;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n\n/* Sync Log Modal Styles */\n.sync-log-header {\n\tpadding: 20px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: 4px;\n}\n\n.sync-log-header h2 {\n\tmargin: 0;\n\tfont-size: 1.3em;\n\tflex: 1 1 auto;\n}\n\n.sync-log-header-right {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tflex-shrink: 0;\n}\n\n.sync-log-toggle-label {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n}\n\n.sync-log-subtitle {\n\twidth: 100%;\n\n\tcolor: var(--text-muted);\n\tfont-size: 0.9em;\n}\n\n.sync-log-container {\n\tpadding: 16px 20px;\n\toverflow-y: auto;\n\tmax-height: calc(80vh - 80px);\n}\n\n.sync-log-empty {\n\ttext-align: center;\n\tcolor: var(--text-muted);\n\tpadding: 40px 20px;\n}\n\n.sync-log-item {\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tmargin-bottom: 12px;\n\toverflow: hidden;\n}\n\n.sync-log-item-header {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tpadding: 12px 16px;\n\tbackground-color: var(--background-secondary);\n}\n\n.sync-log-timestamp {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n}\n\n.sync-log-date {\n\tfont-weight: 500;\n}\n\n.sync-log-time {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n}\n\n.sync-log-status {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-size: 0.9em;\n}\n\n.sync-log-status.sync-log-success {\n\tcolor: var(--text-accent);\n}\n\n.sync-log-status.sync-log-error {\n\tcolor: var(--text-error);\n}\n\n.sync-log-stats {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 12px;\n\tpadding: 10px 16px;\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n}\n\n.sync-log-stats span:not(:last-child)::after {\n\tcontent: '|';\n\tmargin-left: 12px;\n\tcolor: var(--background-modifier-border);\n}\n\n.sync-log-error {\n\tpadding: 8px 16px;\n\tcolor: var(--text-error);\n\tfont-size: 0.85em;\n}\n\n.sync-log-notes-header {\n\tpadding: 8px 16px;\n\tfont-size: 0.9em;\n\tfont-weight: 500;\n\tborder-top: 1px solid var(--background-modifier-border);\n\tbackground-color: var(--background-primary-alt);\n}\n\n.sync-log-notes-list {\n\tpadding: 8px 16px 16px;\n}\n\n.sync-log-note-item {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 6px 0;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n}\n\n.sync-log-note-item:last-child {\n\tborder-bottom: none;\n}\n\n.sync-log-note-title {\n\tflex: 1;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tfont-size: 0.9em;\n}\n\n.sync-log-note-btn {\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n\tpadding: 4px 8px;\n\tcolor: var(--text-accent);\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.sync-log-note-btn:hover {\n\tcolor: var(--text-accent-hover);\n}\n\n/* Theme Manager Modal Styles */\n.weread-theme-manager-modal .modal-content {\n\tmax-height: none;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.theme-manager-header {\n\tpadding: 20px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n\tbackground-color: var(--background-secondary);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 16px;\n}\n\n.theme-manager-header h2 {\n\tmargin: 0;\n\tfont-size: 1.4em;\n}\n\n.theme-manager-title {\n\tflex: 1;\n}\n\n.theme-manager-header .theme-btn {\n\twhite-space: nowrap;\n}\n\n.theme-manager-list {\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 16px 20px;\n}\n\n.theme-card {\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 12px;\n\tpadding: 16px;\n\tmargin-bottom: 12px;\n\tbackground-color: var(--background-secondary);\n\ttransition: border-color 0.2s ease, box-shadow 0.2s ease;\n}\n\n.theme-card:hover {\n\tborder-color: var(--background-modifier-border-hover);\n}\n\n.theme-card.is-active {\n\tborder-color: var(--interactive-accent);\n\tbox-shadow: 0 0 0 1px var(--interactive-accent);\n}\n\n.theme-card-header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmargin-bottom: 4px;\n}\n\n.theme-title-group {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tflex: 1;\n}\n\n.theme-title-group h3 {\n\tmargin: 0;\n\tfont-size: 1.1em;\n\tfont-weight: 600;\n}\n\n.theme-badge {\n\tfont-size: 0.75em;\n\tpadding: 2px 8px;\n\tborder-radius: 999px;\n\tfont-weight: 500;\n}\n\n.theme-badge.badge-builtin {\n\tbackground-color: var(--background-modifier-hover);\n\tcolor: var(--text-muted);\n}\n\n.theme-badge.badge-legacy {\n\tbackground-color: rgba(234, 179, 8, 0.15);\n\tcolor: #ca8a04;\n}\n\n.theme-badge.badge-community {\n\tbackground-color: rgba(99, 102, 241, 0.15);\n\tcolor: #6366f1;\n}\n\n.theme-badge.badge-custom {\n\tbackground-color: rgba(16, 185, 129, 0.15);\n\tcolor: #10b981;\n}\n\n.theme-active-badge {\n\tfont-size: 0.85em;\n\tcolor: var(--interactive-accent);\n\tfont-weight: 500;\n}\n\n.theme-description {\n\tmargin: 8px 0;\n\tfont-size: 0.9em;\n\tcolor: var(--text-muted);\n\tline-height: 1.5;\n}\n\n.theme-author {\n\tmargin: 4px 0;\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n}\n\n.theme-card-actions {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tmargin-top: 12px;\n\tpadding-top: 12px;\n\tborder-top: 1px solid var(--background-modifier-border);\n}\n\n.theme-btn {\n\tpadding: 6px 14px;\n\tfont-size: 0.85em;\n\tborder-radius: 6px;\n\tborder: 1px solid var(--background-modifier-border);\n\tbackground-color: var(--background-primary);\n\tcolor: var(--text-normal);\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n}\n\n.theme-btn:hover {\n\tbackground-color: var(--background-modifier-hover);\n}\n\n.theme-btn.mod-cta {\n\tbackground-color: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n\tborder-color: var(--interactive-accent);\n}\n\n.theme-btn.mod-cta:hover {\n\tbackground-color: var(--interactive-accent-hover);\n\tborder-color: var(--interactive-accent-hover);\n}\n\n.theme-btn.mod-danger {\n\tcolor: var(--text-error);\n\tborder-color: var(--background-modifier-error-border);\n}\n\n.theme-btn.mod-danger:hover {\n\tbackground-color: var(--background-mod-error);\n}\n\n.theme-import-section {\n\tpadding: 20px;\n\tborder-top: 1px solid var(--background-modifier-border);\n\tbackground-color: var(--background-secondary);\n}\n\n.theme-import-section h3 {\n\tmargin: 0 0 8px 0;\n\tfont-size: 1em;\n}\n\n.theme-import-section p {\n\tmargin: 0 0 12px 0;\n\tfont-size: 0.9em;\n\tcolor: var(--text-muted);\n}\n\n.theme-close-section {\n\tpadding: 16px 20px;\n\tborder-top: 1px solid var(--background-modifier-border);\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tbackground-color: var(--background-secondary);\n}\n\n.theme-rename-header {\n\tpadding: 16px 20px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n}\n\n.theme-rename-header h3 {\n\tmargin: 0;\n\tfont-size: 1.1em;\n}\n\n.theme-rename-input {\n\tpadding: 16px 20px;\n}\n\n.theme-rename-actions {\n\tpadding: 0 20px 16px;\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tgap: 8px;\n}\n\n.theme-import-url-header {\n\tpadding: 16px 20px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n}\n\n.theme-import-url-header h3 {\n\tmargin: 0;\n\tfont-size: 1.1em;\n}\n\n.theme-import-url-input {\n\tpadding: 16px 20px;\n}\n\n.theme-import-url-input input {\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.theme-import-buttons {\n\tdisplay: flex;\n\tgap: 8px;\n}\n\n.theme-import-url-actions {\n\tpadding: 0 20px 16px;\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tgap: 8px;\n}\n\n.theme-create-header {\n\tpadding: 16px 20px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n}\n\n.theme-create-header h3 {\n\tmargin: 0;\n\tfont-size: 1.1em;\n}\n\n.theme-create-form {\n\tpadding: 20px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n}\n\n.theme-create-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n\n.theme-create-label {\n\twidth: 80px;\n\tflex-shrink: 0;\n\tfont-weight: 500;\n\tcolor: var(--text-secondary);\n}\n\n.theme-create-row input {\n\tflex: 1;\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.theme-create-actions {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tgap: 8px;\n\tpadding: 0 20px 16px;\n}\n\n/* 工具栏用户头像按钮 */\n.weread-bookshelf-user-avatar-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 50%;\n\tbackground: transparent;\n\tborder: 1px solid var(--background-modifier-border);\n\tcursor: pointer;\n\toverflow: hidden;\n\tflex-shrink: 0;\n\ttransition: all 0.2s ease;\n\tpadding: 0;\n}\n\n.weread-bookshelf-user-avatar-btn img {\n\twidth: 100%;\n\theight: 100%;\n\tborder-radius: 50%;\n\tobject-fit: cover;\n}\n\n.weread-bookshelf-user-avatar-btn:hover {\n\tbackground: var(--background-modifier-hover);\n\tborder-color: var(--text-accent);\n}\n\n/* 未登录状态头像 logo */\n.weread-bookshelf-user-avatar-btn.is-unlogged {\n\tborder: 1px solid var(--text-muted);\n\tcolor: var(--text-muted);\n\tfont-size: 18px;\n}\n\n.weread-bookshelf-user-avatar-btn.is-unlogged:hover {\n\tbackground: var(--background-modifier-form-field);\n\tborder-color: var(--text-accent);\n\tcolor: var(--text-accent);\n}\n\n\n/* ══════════════════════════════════════════════════════════════════════════\n WeRead Reading Stats View\n ══════════════════════════════════════════════════════════════════════════ */\n\n.weread-stats-view {\n\toverflow-y: auto;\n\theight: 100%;\n\t/* cal-heatmap heat colors — adapt to accent color */\n\t--weread-heat-0: var(--background-modifier-border);\n\t--weread-heat-1: rgba(var(--interactive-accent-rgb), 0.20);\n\t--weread-heat-2: rgba(var(--interactive-accent-rgb), 0.42);\n\t--weread-heat-3: rgba(var(--interactive-accent-rgb), 0.65);\n\t--weread-heat-4: rgba(var(--interactive-accent-rgb), 0.88);\n}\n\n.weread-stats-container {\n\tpadding: 16px 20px 32px;\n\tmax-width: 910px;\n\tmargin: 0 auto;\n}\n\n/* ── Header ──────────────────────────────────────────────────────────────── */\n.weread-stats-header {\n\tmargin-bottom: 16px;\n}\n\n.weread-stats-header-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n\n.weread-stats-user-left {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tflex: 1;\n}\n\n.weread-stats-export-btn {\n\tmargin-left: auto;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 5px;\n\tfont-size: 0.82em;\n}\n\n.weread-stats-header-icon {\n\tcolor: var(--text-accent);\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.weread-stats-title {\n\tmargin: 0;\n\tfont-size: 1.3em;\n\tfont-weight: 700;\n\tcolor: var(--text-normal);\n}\n\n.weread-stats-user-avatar {\n\twidth: 48px;\n\theight: 48px;\n\tborder-radius: 50% !important;\n\tobject-fit: cover;\n\tflex-shrink: 0;\n\toverflow: hidden;\n\tborder: 2px solid var(--background-modifier-border);\n}\n\n.weread-stats-user-text {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n}\n\n.weread-stats-user-name {\n\tfont-size: 0.95em;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n\tline-height: 1.3;\n}\n\n.weread-stats-user-sub {\n\tfont-size: 0.78em;\n\tcolor: var(--text-muted);\n\tline-height: 1.3;\n}\n\n.weread-stats-header-actions {\n\tdisplay: flex;\n\tgap: 8px;\n\tflex-wrap: wrap;\n}\n\n.weread-stats-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 5px 12px;\n\tborder-radius: 6px;\n\tborder: 1px solid var(--background-modifier-border);\n\tbackground: var(--background-secondary);\n\tcolor: var(--text-normal);\n\tcursor: pointer;\n\tfont-size: 0.85em;\n\ttransition: background 0.15s;\n}\n\n.weread-stats-btn:hover {\n\tbackground: var(--background-modifier-hover);\n}\n\n.weread-stats-btn-icon {\n\tpadding: 5px 8px;\n}\n\n/* ── Nav (tab + timepicker row) ──────────────────────────────────────────── */\n.weread-stats-nav {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tmargin-bottom: 20px;\n}\n\n/* ── Tab Bar 胶囊 ─────────────────────────────────────────────────────────── */\n.weread-stats-tabbar {\n\tdisplay: inline-flex;\n\tgap: 6px;\n\tbackground: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 12px;\n\tpadding: 3px;\n\tflex-shrink: 0;\n}\n\n.weread-stats-tab {\n\twidth: 64px;\n\tpadding: 6px 0;\n\ttext-align: center;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\tfont-size: 0.9em;\n\tborder-radius: 9px;\n\ttransition: background 0.18s, color 0.18s;\n\twhite-space: nowrap;\n\tbox-sizing: border-box;\n}\n\n.weread-stats-tab:hover {\n\tcolor: var(--text-normal);\n\tbackground: var(--background-modifier-hover);\n}\n\n.weread-stats-tab.is-active {\n\tbackground: color-mix(in srgb, var(--interactive-accent) 18%, transparent);\n\tcolor: var(--text-accent);\n\tfont-weight: 600;\n\tbox-shadow: 0 1px 4px rgba(0,0,0,0.15);\n\tborder-radius: 9px;\n}\n\n/* ── Time Picker ─────────────────────────────────────────────────────────── */\n.weread-stats-timepicker {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tbackground: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 10px;\n\tpadding: 3px 8px;\n\tmargin-left: auto;\n\tflex-shrink: 0;\n}\n\n.weread-stats-timepicker-btn {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\tborder-radius: 7px;\n\tpadding: 0;\n\ttransition: background 0.15s, color 0.15s;\n}\n\n.weread-stats-timepicker-btn:hover:not([disabled]) {\n\tbackground: var(--background-modifier-hover);\n\tcolor: var(--text-normal);\n}\n\n.weread-stats-timepicker-btn.is-disabled,\n.weread-stats-timepicker-btn[disabled] {\n\topacity: 0.3;\n\tcursor: default;\n}\n\n.weread-stats-timepicker-label {\n\tfont-size: 0.88em;\n\tcolor: var(--text-normal);\n\tfont-weight: 500;\n\tpadding: 0 10px;\n\tmin-width: 90px;\n\ttext-align: center;\n\twhite-space: nowrap;\n}\n\n/* ── KPI Cards ───────────────────────────────────────────────────────────── */\n/* ── Hero 阅读时长 ───────────────────────────────────────────────────────── */\n.weread-stats-hero {\n\tpadding: 16px 20px 14px;\n\tmargin-bottom: 16px;\n\tbackground: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 14px;\n}\n\n.weread-stats-hero-num {\n\tdisplay: flex;\n\talign-items: baseline;\n\tgap: 2px;\n\tflex-wrap: wrap;\n\tline-height: 1;\n}\n\n.weread-stats-hero-big {\n\tfont-size: 2.6em;\n\tfont-weight: 700;\n\tcolor: var(--text-normal);\n\tletter-spacing: -0.02em;\n}\n\n.weread-stats-hero-unit {\n\tfont-size: 1.1em;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n\tmargin-right: 6px;\n}\n\n.weread-stats-hero-sub {\n\tmargin-top: 6px;\n\tfont-size: 0.82em;\n\tcolor: var(--text-muted);\n}\n\n.weread-stats-kpi-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(110px, 1fr));\n\tgap: 12px;\n\tmargin-bottom: 24px;\n}\n\n.weread-stats-kpi-card {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 10px;\n\tpadding: 14px 12px;\n\tbackground: var(--background-secondary);\n\tborder-radius: 10px;\n\tborder: 1px solid var(--background-modifier-border);\n}\n\n.weread-stats-kpi-icon {\n\tcolor: var(--text-accent);\n\tflex-shrink: 0;\n\tmargin-top: 2px;\n}\n\n.weread-stats-kpi-body {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.weread-stats-kpi-value {\n\tfont-size: 1em;\n\tfont-weight: 700;\n\tcolor: var(--text-normal);\n\tdisplay: flex;\n\talign-items: baseline;\n\tgap: 1px;\n}\n\n.weread-stats-kpi-number {\n\tfont-size: 1.6em;\n\tfont-weight: 700;\n\tline-height: 1;\n}\n\n.weread-stats-kpi-unit {\n\tfont-size: 0.95em;\n\tfont-weight: 600;\n}\n\n.weread-stats-kpi-label-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tmargin-top: 3px;\n}\n\n.weread-stats-kpi-label {\n\tfont-size: 0.78em;\n\tcolor: var(--text-muted);\n}\n\n.weread-stats-compare-badge {\n\tfont-size: 0.72em;\n\tpadding: 1px 5px;\n\tborder-radius: 4px;\n\tfont-weight: 600;\n}\n\n.weread-stats-compare-badge.is-up {\n\tbackground: rgba(72, 187, 120, 0.15);\n\tcolor: #48bb78;\n}\n\n.weread-stats-compare-badge.is-down {\n\tbackground: rgba(229, 62, 62, 0.15);\n\tcolor: #e53e3e;\n}\n\n/* ── Sections ────────────────────────────────────────────────────────────── */\n.weread-stats-section {\n\tmargin-bottom: 28px;\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.weread-stats-section-title {\n\tfont-size: 0.95em;\n\tfont-weight: 600;\n\tcolor: var(--text-muted);\n\tmargin: 0;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.04em;\n}\n\n/* ── Section title row with toggle ──────────────────────────────────────── */\n.weread-stats-section-title-row {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmargin-bottom: 12px;\n}\n\n.weread-stats-view-toggle {\n\tdisplay: flex;\n\tgap: 2px;\n\tbackground: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tpadding: 2px;\n}\n\n.weread-stats-view-toggle-btn {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\tborder-radius: 6px;\n\tpadding: 0;\n\ttransition: background 0.15s, color 0.15s;\n}\n\n.weread-stats-view-toggle-btn:hover {\n\tbackground: var(--background-modifier-hover);\n\tcolor: var(--text-normal);\n}\n\n.weread-stats-view-toggle-btn.is-active {\n\tbackground: rgba(var(--interactive-accent-rgb), 0.15);\n\tcolor: var(--text-accent);\n}\n\n/* ── Month Calendar ──────────────────────────────────────────────────────── */\n.weread-calendar {\n\twidth: 100%;\n}\n\n.weread-calendar-header {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(7, 1fr);\n\tgap: 4px;\n\tmargin-bottom: 4px;\n}\n\n.weread-calendar-dow {\n\ttext-align: center;\n\tfont-size: 0.78em;\n\tcolor: var(--text-faint);\n\tfont-weight: 600;\n\tpadding: 4px 0;\n}\n\n.weread-calendar-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(7, 1fr);\n\tgap: 4px;\n}\n\n.weread-calendar-cell {\n\tborder-radius: 8px;\n\tpadding: 6px 4px 5px;\n\tmin-height: 56px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 2px;\n\tbackground: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\ttransition: transform 0.1s;\n}\n\n.weread-calendar-cell.is-empty {\n\tbackground: transparent;\n\tborder-color: transparent;\n}\n\n.weread-calendar-cell:not(.is-empty):hover {\n\ttransform: translateY(-1px);\n}\n\n.weread-calendar-cell.is-today .weread-calendar-day {\n\tcolor: var(--text-accent);\n\tfont-weight: 700;\n}\n\n.weread-calendar-day {\n\tfont-size: 0.82em;\n\tcolor: var(--text-muted);\n\tfont-weight: 500;\n\tline-height: 1;\n}\n\n.weread-calendar-duration {\n\tfont-size: 0.7em;\n\tcolor: var(--text-accent);\n\tfont-weight: 600;\n\ttext-align: center;\n\tline-height: 1.2;\n}\n\n/* Calendar heatmap levels — shared by month calendar & year heatmap */\n.weread-cal-level-0 { background: var(--background-secondary); }\n.weread-cal-level-1 { background: color-mix(in srgb, var(--interactive-accent) 20%, var(--background-primary)); }\n.weread-cal-level-2 { background: color-mix(in srgb, var(--interactive-accent) 42%, var(--background-primary)); }\n.weread-cal-level-3 { background: color-mix(in srgb, var(--interactive-accent) 66%, var(--background-primary)); }\n.weread-cal-level-4 { background: var(--interactive-accent); }\n\n.weread-cal-level-3 .weread-calendar-day,\n.weread-cal-level-4 .weread-calendar-day { color: var(--text-on-accent); }\n.weread-cal-level-4 .weread-calendar-duration { color: var(--text-on-accent); opacity: 0.9; }\n.weread-cal-level-3 .weread-calendar-duration { color: var(--text-on-accent); opacity: 0.85; }\n\n/* ── All-years heatmap ───────────────────────────────────────────────────── */\n.weread-allheatmap-wrap {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 20px;\n}\n\n.weread-allheatmap-year {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n}\n\n.weread-allheatmap-yearlabel {\n\tfont-size: 0.85em;\n\tfont-weight: 600;\n\tcolor: var(--text-muted);\n\tmargin-bottom: 2px;\n}\n\n\n.weread-heatmap-loading {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 32px 0;\n}\n\n.weread-stats-spinner-sm {\n\twidth: 20px;\n\theight: 20px;\n\tborder-width: 2px;\n}\n\n.weread-ghmap-wrap {\n\twidth: 100%;\n\toverflow-x: hidden;\n\tpadding-bottom: 2px;\n}\n\n.weread-ghmap-inner {\n\tdisplay: flex;\n\tgap: 0;\n\twidth: 100%;\n}\n\n/* Weekday label column */\n.weread-ghmap-daylabels {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3px;\n\tpadding-top: 20px;\n\tflex-shrink: 0;\n\tmargin-right: 4px;\n}\n\n.weread-ghmap-daylabel {\n\twidth: 14px;\n\theight: 13px;\n\tfont-size: 0.7em;\n\tcolor: var(--text-faint);\n\tline-height: 13px;\n\ttext-align: right;\n}\n\n/* Right side: months + grid */\n.weread-ghmap-right {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: visible;\n}\n\n.weread-ghmap-months {\n\tdisplay: flex;\n}\n\n.weread-ghmap-monthlabel {\n\tfont-size: 0.75em;\n\tcolor: var(--text-faint);\n\tfont-weight: 500;\n\theight: 16px;\n\tline-height: 16px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\tflex: 1;\n}\n\n.weread-ghmap-grid {\n\tdisplay: flex;\n\tgap: 3px;\n}\n\n.weread-ghmap-col {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3px;\n\tflex: 1;\n}\n\n/* Individual cells */\n.weread-ghmap-cell {\n\twidth: 100%;\n\taspect-ratio: 1;\n\tborder-radius: 2px;\n\tcursor: default;\n\ttransition: opacity 0.1s, transform 0.1s;\n}\n\n.weread-ghmap-cell:hover:not(.is-empty) {\n\ttransform: scale(1.4);\n\tz-index: 10;\n\topacity: 1 !important;\n}\n\n.weread-ghmap-cell.is-empty {\n\tbackground: transparent !important;\n}\n\n.weread-ghmap-cell.is-today {\n\toutline: 2px solid var(--text-accent);\n\toutline-offset: 1px;\n}\n\n/* Intensity levels — level-0 = no reading (light grey), 1–4 = accent color */\n.weread-ghmap-cell.level-0 { background: var(--background-modifier-border); }\n.weread-ghmap-cell.level-1 { background: color-mix(in srgb, var(--interactive-accent) 28%, var(--background-primary)); }\n.weread-ghmap-cell.level-2 { background: color-mix(in srgb, var(--interactive-accent) 52%, var(--background-primary)); }\n.weread-ghmap-cell.level-3 { background: color-mix(in srgb, var(--interactive-accent) 75%, var(--background-primary)); }\n.weread-ghmap-cell.level-4 { background: var(--interactive-accent); }\n\n/* Legend */\n.weread-ghmap-legend {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 3px;\n\tmargin-top: 8px;\n\tjustify-content: flex-end;\n}\n\n.weread-ghmap-legend-cell {\n\twidth: 12px !important;\n\theight: 12px !important;\n\tflex: none !important;\n\taspect-ratio: unset !important;\n}\n\n.weread-ghmap-legend-text {\n\tfont-size: 0.75em;\n\tcolor: var(--text-faint);\n\tmargin: 0 2px;\n}\n\n.weread-heatmap-summary {\n\tfont-size: 0.8em;\n\tcolor: var(--text-muted);\n\tmargin-top: 8px;\n\ttext-align: center;\n}\n\n\n\n\n/* ── Bar Chart ───────────────────────────────────────────────────────────── */\n.weread-stats-chart-wrapper {\n\twidth: 100%;\n\toverflow-x: auto;\n}\n\n.weread-stats-bar-chart {\n\tdisplay: block;\n\twidth: 100%;\n\theight: auto;\n\tmin-width: 0;\n}\n\n.weread-stats-bar {\n\tfill: var(--text-accent);\n\topacity: 0.6;\n\ttransition: opacity 0.15s;\n}\n\n.weread-stats-bar.is-max {\n\topacity: 1;\n}\n\n.weread-stats-bar:hover {\n\topacity: 0.85;\n}\n\n.weread-stats-bar-label {\n\tfill: var(--text-muted);\n\tfont-size: 10px;\n}\n\n/* Y-axis scale */\n.weread-stats-scale-line {\n\tstroke: var(--background-modifier-border);\n\tstroke-width: 1;\n\tstroke-dasharray: 4 3;\n}\n\n.weread-stats-scale-label {\n\tfill: var(--text-faint);\n\tfont-size: 9px;\n}\n\n/* ── Top Books ───────────────────────────────────────────────────────────── */\n.weread-stats-book-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n\n.weread-stats-book-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tpadding: 4px 8px;\n\tbackground: var(--background-secondary);\n\tborder-radius: 8px;\n\tborder: 1px solid var(--background-modifier-border);\n\ttransition: background 0.15s;\n}\n\n.weread-stats-book-row-clickable {\n\tcursor: pointer;\n}\n\n.weread-stats-book-row-clickable:hover {\n\tbackground: var(--background-modifier-hover);\n\tborder-color: var(--text-accent);\n}\n\n.weread-stats-book-rank {\n\twidth: 22px;\n\theight: 22px;\n\tborder-radius: 50%;\n\tbackground: var(--background-modifier-border);\n\tcolor: var(--text-muted);\n\tfont-size: 0.75em;\n\tfont-weight: 700;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n}\n\n.weread-stats-book-cover {\n\twidth: 36px;\n\theight: 48px;\n\tobject-fit: cover;\n\tborder-radius: 4px;\n\tflex-shrink: 0;\n}\n\n.weread-stats-book-cover-placeholder {\n\tbackground: var(--background-modifier-border);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: var(--text-muted);\n}\n\n.weread-stats-book-info {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.weread-stats-book-title {\n\tfont-size: 0.9em;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.weread-stats-book-author {\n\tfont-size: 0.78em;\n\tcolor: var(--text-muted);\n\tmargin-top: 2px;\n}\n\n.weread-stats-book-tags {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 4px;\n\tmargin-top: 4px;\n}\n\n.weread-stats-tag {\n\tfont-size: 0.7em;\n\tpadding: 1px 6px;\n\tbackground: var(--tag-background);\n\tcolor: var(--tag-color);\n\tborder-radius: 99px;\n}\n\n.weread-stats-book-right {\n\tflex-shrink: 0;\n\ttext-align: right;\n\tmin-width: 80px;\n}\n\n.weread-stats-book-duration {\n\tfont-size: 0.82em;\n\tfont-weight: 600;\n\tcolor: var(--text-accent);\n\tmargin-bottom: 5px;\n}\n\n.weread-stats-mini-bar-track {\n\theight: 4px;\n\tbackground: var(--background-modifier-border);\n\tborder-radius: 2px;\n\toverflow: hidden;\n}\n\n.weread-stats-mini-bar-fill {\n\theight: 100%;\n\tbackground: var(--text-accent);\n\tborder-radius: 2px;\n\ttransition: width 0.4s ease;\n}\n\n/* ── Preferences ─────────────────────────────────────────────────────────── */\n.weread-stats-pref-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, minmax(0, 1fr));\n\tgap: 14px;\n}\n\n.weread-stats-pref-card {\n\tbackground: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 10px;\n\tpadding: 14px;\n\tmin-height: 160px;\n}\n\n.weread-stats-pref-card-wide {\n\tgrid-column: 1 / -1;\n}\n\n.weread-stats-pref-card-header {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-size: 0.88em;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n\tmargin-bottom: 10px;\n}\n\n.weread-stats-pref-subtitle {\n\tfont-size: 0.78em;\n\tcolor: var(--text-muted);\n\tmargin-bottom: 10px;\n\tfont-style: italic;\n}\n\n.weread-stats-pref-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-bottom: 7px;\n}\n\n.weread-stats-pref-name {\n\twidth: 72px;\n\tfont-size: 0.8em;\n\tcolor: var(--text-normal);\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tflex-shrink: 0;\n}\n\n.weread-stats-pref-bar-track {\n\tflex: 1;\n\theight: 6px;\n\tbackground: var(--background-modifier-border);\n\tborder-radius: 3px;\n\toverflow: hidden;\n}\n\n/* author row: wider name, progress bar fills remaining space */\n.weread-stats-pref-row-author .weread-stats-pref-name {\n\twidth: 80px;\n}\n\n.weread-stats-pref-bar-fill {\n\theight: 100%;\n\tbackground: var(--text-accent);\n\tborder-radius: 3px;\n\ttransition: width 0.4s ease;\n}\n\n.weread-stats-pref-meta {\n\tfont-size: 0.75em;\n\tcolor: var(--text-muted);\n\tflex-shrink: 0;\n\twhite-space: nowrap;\n}\n\n/* ── Hour Chart ──────────────────────────────────────────────────────────── */\n/* ── Hour chart (SVG-based, replaces old div bars) ───────────────────────── */\n.weread-stats-hour-seg-bar {\n\ttransition: opacity 0.15s;\n\tcursor: default;\n}\n.weread-stats-hour-seg-bar:hover { opacity: 0.8; }\n\n/* Time-of-day color variables */\n:root {\n\t--weread-hour-morning: #7c6af7;\n\t--weread-hour-afternoon: #f97316;\n\t--weread-hour-evening: #ec4899;\n\t--weread-hour-night: #6b7280;\n}\n.theme-dark {\n\t--weread-hour-morning: #a78bfa;\n\t--weread-hour-afternoon: #fb923c;\n\t--weread-hour-evening: #f472b6;\n\t--weread-hour-night: #9ca3af;\n}\n\n.weread-stats-hour-legend {\n\tdisplay: flex;\n\tgap: 12px;\n\tflex-wrap: wrap;\n\tmargin-top: 8px;\n}\n.weread-stats-hour-legend-item {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n}\n.weread-stats-hour-legend-dot {\n\twidth: 8px;\n\theight: 8px;\n\tborder-radius: 50%;\n\tflex-shrink: 0;\n}\n.weread-stats-hour-legend-label {\n\tfont-size: 0.76em;\n\tcolor: var(--text-muted);\n}\n\n/* ── Pie Chart ───────────────────────────────────────────────────────────── */\n/* ── Radar Chart ─────────────────────────────────────────────────────────── */\n.weread-stats-radar-svg {\n\tdisplay: block;\n\tmargin: 8px auto 0;\n}\n\n.weread-stats-radar-ring {\n\tfill: none;\n\tstroke: var(--background-modifier-border);\n\tstroke-width: 1;\n}\n\n.weread-stats-radar-axis {\n\tstroke: var(--background-modifier-border);\n\tstroke-width: 1;\n}\n\n.weread-stats-radar-area {\n\tstroke: #5aabf0;\n\tstroke-width: 1.5;\n\topacity: 0.85;\n}\n\n.weread-stats-radar-dot {\n\tfill: white;\n\tstroke: #5aabf0;\n\tstroke-width: 1.5;\n}\n\n.weread-stats-radar-label {\n\tfill: var(--text-muted);\n\tfont-size: 9px;\n}\n\n.weread-stats-radar-label.is-top {\n\tfill: var(--text-normal);\n\tfont-size: 11px;\n\tfont-weight: 600;\n}\n\n/* ── Tag Cloud ───────────────────────────────────────────────────────────── */\n.weread-stats-tag-cloud {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\talign-items: center;\n\tpadding: 8px 0;\n}\n.weread-stats-cloud-tag {\n\tcolor: var(--text-accent);\n\tcursor: default;\n\tline-height: 1.4;\n\ttransition: opacity 0.15s;\n}\n.weread-stats-cloud-tag:hover { opacity: 1 !important; }\n\n/* ── Info Grid ───────────────────────────────────────────────────────────── */\n.weread-stats-info-grid {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 16px;\n}\n\n.weread-stats-info-item {\n\tbackground: var(--background-secondary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tpadding: 10px 16px;\n}\n\n.weread-stats-info-label {\n\tfont-size: 0.75em;\n\tcolor: var(--text-muted);\n\tmargin-bottom: 3px;\n}\n\n.weread-stats-info-value {\n\tfont-size: 1em;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n}\n\n/* ── Empty States ────────────────────────────────────────────────────────── */\n.weread-stats-empty {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 60px 20px;\n\tgap: 12px;\n\ttext-align: center;\n}\n\n.weread-stats-empty-icon {\n\tcolor: var(--text-muted);\n\topacity: 0.5;\n}\n\n.weread-stats-empty-text {\n\tcolor: var(--text-normal);\n\tfont-size: 0.95em;\n}\n\n.weread-stats-empty-hint {\n\tcolor: var(--text-muted);\n\tfont-size: 0.82em;\n}\n\n/* ── Spinner ─────────────────────────────────────────────────────────────── */\n.weread-stats-spinner {\n\twidth: 32px;\n\theight: 32px;\n\tborder: 3px solid var(--background-modifier-border);\n\tborder-top-color: var(--text-accent);\n\tborder-radius: 50%;\n\tanimation: weread-spin 0.8s linear infinite;\n}\n\n@keyframes weread-spin {\n\tto { transform: rotate(360deg); }\n}\n\n/* ── Export Preview Modal ────────────────────────────────────────────────── */\n.weread-export-modal .modal-content {\n\tpadding: 20px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n\talign-items: center;\n}\n\n.weread-export-title {\n\tmargin: 0 0 4px 0;\n\tfont-size: 1.1em;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n\talign-self: flex-start;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n}\n\n.weread-export-title-icon {\n\tdisplay: flex;\n\talign-items: center;\n\tcolor: var(--text-accent);\n}\n\n.weread-export-preview {\n\twidth: 100%;\n\tmax-height: 60vh;\n\toverflow-y: auto;\n\tborder-radius: 8px;\n\tborder: 1px solid var(--background-modifier-border);\n\tbackground: var(--background-secondary);\n}\n\n.weread-export-preview-img {\n\twidth: 100%;\n\tdisplay: block;\n\tborder-radius: 8px;\n}\n\n.weread-export-actions {\n\tdisplay: flex;\n\tgap: 10px;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\twidth: 100%;\n\tmargin-top: 8px;\n\tpadding-top: 16px;\n\tborder-top: 1px solid var(--background-modifier-border);\n}\n\n.weread-export-action-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 8px 16px;\n\tborder-radius: 6px;\n\tfont-size: 0.9em;\n\tcursor: pointer;\n\tborder: 1px solid var(--background-modifier-border);\n\tbackground: var(--background-secondary);\n\tcolor: var(--text-normal);\n\ttransition: background 0.15s;\n}\n\n.weread-export-action-btn:hover {\n\tbackground: var(--background-modifier-hover);\n}\n\n.weread-export-action-btn.mod-cta {\n\tbackground: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n\tborder-color: var(--interactive-accent);\n}\n\n.weread-export-action-btn.mod-cta:hover {\n\tbackground: var(--interactive-accent-hover);\n}\n\n/* ── Export Loading Modal ──────────────────────────────────────────────────── */\n.weread-export-loading-modal .modal-content {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 40px 60px;\n}\n\n.weread-export-loading-wrap {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 16px;\n}\n\n.weread-export-loading-text {\n\tfont-size: 0.95em;\n\tcolor: var(--text-muted);\n}\n\n/* ── Book Detail View ────────────────────────────────────────────────────────── */\n\n.weread-book-detail-view {\n\tdisplay: block;\n\theight: 100%;\n\toverflow-y: auto;\n\toverflow-x: hidden;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\tmax-width: 100%;\n\tpadding: 0 !important;\n}\n\n/* Header */\n.weread-book-detail-header {\n\tmargin: 12px 16px 0px 16px;\n\tpadding: 16px 24px;\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tbackground: var(--background-secondary);\n\tposition: relative;\n\tbox-sizing: border-box;\n\twidth: calc(100% - 32px);\n\toverflow-x: hidden;\n\toverflow-y: visible;\n}\n\n@media (max-width: 768px) {\n\t.weread-book-detail-header {\n\t\tmargin: 8px 12px 0px 12px;\n\t\tpadding: 12px 16px;\n\t\twidth: calc(100% - 24px);\n\t}\n}\n\n@media (max-width: 480px) {\n\t.weread-book-detail-header {\n\t\tmargin: 6px 8px 0px 8px;\n\t\tpadding: 10px 12px;\n\t}\n}\n\n.weread-book-detail-back-btn {\n\tposition: absolute;\n\ttop: 12px;\n\tleft: 12px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 6px;\n\tbackground: none;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\ttransition: color 0.15s, background 0.15s;\n\tz-index: 1;\n}\n\n.weread-book-detail-back-btn:hover {\n\tcolor: var(--text-normal);\n\tbackground: var(--background-modifier-hover);\n}\n\n.weread-book-detail-header-top {\n\tdisplay: flex;\n\tgap: 16px;\n\talign-items: flex-start;\n}\n\n@media (max-width: 768px) {\n\t.weread-book-detail-header-top {\n\t\tgap: 10px;\n\t}\n}\n\n/* Keep horizontal layout on all screen sizes */\n\n.weread-book-detail-cover {\n\theight: 200px;\n\twidth: auto;\n\tborder-radius: 4px;\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n\tflex-shrink: 0;\n}\n\n@media (max-width: 768px) {\n\t.weread-book-detail-cover {\n\t\theight: 180px;\n\t\twidth: auto;\n\t}\n}\n\n@media (max-width: 480px) {\n\t.weread-book-detail-cover {\n\t\theight: 150px;\n\t}\n}\n\n.weread-book-detail-cover.is-clickable {\n\tcursor: pointer;\n}\n\n.weread-book-detail-cover.is-clickable:hover {\n\topacity: 0.85;\n}\n\n.weread-book-detail-info {\n\tflex: 1;\n\tmin-width: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3px;\n}\n\n@media (max-width: 768px) {\n\t.weread-book-detail-info {\n\t\twidth: auto;\n\t\ttext-align: left;\n\t}\n}\n\n/* Main info section - always visible */\n.weread-book-detail-info-main {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3px;\n}\n\n/* Expandable info section - collapsible */\n.weread-book-detail-info-expand {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tmargin-top: 4px;\n\tpadding-top: 4px;\n\tborder-top: 1px solid var(--background-modifier-border);\n\t/* Default expanded state */\n}\n\n.weread-book-detail-info-expand.is-collapsed {\n\tdisplay: none;\n\t/* Collapsed state - hide all content */\n}\n\n/* Toggle button for expand/collapse - desktop hidden, mobile icon-only */\n.weread-book-detail-toggle-btn {\n\tdisplay: none;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 0;\n\tbackground: none;\n\tborder: none;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\tborder-radius: 0;\n\ttransition: all 0.15s;\n\tposition: absolute;\n\ttop: 8px;\n\tright: 8px;\n}\n\n.weread-book-detail-toggle-btn:hover {\n\tcolor: var(--interactive-accent);\n\tbackground: none;\n}\n\n/* Toggle button icon animation */\n.weread-book-detail-toggle-btn svg {\n\ttransition: transform 0.2s ease;\n\twidth: 20px;\n\theight: 20px;\n}\n\n.weread-book-detail-toggle-btn.is-expanded svg {\n\ttransform: rotate(180deg);\n}\n\n/* Show toggle button only on mobile */\n@media (max-width: 768px) {\n\t.weread-book-detail-toggle-btn {\n\t\tdisplay: flex;\n\t}\n\n\t.weread-book-detail-info {\n\t\tposition: relative;\n\t}\n}\n\n.weread-book-detail-title-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n\n.weread-book-detail-title {\n\tmargin: 0;\n\tfont-size: 1.2em;\n\tfont-weight: 600;\n\tline-height: 1.4;\n}\n\n.weread-book-detail-title.is-clickable {\n\tcursor: pointer;\n}\n\n.weread-book-detail-title.is-clickable:hover {\n\tcolor: var(--interactive-accent);\n}\n\n.weread-book-detail-author {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tmargin: 0;\n\tfont-size: 0.9em;\n\tcolor: var(--text-muted);\n}\n\n.weread-book-detail-rating {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n\tmargin-top: 2px;\n}\n\n.weread-book-detail-rating-icon {\n\tcolor: var(--color-orange);\n\tflex-shrink: 0;\n\tmargin-right: -8px;\n}\n\n.weread-star {\n\tcolor: var(--text-faint);\n\tfont-size: 0.9em;\n}\n\n.weread-star.is-filled {\n\tcolor: var(--color-orange);\n}\n\n.weread-book-detail-rating-value {\n\tfont-weight: 600;\n\tfont-size: 0.95em;\n\tmargin-left: -2px;\n}\n\n.weread-book-detail-rating-count {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n}\n\n.weread-book-detail-progress {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tmargin-top: 4px;\n}\n\n.weread-book-detail-progress-icon {\n\tcolor: var(--text-muted);\n\tflex-shrink: 0;\n}\n\n.weread-book-detail-progress-bar {\n\tflex: 1;\n\tmax-width: 180px;\n\theight: 6px;\n\tbackground: var(--background-modifier-border);\n\tborder-radius: 3px;\n\toverflow: hidden;\n}\n\n.weread-book-detail-progress-fill {\n\theight: 100%;\n\tbackground: var(--interactive-accent);\n\tborder-radius: 3px;\n\ttransition: width 0.3s ease;\n}\n\n.weread-book-detail-progress-text {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n\tfont-weight: 500;\n}\n\n/* Metadata Row */\n.weread-book-detail-metadata {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 4px 12px;\n\tmargin-top: 4px;\n}\n\n@media (max-width: 768px) {\n\t.weread-book-detail-metadata {\n\t\tgap: 3px 10px;\n\t\tfont-size: 0.75em;\n\t}\n}\n\n.weread-book-detail-meta-item {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tfont-size: 0.82em;\n\tcolor: var(--text-muted);\n\twhite-space: nowrap;\n}\n\n.weread-book-detail-meta-item .svg-icon {\n\twidth: 13px;\n\theight: 13px;\n\tflex-shrink: 0;\n\tposition: relative;\n\ttop: 0;\n}\n\n.weread-book-detail-meta-item::before {\n\tcontent: none;\n}\n\n.weread-book-detail-meta-item:first-child::before {\n\tcontent: none;\n}\n\n.weread-book-detail-status-reading {\n\tcolor: var(--color-green);\n\tfont-weight: 500;\n}\n\n.weread-book-detail-status-finished {\n\tcolor: var(--color-blue);\n\tfont-weight: 500;\n}\n\n.weread-book-detail-stats-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tmargin-top: 8px;\n\tpadding-top: 8px;\n\tborder-top: 1px solid var(--background-modifier-border);\n\tflex-wrap: wrap;\n}\n\n@media (max-width: 768px) {\n\t.weread-book-detail-stats-row {\n\t\tflex-wrap: wrap;\n\t\tgap: 8px;\n\t}\n}\n\n.weread-book-detail-stat {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tfont-size: 0.82em;\n\tcolor: var(--text-muted);\n}\n\n.weread-book-detail-stat.is-clickable {\n\tcursor: pointer;\n\tborder-radius: 4px;\n\tpadding: 2px 6px;\n\tmargin: -2px -6px;\n}\n\n.weread-book-detail-stat.is-clickable:hover {\n\tcolor: var(--interactive-accent);\n\tbackground: var(--background-modifier-hover);\n}\n\n/* Intro */\n.weread-book-detail-intro-text {\n\tfont-size: 0.82em;\n\tline-height: 1.5;\n\tcolor: var(--text-muted);\n\tword-break: break-word;\n\tmargin-top: 8px;\n}\n\n.weread-book-detail-intro-text.is-collapsed {\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 3;\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n}\n\n.weread-book-detail-intro-toggle {\n\talign-self: flex-start;\n\tfont-size: 0.78em;\n\tpadding: 2px 8px;\n\tcolor: var(--text-faint);\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n}\n\n.weread-book-detail-intro-toggle:hover {\n\tcolor: var(--interactive-accent);\n}\n\n/* Tab Bar */\n.weread-book-detail-tabbar {\n\tdisplay: flex;\n\tpadding: 6px 16px;\n\tbackground: var(--background-primary);\n\tflex-wrap: wrap;\n\tgap: 4px;\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 20;\n\tborder: none !important;\n\tmargin: 0;\n\twidth: 100%;\n\tbox-sizing: border-box;\n\toverflow-x: hidden;\n}\n\n/* Tab bar 固定在顶部时的样式 */\n.weread-book-detail-tabbar.is-fixed {\n\tposition: fixed;\n\tleft: 0;\n\tright: 0;\n\ttop: 0;\n\ttransform: none;\n\tborder: none !important;\n\tmargin: 0;\n\twidth: auto;\n}\n\n@media (max-width: 480px) {\n\t.weread-book-detail-tabbar {\n\t\tpadding: 6px 8px;\n\t}\n\n\t.weread-book-detail-tab {\n\t\tpadding: 4px 10px;\n\t\tfont-size: 0.8em;\n\t}\n}\n\n.weread-book-detail-tab {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 6px 14px;\n\tborder: none;\n\tbackground: none;\n\tcolor: var(--text-muted);\n\tfont-size: 0.9em;\n\tcursor: pointer;\n\tborder-radius: 20px;\n\ttransition: color 0.15s, background 0.15s;\n}\n\n.weread-book-detail-tab-label {\n\t/* 默认显示 */\n}\n\n@media (max-width: 768px) {\n\t.weread-book-detail-tab-label {\n\t\tdisplay: none;\n\t}\n\n\t.weread-book-detail-tab {\n\t\tpadding: 4px 8px;\n\t\twidth: 36px;\n\t\theight: 36px;\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n}\n\n.weread-book-detail-tab:hover {\n\tcolor: var(--text-normal);\n\tbackground: var(--background-secondary);\n}\n\n.weread-book-detail-tab.is-active {\n\tcolor: var(--interactive-accent);\n\tbackground: var(--background-modifier-hover);\n}\n\n/* 右侧圆形操作按钮 */\n.weread-book-detail-tab-action {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 36px;\n\theight: 36px;\n\tpadding: 0;\n\tborder: none;\n\tbackground: none;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\tborder-radius: 50%;\n\ttransition: color 0.15s, background 0.15s;\n\tposition: relative;\n}\n\n.weread-book-detail-tab-action .svg-icon {\n\twidth: 18px;\n\theight: 18px;\n}\n\n.weread-book-detail-tab-action:hover {\n\tcolor: var(--text-normal);\n\tbackground: var(--background-secondary);\n}\n\n.weread-book-detail-tab-action:hover::after {\n\tcontent: attr(title);\n\tposition: absolute;\n\tbottom: calc(100% + 4px);\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tpadding: 4px 8px;\n\tborder-radius: 4px;\n\tbackground: var(--background-modifier-hover);\n\tcolor: var(--text-normal);\n\tfont-size: 11px;\n\twhite-space: nowrap;\n\tz-index: 100;\n\tpointer-events: none;\n}\n\n.weread-book-detail-tab-action.is-spinning svg {\n\tanimation: weread-spin 0.8s linear infinite;\n}\n\n.weread-book-detail-tabbar-spacer {\n\tflex: 1;\n}\n\n@keyframes weread-spin {\n\t\tfrom { transform: rotate(0deg); }\n\t\tto { transform: rotate(360deg); }\n\t}\n\n\n/* Content */\n.weread-book-detail-content {\n\tpadding: 16px 16px;\n\tmargin: 0px 16px 12px 16px;\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 8px;\n\tbackground: var(--background-secondary);\n\tbox-sizing: border-box;\n\twidth: calc(100% - 32px);\n\toverflow-x: hidden;\n\toverflow-y: visible;\n}\n\n@media (max-width: 480px) {\n\t.weread-book-detail-header {\n\t\twidth: calc(100% - 16px);\n\t}\n\n\t.weread-book-detail-content {\n\t\twidth: calc(100% - 16px);\n\t\tpadding: 12px 12px;\n\t\tmargin: 0px 8px 8px 8px;\n\t}\n}\n\n/* Status States */\n.weread-book-detail-status {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\theight: 100%;\n\tgap: 12px;\n}\n\n.weread-book-detail-loading {\n\tfont-size: 0.95em;\n\tcolor: var(--text-muted);\n}\n\n.weread-book-detail-empty {\n\tfont-size: 0.95em;\n\tcolor: var(--text-muted);\n\tpadding: 40px 0;\n\ttext-align: center;\n}\n\n.weread-book-detail-error {\n\tfont-size: 0.95em;\n\tcolor: var(--text-error);\n}\n\n.weread-book-detail-retry-btn {\n\tpadding: 6px 16px;\n}\n\n/* Section (chapter group) */\n.weread-book-detail-section {\n\tmargin-bottom: 20px;\n}\n\n.weread-book-detail-section-title {\n\tmargin: 0 0 10px;\n\tfont-size: 1em;\n\tfont-weight: 600;\n\tcolor: var(--text-normal);\n\tpadding-bottom: 6px;\n\tborder-bottom: 1px solid var(--background-modifier-border);\n}\n\n/* Highlight Card */\n.weread-book-detail-hl-card {\n\tmargin-bottom: 10px;\n\tpadding: 8px 10px;\n\tbackground: var(--background-primary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 6px;\n\ttransition: border-color 0.15s;\n}\n\n.weread-book-detail-hl-card:hover {\n\tborder-color: var(--interactive-accent);\n\tbackground: var(--background-secondary);\n}\n\n/* 左侧颜色引用边线 */\n.weread-book-detail-hl-quote {\n\tborder-left: 3px solid #e6c300;\n\tpadding-left: 8px;\n\tmargin-bottom: 2px;\n}\n\n.weread-book-detail-hl-card.hl-color-yellow .weread-book-detail-hl-quote { border-left-color: #f5c842; }\n.weread-book-detail-hl-card.hl-color-blue .weread-book-detail-hl-quote { border-left-color: #5b9bd5; }\n.weread-book-detail-hl-card.hl-color-green .weread-book-detail-hl-quote { border-left-color: #6cbf6c; }\n.weread-book-detail-hl-card.hl-color-red .weread-book-detail-hl-quote { border-left-color: #e07070; }\n.weread-book-detail-hl-card.hl-color-purple .weread-book-detail-hl-quote { border-left-color: #b47cc7; }\n\n.weread-book-detail-hl-text {\n\tfont-size: 0.9em;\n\tline-height: 1.4;\n\tcolor: var(--text-normal);\n\tword-break: break-word;\n}\n\n.weread-book-detail-hl-meta {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-top: 2px;\n}\n\n.weread-book-detail-hl-meta-item {\n\tfont-size: 0.78em;\n\tcolor: var(--text-faint);\n}\n\n.weread-book-detail-hl-style-badge {\n\tfont-size: 0.75em;\n\tpadding: 1px 6px;\n\tborder-radius: 3px;\n\tbackground: var(--background-modifier-hover);\n\tcolor: var(--text-muted);\n}\n\n.weread-book-detail-hl-color-badge {\n\tfont-size: 0.75em;\n\tpadding: 1px 6px;\n\tborder-radius: 3px;\n\tcolor: #fff;\n}\n\n.weread-book-detail-hl-color-badge.hl-color-yellow {\n\tbackground: #c9a018;\n}\n\n.weread-book-detail-hl-color-badge.hl-color-blue {\n\tbackground: #3d7eb5;\n}\n\n.weread-book-detail-hl-color-badge.hl-color-green {\n\tbackground: #4a9a4a;\n}\n\n.weread-book-detail-hl-color-badge.hl-color-red {\n\tbackground: #c05050;\n}\n\n.weread-book-detail-hl-color-badge.hl-color-purple {\n\tbackground: #8c5e9e;\n}\n\n.weread-book-detail-hl-note {\n\tdisplay: flex;\n\talign-items: center;\n\tcolor: var(--interactive-accent);\n\tcursor: help;\n\tmargin-left: auto;\n}\n\n/* Note Card */\n.weread-book-detail-note-card {\n\tmargin-bottom: 12px;\n\tpadding: 12px;\n\tbackground: var(--background-primary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 6px;\n}\n\n.weread-book-detail-note-ref {\n\tdisplay: flex;\n\tgap: 6px;\n\tmargin-bottom: 4px;\n\tpadding: 8px 10px;\n\tbackground: var(--background-secondary);\n\tborder-left: 3px solid var(--interactive-accent);\n\tborder-radius: 4px;\n}\n\n.weread-book-detail-note-ref-icon {\n\tcolor: var(--text-faint);\n\tflex-shrink: 0;\n\tmargin-top: 2px;\n}\n\n.weread-book-detail-note-ref-text {\n\tfont-size: 0.85em;\n\tcolor: var(--text-muted);\n\tline-height: 1.5;\n\tword-break: break-word;\n}\n\n.weread-book-detail-note-content {\n\tfont-size: 0.9em;\n\tline-height: 1.6;\n\tcolor: var(--text-normal);\n\tword-break: break-word;\n}\n\n.weread-book-detail-note-meta {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-top: 2px;\n\tflex-wrap: wrap;\n}\n\n/* Popular Highlight Card */\n.weread-book-detail-popular-card {\n\tmargin-bottom: 10px;\n\tpadding: 8px 10px;\n\tbackground: var(--background-primary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-left: 3px solid var(--color-orange);\n\tborder-radius: 6px;\n}\n\n.weread-book-detail-popular-text {\n\tfont-size: 0.9em;\n\tline-height: 1.6;\n\tcolor: var(--text-normal);\n\tword-break: break-word;\n}\n\n.weread-book-detail-popular-meta {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-top: 2px;\n\tflex-wrap: wrap;\n}\n\n.weread-book-detail-popular-count {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n\tfont-size: 0.8em;\n\tcolor: var(--color-orange);\n\tfont-weight: 500;\n}\n\n/* Load More Button */\n.weread-book-detail-loadmore {\n\ttext-align: center;\n\tpadding: 12px;\n\tcolor: var(--text-muted);\n\tfont-size: 0.85em;\n}\n\n.weread-book-detail-loadmore-btn {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 8px;\n\tmargin-top: 8px;\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 6px;\n\tbackground: var(--background-secondary);\n\tcolor: var(--text-muted);\n\tfont-size: 0.85em;\n\tcursor: pointer;\n\ttransition: background 0.15s, color 0.15s;\n}\n\n.weread-book-detail-loadmore-btn:hover {\n\tbackground: var(--background-modifier-hover);\n\tcolor: var(--text-normal);\n}\n\n/* Review Card */\n.weread-book-detail-review-card {\n\tmargin-bottom: 12px;\n\tpadding: 12px;\n\tbackground: var(--background-primary);\n\tborder: 1px solid var(--background-modifier-border);\n\tborder-radius: 6px;\n}\n\n.weread-book-detail-review-author {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tmargin-bottom: 4px;\n}\n\n.weread-book-detail-review-avatar {\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 50%;\n\tobject-fit: cover;\n\tflex-shrink: 0;\n}\n\n.weread-book-detail-review-author-info {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n}\n\n.weread-book-detail-review-author-name {\n\tfont-size: 0.9em;\n\tfont-weight: 500;\n\tcolor: var(--text-normal);\n}\n\n.weread-book-detail-review-time {\n\tfont-size: 0.75em;\n\tcolor: var(--text-faint);\n}\n\n.weread-book-detail-review-title {\n\tfont-size: 0.95em;\n\tfont-weight: 600;\n\tmargin-bottom: 6px;\n\tcolor: var(--text-normal);\n}\n\n.weread-book-detail-review-content {\n\tfont-size: 0.88em;\n\tline-height: 1.6;\n\tcolor: var(--text-muted);\n\tword-break: break-word;\n}\n\n/* 操作按钮 */\n.weread-book-detail-hl-actions {\n\tdisplay: flex;\n\tgap: 4px;\n\tmargin-left: auto;\n\tmargin-top: 0;\n}\n\n.weread-book-detail-action-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 22px;\n\theight: 22px;\n\tpadding: 0;\n\tborder: none !important;\n\toutline: none !important;\n\tbox-shadow: none !important;\n\t-webkit-appearance: none !important;\n\tappearance: none !important;\n\tborder-radius: 4px;\n\tbackground: transparent !important;\n\tcolor: var(--text-muted);\n\tcursor: pointer;\n\tflex-shrink: 0;\n\tposition: relative;\n}\n\n.weread-book-detail-action-btn:hover {\n\tbackground: var(--background-modifier-hover);\n\tcolor: var(--text-normal);\n}\n\n.weread-book-detail-action-btn:hover::after {\n\tcontent: attr(title);\n\tposition: absolute;\n\tbottom: calc(100% + 4px);\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tpadding: 4px 8px;\n\tborder-radius: 4px;\n\tbackground: var(--background-modifier-hover);\n\tcolor: var(--text-normal);\n\tfont-size: 11px;\n\twhite-space: nowrap;\n\tz-index: 100;\n\tpointer-events: none;\n}\n\n/* ── 加载更多按钮 ────────────────────────────────────────────── */\n\n.weread-book-detail-load-more {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: 16px 0;\n\tmargin-top: 8px;\n\tborder-top: 1px solid var(--background-modifier-border);\n}\n\n.weread-book-detail-load-more-btn {\n\tpadding: 8px 16px;\n\tborder-radius: 6px;\n\tborder: 1px solid var(--interactive-accent);\n\tbackground: transparent;\n\tcolor: var(--interactive-accent);\n\tfont-size: 0.9em;\n\tfont-weight: 500;\n\tcursor: pointer;\n\ttransition: all 0.15s;\n}\n\n.weread-book-detail-load-more-btn:hover:not(:disabled) {\n\tbackground: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n}\n\n.weread-book-detail-load-more-btn:disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n}\n\n/* ── 悬浮按钮 ──────────────────────────────────────────────── */\n\n.weread-floating-btn {\n\tposition: fixed;\n\tz-index: 10;\n\tbottom: 120px;\n\tright: 24px;\n\twidth: 36px;\n\theight: 36px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: var(--interactive-accent);\n\tcolor: var(--text-on-accent);\n\tborder-radius: 50%;\n\tcursor: pointer;\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n\topacity: 0.85;\n\ttransition: opacity 0.15s, transform 0.15s;\n}\n\n.weread-floating-btn:hover {\n\topacity: 1;\n\ttransform: scale(1.08);\n}\n\n.weread-floating-btn svg {\n\twidth: 18px;\n\theight: 18px;\n}\n\n/* 移动端悬浮按钮放大,方便点击 */\n.is-mobile .weread-floating-btn {\n\twidth: 52px;\n\theight: 52px;\n\tbottom: 100px;\n\tright: 20px;\n}\n\n.is-mobile .weread-floating-btn svg {\n\twidth: 26px;\n\theight: 26px;\n}\n\n/* ── 浮层面板 ──────────────────────────────────────────────── */\n\n/* API Key 输入框内的眼睛按钮 */\n.weread-eye-btn {\n\tposition: absolute !important;\n\tright: 8px !important;\n\ttop: 50% !important;\n\ttransform: translateY(-50%) !important;\n\tmargin: 0 !important;\n\tpadding: 0 !important;\n}\n\n.weread-eye-btn.extra-settings-button {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n",""]);const s=a},6314(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r}).join("")},t.i=function(e,r,n,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(a[l]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);n&&a[d[0]]||(void 0!==i&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),r&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=r):d[2]=r),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},1601(e){"use strict";e.exports=function(e){return e[1]}},3762(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.attributeRules=void 0;var o=n(r(1264)),i=/[-[\]{}()*+?.,\\^$|#\s]/g;function a(e){return e.replace(i,"\\$&")}var s=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function l(e,t){return"boolean"==typeof e.ignoreCase?e.ignoreCase:"quirks"===e.ignoreCase?!!t.quirksMode:!t.xmlMode&&s.has(e.name)}t.attributeRules={equals:function(e,t,r){var n=r.adapter,o=t.name,i=t.value;return l(t,r)?(i=i.toLowerCase(),function(t){var r=n.getAttributeValue(t,o);return null!=r&&r.length===i.length&&r.toLowerCase()===i&&e(t)}):function(t){return n.getAttributeValue(t,o)===i&&e(t)}},hyphen:function(e,t,r){var n=r.adapter,o=t.name,i=t.value,a=i.length;return l(t,r)?(i=i.toLowerCase(),function(t){var r=n.getAttributeValue(t,o);return null!=r&&(r.length===a||"-"===r.charAt(a))&&r.substr(0,a).toLowerCase()===i&&e(t)}):function(t){var r=n.getAttributeValue(t,o);return null!=r&&(r.length===a||"-"===r.charAt(a))&&r.substr(0,a)===i&&e(t)}},element:function(e,t,r){var n=r.adapter,i=t.name,s=t.value;if(/\s/.test(s))return o.default.falseFunc;var c=new RegExp("(?:^|\\s)".concat(a(s),"(?:$|\\s)"),l(t,r)?"i":"");return function(t){var r=n.getAttributeValue(t,i);return null!=r&&r.length>=s.length&&c.test(r)&&e(t)}},exists:function(e,t,r){var n=t.name,o=r.adapter;return function(t){return o.hasAttrib(t,n)&&e(t)}},start:function(e,t,r){var n=r.adapter,i=t.name,a=t.value,s=a.length;return 0===s?o.default.falseFunc:l(t,r)?(a=a.toLowerCase(),function(t){var r=n.getAttributeValue(t,i);return null!=r&&r.length>=s&&r.substr(0,s).toLowerCase()===a&&e(t)}):function(t){var r;return!!(null===(r=n.getAttributeValue(t,i))||void 0===r?void 0:r.startsWith(a))&&e(t)}},end:function(e,t,r){var n=r.adapter,i=t.name,a=t.value,s=-a.length;return 0===s?o.default.falseFunc:l(t,r)?(a=a.toLowerCase(),function(t){var r;return(null===(r=n.getAttributeValue(t,i))||void 0===r?void 0:r.substr(s).toLowerCase())===a&&e(t)}):function(t){var r;return!!(null===(r=n.getAttributeValue(t,i))||void 0===r?void 0:r.endsWith(a))&&e(t)}},any:function(e,t,r){var n=r.adapter,i=t.name,s=t.value;if(""===s)return o.default.falseFunc;if(l(t,r)){var c=new RegExp(a(s),"i");return function(t){var r=n.getAttributeValue(t,i);return null!=r&&r.length>=s.length&&c.test(r)&&e(t)}}return function(t){var r;return!!(null===(r=n.getAttributeValue(t,i))||void 0===r?void 0:r.includes(s))&&e(t)}},not:function(e,t,r){var n=r.adapter,o=t.name,i=t.value;return""===i?function(t){return!!n.getAttributeValue(t,o)&&e(t)}:l(t,r)?(i=i.toLowerCase(),function(t){var r=n.getAttributeValue(t,o);return(null==r||r.length!==i.length||r.toLowerCase()!==i)&&e(t)}):function(t){return n.getAttributeValue(t,o)!==i&&e(t)}}}},8118(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.compileToken=t.compileUnsafe=t.compile=void 0;var s=r(4090),l=a(r(1264)),c=i(r(6491)),d=r(5327),u=r(5234);function p(e,t,r){return v("string"==typeof e?(0,s.parse)(e):e,t,r)}function h(e){return e.type===s.SelectorType.Pseudo&&("scope"===e.name||Array.isArray(e.data)&&e.data.some(function(e){return e.some(h)}))}t.compile=function(e,t,r){var n=p(e,t,r);return(0,u.ensureIsTag)(n,t.adapter)},t.compileUnsafe=p;var f={type:s.SelectorType.Descendant},g={type:"_flexibleDescendant"},m={type:s.SelectorType.Pseudo,name:"scope",data:null};function v(e,t,r){var n;e.forEach(c.default),r=null!==(n=t.context)&&void 0!==n?n:r;var o=Array.isArray(r),i=r&&(Array.isArray(r)?r:[r]);if(!1!==t.relativeSelector)!function(e,t,r){for(var n=t.adapter,o=!!(null==r?void 0:r.every(function(e){var t=n.isTag(e)&&n.getParent(e);return e===u.PLACEHOLDER_ELEMENT||t&&n.isTag(t)})),i=0,a=e;i<a.length;i++){var l=a[i];if(l.length>0&&(0,c.isTraversal)(l[0])&&l[0].type!==s.SelectorType.Descendant);else{if(!o||l.some(h))continue;l.unshift(f)}l.unshift(m)}}(e,t,i);else if(e.some(function(e){return e.length>0&&(0,c.isTraversal)(e[0])}))throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");var a=!1,p=e.map(function(e){if(e.length>=2){var r=e[0],n=e[1];r.type!==s.SelectorType.Pseudo||"scope"!==r.name||(o&&n.type===s.SelectorType.Descendant?e[1]=g:n.type!==s.SelectorType.Adjacent&&n.type!==s.SelectorType.Sibling||(a=!0))}return function(e,t,r){var n;return e.reduce(function(e,n){return e===l.default.falseFunc?l.default.falseFunc:(0,d.compileGeneralSelector)(e,n,t,r,v)},null!==(n=t.rootFunc)&&void 0!==n?n:l.default.trueFunc)}(e,t,i)}).reduce(b,l.default.falseFunc);return p.shouldTestNextSiblings=a,p}function b(e,t){return t===l.default.falseFunc||e===l.default.trueFunc?e:e===l.default.falseFunc||t===l.default.trueFunc?t:function(r){return e(r)||t(r)}}t.compileToken=v},5327(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compileGeneralSelector=void 0;var n=r(3762),o=r(8161),i=r(4090);function a(e,t){var r=t.getParent(e);return r&&t.isTag(r)?r:null}t.compileGeneralSelector=function(e,t,r,s,l){var c=r.adapter,d=r.equals;switch(t.type){case i.SelectorType.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case i.SelectorType.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case i.SelectorType.Attribute:if(null!=t.namespace)throw new Error("Namespaced attributes are not yet supported by css-select");return r.xmlMode&&!r.lowerCaseAttributeNames||(t.name=t.name.toLowerCase()),n.attributeRules[t.action](e,t,r);case i.SelectorType.Pseudo:return(0,o.compilePseudoSelector)(e,t,r,s,l);case i.SelectorType.Tag:if(null!=t.namespace)throw new Error("Namespaced tag names are not yet supported by css-select");var u=t.name;return r.xmlMode&&!r.lowerCaseTags||(u=u.toLowerCase()),function(t){return c.getName(t)===u&&e(t)};case i.SelectorType.Descendant:if(!1===r.cacheResults||"undefined"==typeof WeakSet)return function(t){for(var r=t;r=a(r,c);)if(e(r))return!0;return!1};var p=new WeakSet;return function(t){for(var r=t;r=a(r,c);)if(!p.has(r)){if(c.isTag(r)&&e(r))return!0;p.add(r)}return!1};case"_flexibleDescendant":return function(t){var r=t;do{if(e(r))return!0}while(r=a(r,c));return!1};case i.SelectorType.Parent:return function(t){return c.getChildren(t).some(function(t){return c.isTag(t)&&e(t)})};case i.SelectorType.Child:return function(t){var r=c.getParent(t);return null!=r&&c.isTag(r)&&e(r)};case i.SelectorType.Sibling:return function(t){for(var r=c.getSiblings(t),n=0;n<r.length;n++){var o=r[n];if(d(t,o))break;if(c.isTag(o)&&e(o))return!0}return!1};case i.SelectorType.Adjacent:return c.prevElementSibling?function(t){var r=c.prevElementSibling(t);return null!=r&&e(r)}:function(t){for(var r,n=c.getSiblings(t),o=0;o<n.length;o++){var i=n[o];if(d(t,i))break;c.isTag(i)&&(r=i)}return!!r&&e(r)};case i.SelectorType.Universal:if(null!=t.namespace&&"*"!==t.namespace)throw new Error("Namespaced universal selectors are not yet supported by css-select");return e}}},2603(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.aliases=t.pseudos=t.filters=t.is=t.selectOne=t.selectAll=t.prepareContext=t._compileToken=t._compileUnsafe=t.compile=void 0;var s=i(r(8888)),l=a(r(1264)),c=r(8118),d=r(5234),u=function(e,t){return e===t},p={adapter:s,equals:u};function h(e){var t,r,n,o,i=null!=e?e:p;return null!==(t=i.adapter)&&void 0!==t||(i.adapter=s),null!==(r=i.equals)&&void 0!==r||(i.equals=null!==(o=null===(n=i.adapter)||void 0===n?void 0:n.equals)&&void 0!==o?o:u),i}function f(e){return function(t,r,n){var o=h(r);return e(t,o,n)}}function g(e){return function(t,r,n){var o=h(n);"function"!=typeof t&&(t=(0,c.compileUnsafe)(t,o,r));var i=m(r,o.adapter,t.shouldTestNextSiblings);return e(t,i,o)}}function m(e,t,r){return void 0===r&&(r=!1),r&&(e=function(e,t){for(var r=Array.isArray(e)?e.slice(0):[e],n=r.length,o=0;o<n;o++){var i=(0,d.getNextSiblings)(r[o],t);r.push.apply(r,i)}return r}(e,t)),Array.isArray(e)?t.removeSubsets(e):t.getChildren(e)}t.compile=f(c.compile),t._compileUnsafe=f(c.compileUnsafe),t._compileToken=f(c.compileToken),t.prepareContext=m,t.selectAll=g(function(e,t,r){return e!==l.default.falseFunc&&t&&0!==t.length?r.adapter.findAll(e,t):[]}),t.selectOne=g(function(e,t,r){return e!==l.default.falseFunc&&t&&0!==t.length?r.adapter.findOne(e,t):null}),t.is=function(e,t,r){var n=h(r);return("function"==typeof t?t:(0,c.compile)(t,n))(e)},t.default=t.selectAll;var v=r(8161);Object.defineProperty(t,"filters",{enumerable:!0,get:function(){return v.filters}}),Object.defineProperty(t,"pseudos",{enumerable:!0,get:function(){return v.pseudos}}),Object.defineProperty(t,"aliases",{enumerable:!0,get:function(){return v.aliases}})},9433(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.aliases=void 0,t.aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )",enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"}},6310(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.filters=void 0;var o=n(r(3172)),i=n(r(1264));function a(e,t){return function(r){var n=t.getParent(r);return null!=n&&t.isTag(n)&&e(r)}}function s(e){return function(t,r,n){var o=n.adapter[e];return"function"!=typeof o?i.default.falseFunc:function(e){return o(e)&&t(e)}}}t.filters={contains:function(e,t,r){var n=r.adapter;return function(r){return e(r)&&n.getText(r).includes(t)}},icontains:function(e,t,r){var n=r.adapter,o=t.toLowerCase();return function(t){return e(t)&&n.getText(t).toLowerCase().includes(o)}},"nth-child":function(e,t,r){var n=r.adapter,s=r.equals,l=(0,o.default)(t);return l===i.default.falseFunc?i.default.falseFunc:l===i.default.trueFunc?a(e,n):function(t){for(var r=n.getSiblings(t),o=0,i=0;i<r.length&&!s(t,r[i]);i++)n.isTag(r[i])&&o++;return l(o)&&e(t)}},"nth-last-child":function(e,t,r){var n=r.adapter,s=r.equals,l=(0,o.default)(t);return l===i.default.falseFunc?i.default.falseFunc:l===i.default.trueFunc?a(e,n):function(t){for(var r=n.getSiblings(t),o=0,i=r.length-1;i>=0&&!s(t,r[i]);i--)n.isTag(r[i])&&o++;return l(o)&&e(t)}},"nth-of-type":function(e,t,r){var n=r.adapter,s=r.equals,l=(0,o.default)(t);return l===i.default.falseFunc?i.default.falseFunc:l===i.default.trueFunc?a(e,n):function(t){for(var r=n.getSiblings(t),o=0,i=0;i<r.length;i++){var a=r[i];if(s(t,a))break;n.isTag(a)&&n.getName(a)===n.getName(t)&&o++}return l(o)&&e(t)}},"nth-last-of-type":function(e,t,r){var n=r.adapter,s=r.equals,l=(0,o.default)(t);return l===i.default.falseFunc?i.default.falseFunc:l===i.default.trueFunc?a(e,n):function(t){for(var r=n.getSiblings(t),o=0,i=r.length-1;i>=0;i--){var a=r[i];if(s(t,a))break;n.isTag(a)&&n.getName(a)===n.getName(t)&&o++}return l(o)&&e(t)}},root:function(e,t,r){var n=r.adapter;return function(t){var r=n.getParent(t);return(null==r||!n.isTag(r))&&e(t)}},scope:function(e,r,n,o){var i=n.equals;return o&&0!==o.length?1===o.length?function(t){return i(o[0],t)&&e(t)}:function(t){return o.includes(t)&&e(t)}:t.filters.root(e,r,n)},hover:s("isHovered"),visited:s("isVisited"),active:s("isActive")}},8161(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compilePseudoSelector=t.aliases=t.pseudos=t.filters=void 0;var n=r(4090),o=r(6310);Object.defineProperty(t,"filters",{enumerable:!0,get:function(){return o.filters}});var i=r(682);Object.defineProperty(t,"pseudos",{enumerable:!0,get:function(){return i.pseudos}});var a=r(9433);Object.defineProperty(t,"aliases",{enumerable:!0,get:function(){return a.aliases}});var s=r(5234);t.compilePseudoSelector=function(e,t,r,l,c){var d,u=t.name,p=t.data;if(Array.isArray(p)){if(!(u in s.subselects))throw new Error("Unknown pseudo-class :".concat(u,"(").concat(p,")"));return s.subselects[u](e,p,r,l,c)}var h=null===(d=r.pseudos)||void 0===d?void 0:d[u],f="string"==typeof h?h:a.aliases[u];if("string"==typeof f){if(null!=p)throw new Error("Pseudo ".concat(u," doesn't have any arguments"));var g=(0,n.parse)(f);return s.subselects.is(e,g,r,l,c)}if("function"==typeof h)return(0,i.verifyPseudoArgs)(h,u,p,1),function(t){return h(t,p)&&e(t)};if(u in o.filters)return o.filters[u](e,p,r,l);if(u in i.pseudos){var m=i.pseudos[u];return(0,i.verifyPseudoArgs)(m,u,p,2),function(t){return m(t,r,p)&&e(t)}}throw new Error("Unknown pseudo-class :".concat(u))}},682(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.verifyPseudoArgs=t.pseudos=void 0,t.pseudos={empty:function(e,t){var r=t.adapter;return!r.getChildren(e).some(function(e){return r.isTag(e)||""!==r.getText(e)})},"first-child":function(e,t){var r=t.adapter,n=t.equals;if(r.prevElementSibling)return null==r.prevElementSibling(e);var o=r.getSiblings(e).find(function(e){return r.isTag(e)});return null!=o&&n(e,o)},"last-child":function(e,t){for(var r=t.adapter,n=t.equals,o=r.getSiblings(e),i=o.length-1;i>=0;i--){if(n(e,o[i]))return!0;if(r.isTag(o[i]))break}return!1},"first-of-type":function(e,t){for(var r=t.adapter,n=t.equals,o=r.getSiblings(e),i=r.getName(e),a=0;a<o.length;a++){var s=o[a];if(n(e,s))return!0;if(r.isTag(s)&&r.getName(s)===i)break}return!1},"last-of-type":function(e,t){for(var r=t.adapter,n=t.equals,o=r.getSiblings(e),i=r.getName(e),a=o.length-1;a>=0;a--){var s=o[a];if(n(e,s))return!0;if(r.isTag(s)&&r.getName(s)===i)break}return!1},"only-of-type":function(e,t){var r=t.adapter,n=t.equals,o=r.getName(e);return r.getSiblings(e).every(function(t){return n(e,t)||!r.isTag(t)||r.getName(t)!==o})},"only-child":function(e,t){var r=t.adapter,n=t.equals;return r.getSiblings(e).every(function(t){return n(e,t)||!r.isTag(t)})}},t.verifyPseudoArgs=function(e,t,r,n){if(null===r){if(e.length>n)throw new Error("Pseudo-class :".concat(t," requires an argument"))}else if(e.length===n)throw new Error("Pseudo-class :".concat(t," doesn't have any arguments"))}},5234(e,t,r){"use strict";var n=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.subselects=t.getNextSiblings=t.ensureIsTag=t.PLACEHOLDER_ELEMENT=void 0;var i=o(r(1264)),a=r(6491);function s(e,t){return e===i.default.falseFunc?i.default.falseFunc:function(r){return t.isTag(r)&&e(r)}}function l(e,t){var r=t.getSiblings(e);if(r.length<=1)return[];var n=r.indexOf(e);return n<0||n===r.length-1?[]:r.slice(n+1).filter(t.isTag)}function c(e){return{xmlMode:!!e.xmlMode,lowerCaseAttributeNames:!!e.lowerCaseAttributeNames,lowerCaseTags:!!e.lowerCaseTags,quirksMode:!!e.quirksMode,cacheResults:!!e.cacheResults,pseudos:e.pseudos,adapter:e.adapter,equals:e.equals}}t.PLACEHOLDER_ELEMENT={},t.ensureIsTag=s,t.getNextSiblings=l;var d=function(e,t,r,n,o){var a=o(t,c(r),n);return a===i.default.trueFunc?e:a===i.default.falseFunc?i.default.falseFunc:function(t){return a(t)&&e(t)}};t.subselects={is:d,matches:d,where:d,not:function(e,t,r,n,o){var a=o(t,c(r),n);return a===i.default.falseFunc?e:a===i.default.trueFunc?i.default.falseFunc:function(t){return!a(t)&&e(t)}},has:function(e,r,o,d,u){var p=o.adapter,h=c(o);h.relativeSelector=!0;var f=r.some(function(e){return e.some(a.isTraversal)})?[t.PLACEHOLDER_ELEMENT]:void 0,g=u(r,h,f);if(g===i.default.falseFunc)return i.default.falseFunc;var m=s(g,p);if(f&&g!==i.default.trueFunc){var v=g.shouldTestNextSiblings,b=void 0!==v&&v;return function(t){if(!e(t))return!1;f[0]=t;var r=p.getChildren(t),o=b?n(n([],r,!0),l(t,p),!0):r;return p.existsOne(m,o)}}return function(t){return e(t)&&p.existsOne(m,p.getChildren(t))}}}},6491(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isTraversal=void 0;var n=r(4090),o=new Map([[n.SelectorType.Universal,50],[n.SelectorType.Tag,30],[n.SelectorType.Attribute,1],[n.SelectorType.Pseudo,0]]);t.isTraversal=function(e){return!o.has(e.type)};var i=new Map([[n.AttributeAction.Exists,10],[n.AttributeAction.Equals,8],[n.AttributeAction.Not,7],[n.AttributeAction.Start,6],[n.AttributeAction.End,6],[n.AttributeAction.Any,5]]);function a(e){var t,r,s=null!==(t=o.get(e.type))&&void 0!==t?t:-1;return e.type===n.SelectorType.Attribute?(s=null!==(r=i.get(e.action))&&void 0!==r?r:4,e.action===n.AttributeAction.Equals&&"id"===e.name&&(s=9),e.ignoreCase&&(s>>=1)):e.type===n.SelectorType.Pseudo&&(e.data?"has"===e.name||"contains"===e.name?s=0:Array.isArray(e.data)?(s=Math.min.apply(Math,e.data.map(function(e){return Math.min.apply(Math,e.map(a))})))<0&&(s=0):s=2:s=3),s}t.default=function(e){for(var t=e.map(a),r=1;r<e.length;r++){var n=t[r];if(!(n<0))for(var o=r-1;o>=0&&n<t[o];o--){var i=e[o+1];e[o+1]=e[o],e[o]=i,t[o+1]=t[o],t[o]=n}}}},4090(e,t,r){"use strict";var n;r.r(t),r.d(t,{AttributeAction:()=>i,IgnoreCaseMode:()=>o,SelectorType:()=>n,isTraversal:()=>d,parse:()=>m,stringify:()=>E}),function(e){e.Attribute="attribute",e.Pseudo="pseudo",e.PseudoElement="pseudo-element",e.Tag="tag",e.Universal="universal",e.Adjacent="adjacent",e.Child="child",e.Descendant="descendant",e.Parent="parent",e.Sibling="sibling",e.ColumnCombinator="column-combinator"}(n||(n={}));const o={Unknown:null,QuirksMode:"quirks",IgnoreCase:!0,CaseSensitive:!1};var i;!function(e){e.Any="any",e.Element="element",e.End="end",e.Equals="equals",e.Exists="exists",e.Hyphen="hyphen",e.Not="not",e.Start="start"}(i||(i={}));const a=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,s=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,l=new Map([[126,i.Element],[94,i.Start],[36,i.End],[42,i.Any],[33,i.Not],[124,i.Hyphen]]),c=new Set(["has","not","matches","is","where","host","host-context"]);function d(e){switch(e.type){case n.Adjacent:case n.Child:case n.Descendant:case n.Parent:case n.Sibling:case n.ColumnCombinator:return!0;default:return!1}}const u=new Set(["contains","icontains"]);function p(e,t,r){const n=parseInt(t,16)-65536;return n!=n||r?t:n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)}function h(e){return e.replace(s,p)}function f(e){return 39===e||34===e}function g(e){return 32===e||9===e||10===e||12===e||13===e}function m(e){const t=[],r=v(t,`${e}`,0);if(r<e.length)throw new Error(`Unmatched selector: ${e.slice(r)}`);return t}function v(e,t,r){let o=[];function s(e){const n=t.slice(r+e).match(a);if(!n)throw new Error(`Expected name, found ${t.slice(r)}`);const[o]=n;return r+=e+o.length,h(o)}function p(e){for(r+=e;r<t.length&&g(t.charCodeAt(r));)r++}function m(){const e=r+=1;let n=1;for(;n>0&&r<t.length;r++)40!==t.charCodeAt(r)||b(r)?41!==t.charCodeAt(r)||b(r)||n--:n++;if(n)throw new Error("Parenthesis not matched");return h(t.slice(e,r-1))}function b(e){let r=0;for(;92===t.charCodeAt(--e);)r++;return!(1&~r)}function w(){if(o.length>0&&d(o[o.length-1]))throw new Error("Did not expect successive traversals.")}function y(e){o.length>0&&o[o.length-1].type===n.Descendant?o[o.length-1].type=e:(w(),o.push({type:e}))}function x(e,t){o.push({type:n.Attribute,name:e,action:t,value:s(1),namespace:null,ignoreCase:"quirks"})}function k(){if(o.length&&o[o.length-1].type===n.Descendant&&o.pop(),0===o.length)throw new Error("Empty sub-selector");e.push(o)}if(p(0),t.length===r)return r;e:for(;r<t.length;){const e=t.charCodeAt(r);switch(e){case 32:case 9:case 10:case 12:case 13:0!==o.length&&o[0].type===n.Descendant||(w(),o.push({type:n.Descendant})),p(1);break;case 62:y(n.Child),p(1);break;case 60:y(n.Parent),p(1);break;case 126:y(n.Sibling),p(1);break;case 43:y(n.Adjacent),p(1);break;case 46:x("class",i.Element);break;case 35:x("id",i.Equals);break;case 91:{let e;p(1);let a=null;124===t.charCodeAt(r)?e=s(1):t.startsWith("*|",r)?(a="*",e=s(2)):(e=s(0),124===t.charCodeAt(r)&&61!==t.charCodeAt(r+1)&&(a=e,e=s(1))),p(0);let c=i.Exists;const d=l.get(t.charCodeAt(r));if(d){if(c=d,61!==t.charCodeAt(r+1))throw new Error("Expected `=`");p(2)}else 61===t.charCodeAt(r)&&(c=i.Equals,p(1));let u="",m=null;if("exists"!==c){if(f(t.charCodeAt(r))){const e=t.charCodeAt(r);let n=r+1;for(;n<t.length&&(t.charCodeAt(n)!==e||b(n));)n+=1;if(t.charCodeAt(n)!==e)throw new Error("Attribute value didn't end");u=h(t.slice(r+1,n)),r=n+1}else{const e=r;for(;r<t.length&&(!g(t.charCodeAt(r))&&93!==t.charCodeAt(r)||b(r));)r+=1;u=h(t.slice(e,r))}p(0);const e=32|t.charCodeAt(r);115===e?(m=!1,p(1)):105===e&&(m=!0,p(1))}if(93!==t.charCodeAt(r))throw new Error("Attribute selector didn't terminate");r+=1;const v={type:n.Attribute,name:e,action:c,value:u,namespace:a,ignoreCase:m};o.push(v);break}case 58:{if(58===t.charCodeAt(r+1)){o.push({type:n.PseudoElement,name:s(2).toLowerCase(),data:40===t.charCodeAt(r)?m():null});continue}const e=s(1).toLowerCase();let i=null;if(40===t.charCodeAt(r))if(c.has(e)){if(f(t.charCodeAt(r+1)))throw new Error(`Pseudo-selector ${e} cannot be quoted`);if(i=[],r=v(i,t,r+1),41!==t.charCodeAt(r))throw new Error(`Missing closing parenthesis in :${e} (${t})`);r+=1}else{if(i=m(),u.has(e)){const e=i.charCodeAt(0);e===i.charCodeAt(i.length-1)&&f(e)&&(i=i.slice(1,-1))}i=h(i)}o.push({type:n.Pseudo,name:e,data:i});break}case 44:k(),o=[],p(1);break;default:{if(t.startsWith("/*",r)){const e=t.indexOf("*/",r+2);if(e<0)throw new Error("Comment was not terminated");r=e+2,0===o.length&&p(0);break}let i,l=null;if(42===e)r+=1,i="*";else if(124===e){if(i="",124===t.charCodeAt(r+1)){y(n.ColumnCombinator),p(2);break}}else{if(!a.test(t.slice(r)))break e;i=s(0)}124===t.charCodeAt(r)&&124!==t.charCodeAt(r+1)&&(l=i,42===t.charCodeAt(r+1)?(i="*",r+=2):i=s(1)),o.push("*"===i?{type:n.Universal,namespace:l}:{type:n.Tag,name:i,namespace:l})}}}return k(),r}const b=["\\",'"'],w=[...b,"(",")"],y=new Set(b.map(e=>e.charCodeAt(0))),x=new Set(w.map(e=>e.charCodeAt(0))),k=new Set([...w,"~","^","$","*","+","!","|",":","[","]"," ","."].map(e=>e.charCodeAt(0)));function E(e){return e.map(e=>e.map(T).join("")).join(", ")}function T(e,t,r){switch(e.type){case n.Child:return 0===t?"> ":" > ";case n.Parent:return 0===t?"< ":" < ";case n.Sibling:return 0===t?"~ ":" ~ ";case n.Adjacent:return 0===t?"+ ":" + ";case n.Descendant:return" ";case n.ColumnCombinator:return 0===t?"|| ":" || ";case n.Universal:return"*"===e.namespace&&t+1<r.length&&"name"in r[t+1]?"":`${D(e.namespace)}*`;case n.Tag:return S(e);case n.PseudoElement:return`::${A(e.name,k)}${null===e.data?"":`(${A(e.data,x)})`}`;case n.Pseudo:return`:${A(e.name,k)}${null===e.data?"":`(${"string"==typeof e.data?A(e.data,x):E(e.data)})`}`;case n.Attribute:{if("id"===e.name&&e.action===i.Equals&&"quirks"===e.ignoreCase&&!e.namespace)return`#${A(e.value,k)}`;if("class"===e.name&&e.action===i.Element&&"quirks"===e.ignoreCase&&!e.namespace)return`.${A(e.value,k)}`;const t=S(e);return e.action===i.Exists?`[${t}]`:`[${t}${function(e){switch(e){case i.Equals:return"";case i.Element:return"~";case i.Start:return"^";case i.End:return"$";case i.Any:return"*";case i.Not:return"!";case i.Hyphen:return"|";case i.Exists:throw new Error("Shouldn't be here")}}(e.action)}="${A(e.value,y)}"${null===e.ignoreCase?"":e.ignoreCase?" i":" s"}]`}}}function S(e){return`${D(e.namespace)}${A(e.name,k)}`}function D(e){return null!==e?`${"*"===e?"*":A(e,k)}|`:""}function A(e,t){let r=0,n="";for(let o=0;o<e.length;o++)t.has(e.charCodeAt(o))&&(n+=`${e.slice(r,o)}\\${e.charAt(o)}`,r=o+1);return n.length>0?n+e.slice(r):e}},4460(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(function(e){return[e.toLowerCase(),e]})),t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(function(e){return[e.toLowerCase(),e]}))},3806(e,t,r){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)},o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.render=void 0;var s=a(r(5413)),l=r(2730),c=r(4460),d=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function u(e){return e.replace(/"/g,""")}var p=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function h(e,t){void 0===t&&(t={});for(var r=("length"in e?e:[e]),n="",o=0;o<r.length;o++)n+=f(r[o],t);return n}function f(e,t){switch(e.type){case s.Root:return h(e.children,t);case s.Doctype:case s.Directive:return"<".concat(e.data,">");case s.Comment:return"\x3c!--".concat(e.data,"--\x3e");case s.CDATA:return function(e){return"<![CDATA[".concat(e.children[0].data,"]]>")}(e);case s.Script:case s.Style:case s.Tag:return function(e,t){var r;"foreign"===t.xmlMode&&(e.name=null!==(r=c.elementNames.get(e.name))&&void 0!==r?r:e.name,e.parent&&g.has(e.parent.name)&&(t=n(n({},t),{xmlMode:!1}))),!t.xmlMode&&m.has(e.name)&&(t=n(n({},t),{xmlMode:"foreign"}));var o="<".concat(e.name),i=function(e,t){var r;if(e){var n=!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)?u:t.xmlMode||"utf8"!==t.encodeEntities?l.encodeXML:l.escapeAttribute;return Object.keys(e).map(function(r){var o,i,a=null!==(o=e[r])&&void 0!==o?o:"";return"foreign"===t.xmlMode&&(r=null!==(i=c.attributeNames.get(r))&&void 0!==i?i:r),t.emptyAttrs||t.xmlMode||""!==a?"".concat(r,'="').concat(n(a),'"'):r}).join(" ")}}(e.attribs,t);return i&&(o+=" ".concat(i)),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&p.has(e.name))?(t.xmlMode||(o+=" "),o+="/>"):(o+=">",e.children.length>0&&(o+=h(e.children,t)),!t.xmlMode&&p.has(e.name)||(o+="</".concat(e.name,">"))),o}(e,t);case s.Text:return function(e,t){var r,n=e.data||"";return!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)||!t.xmlMode&&e.parent&&d.has(e.parent.name)||(n=t.xmlMode||"utf8"!==t.encodeEntities?(0,l.encodeXML)(n):(0,l.escapeText)(n)),n}(e,t)}}t.render=h,t.default=h;var g=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),m=new Set(["svg","math"])},5413(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(r=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===r.Tag||e.type===r.Script||e.type===r.Style},t.Root=r.Root,t.Text=r.Text,t.Directive=r.Directive,t.Comment=r.Comment,t.Script=r.Script,t.Style=r.Style,t.Tag=r.Tag,t.CDATA=r.CDATA,t.Doctype=r.Doctype},1141(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var i=r(5413),a=r(6957);o(r(6957),t);var s={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,r){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(r=t,t=s),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:s,this.elementCB=null!=r?r:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var r=this.options.xmlMode?i.ElementType.Tag:void 0,n=new a.Element(e,t,void 0,r);this.addNode(n),this.tagStack.push(n)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===i.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var r=new a.Text(e);this.addNode(r),this.lastNode=r}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===i.ElementType.Comment)this.lastNode.data+=e;else{var t=new a.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new a.Text(""),t=new a.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var r=new a.ProcessingInstruction(e,t);this.addNode(r)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],r=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),r&&(e.prev=r,r.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},6957(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.cloneNode=t.hasChildren=t.isDocument=t.isDirective=t.isComment=t.isText=t.isCDATA=t.isTag=t.Element=t.Document=t.CDATA=t.NodeWithChildren=t.ProcessingInstruction=t.Comment=t.Text=t.DataNode=t.Node=void 0;var a=r(5413),s=function(){function e(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent},set:function(e){this.parent=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev},set:function(e){this.prev=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next},set:function(e){this.next=e},enumerable:!1,configurable:!0}),e.prototype.cloneNode=function(e){return void 0===e&&(e=!1),k(this,e)},e}();t.Node=s;var l=function(e){function t(t){var r=e.call(this)||this;return r.data=t,r}return o(t,e),Object.defineProperty(t.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!1,configurable:!0}),t}(s);t.DataNode=l;var c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.Text,t}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),t}(l);t.Text=c;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.Comment,t}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),t}(l);t.Comment=d;var u=function(e){function t(t,r){var n=e.call(this,r)||this;return n.name=t,n.type=a.ElementType.Directive,n}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),t}(l);t.ProcessingInstruction=u;var p=function(e){function t(t){var r=e.call(this)||this;return r.children=t,r}return o(t,e),Object.defineProperty(t.prototype,"firstChild",{get:function(){var e;return null!==(e=this.children[0])&&void 0!==e?e:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(s);t.NodeWithChildren=p;var h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.CDATA,t}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(p);t.CDATA=h;var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.Root,t}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(p);t.Document=f;var g=function(e){function t(t,r,n,o){void 0===n&&(n=[]),void 0===o&&(o="script"===t?a.ElementType.Script:"style"===t?a.ElementType.Style:a.ElementType.Tag);var i=e.call(this,n)||this;return i.name=t,i.attribs=r,i.type=o,i}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map(function(t){var r,n;return{name:t,value:e.attribs[t],namespace:null===(r=e["x-attribsNamespace"])||void 0===r?void 0:r[t],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[t]}})},enumerable:!1,configurable:!0}),t}(p);function m(e){return(0,a.isTag)(e)}function v(e){return e.type===a.ElementType.CDATA}function b(e){return e.type===a.ElementType.Text}function w(e){return e.type===a.ElementType.Comment}function y(e){return e.type===a.ElementType.Directive}function x(e){return e.type===a.ElementType.Root}function k(e,t){var r;if(void 0===t&&(t=!1),b(e))r=new c(e.data);else if(w(e))r=new d(e.data);else if(m(e)){var n=t?E(e.children):[],o=new g(e.name,i({},e.attribs),n);n.forEach(function(e){return e.parent=o}),null!=e.namespace&&(o.namespace=e.namespace),e["x-attribsNamespace"]&&(o["x-attribsNamespace"]=i({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(o["x-attribsPrefix"]=i({},e["x-attribsPrefix"])),r=o}else if(v(e)){n=t?E(e.children):[];var a=new h(n);n.forEach(function(e){return e.parent=a}),r=a}else if(x(e)){n=t?E(e.children):[];var s=new f(n);n.forEach(function(e){return e.parent=s}),e["x-mode"]&&(s["x-mode"]=e["x-mode"]),r=s}else{if(!y(e))throw new Error("Not implemented yet: ".concat(e.type));var l=new u(e.name,e.data);null!=e["x-name"]&&(l["x-name"]=e["x-name"],l["x-publicId"]=e["x-publicId"],l["x-systemId"]=e["x-systemId"]),r=l}return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function E(e){for(var t=e.map(function(e){return k(e,!0)}),r=1;r<t.length;r++)t[r].prev=t[r-1],t[r-1].next=t[r];return t}t.Element=g,t.isTag=m,t.isCDATA=v,t.isText=b,t.isComment=w,t.isDirective=y,t.isDocument=x,t.hasChildren=function(e){return Object.prototype.hasOwnProperty.call(e,"children")},t.cloneNode=k},4437(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFeed=function(e){var t=l(u,e);return t?"feed"===t.name?function(e){var t,r=e.children,n={type:"atom",items:(0,o.getElementsByTagName)("entry",r).map(function(e){var t,r=e.children,n={media:s(r)};d(n,"id","id",r),d(n,"title","title",r);var o=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;o&&(n.link=o);var i=c("summary",r)||c("content",r);i&&(n.description=i);var a=c("updated",r);return a&&(n.pubDate=new Date(a)),n})};d(n,"id","id",r),d(n,"title","title",r);var i=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;i&&(n.link=i),d(n,"description","subtitle",r);var a=c("updated",r);return a&&(n.updated=new Date(a)),d(n,"author","email",r,!0),n}(t):function(e){var t,r,n=null!==(r=null===(t=l("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==r?r:[],i={type:e.name.substr(0,3),id:"",items:(0,o.getElementsByTagName)("item",e.children).map(function(e){var t=e.children,r={media:s(t)};d(r,"id","guid",t),d(r,"title","title",t),d(r,"link","link",t),d(r,"description","description",t);var n=c("pubDate",t)||c("dc:date",t);return n&&(r.pubDate=new Date(n)),r})};d(i,"title","title",n),d(i,"link","link",n),d(i,"description","description",n);var a=c("lastBuildDate",n);return a&&(i.updated=new Date(a)),d(i,"author","managingEditor",n,!0),i}(t):null};var n=r(6037),o=r(3209),i=["url","type","lang"],a=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function s(e){return(0,o.getElementsByTagName)("media:content",e).map(function(e){for(var t=e.attribs,r={medium:t.medium,isDefault:!!t.isDefault},n=0,o=i;n<o.length;n++)t[c=o[n]]&&(r[c]=t[c]);for(var s=0,l=a;s<l.length;s++){var c;t[c=l[s]]&&(r[c]=parseInt(t[c],10))}return t.expression&&(r.expression=t.expression),r})}function l(e,t){return(0,o.getElementsByTagName)(e,t,!0,1)[0]}function c(e,t,r){return void 0===r&&(r=!1),(0,n.textContent)((0,o.getElementsByTagName)(e,t,r,1)).trim()}function d(e,t,r,n,o){void 0===o&&(o=!1);var i=c(r,n,o);i&&(e[t]=i)}function u(e){return"rss"===e||"feed"===e||"rdf:RDF"===e}},5397(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocumentPosition=void 0,t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var n=r.parent;n;n=n.parent)if(e.includes(n)){e.splice(t,1);break}}return e},t.compareDocumentPosition=i,t.uniqueSort=function(e){return(e=e.filter(function(e,t,r){return!r.includes(e,t+1)})).sort(function(e,t){var r=i(e,t);return r&n.PRECEDING?-1:r&n.FOLLOWING?1:0}),e};var n,o=r(1141);function i(e,t){var r=[],i=[];if(e===t)return 0;for(var a=(0,o.hasChildren)(e)?e:e.parent;a;)r.unshift(a),a=a.parent;for(a=(0,o.hasChildren)(t)?t:t.parent;a;)i.unshift(a),a=a.parent;for(var s=Math.min(r.length,i.length),l=0;l<s&&r[l]===i[l];)l++;if(0===l)return n.DISCONNECTED;var c=r[l-1],d=c.children,u=r[l],p=i[l];return d.indexOf(u)>d.indexOf(p)?c===t?n.FOLLOWING|n.CONTAINED_BY:n.FOLLOWING:c===e?n.PRECEDING|n.CONTAINS:n.PRECEDING}!function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(n||(t.DocumentPosition=n={}))},8888(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,o(r(6037),t),o(r(8938),t),o(r(3403),t),o(r(718),t),o(r(3209),t),o(r(5397),t),o(r(4437),t);var i=r(1141);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return i.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return i.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return i.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return i.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return i.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return i.hasChildren}})},3209(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.testElement=function(e,t){var r=l(e);return!r||r(t)},t.getElements=function(e,t,r,n){void 0===n&&(n=1/0);var i=l(e);return i?(0,o.filter)(i,t,r,n):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),(0,o.findOne)(a("id",e),t,r)},t.getElementsByTagName=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,o.filter)(i.tag_name(e),t,r,n)},t.getElementsByClassName=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,o.filter)(a("class",e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,o.filter)(i.tag_type(e),t,r,n)};var n=r(1141),o=r(718),i={tag_name:function(e){return"function"==typeof e?function(t){return(0,n.isTag)(t)&&e(t.name)}:"*"===e?n.isTag:function(t){return(0,n.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,n.isText)(t)&&e(t.data)}:function(t){return(0,n.isText)(t)&&t.data===e}}};function a(e,t){return"function"==typeof t?function(r){return(0,n.isTag)(r)&&t(r.attribs[e])}:function(r){return(0,n.isTag)(r)&&r.attribs[e]===t}}function s(e,t){return function(r){return e(r)||t(r)}}function l(e){var t=Object.keys(e).map(function(t){var r=e[t];return Object.prototype.hasOwnProperty.call(i,t)?i[t](r):a(t,r)});return 0===t.length?null:t.reduce(s)}},3403(e,t){"use strict";function r(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,r=t.lastIndexOf(e);r>=0&&t.splice(r,1)}e.next=null,e.prev=null,e.parent=null}Object.defineProperty(t,"__esModule",{value:!0}),t.removeElement=r,t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var o=t.parent=e.parent;if(o){var i=o.children;i[i.lastIndexOf(e)]=t,e.parent=null}},t.appendChild=function(e,t){if(r(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null},t.append=function(e,t){r(t);var n=e.parent,o=e.next;if(t.next=o,t.prev=e,e.next=t,t.parent=n,o){if(o.prev=t,n){var i=n.children;i.splice(i.lastIndexOf(o),0,t)}}else n&&n.children.push(t)},t.prependChild=function(e,t){if(r(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var n=e.children[1];n.prev=t,t.next=n}else t.next=null},t.prepend=function(e,t){r(t);var n=e.parent;if(n){var o=n.children;o.splice(o.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}},718(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.filter=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),o(e,Array.isArray(t)?t:[t],r,n)},t.find=o,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,o){void 0===o&&(o=!0);for(var i=Array.isArray(r)?r:[r],a=0;a<i.length;a++){var s=i[a];if((0,n.isTag)(s)&&t(s))return s;if(o&&(0,n.hasChildren)(s)&&s.children.length>0){var l=e(t,s.children,!0);if(l)return l}}return null},t.existsOne=function e(t,r){return(Array.isArray(r)?r:[r]).some(function(r){return(0,n.isTag)(r)&&t(r)||(0,n.hasChildren)(r)&&e(t,r.children)})},t.findAll=function(e,t){for(var r=[],o=[Array.isArray(t)?t:[t]],i=[0];;)if(i[0]>=o[0].length){if(1===o.length)return r;o.shift(),i.shift()}else{var a=o[0][i[0]++];(0,n.isTag)(a)&&e(a)&&r.push(a),(0,n.hasChildren)(a)&&a.children.length>0&&(i.unshift(0),o.unshift(a.children))}};var n=r(1141);function o(e,t,r,o){for(var i=[],a=[Array.isArray(t)?t:[t]],s=[0];;)if(s[0]>=a[0].length){if(1===s.length)return i;a.shift(),s.shift()}else{var l=a[0][s[0]++];if(e(l)&&(i.push(l),--o<=0))return i;r&&(0,n.hasChildren)(l)&&l.children.length>0&&(s.unshift(0),a.unshift(l.children))}}},6037(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getOuterHTML=s,t.getInnerHTML=function(e,t){return(0,o.hasChildren)(e)?e.children.map(function(e){return s(e,t)}).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,o.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,o.isCDATA)(t)?e(t.children):(0,o.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,o.hasChildren)(t)&&!(0,o.isComment)(t)?e(t.children):(0,o.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,o.hasChildren)(t)&&(t.type===a.ElementType.Tag||(0,o.isCDATA)(t))?e(t.children):(0,o.isText)(t)?t.data:""};var o=r(1141),i=n(r(3806)),a=r(5413);function s(e,t){return(0,i.default)(e,t)}},8938(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getChildren=o,t.getParent=i,t.getSiblings=function(e){var t=i(e);if(null!=t)return o(t);for(var r=[e],n=e.prev,a=e.next;null!=n;)r.unshift(n),n=n.prev;for(;null!=a;)r.push(a),a=a.next;return r},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,n.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,n.isTag)(t);)t=t.prev;return t};var n=r(1141);function o(e){return(0,n.hasChildren)(e)?e.children:[]}function i(e){return e.parent||null}},9878(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTMLAttribute=t.decodeHTML=t.determineBranch=t.EntityDecoder=t.DecodingMode=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var s=a(r(3603));t.htmlDecodeTree=s.default;var l=a(r(2517));t.xmlDecodeTree=l.default;var c=i(r(5096));t.decodeCodePoint=c.default;var d,u,p,h,f=r(5096);function g(e){return e>=d.ZERO&&e<=d.NINE}function m(e){return e>=d.UPPER_A&&e<=d.UPPER_F||e>=d.LOWER_A&&e<=d.LOWER_F}function v(e){return e===d.EQUALS||function(e){return e>=d.UPPER_A&&e<=d.UPPER_Z||e>=d.LOWER_A&&e<=d.LOWER_Z||g(e)}(e)}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return f.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return f.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(d||(d={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(u=t.BinTrieFlags||(t.BinTrieFlags={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(p||(p={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(h=t.DecodingMode||(t.DecodingMode={}));var b=function(){function e(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=p.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=h.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=p.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case p.EntityStart:return e.charCodeAt(t)===d.NUM?(this.state=p.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=p.NamedEntity,this.stateNamedEntity(e,t));case p.NumericStart:return this.stateNumericStart(e,t);case p.NumericDecimal:return this.stateNumericDecimal(e,t);case p.NumericHex:return this.stateNumericHex(e,t);case p.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===d.LOWER_X?(this.state=p.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=p.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,r,n){if(t!==r){var o=r-t;this.result=this.result*Math.pow(n,o)+parseInt(e.substr(t,o),n),this.consumed+=o}},e.prototype.stateNumericHex=function(e,t){for(var r=t;t<e.length;){var n=e.charCodeAt(t);if(!g(n)&&!m(n))return this.addToNumericResult(e,r,t,16),this.emitNumericEntity(n,3);t+=1}return this.addToNumericResult(e,r,t,16),-1},e.prototype.stateNumericDecimal=function(e,t){for(var r=t;t<e.length;){var n=e.charCodeAt(t);if(!g(n))return this.addToNumericResult(e,r,t,10),this.emitNumericEntity(n,2);t+=1}return this.addToNumericResult(e,r,t,10),-1},e.prototype.emitNumericEntity=function(e,t){var r;if(this.consumed<=t)return null===(r=this.errors)||void 0===r||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===d.SEMI)this.consumed+=1;else if(this.decodeMode===h.Strict)return 0;return this.emitCodePoint((0,c.replaceCodePoint)(this.result),this.consumed),this.errors&&(e!==d.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed},e.prototype.stateNamedEntity=function(e,t){for(var r=this.decodeTree,n=r[this.treeIndex],o=(n&u.VALUE_LENGTH)>>14;t<e.length;t++,this.excess++){var i=e.charCodeAt(t);if(this.treeIndex=y(r,n,this.treeIndex+Math.max(1,o),i),this.treeIndex<0)return 0===this.result||this.decodeMode===h.Attribute&&(0===o||v(i))?0:this.emitNotTerminatedNamedEntity();if(0!=(o=((n=r[this.treeIndex])&u.VALUE_LENGTH)>>14)){if(i===d.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==h.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this.result,r=(this.decodeTree[t]&u.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,r){var n=this.decodeTree;return this.emitCodePoint(1===t?n[e]&~u.VALUE_LENGTH:n[e+1],r),3===t&&this.emitCodePoint(n[e+2],r),r},e.prototype.end=function(){var e;switch(this.state){case p.NamedEntity:return 0===this.result||this.decodeMode===h.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case p.NumericDecimal:return this.emitNumericEntity(0,2);case p.NumericHex:return this.emitNumericEntity(0,3);case p.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case p.EntityStart:return 0}},e}();function w(e){var t="",r=new b(e,function(e){return t+=(0,c.fromCodePoint)(e)});return function(e,n){for(var o=0,i=0;(i=e.indexOf("&",i))>=0;){t+=e.slice(o,i),r.startEntity(n);var a=r.write(e,i+1);if(a<0){o=i+r.end();break}o=i+a,i=0===a?o+1:o}var s=t+e.slice(o);return t="",s}}function y(e,t,r,n){var o=(t&u.BRANCH_LENGTH)>>7,i=t&u.JUMP_TABLE;if(0===o)return 0!==i&&n===i?r:-1;if(i){var a=n-i;return a<0||a>=o?-1:e[r+a]-1}for(var s=r,l=s+o-1;s<=l;){var c=s+l>>>1,d=e[c];if(d<n)s=c+1;else{if(!(d>n))return e[c+o];l=c-1}}return-1}t.EntityDecoder=b,t.determineBranch=y;var x=w(s.default),k=w(l.default);t.decodeHTML=function(e,t){return void 0===t&&(t=h.Legacy),x(e,t)},t.decodeHTMLAttribute=function(e){return x(e,h.Attribute)},t.decodeHTMLStrict=function(e){return x(e,h.Strict)},t.decodeXML=function(e){return k(e,h.Strict)}},5096(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var n=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function o(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=n.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(r=String.fromCodePoint)&&void 0!==r?r:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=o,t.default=function(e){return(0,t.fromCodePoint)(o(e))}},1818(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.encodeNonAsciiHTML=t.encodeHTML=void 0;var o=n(r(5504)),i=r(5987),a=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function s(e,t){for(var r,n="",a=0;null!==(r=e.exec(t));){var s=r.index;n+=t.substring(a,s);var l=t.charCodeAt(s),c=o.default.get(l);if("object"==typeof c){if(s+1<t.length){var d=t.charCodeAt(s+1),u="number"==typeof c.n?c.n===d?c.o:void 0:c.n.get(d);if(void 0!==u){n+=u,a=e.lastIndex+=1;continue}}c=c.v}if(void 0!==c)n+=c,a=s+1;else{var p=(0,i.getCodePoint)(t,s);n+="&#x".concat(p.toString(16),";"),a=e.lastIndex+=Number(p!==l)}}return n+t.substr(a)}t.encodeHTML=function(e){return s(a,e)},t.encodeNonAsciiHTML=function(e){return s(i.xmlReplacer,e)}},5987(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.getCodePoint=t.xmlReplacer=void 0,t.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var r=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function n(e){for(var n,o="",i=0;null!==(n=t.xmlReplacer.exec(e));){var a=n.index,s=e.charCodeAt(a),l=r.get(s);void 0!==l?(o+=e.substring(i,a)+l,i=a+1):(o+="".concat(e.substring(i,a),"&#x").concat((0,t.getCodePoint)(e,a).toString(16),";"),i=t.xmlReplacer.lastIndex+=Number(55296==(64512&s)))}return o+e.substr(i)}function o(e,t){return function(r){for(var n,o=0,i="";n=e.exec(r);)o!==n.index&&(i+=r.substring(o,n.index)),i+=t.get(n[0].charCodeAt(0)),o=n.index+1;return i+r.substring(o)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=n,t.escape=n,t.escapeUTF8=o(/[&<>'"]/g,r),t.escapeAttribute=o(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=o(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},3603(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}))},2517(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}))},5504(e,t){"use strict";function r(e){for(var t=1;t<e.length;t++)e[t][0]+=e[t-1][0]+1;return e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Map(r([[9,"	"],[0,"
"],[22,"!"],[0,"""],[0,"#"],[0,"$"],[0,"%"],[0,"&"],[0,"'"],[0,"("],[0,")"],[0,"*"],[0,"+"],[0,","],[1,"."],[0,"/"],[10,":"],[0,";"],[0,{v:"<",n:8402,o:"<⃒"}],[0,{v:"=",n:8421,o:"=⃥"}],[0,{v:">",n:8402,o:">⃒"}],[0,"?"],[0,"@"],[26,"["],[0,"\"],[0,"]"],[0,"^"],[0,"_"],[0,"`"],[5,{n:106,o:"fj"}],[20,"{"],[0,"|"],[0,"}"],[34," "],[0,"¡"],[0,"¢"],[0,"£"],[0,"¤"],[0,"¥"],[0,"¦"],[0,"§"],[0,"¨"],[0,"©"],[0,"ª"],[0,"«"],[0,"¬"],[0,"­"],[0,"®"],[0,"¯"],[0,"°"],[0,"±"],[0,"²"],[0,"³"],[0,"´"],[0,"µ"],[0,"¶"],[0,"·"],[0,"¸"],[0,"¹"],[0,"º"],[0,"»"],[0,"¼"],[0,"½"],[0,"¾"],[0,"¿"],[0,"À"],[0,"Á"],[0,"Â"],[0,"Ã"],[0,"Ä"],[0,"Å"],[0,"Æ"],[0,"Ç"],[0,"È"],[0,"É"],[0,"Ê"],[0,"Ë"],[0,"Ì"],[0,"Í"],[0,"Î"],[0,"Ï"],[0,"Ð"],[0,"Ñ"],[0,"Ò"],[0,"Ó"],[0,"Ô"],[0,"Õ"],[0,"Ö"],[0,"×"],[0,"Ø"],[0,"Ù"],[0,"Ú"],[0,"Û"],[0,"Ü"],[0,"Ý"],[0,"Þ"],[0,"ß"],[0,"à"],[0,"á"],[0,"â"],[0,"ã"],[0,"ä"],[0,"å"],[0,"æ"],[0,"ç"],[0,"è"],[0,"é"],[0,"ê"],[0,"ë"],[0,"ì"],[0,"í"],[0,"î"],[0,"ï"],[0,"ð"],[0,"ñ"],[0,"ò"],[0,"ó"],[0,"ô"],[0,"õ"],[0,"ö"],[0,"÷"],[0,"ø"],[0,"ù"],[0,"ú"],[0,"û"],[0,"ü"],[0,"ý"],[0,"þ"],[0,"ÿ"],[0,"Ā"],[0,"ā"],[0,"Ă"],[0,"ă"],[0,"Ą"],[0,"ą"],[0,"Ć"],[0,"ć"],[0,"Ĉ"],[0,"ĉ"],[0,"Ċ"],[0,"ċ"],[0,"Č"],[0,"č"],[0,"Ď"],[0,"ď"],[0,"Đ"],[0,"đ"],[0,"Ē"],[0,"ē"],[2,"Ė"],[0,"ė"],[0,"Ę"],[0,"ę"],[0,"Ě"],[0,"ě"],[0,"Ĝ"],[0,"ĝ"],[0,"Ğ"],[0,"ğ"],[0,"Ġ"],[0,"ġ"],[0,"Ģ"],[1,"Ĥ"],[0,"ĥ"],[0,"Ħ"],[0,"ħ"],[0,"Ĩ"],[0,"ĩ"],[0,"Ī"],[0,"ī"],[2,"Į"],[0,"į"],[0,"İ"],[0,"ı"],[0,"IJ"],[0,"ij"],[0,"Ĵ"],[0,"ĵ"],[0,"Ķ"],[0,"ķ"],[0,"ĸ"],[0,"Ĺ"],[0,"ĺ"],[0,"Ļ"],[0,"ļ"],[0,"Ľ"],[0,"ľ"],[0,"Ŀ"],[0,"ŀ"],[0,"Ł"],[0,"ł"],[0,"Ń"],[0,"ń"],[0,"Ņ"],[0,"ņ"],[0,"Ň"],[0,"ň"],[0,"ʼn"],[0,"Ŋ"],[0,"ŋ"],[0,"Ō"],[0,"ō"],[2,"Ő"],[0,"ő"],[0,"Œ"],[0,"œ"],[0,"Ŕ"],[0,"ŕ"],[0,"Ŗ"],[0,"ŗ"],[0,"Ř"],[0,"ř"],[0,"Ś"],[0,"ś"],[0,"Ŝ"],[0,"ŝ"],[0,"Ş"],[0,"ş"],[0,"Š"],[0,"š"],[0,"Ţ"],[0,"ţ"],[0,"Ť"],[0,"ť"],[0,"Ŧ"],[0,"ŧ"],[0,"Ũ"],[0,"ũ"],[0,"Ū"],[0,"ū"],[0,"Ŭ"],[0,"ŭ"],[0,"Ů"],[0,"ů"],[0,"Ű"],[0,"ű"],[0,"Ų"],[0,"ų"],[0,"Ŵ"],[0,"ŵ"],[0,"Ŷ"],[0,"ŷ"],[0,"Ÿ"],[0,"Ź"],[0,"ź"],[0,"Ż"],[0,"ż"],[0,"Ž"],[0,"ž"],[19,"ƒ"],[34,"Ƶ"],[63,"ǵ"],[65,"ȷ"],[142,"ˆ"],[0,"ˇ"],[16,"˘"],[0,"˙"],[0,"˚"],[0,"˛"],[0,"˜"],[0,"˝"],[51,"̑"],[127,"Α"],[0,"Β"],[0,"Γ"],[0,"Δ"],[0,"Ε"],[0,"Ζ"],[0,"Η"],[0,"Θ"],[0,"Ι"],[0,"Κ"],[0,"Λ"],[0,"Μ"],[0,"Ν"],[0,"Ξ"],[0,"Ο"],[0,"Π"],[0,"Ρ"],[1,"Σ"],[0,"Τ"],[0,"Υ"],[0,"Φ"],[0,"Χ"],[0,"Ψ"],[0,"Ω"],[7,"α"],[0,"β"],[0,"γ"],[0,"δ"],[0,"ε"],[0,"ζ"],[0,"η"],[0,"θ"],[0,"ι"],[0,"κ"],[0,"λ"],[0,"μ"],[0,"ν"],[0,"ξ"],[0,"ο"],[0,"π"],[0,"ρ"],[0,"ς"],[0,"σ"],[0,"τ"],[0,"υ"],[0,"φ"],[0,"χ"],[0,"ψ"],[0,"ω"],[7,"ϑ"],[0,"ϒ"],[2,"ϕ"],[0,"ϖ"],[5,"Ϝ"],[0,"ϝ"],[18,"ϰ"],[0,"ϱ"],[3,"ϵ"],[0,"϶"],[10,"Ё"],[0,"Ђ"],[0,"Ѓ"],[0,"Є"],[0,"Ѕ"],[0,"І"],[0,"Ї"],[0,"Ј"],[0,"Љ"],[0,"Њ"],[0,"Ћ"],[0,"Ќ"],[1,"Ў"],[0,"Џ"],[0,"А"],[0,"Б"],[0,"В"],[0,"Г"],[0,"Д"],[0,"Е"],[0,"Ж"],[0,"З"],[0,"И"],[0,"Й"],[0,"К"],[0,"Л"],[0,"М"],[0,"Н"],[0,"О"],[0,"П"],[0,"Р"],[0,"С"],[0,"Т"],[0,"У"],[0,"Ф"],[0,"Х"],[0,"Ц"],[0,"Ч"],[0,"Ш"],[0,"Щ"],[0,"Ъ"],[0,"Ы"],[0,"Ь"],[0,"Э"],[0,"Ю"],[0,"Я"],[0,"а"],[0,"б"],[0,"в"],[0,"г"],[0,"д"],[0,"е"],[0,"ж"],[0,"з"],[0,"и"],[0,"й"],[0,"к"],[0,"л"],[0,"м"],[0,"н"],[0,"о"],[0,"п"],[0,"р"],[0,"с"],[0,"т"],[0,"у"],[0,"ф"],[0,"х"],[0,"ц"],[0,"ч"],[0,"ш"],[0,"щ"],[0,"ъ"],[0,"ы"],[0,"ь"],[0,"э"],[0,"ю"],[0,"я"],[1,"ё"],[0,"ђ"],[0,"ѓ"],[0,"є"],[0,"ѕ"],[0,"і"],[0,"ї"],[0,"ј"],[0,"љ"],[0,"њ"],[0,"ћ"],[0,"ќ"],[1,"ў"],[0,"џ"],[7074," "],[0," "],[0," "],[0," "],[1," "],[0," "],[0," "],[0," "],[0,"​"],[0,"‌"],[0,"‍"],[0,"‎"],[0,"‏"],[0,"‐"],[2,"–"],[0,"—"],[0,"―"],[0,"‖"],[1,"‘"],[0,"’"],[0,"‚"],[1,"“"],[0,"”"],[0,"„"],[1,"†"],[0,"‡"],[0,"•"],[2,"‥"],[0,"…"],[9,"‰"],[0,"‱"],[0,"′"],[0,"″"],[0,"‴"],[0,"‵"],[3,"‹"],[0,"›"],[3,"‾"],[2,"⁁"],[1,"⁃"],[0,"⁄"],[10,"⁏"],[7,"⁗"],[7,{v:" ",n:8202,o:"  "}],[0,"⁠"],[0,"⁡"],[0,"⁢"],[0,"⁣"],[72,"€"],[46,"⃛"],[0,"⃜"],[37,"ℂ"],[2,"℅"],[4,"ℊ"],[0,"ℋ"],[0,"ℌ"],[0,"ℍ"],[0,"ℎ"],[0,"ℏ"],[0,"ℐ"],[0,"ℑ"],[0,"ℒ"],[0,"ℓ"],[1,"ℕ"],[0,"№"],[0,"℗"],[0,"℘"],[0,"ℙ"],[0,"ℚ"],[0,"ℛ"],[0,"ℜ"],[0,"ℝ"],[0,"℞"],[3,"™"],[1,"ℤ"],[2,"℧"],[0,"ℨ"],[0,"℩"],[2,"ℬ"],[0,"ℭ"],[1,"ℯ"],[0,"ℰ"],[0,"ℱ"],[1,"ℳ"],[0,"ℴ"],[0,"ℵ"],[0,"ℶ"],[0,"ℷ"],[0,"ℸ"],[12,"ⅅ"],[0,"ⅆ"],[0,"ⅇ"],[0,"ⅈ"],[10,"⅓"],[0,"⅔"],[0,"⅕"],[0,"⅖"],[0,"⅗"],[0,"⅘"],[0,"⅙"],[0,"⅚"],[0,"⅛"],[0,"⅜"],[0,"⅝"],[0,"⅞"],[49,"←"],[0,"↑"],[0,"→"],[0,"↓"],[0,"↔"],[0,"↕"],[0,"↖"],[0,"↗"],[0,"↘"],[0,"↙"],[0,"↚"],[0,"↛"],[1,{v:"↝",n:824,o:"↝̸"}],[0,"↞"],[0,"↟"],[0,"↠"],[0,"↡"],[0,"↢"],[0,"↣"],[0,"↤"],[0,"↥"],[0,"↦"],[0,"↧"],[1,"↩"],[0,"↪"],[0,"↫"],[0,"↬"],[0,"↭"],[0,"↮"],[1,"↰"],[0,"↱"],[0,"↲"],[0,"↳"],[1,"↵"],[0,"↶"],[0,"↷"],[2,"↺"],[0,"↻"],[0,"↼"],[0,"↽"],[0,"↾"],[0,"↿"],[0,"⇀"],[0,"⇁"],[0,"⇂"],[0,"⇃"],[0,"⇄"],[0,"⇅"],[0,"⇆"],[0,"⇇"],[0,"⇈"],[0,"⇉"],[0,"⇊"],[0,"⇋"],[0,"⇌"],[0,"⇍"],[0,"⇎"],[0,"⇏"],[0,"⇐"],[0,"⇑"],[0,"⇒"],[0,"⇓"],[0,"⇔"],[0,"⇕"],[0,"⇖"],[0,"⇗"],[0,"⇘"],[0,"⇙"],[0,"⇚"],[0,"⇛"],[1,"⇝"],[6,"⇤"],[0,"⇥"],[15,"⇵"],[7,"⇽"],[0,"⇾"],[0,"⇿"],[0,"∀"],[0,"∁"],[0,{v:"∂",n:824,o:"∂̸"}],[0,"∃"],[0,"∄"],[0,"∅"],[1,"∇"],[0,"∈"],[0,"∉"],[1,"∋"],[0,"∌"],[2,"∏"],[0,"∐"],[0,"∑"],[0,"−"],[0,"∓"],[0,"∔"],[1,"∖"],[0,"∗"],[0,"∘"],[1,"√"],[2,"∝"],[0,"∞"],[0,"∟"],[0,{v:"∠",n:8402,o:"∠⃒"}],[0,"∡"],[0,"∢"],[0,"∣"],[0,"∤"],[0,"∥"],[0,"∦"],[0,"∧"],[0,"∨"],[0,{v:"∩",n:65024,o:"∩︀"}],[0,{v:"∪",n:65024,o:"∪︀"}],[0,"∫"],[0,"∬"],[0,"∭"],[0,"∮"],[0,"∯"],[0,"∰"],[0,"∱"],[0,"∲"],[0,"∳"],[0,"∴"],[0,"∵"],[0,"∶"],[0,"∷"],[0,"∸"],[1,"∺"],[0,"∻"],[0,{v:"∼",n:8402,o:"∼⃒"}],[0,{v:"∽",n:817,o:"∽̱"}],[0,{v:"∾",n:819,o:"∾̳"}],[0,"∿"],[0,"≀"],[0,"≁"],[0,{v:"≂",n:824,o:"≂̸"}],[0,"≃"],[0,"≄"],[0,"≅"],[0,"≆"],[0,"≇"],[0,"≈"],[0,"≉"],[0,"≊"],[0,{v:"≋",n:824,o:"≋̸"}],[0,"≌"],[0,{v:"≍",n:8402,o:"≍⃒"}],[0,{v:"≎",n:824,o:"≎̸"}],[0,{v:"≏",n:824,o:"≏̸"}],[0,{v:"≐",n:824,o:"≐̸"}],[0,"≑"],[0,"≒"],[0,"≓"],[0,"≔"],[0,"≕"],[0,"≖"],[0,"≗"],[1,"≙"],[0,"≚"],[1,"≜"],[2,"≟"],[0,"≠"],[0,{v:"≡",n:8421,o:"≡⃥"}],[0,"≢"],[1,{v:"≤",n:8402,o:"≤⃒"}],[0,{v:"≥",n:8402,o:"≥⃒"}],[0,{v:"≦",n:824,o:"≦̸"}],[0,{v:"≧",n:824,o:"≧̸"}],[0,{v:"≨",n:65024,o:"≨︀"}],[0,{v:"≩",n:65024,o:"≩︀"}],[0,{v:"≪",n:new Map(r([[824,"≪̸"],[7577,"≪⃒"]]))}],[0,{v:"≫",n:new Map(r([[824,"≫̸"],[7577,"≫⃒"]]))}],[0,"≬"],[0,"≭"],[0,"≮"],[0,"≯"],[0,"≰"],[0,"≱"],[0,"≲"],[0,"≳"],[0,"≴"],[0,"≵"],[0,"≶"],[0,"≷"],[0,"≸"],[0,"≹"],[0,"≺"],[0,"≻"],[0,"≼"],[0,"≽"],[0,"≾"],[0,{v:"≿",n:824,o:"≿̸"}],[0,"⊀"],[0,"⊁"],[0,{v:"⊂",n:8402,o:"⊂⃒"}],[0,{v:"⊃",n:8402,o:"⊃⃒"}],[0,"⊄"],[0,"⊅"],[0,"⊆"],[0,"⊇"],[0,"⊈"],[0,"⊉"],[0,{v:"⊊",n:65024,o:"⊊︀"}],[0,{v:"⊋",n:65024,o:"⊋︀"}],[1,"⊍"],[0,"⊎"],[0,{v:"⊏",n:824,o:"⊏̸"}],[0,{v:"⊐",n:824,o:"⊐̸"}],[0,"⊑"],[0,"⊒"],[0,{v:"⊓",n:65024,o:"⊓︀"}],[0,{v:"⊔",n:65024,o:"⊔︀"}],[0,"⊕"],[0,"⊖"],[0,"⊗"],[0,"⊘"],[0,"⊙"],[0,"⊚"],[0,"⊛"],[1,"⊝"],[0,"⊞"],[0,"⊟"],[0,"⊠"],[0,"⊡"],[0,"⊢"],[0,"⊣"],[0,"⊤"],[0,"⊥"],[1,"⊧"],[0,"⊨"],[0,"⊩"],[0,"⊪"],[0,"⊫"],[0,"⊬"],[0,"⊭"],[0,"⊮"],[0,"⊯"],[0,"⊰"],[1,"⊲"],[0,"⊳"],[0,{v:"⊴",n:8402,o:"⊴⃒"}],[0,{v:"⊵",n:8402,o:"⊵⃒"}],[0,"⊶"],[0,"⊷"],[0,"⊸"],[0,"⊹"],[0,"⊺"],[0,"⊻"],[1,"⊽"],[0,"⊾"],[0,"⊿"],[0,"⋀"],[0,"⋁"],[0,"⋂"],[0,"⋃"],[0,"⋄"],[0,"⋅"],[0,"⋆"],[0,"⋇"],[0,"⋈"],[0,"⋉"],[0,"⋊"],[0,"⋋"],[0,"⋌"],[0,"⋍"],[0,"⋎"],[0,"⋏"],[0,"⋐"],[0,"⋑"],[0,"⋒"],[0,"⋓"],[0,"⋔"],[0,"⋕"],[0,"⋖"],[0,"⋗"],[0,{v:"⋘",n:824,o:"⋘̸"}],[0,{v:"⋙",n:824,o:"⋙̸"}],[0,{v:"⋚",n:65024,o:"⋚︀"}],[0,{v:"⋛",n:65024,o:"⋛︀"}],[2,"⋞"],[0,"⋟"],[0,"⋠"],[0,"⋡"],[0,"⋢"],[0,"⋣"],[2,"⋦"],[0,"⋧"],[0,"⋨"],[0,"⋩"],[0,"⋪"],[0,"⋫"],[0,"⋬"],[0,"⋭"],[0,"⋮"],[0,"⋯"],[0,"⋰"],[0,"⋱"],[0,"⋲"],[0,"⋳"],[0,"⋴"],[0,{v:"⋵",n:824,o:"⋵̸"}],[0,"⋶"],[0,"⋷"],[1,{v:"⋹",n:824,o:"⋹̸"}],[0,"⋺"],[0,"⋻"],[0,"⋼"],[0,"⋽"],[0,"⋾"],[6,"⌅"],[0,"⌆"],[1,"⌈"],[0,"⌉"],[0,"⌊"],[0,"⌋"],[0,"⌌"],[0,"⌍"],[0,"⌎"],[0,"⌏"],[0,"⌐"],[1,"⌒"],[0,"⌓"],[1,"⌕"],[0,"⌖"],[5,"⌜"],[0,"⌝"],[0,"⌞"],[0,"⌟"],[2,"⌢"],[0,"⌣"],[9,"⌭"],[0,"⌮"],[7,"⌶"],[6,"⌽"],[1,"⌿"],[60,"⍼"],[51,"⎰"],[0,"⎱"],[2,"⎴"],[0,"⎵"],[0,"⎶"],[37,"⏜"],[0,"⏝"],[0,"⏞"],[0,"⏟"],[2,"⏢"],[4,"⏧"],[59,"␣"],[164,"Ⓢ"],[55,"─"],[1,"│"],[9,"┌"],[3,"┐"],[3,"└"],[3,"┘"],[3,"├"],[7,"┤"],[7,"┬"],[7,"┴"],[7,"┼"],[19,"═"],[0,"║"],[0,"╒"],[0,"╓"],[0,"╔"],[0,"╕"],[0,"╖"],[0,"╗"],[0,"╘"],[0,"╙"],[0,"╚"],[0,"╛"],[0,"╜"],[0,"╝"],[0,"╞"],[0,"╟"],[0,"╠"],[0,"╡"],[0,"╢"],[0,"╣"],[0,"╤"],[0,"╥"],[0,"╦"],[0,"╧"],[0,"╨"],[0,"╩"],[0,"╪"],[0,"╫"],[0,"╬"],[19,"▀"],[3,"▄"],[3,"█"],[8,"░"],[0,"▒"],[0,"▓"],[13,"□"],[8,"▪"],[0,"▫"],[1,"▭"],[0,"▮"],[2,"▱"],[1,"△"],[0,"▴"],[0,"▵"],[2,"▸"],[0,"▹"],[3,"▽"],[0,"▾"],[0,"▿"],[2,"◂"],[0,"◃"],[6,"◊"],[0,"○"],[32,"◬"],[2,"◯"],[8,"◸"],[0,"◹"],[0,"◺"],[0,"◻"],[0,"◼"],[8,"★"],[0,"☆"],[7,"☎"],[49,"♀"],[1,"♂"],[29,"♠"],[2,"♣"],[1,"♥"],[0,"♦"],[3,"♪"],[2,"♭"],[0,"♮"],[0,"♯"],[163,"✓"],[3,"✗"],[8,"✠"],[21,"✶"],[33,"❘"],[25,"❲"],[0,"❳"],[84,"⟈"],[0,"⟉"],[28,"⟦"],[0,"⟧"],[0,"⟨"],[0,"⟩"],[0,"⟪"],[0,"⟫"],[0,"⟬"],[0,"⟭"],[7,"⟵"],[0,"⟶"],[0,"⟷"],[0,"⟸"],[0,"⟹"],[0,"⟺"],[1,"⟼"],[2,"⟿"],[258,"⤂"],[0,"⤃"],[0,"⤄"],[0,"⤅"],[6,"⤌"],[0,"⤍"],[0,"⤎"],[0,"⤏"],[0,"⤐"],[0,"⤑"],[0,"⤒"],[0,"⤓"],[2,"⤖"],[2,"⤙"],[0,"⤚"],[0,"⤛"],[0,"⤜"],[0,"⤝"],[0,"⤞"],[0,"⤟"],[0,"⤠"],[2,"⤣"],[0,"⤤"],[0,"⤥"],[0,"⤦"],[0,"⤧"],[0,"⤨"],[0,"⤩"],[0,"⤪"],[8,{v:"⤳",n:824,o:"⤳̸"}],[1,"⤵"],[0,"⤶"],[0,"⤷"],[0,"⤸"],[0,"⤹"],[2,"⤼"],[0,"⤽"],[7,"⥅"],[2,"⥈"],[0,"⥉"],[0,"⥊"],[0,"⥋"],[2,"⥎"],[0,"⥏"],[0,"⥐"],[0,"⥑"],[0,"⥒"],[0,"⥓"],[0,"⥔"],[0,"⥕"],[0,"⥖"],[0,"⥗"],[0,"⥘"],[0,"⥙"],[0,"⥚"],[0,"⥛"],[0,"⥜"],[0,"⥝"],[0,"⥞"],[0,"⥟"],[0,"⥠"],[0,"⥡"],[0,"⥢"],[0,"⥣"],[0,"⥤"],[0,"⥥"],[0,"⥦"],[0,"⥧"],[0,"⥨"],[0,"⥩"],[0,"⥪"],[0,"⥫"],[0,"⥬"],[0,"⥭"],[0,"⥮"],[0,"⥯"],[0,"⥰"],[0,"⥱"],[0,"⥲"],[0,"⥳"],[0,"⥴"],[0,"⥵"],[0,"⥶"],[1,"⥸"],[0,"⥹"],[1,"⥻"],[0,"⥼"],[0,"⥽"],[0,"⥾"],[0,"⥿"],[5,"⦅"],[0,"⦆"],[4,"⦋"],[0,"⦌"],[0,"⦍"],[0,"⦎"],[0,"⦏"],[0,"⦐"],[0,"⦑"],[0,"⦒"],[0,"⦓"],[0,"⦔"],[0,"⦕"],[0,"⦖"],[3,"⦚"],[1,"⦜"],[0,"⦝"],[6,"⦤"],[0,"⦥"],[0,"⦦"],[0,"⦧"],[0,"⦨"],[0,"⦩"],[0,"⦪"],[0,"⦫"],[0,"⦬"],[0,"⦭"],[0,"⦮"],[0,"⦯"],[0,"⦰"],[0,"⦱"],[0,"⦲"],[0,"⦳"],[0,"⦴"],[0,"⦵"],[0,"⦶"],[0,"⦷"],[1,"⦹"],[1,"⦻"],[0,"⦼"],[1,"⦾"],[0,"⦿"],[0,"⧀"],[0,"⧁"],[0,"⧂"],[0,"⧃"],[0,"⧄"],[0,"⧅"],[3,"⧉"],[3,"⧍"],[0,"⧎"],[0,{v:"⧏",n:824,o:"⧏̸"}],[0,{v:"⧐",n:824,o:"⧐̸"}],[11,"⧜"],[0,"⧝"],[0,"⧞"],[4,"⧣"],[0,"⧤"],[0,"⧥"],[5,"⧫"],[8,"⧴"],[1,"⧶"],[9,"⨀"],[0,"⨁"],[0,"⨂"],[1,"⨄"],[1,"⨆"],[5,"⨌"],[0,"⨍"],[2,"⨐"],[0,"⨑"],[0,"⨒"],[0,"⨓"],[0,"⨔"],[0,"⨕"],[0,"⨖"],[0,"⨗"],[10,"⨢"],[0,"⨣"],[0,"⨤"],[0,"⨥"],[0,"⨦"],[0,"⨧"],[1,"⨩"],[0,"⨪"],[2,"⨭"],[0,"⨮"],[0,"⨯"],[0,"⨰"],[0,"⨱"],[1,"⨳"],[0,"⨴"],[0,"⨵"],[0,"⨶"],[0,"⨷"],[0,"⨸"],[0,"⨹"],[0,"⨺"],[0,"⨻"],[0,"⨼"],[2,"⨿"],[0,"⩀"],[1,"⩂"],[0,"⩃"],[0,"⩄"],[0,"⩅"],[0,"⩆"],[0,"⩇"],[0,"⩈"],[0,"⩉"],[0,"⩊"],[0,"⩋"],[0,"⩌"],[0,"⩍"],[2,"⩐"],[2,"⩓"],[0,"⩔"],[0,"⩕"],[0,"⩖"],[0,"⩗"],[0,"⩘"],[1,"⩚"],[0,"⩛"],[0,"⩜"],[0,"⩝"],[1,"⩟"],[6,"⩦"],[3,"⩪"],[2,{v:"⩭",n:824,o:"⩭̸"}],[0,"⩮"],[0,"⩯"],[0,{v:"⩰",n:824,o:"⩰̸"}],[0,"⩱"],[0,"⩲"],[0,"⩳"],[0,"⩴"],[0,"⩵"],[1,"⩷"],[0,"⩸"],[0,"⩹"],[0,"⩺"],[0,"⩻"],[0,"⩼"],[0,{v:"⩽",n:824,o:"⩽̸"}],[0,{v:"⩾",n:824,o:"⩾̸"}],[0,"⩿"],[0,"⪀"],[0,"⪁"],[0,"⪂"],[0,"⪃"],[0,"⪄"],[0,"⪅"],[0,"⪆"],[0,"⪇"],[0,"⪈"],[0,"⪉"],[0,"⪊"],[0,"⪋"],[0,"⪌"],[0,"⪍"],[0,"⪎"],[0,"⪏"],[0,"⪐"],[0,"⪑"],[0,"⪒"],[0,"⪓"],[0,"⪔"],[0,"⪕"],[0,"⪖"],[0,"⪗"],[0,"⪘"],[0,"⪙"],[0,"⪚"],[2,"⪝"],[0,"⪞"],[0,"⪟"],[0,"⪠"],[0,{v:"⪡",n:824,o:"⪡̸"}],[0,{v:"⪢",n:824,o:"⪢̸"}],[1,"⪤"],[0,"⪥"],[0,"⪦"],[0,"⪧"],[0,"⪨"],[0,"⪩"],[0,"⪪"],[0,"⪫"],[0,{v:"⪬",n:65024,o:"⪬︀"}],[0,{v:"⪭",n:65024,o:"⪭︀"}],[0,"⪮"],[0,{v:"⪯",n:824,o:"⪯̸"}],[0,{v:"⪰",n:824,o:"⪰̸"}],[2,"⪳"],[0,"⪴"],[0,"⪵"],[0,"⪶"],[0,"⪷"],[0,"⪸"],[0,"⪹"],[0,"⪺"],[0,"⪻"],[0,"⪼"],[0,"⪽"],[0,"⪾"],[0,"⪿"],[0,"⫀"],[0,"⫁"],[0,"⫂"],[0,"⫃"],[0,"⫄"],[0,{v:"⫅",n:824,o:"⫅̸"}],[0,{v:"⫆",n:824,o:"⫆̸"}],[0,"⫇"],[0,"⫈"],[2,{v:"⫋",n:65024,o:"⫋︀"}],[0,{v:"⫌",n:65024,o:"⫌︀"}],[2,"⫏"],[0,"⫐"],[0,"⫑"],[0,"⫒"],[0,"⫓"],[0,"⫔"],[0,"⫕"],[0,"⫖"],[0,"⫗"],[0,"⫘"],[0,"⫙"],[0,"⫚"],[0,"⫛"],[8,"⫤"],[1,"⫦"],[0,"⫧"],[0,"⫨"],[0,"⫩"],[1,"⫫"],[0,"⫬"],[0,"⫭"],[0,"⫮"],[0,"⫯"],[0,"⫰"],[0,"⫱"],[0,"⫲"],[0,"⫳"],[9,{v:"⫽",n:8421,o:"⫽⃥"}],[44343,{n:new Map(r([[56476,"𝒜"],[1,"𝒞"],[0,"𝒟"],[2,"𝒢"],[2,"𝒥"],[0,"𝒦"],[2,"𝒩"],[0,"𝒪"],[0,"𝒫"],[0,"𝒬"],[1,"𝒮"],[0,"𝒯"],[0,"𝒰"],[0,"𝒱"],[0,"𝒲"],[0,"𝒳"],[0,"𝒴"],[0,"𝒵"],[0,"𝒶"],[0,"𝒷"],[0,"𝒸"],[0,"𝒹"],[1,"𝒻"],[1,"𝒽"],[0,"𝒾"],[0,"𝒿"],[0,"𝓀"],[0,"𝓁"],[0,"𝓂"],[0,"𝓃"],[1,"𝓅"],[0,"𝓆"],[0,"𝓇"],[0,"𝓈"],[0,"𝓉"],[0,"𝓊"],[0,"𝓋"],[0,"𝓌"],[0,"𝓍"],[0,"𝓎"],[0,"𝓏"],[52,"𝔄"],[0,"𝔅"],[1,"𝔇"],[0,"𝔈"],[0,"𝔉"],[0,"𝔊"],[2,"𝔍"],[0,"𝔎"],[0,"𝔏"],[0,"𝔐"],[0,"𝔑"],[0,"𝔒"],[0,"𝔓"],[0,"𝔔"],[1,"𝔖"],[0,"𝔗"],[0,"𝔘"],[0,"𝔙"],[0,"𝔚"],[0,"𝔛"],[0,"𝔜"],[1,"𝔞"],[0,"𝔟"],[0,"𝔠"],[0,"𝔡"],[0,"𝔢"],[0,"𝔣"],[0,"𝔤"],[0,"𝔥"],[0,"𝔦"],[0,"𝔧"],[0,"𝔨"],[0,"𝔩"],[0,"𝔪"],[0,"𝔫"],[0,"𝔬"],[0,"𝔭"],[0,"𝔮"],[0,"𝔯"],[0,"𝔰"],[0,"𝔱"],[0,"𝔲"],[0,"𝔳"],[0,"𝔴"],[0,"𝔵"],[0,"𝔶"],[0,"𝔷"],[0,"𝔸"],[0,"𝔹"],[1,"𝔻"],[0,"𝔼"],[0,"𝔽"],[0,"𝔾"],[1,"𝕀"],[0,"𝕁"],[0,"𝕂"],[0,"𝕃"],[0,"𝕄"],[1,"𝕆"],[3,"𝕊"],[0,"𝕋"],[0,"𝕌"],[0,"𝕍"],[0,"𝕎"],[0,"𝕏"],[0,"𝕐"],[1,"𝕒"],[0,"𝕓"],[0,"𝕔"],[0,"𝕕"],[0,"𝕖"],[0,"𝕗"],[0,"𝕘"],[0,"𝕙"],[0,"𝕚"],[0,"𝕛"],[0,"𝕜"],[0,"𝕝"],[0,"𝕞"],[0,"𝕟"],[0,"𝕠"],[0,"𝕡"],[0,"𝕢"],[0,"𝕣"],[0,"𝕤"],[0,"𝕥"],[0,"𝕦"],[0,"𝕧"],[0,"𝕨"],[0,"𝕩"],[0,"𝕪"],[0,"𝕫"]]))}],[8906,"ff"],[0,"fi"],[0,"fl"],[0,"ffi"],[0,"ffl"]]))},2730(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLAttribute=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.DecodingMode=t.EntityDecoder=t.encodeHTML5=t.encodeHTML4=t.encodeNonAsciiHTML=t.encodeHTML=t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.encode=t.decodeStrict=t.decode=t.EncodingMode=t.EntityLevel=void 0;var n,o,i=r(9878),a=r(1818),s=r(5987);function l(e,t){if(void 0===t&&(t=n.XML),("number"==typeof t?t:t.level)===n.HTML){var r="object"==typeof t?t.mode:void 0;return(0,i.decodeHTML)(e,r)}return(0,i.decodeXML)(e)}!function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"}(n=t.EntityLevel||(t.EntityLevel={})),function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"}(o=t.EncodingMode||(t.EncodingMode={})),t.decode=l,t.decodeStrict=function(e,t){var r;void 0===t&&(t=n.XML);var o="number"==typeof t?{level:t}:t;return null!==(r=o.mode)&&void 0!==r||(o.mode=i.DecodingMode.Strict),l(e,o)},t.encode=function(e,t){void 0===t&&(t=n.XML);var r="number"==typeof t?{level:t}:t;return r.mode===o.UTF8?(0,s.escapeUTF8)(e):r.mode===o.Attribute?(0,s.escapeAttribute)(e):r.mode===o.Text?(0,s.escapeText)(e):r.level===n.HTML?r.mode===o.ASCII?(0,a.encodeNonAsciiHTML)(e):(0,a.encodeHTML)(e):(0,s.encodeXML)(e)};var c=r(5987);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return c.encodeXML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return c.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return c.escapeUTF8}}),Object.defineProperty(t,"escapeAttribute",{enumerable:!0,get:function(){return c.escapeAttribute}}),Object.defineProperty(t,"escapeText",{enumerable:!0,get:function(){return c.escapeText}});var d=r(1818);Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return d.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return d.encodeNonAsciiHTML}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return d.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return d.encodeHTML}});var u=r(9878);Object.defineProperty(t,"EntityDecoder",{enumerable:!0,get:function(){return u.EntityDecoder}}),Object.defineProperty(t,"DecodingMode",{enumerable:!0,get:function(){return u.DecodingMode}}),Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return u.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTMLAttribute",{enumerable:!0,get:function(){return u.decodeHTMLAttribute}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return u.decodeXML}})},6067(e,t,r){var n;e=r.nmd(e),function(){var o=(e&&e.exports,"object"==typeof global&&global);o.global!==o&&o.window;var i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,a=/[\x01-\x7F]/g,s=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,l=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,c={"":"shy","":"zwnj","":"zwj","":"lrm","":"ic","":"it","":"af","":"rlm","":"ZeroWidthSpace","":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp"," ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon",ˆ:"circ",ˇ:"caron","°":"deg","©":"copy","®":"reg","℗":"copysr",℘:"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78",𝒶:"ascr",𝕒:"aopf",𝔞:"afr",𝔸:"Aopf",𝔄:"Afr",𝒜:"Ascr",ª:"ordf",á:"aacute",Á:"Aacute",à:"agrave",À:"Agrave",ă:"abreve",Ă:"Abreve",â:"acirc",Â:"Acirc",å:"aring",Å:"angst",ä:"auml",Ä:"Auml",ã:"atilde",Ã:"Atilde",ą:"aogon",Ą:"Aogon",ā:"amacr",Ā:"Amacr",æ:"aelig",Æ:"AElig",𝒷:"bscr",𝕓:"bopf",𝔟:"bfr",𝔹:"Bopf",ℬ:"Bscr",𝔅:"Bfr",𝔠:"cfr",𝒸:"cscr",𝕔:"copf",ℭ:"Cfr",𝒞:"Cscr",ℂ:"Copf",ć:"cacute",Ć:"Cacute",ĉ:"ccirc",Ĉ:"Ccirc",č:"ccaron",Č:"Ccaron",ċ:"cdot",Ċ:"Cdot",ç:"ccedil",Ç:"Ccedil","℅":"incare",𝔡:"dfr",ⅆ:"dd",𝕕:"dopf",𝒹:"dscr",𝒟:"Dscr",𝔇:"Dfr",ⅅ:"DD",𝔻:"Dopf",ď:"dcaron",Ď:"Dcaron",đ:"dstrok",Đ:"Dstrok",ð:"eth",Ð:"ETH",ⅇ:"ee",ℯ:"escr",𝔢:"efr",𝕖:"eopf",ℰ:"Escr",𝔈:"Efr",𝔼:"Eopf",é:"eacute",É:"Eacute",è:"egrave",È:"Egrave",ê:"ecirc",Ê:"Ecirc",ě:"ecaron",Ě:"Ecaron",ë:"euml",Ë:"Euml",ė:"edot",Ė:"Edot",ę:"eogon",Ę:"Eogon",ē:"emacr",Ē:"Emacr",𝔣:"ffr",𝕗:"fopf",𝒻:"fscr",𝔉:"Ffr",𝔽:"Fopf",ℱ:"Fscr",ff:"fflig",ffi:"ffilig",ffl:"ffllig",fi:"filig",fj:"fjlig",fl:"fllig",ƒ:"fnof",ℊ:"gscr",𝕘:"gopf",𝔤:"gfr",𝒢:"Gscr",𝔾:"Gopf",𝔊:"Gfr",ǵ:"gacute",ğ:"gbreve",Ğ:"Gbreve",ĝ:"gcirc",Ĝ:"Gcirc",ġ:"gdot",Ġ:"Gdot",Ģ:"Gcedil",𝔥:"hfr",ℎ:"planckh",𝒽:"hscr",𝕙:"hopf",ℋ:"Hscr",ℌ:"Hfr",ℍ:"Hopf",ĥ:"hcirc",Ĥ:"Hcirc",ℏ:"hbar",ħ:"hstrok",Ħ:"Hstrok",𝕚:"iopf",𝔦:"ifr",𝒾:"iscr",ⅈ:"ii",𝕀:"Iopf",ℐ:"Iscr",ℑ:"Im",í:"iacute",Í:"Iacute",ì:"igrave",Ì:"Igrave",î:"icirc",Î:"Icirc",ï:"iuml",Ï:"Iuml",ĩ:"itilde",Ĩ:"Itilde",İ:"Idot",į:"iogon",Į:"Iogon",ī:"imacr",Ī:"Imacr",ij:"ijlig",IJ:"IJlig",ı:"imath",𝒿:"jscr",𝕛:"jopf",𝔧:"jfr",𝒥:"Jscr",𝔍:"Jfr",𝕁:"Jopf",ĵ:"jcirc",Ĵ:"Jcirc",ȷ:"jmath",𝕜:"kopf",𝓀:"kscr",𝔨:"kfr",𝒦:"Kscr",𝕂:"Kopf",𝔎:"Kfr",ķ:"kcedil",Ķ:"Kcedil",𝔩:"lfr",𝓁:"lscr",ℓ:"ell",𝕝:"lopf",ℒ:"Lscr",𝔏:"Lfr",𝕃:"Lopf",ĺ:"lacute",Ĺ:"Lacute",ľ:"lcaron",Ľ:"Lcaron",ļ:"lcedil",Ļ:"Lcedil",ł:"lstrok",Ł:"Lstrok",ŀ:"lmidot",Ŀ:"Lmidot",𝔪:"mfr",𝕞:"mopf",𝓂:"mscr",𝔐:"Mfr",𝕄:"Mopf",ℳ:"Mscr",𝔫:"nfr",𝕟:"nopf",𝓃:"nscr",ℕ:"Nopf",𝒩:"Nscr",𝔑:"Nfr",ń:"nacute",Ń:"Nacute",ň:"ncaron",Ň:"Ncaron",ñ:"ntilde",Ñ:"Ntilde",ņ:"ncedil",Ņ:"Ncedil","№":"numero",ŋ:"eng",Ŋ:"ENG",𝕠:"oopf",𝔬:"ofr",ℴ:"oscr",𝒪:"Oscr",𝔒:"Ofr",𝕆:"Oopf",º:"ordm",ó:"oacute",Ó:"Oacute",ò:"ograve",Ò:"Ograve",ô:"ocirc",Ô:"Ocirc",ö:"ouml",Ö:"Ouml",ő:"odblac",Ő:"Odblac",õ:"otilde",Õ:"Otilde",ø:"oslash",Ø:"Oslash",ō:"omacr",Ō:"Omacr",œ:"oelig",Œ:"OElig",𝔭:"pfr",𝓅:"pscr",𝕡:"popf",ℙ:"Popf",𝔓:"Pfr",𝒫:"Pscr",𝕢:"qopf",𝔮:"qfr",𝓆:"qscr",𝒬:"Qscr",𝔔:"Qfr",ℚ:"Qopf",ĸ:"kgreen",𝔯:"rfr",𝕣:"ropf",𝓇:"rscr",ℛ:"Rscr",ℜ:"Re",ℝ:"Ropf",ŕ:"racute",Ŕ:"Racute",ř:"rcaron",Ř:"Rcaron",ŗ:"rcedil",Ŗ:"Rcedil",𝕤:"sopf",𝓈:"sscr",𝔰:"sfr",𝕊:"Sopf",𝔖:"Sfr",𝒮:"Sscr","Ⓢ":"oS",ś:"sacute",Ś:"Sacute",ŝ:"scirc",Ŝ:"Scirc",š:"scaron",Š:"Scaron",ş:"scedil",Ş:"Scedil",ß:"szlig",𝔱:"tfr",𝓉:"tscr",𝕥:"topf",𝒯:"Tscr",𝔗:"Tfr",𝕋:"Topf",ť:"tcaron",Ť:"Tcaron",ţ:"tcedil",Ţ:"Tcedil","™":"trade",ŧ:"tstrok",Ŧ:"Tstrok",𝓊:"uscr",𝕦:"uopf",𝔲:"ufr",𝕌:"Uopf",𝔘:"Ufr",𝒰:"Uscr",ú:"uacute",Ú:"Uacute",ù:"ugrave",Ù:"Ugrave",ŭ:"ubreve",Ŭ:"Ubreve",û:"ucirc",Û:"Ucirc",ů:"uring",Ů:"Uring",ü:"uuml",Ü:"Uuml",ű:"udblac",Ű:"Udblac",ũ:"utilde",Ũ:"Utilde",ų:"uogon",Ų:"Uogon",ū:"umacr",Ū:"Umacr",𝔳:"vfr",𝕧:"vopf",𝓋:"vscr",𝔙:"Vfr",𝕍:"Vopf",𝒱:"Vscr",𝕨:"wopf",𝓌:"wscr",𝔴:"wfr",𝒲:"Wscr",𝕎:"Wopf",𝔚:"Wfr",ŵ:"wcirc",Ŵ:"Wcirc",𝔵:"xfr",𝓍:"xscr",𝕩:"xopf",𝕏:"Xopf",𝔛:"Xfr",𝒳:"Xscr",𝔶:"yfr",𝓎:"yscr",𝕪:"yopf",𝒴:"Yscr",𝔜:"Yfr",𝕐:"Yopf",ý:"yacute",Ý:"Yacute",ŷ:"ycirc",Ŷ:"Ycirc",ÿ:"yuml",Ÿ:"Yuml",𝓏:"zscr",𝔷:"zfr",𝕫:"zopf",ℨ:"Zfr",ℤ:"Zopf",𝒵:"Zscr",ź:"zacute",Ź:"Zacute",ž:"zcaron",Ž:"Zcaron",ż:"zdot",Ż:"Zdot",Ƶ:"imped",þ:"thorn",Þ:"THORN",ʼn:"napos",α:"alpha",Α:"Alpha",β:"beta",Β:"Beta",γ:"gamma",Γ:"Gamma",δ:"delta",Δ:"Delta",ε:"epsi",ϵ:"epsiv",Ε:"Epsilon",ϝ:"gammad",Ϝ:"Gammad",ζ:"zeta",Ζ:"Zeta",η:"eta",Η:"Eta",θ:"theta",ϑ:"thetav",Θ:"Theta",ι:"iota",Ι:"Iota",κ:"kappa",ϰ:"kappav",Κ:"Kappa",λ:"lambda",Λ:"Lambda",μ:"mu",µ:"micro",Μ:"Mu",ν:"nu",Ν:"Nu",ξ:"xi",Ξ:"Xi",ο:"omicron",Ο:"Omicron",π:"pi",ϖ:"piv",Π:"Pi",ρ:"rho",ϱ:"rhov",Ρ:"Rho",σ:"sigma",Σ:"Sigma",ς:"sigmaf",τ:"tau",Τ:"Tau",υ:"upsi",Υ:"Upsilon",ϒ:"Upsi",φ:"phi",ϕ:"phiv",Φ:"Phi",χ:"chi",Χ:"Chi",ψ:"psi",Ψ:"Psi",ω:"omega",Ω:"ohm",а:"acy",А:"Acy",б:"bcy",Б:"Bcy",в:"vcy",В:"Vcy",г:"gcy",Г:"Gcy",ѓ:"gjcy",Ѓ:"GJcy",д:"dcy",Д:"Dcy",ђ:"djcy",Ђ:"DJcy",е:"iecy",Е:"IEcy",ё:"iocy",Ё:"IOcy",є:"jukcy",Є:"Jukcy",ж:"zhcy",Ж:"ZHcy",з:"zcy",З:"Zcy",ѕ:"dscy",Ѕ:"DScy",и:"icy",И:"Icy",і:"iukcy",І:"Iukcy",ї:"yicy",Ї:"YIcy",й:"jcy",Й:"Jcy",ј:"jsercy",Ј:"Jsercy",к:"kcy",К:"Kcy",ќ:"kjcy",Ќ:"KJcy",л:"lcy",Л:"Lcy",љ:"ljcy",Љ:"LJcy",м:"mcy",М:"Mcy",н:"ncy",Н:"Ncy",њ:"njcy",Њ:"NJcy",о:"ocy",О:"Ocy",п:"pcy",П:"Pcy",р:"rcy",Р:"Rcy",с:"scy",С:"Scy",т:"tcy",Т:"Tcy",ћ:"tshcy",Ћ:"TSHcy",у:"ucy",У:"Ucy",ў:"ubrcy",Ў:"Ubrcy",ф:"fcy",Ф:"Fcy",х:"khcy",Х:"KHcy",ц:"tscy",Ц:"TScy",ч:"chcy",Ч:"CHcy",џ:"dzcy",Џ:"DZcy",ш:"shcy",Ш:"SHcy",щ:"shchcy",Щ:"SHCHcy",ъ:"hardcy",Ъ:"HARDcy",ы:"ycy",Ы:"Ycy",ь:"softcy",Ь:"SOFTcy",э:"ecy",Э:"Ecy",ю:"yucy",Ю:"YUcy",я:"yacy",Я:"YAcy",ℵ:"aleph",ℶ:"beth",ℷ:"gimel",ℸ:"daleth"},d=/["&'<>`]/g,u={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},p=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,h=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,f=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,g={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:" ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"",zwnj:""},m={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},v={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},b=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],w=String.fromCharCode,y={}.hasOwnProperty,x=function(e,t){return y.call(e,t)},k=function(e,t){if(!e)return t;var r,n={};for(r in t)n[r]=x(e,r)?e[r]:t[r];return n},E=function(e,t){var r="";return e>=55296&&e<=57343||e>1114111?(t&&D("character reference outside the permissible Unicode range"),"�"):x(v,e)?(t&&D("disallowed character reference"),v[e]):(t&&function(e,t){for(var r=-1,n=e.length;++r<n;)if(e[r]==t)return!0;return!1}(b,e)&&D("disallowed character reference"),e>65535&&(r+=w((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=w(e))},T=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},S=function(e){return"&#"+e+";"},D=function(e){throw Error("Parse error: "+e)},A=function(e,t){(t=k(t,A.options)).strict&&h.test(e)&&D("forbidden code point");var r=t.encodeEverything,n=t.useNamedReferences,o=t.allowUnsafeSymbols,u=t.decimal?S:T,p=function(e){return u(e.charCodeAt(0))};return r?(e=e.replace(a,function(e){return n&&x(c,e)?"&"+c[e]+";":p(e)}),n&&(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),n&&(e=e.replace(l,function(e){return"&"+c[e]+";"}))):n?(o||(e=e.replace(d,function(e){return"&"+c[e]+";"})),e=(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(l,function(e){return"&"+c[e]+";"})):o||(e=e.replace(d,p)),e.replace(i,function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1);return u(1024*(t-55296)+r-56320+65536)}).replace(s,p)};A.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var C=function(e,t){var r=(t=k(t,C.options)).strict;return r&&p.test(e)&&D("malformed character reference"),e.replace(f,function(e,n,o,i,a,s,l,c,d){var u,p,h,f,v,b;return n?g[v=n]:o?(v=o,(b=i)&&t.isAttributeValue?(r&&"="==b&&D("`&` did not start a character reference"),e):(r&&D("named character reference was not terminated by a semicolon"),m[v]+(b||""))):a?(h=a,p=s,r&&!p&&D("character reference was not terminated by a semicolon"),u=parseInt(h,10),E(u,r)):l?(f=l,p=c,r&&!p&&D("character reference was not terminated by a semicolon"),u=parseInt(f,16),E(u,r)):(r&&D("named character reference was not terminated by a semicolon"),e)})};C.options={isAttributeValue:!1,strict:!1};var _={version:"1.2.0",encode:A,decode:C,escape:function(e){return e.replace(d,function(e){return u[e]})},unescape:C};void 0===(n=function(){return _}.call(t,r,t,e))||(e.exports=n)}()},777(e,t,r){"use strict";r.d(t,{toPng:()=>q});const n=(()=>{let e=0;return()=>(e+=1,`u${`0000${(Math.random()*36**4|0).toString(36)}`.slice(-4)}${e}`)})();function o(e){const t=[];for(let r=0,n=e.length;r<n;r++)t.push(e[r]);return t}let i=null;function a(e={}){return i||(e.includeStyleProperties?(i=e.includeStyleProperties,i):(i=o(window.getComputedStyle(document.documentElement)),i))}function s(e,t){const r=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return r?parseFloat(r.replace("px","")):0}function l(e,t={}){return{width:t.width||function(e){const t=s(e,"border-left-width"),r=s(e,"border-right-width");return e.clientWidth+t+r}(e),height:t.height||function(e){const t=s(e,"border-top-width"),r=s(e,"border-bottom-width");return e.clientHeight+t+r}(e)}}const c=16384;function d(e){return new Promise((t,r)=>{const n=new Image;n.onload=()=>{n.decode().then(()=>{requestAnimationFrame(()=>t(n))})},n.onerror=r,n.crossOrigin="anonymous",n.decoding="async",n.src=e})}const u=(e,t)=>{if(e instanceof t)return!0;const r=Object.getPrototypeOf(e);return null!==r&&(r.constructor.name===t.name||u(r,t))};function p(e,t,r,o){const i=window.getComputedStyle(e,r),s=i.getPropertyValue("content");if(""===s||"none"===s)return;const l=n();try{t.className=`${t.className} ${l}`}catch(e){return}const c=document.createElement("style");c.appendChild(function(e,t,r,n){const o=`.${e}:${t}`,i=r.cssText?function(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}(r):function(e,t){return a(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?" !important":""};`).join(" ")}(r,n);return document.createTextNode(`${o}{${i}}`)}(l,r,i,o)),t.appendChild(c)}const h="application/font-woff",f="image/jpeg",g={woff:h,woff2:h,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:f,jpeg:f,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function m(e){const t=function(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}(e).toLowerCase();return g[t]||""}function v(e){return-1!==e.search(/^(data:)/)}function b(e,t){return`data:${t};base64,${e}`}async function w(e,t,r){const n=await fetch(e,t);if(404===n.status)throw new Error(`Resource "${n.url}" not found`);const o=await n.blob();return new Promise((e,t)=>{const i=new FileReader;i.onerror=t,i.onloadend=()=>{try{e(r({res:n,result:i.result}))}catch(e){t(e)}},i.readAsDataURL(o)})}const y={};async function x(e,t,r){const n=function(e,t,r){let n=e.replace(/\?.*/,"");return r&&(n=e),/ttf|otf|eot|woff2?/i.test(n)&&(n=n.replace(/.*\//,"")),t?`[${t}]${n}`:n}(e,t,r.includeQueryParams);if(null!=y[n])return y[n];let o;r.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+(new Date).getTime());try{const n=await w(e,r.fetchRequestInit,({res:e,result:r})=>(t||(t=e.headers.get("Content-Type")||""),function(e){return e.split(/,/)[1]}(r)));o=b(n,t)}catch(t){o=r.imagePlaceholder||"";let n=`Failed to fetch resource: ${e}`;t&&(n="string"==typeof t?t:t.message),n&&console.warn(n)}return y[n]=o,o}const k=e=>null!=e.tagName&&"SVG"===e.tagName.toUpperCase();async function E(e,t,r){return r||!t.filter||t.filter(e)?Promise.resolve(e).then(e=>async function(e,t){return u(e,HTMLCanvasElement)?async function(e){const t=e.toDataURL();return"data:,"===t?e.cloneNode(!1):d(t)}(e):u(e,HTMLVideoElement)?async function(e,t){if(e.currentSrc){const t=document.createElement("canvas"),r=t.getContext("2d");return t.width=e.clientWidth,t.height=e.clientHeight,null==r||r.drawImage(e,0,0,t.width,t.height),d(t.toDataURL())}const r=e.poster,n=m(r);return d(await x(r,n,t))}(e,t):u(e,HTMLIFrameElement)?async function(e,t){var r;try{if(null===(r=null==e?void 0:e.contentDocument)||void 0===r?void 0:r.body)return await E(e.contentDocument.body,t,!0)}catch(e){}return e.cloneNode(!1)}(e,t):e.cloneNode(k(e))}(e,t)).then(r=>async function(e,t,r){var n,i;if(k(t))return t;let a=[];var s;return a=null!=(s=e).tagName&&"SLOT"===s.tagName.toUpperCase()&&e.assignedNodes?o(e.assignedNodes()):u(e,HTMLIFrameElement)&&(null===(n=e.contentDocument)||void 0===n?void 0:n.body)?o(e.contentDocument.body.childNodes):o((null!==(i=e.shadowRoot)&&void 0!==i?i:e).childNodes),0===a.length||u(e,HTMLVideoElement)||await a.reduce((e,n)=>e.then(()=>E(n,r)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}(e,r,t)).then(r=>function(e,t,r){return u(t,Element)&&(function(e,t,r){const n=t.style;if(!n)return;const o=window.getComputedStyle(e);o.cssText?(n.cssText=o.cssText,n.transformOrigin=o.transformOrigin):a(r).forEach(r=>{let i=o.getPropertyValue(r);if("font-size"===r&&i.endsWith("px")){const e=Math.floor(parseFloat(i.substring(0,i.length-2)))-.1;i=`${e}px`}u(e,HTMLIFrameElement)&&"display"===r&&"inline"===i&&(i="block"),"d"===r&&t.getAttribute("d")&&(i=`path(${t.getAttribute("d")})`),n.setProperty(r,i,o.getPropertyPriority(r))})}(e,t,r),function(e,t,r){p(e,t,":before",r),p(e,t,":after",r)}(e,t,r),function(e,t){u(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),u(e,HTMLInputElement)&&t.setAttribute("value",e.value)}(e,t),function(e,t){if(u(e,HTMLSelectElement)){const r=t,n=Array.from(r.children).find(t=>e.value===t.getAttribute("value"));n&&n.setAttribute("selected","")}}(e,t)),t}(e,r,t)).then(e=>async function(e,t){const r=e.querySelectorAll?e.querySelectorAll("use"):[];if(0===r.length)return e;const n={};for(let o=0;o<r.length;o++){const i=r[o].getAttribute("xlink:href");if(i){const r=e.querySelector(i),o=document.querySelector(i);r||!o||n[i]||(n[i]=await E(o,t,!0))}}const o=Object.values(n);if(o.length){const t="http://www.w3.org/1999/xhtml",r=document.createElementNS(t,"svg");r.setAttribute("xmlns",t),r.style.position="absolute",r.style.width="0",r.style.height="0",r.style.overflow="hidden",r.style.display="none";const n=document.createElementNS(t,"defs");r.appendChild(n);for(let e=0;e<o.length;e++)n.appendChild(o[e]);e.appendChild(r)}return e}(e,t)):null}const T=/url\((['"]?)([^'"]+?)\1\)/g,S=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,D=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function A(e){return-1!==e.search(T)}async function C(e,t,r){if(!A(e))return e;const n=function(e,{preferredFontFormat:t}){return t?e.replace(D,e=>{for(;;){const[r,,n]=S.exec(e)||[];if(!n)return"";if(n===t)return`src: ${r};`}}):e}(e,r),o=function(e){const t=[];return e.replace(T,(e,r,n)=>(t.push(n),e)),t.filter(e=>!v(e))}(n);return o.reduce((e,n)=>e.then(e=>async function(e,t,r,n,o){try{const i=r?function(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const r=document.implementation.createHTMLDocument(),n=r.createElement("base"),o=r.createElement("a");return r.head.appendChild(n),r.body.appendChild(o),t&&(n.href=t),o.href=e,o.href}(t,r):t,a=m(t);let s;return s=o?b(await o(i),a):await x(i,a,n),e.replace(function(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}(t),`$1${s}$3`)}catch(e){}return e}(e,n,t,r)),Promise.resolve(n))}async function _(e,t,r){var n;const o=null===(n=t.style)||void 0===n?void 0:n.getPropertyValue(e);if(o){const n=await C(o,null,r);return t.style.setProperty(e,n,t.style.getPropertyPriority(e)),!0}return!1}async function N(e,t){u(e,Element)&&(await async function(e,t){await _("background",e,t)||await _("background-image",e,t),await _("mask",e,t)||await _("-webkit-mask",e,t)||await _("mask-image",e,t)||await _("-webkit-mask-image",e,t)}(e,t),await async function(e,t){const r=u(e,HTMLImageElement);if((!r||v(e.src))&&(!u(e,SVGImageElement)||v(e.href.baseVal)))return;const n=r?e.src:e.href.baseVal,o=await x(n,m(n),t);await new Promise((n,i)=>{e.onload=n,e.onerror=t.onImageErrorHandler?(...e)=>{try{n(t.onImageErrorHandler(...e))}catch(e){i(e)}}:i;const a=e;a.decode&&(a.decode=n),"lazy"===a.loading&&(a.loading="eager"),r?(e.srcset="",e.src=o):e.href.baseVal=o})}(e,t),await async function(e,t){const r=o(e.childNodes).map(e=>N(e,t));await Promise.all(r).then(()=>e)}(e,t))}const L={};async function O(e){let t=L[e];if(null!=t)return t;const r=await fetch(e);return t={url:e,cssText:await r.text()},L[e]=t,t}async function B(e,t){let r=e.cssText;const n=/url\(["']?([^"')]+)["']?\)/g,o=(r.match(/url\([^)]+\)/g)||[]).map(async o=>{let i=o.replace(n,"$1");return i.startsWith("https://")||(i=new URL(i,e.url).href),w(i,t.fetchRequestInit,({result:e})=>(r=r.replace(o,`url(${e})`),[o,e]))});return Promise.all(o).then(()=>r)}function I(e){if(null==e)return[];const t=[];let r=e.replace(/(\/\*[\s\S]*?\*\/)/gi,"");const n=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const e=n.exec(r);if(null===e)break;t.push(e[0])}r=r.replace(n,"");const o=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,i=new RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let e=o.exec(r);if(null===e){if(e=i.exec(r),null===e)break;o.lastIndex=i.lastIndex}else i.lastIndex=o.lastIndex;t.push(e[0])}return t}function M(e){return e.trim().replace(/["']/g,"")}async function P(e,t){const r=await async function(e,t){if(null==e.ownerDocument)throw new Error("Provided element is not within a Document");const r=o(e.ownerDocument.styleSheets),n=await async function(e,t){const r=[],n=[];return e.forEach(r=>{if("cssRules"in r)try{o(r.cssRules||[]).forEach((e,o)=>{if(e.type===CSSRule.IMPORT_RULE){let i=o+1;const a=O(e.href).then(e=>B(e,t)).then(e=>I(e).forEach(e=>{try{r.insertRule(e,e.startsWith("@import")?i+=1:r.cssRules.length)}catch(t){console.error("Error inserting rule from remote css",{rule:e,error:t})}})).catch(e=>{console.error("Error loading remote css",e.toString())});n.push(a)}})}catch(o){const i=e.find(e=>null==e.href)||document.styleSheets[0];null!=r.href&&n.push(O(r.href).then(e=>B(e,t)).then(e=>I(e).forEach(e=>{i.insertRule(e,i.cssRules.length)})).catch(e=>{console.error("Error loading remote stylesheet",e)})),console.error("Error inlining remote css file",o)}}),Promise.all(n).then(()=>(e.forEach(e=>{if("cssRules"in e)try{o(e.cssRules||[]).forEach(e=>{r.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),r))}(r,t);return function(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>A(e.style.getPropertyValue("src")))}(n)}(e,t),n=function(e){const t=new Set;return function e(r){(r.style.fontFamily||getComputedStyle(r).fontFamily).split(",").forEach(e=>{t.add(M(e))}),Array.from(r.children).forEach(t=>{t instanceof HTMLElement&&e(t)})}(e),t}(e);return(await Promise.all(r.filter(e=>n.has(M(e.style.fontFamily))).map(e=>{const r=e.parentStyleSheet?e.parentStyleSheet.href:null;return C(e.cssText,r,t)}))).join("\n")}async function R(e,t={}){const{width:r,height:n}=l(e,t),o=await E(e,t,!0);return await async function(e,t){const r=null!=t.fontEmbedCSS?t.fontEmbedCSS:t.skipFonts?null:await P(e,t);if(r){const t=document.createElement("style"),n=document.createTextNode(r);t.appendChild(n),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}(o,t),await N(o,t),function(e,t){const{style:r}=e;t.backgroundColor&&(r.backgroundColor=t.backgroundColor),t.width&&(r.width=`${t.width}px`),t.height&&(r.height=`${t.height}px`);const n=t.style;null!=n&&Object.keys(n).forEach(e=>{r[e]=n[e]})}(o,t),await async function(e,t,r){const n="http://www.w3.org/2000/svg",o=document.createElementNS(n,"svg"),i=document.createElementNS(n,"foreignObject");return o.setAttribute("width",`${t}`),o.setAttribute("height",`${r}`),o.setAttribute("viewBox",`0 0 ${t} ${r}`),i.setAttribute("width","100%"),i.setAttribute("height","100%"),i.setAttribute("x","0"),i.setAttribute("y","0"),i.setAttribute("externalResourcesRequired","true"),o.appendChild(i),i.appendChild(e),async function(e){return Promise.resolve().then(()=>(new XMLSerializer).serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}(o)}(o,r,n)}async function q(e,t={}){return(await async function(e,t={}){const{width:r,height:n}=l(e,t),o=await R(e,t),i=await d(o),a=document.createElement("canvas"),s=a.getContext("2d"),u=t.pixelRatio||function(){let e,t;try{t=process}catch(e){}const r=t&&t.env?t.env.devicePixelRatio:null;return r&&(e=parseInt(r,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}(),p=t.canvasWidth||r,h=t.canvasHeight||n;return a.width=p*u,a.height=h*u,t.skipAutoScale||function(e){(e.width>c||e.height>c)&&(e.width>c&&e.height>c?e.width>e.height?(e.height*=c/e.width,e.width=c):(e.width*=c/e.height,e.height=c):e.width>c?(e.height*=c/e.width,e.width=c):(e.width*=c/e.height,e.height=c))}(a),a.style.width=`${p}`,a.style.height=`${h}`,t.backgroundColor&&(s.fillStyle=t.backgroundColor,s.fillRect(0,0,a.width,a.height)),s.drawImage(i,0,0,a.width,a.height),a}(e,t)).toDataURL()}},8970(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeHtmlParserConfig=t.aTagTranslatorConfig=t.defaultCodeBlockTranslators=t.tableCellTranslatorConfig=t.tableRowTranslatorConfig=t.tableTranslatorConfig=t.defaultTranslators=t.defaultOptions=t.contentlessElements=t.defaultIgnoreElements=t.defaultBlockElements=void 0;const n=r(6470),o=r(7306);t.defaultBlockElements=["ADDRESS","ARTICLE","ASIDE","AUDIO","BLOCKQUOTE","BODY","CANVAS","CENTER","DD","DIR","DIV","DL","DT","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAMESET","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","HTML","ISINDEX","LI","MAIN","MENU","NAV","NOFRAMES","NOSCRIPT","OL","OUTPUT","P","PRE","SECTION","TABLE","TBODY","TD","TFOOT","TH","THEAD","TR","UL"],t.defaultIgnoreElements=["AREA","BASE","COL","COMMAND","EMBED","HEAD","INPUT","KEYGEN","LINK","META","PARAM","SCRIPT","SOURCE","STYLE","TRACK","WBR"],t.contentlessElements=["BR","HR","IMG"],t.defaultOptions=Object.freeze({preferNativeParser:!1,codeFence:"```",bulletMarker:"*",indent:" ",codeBlockStyle:"fenced",emDelimiter:"_",strongDelimiter:"**",strikeDelimiter:"~~",maxConsecutiveNewlines:3,globalEscape:[/[\\`*_~\[\]]/gm,"\\$&"],lineStartEscape:[/^(\s*?)((?:\+\s)|(?:[=>-])|(?:#{1,6}\s))|(?:(\d+)(\.\s))/gm,"$1$3\\$2$4"],useInlineLinks:!0}),t.defaultTranslators={pre:{noEscape:!0,preserveWhitespace:!0},br:{content:" \n",recurse:!1},hr:{content:"---",recurse:!1},"h1,h2,h3,h4,h5,h6":({node:e})=>({prefix:"#".repeat(+e.tagName.charAt(1))+" "}),"strong,b":{spaceIfRepeatingChar:!0,postprocess:({content:e,options:{strongDelimiter:t}})=>(0,n.isWhiteSpaceOnly)(e)?o.PostProcessResult.RemoveNode:(0,n.tagSurround)(e,t)},"del,s,strike":{spaceIfRepeatingChar:!0,postprocess:({content:e,options:{strikeDelimiter:t}})=>(0,n.isWhiteSpaceOnly)(e)?o.PostProcessResult.RemoveNode:(0,n.tagSurround)(e,t)},"em,i":{spaceIfRepeatingChar:!0,postprocess:({content:e,options:{emDelimiter:t}})=>(0,n.isWhiteSpaceOnly)(e)?o.PostProcessResult.RemoveNode:(0,n.tagSurround)(e,t)},"ol,ul":({listKind:e})=>({surroundingNewlines:e?1:2}),li:({options:{bulletMarker:e},indentLevel:t,listKind:r,listItemNumber:i})=>{const a=+(t||0);return{prefix:" ".repeat(+(t||0))+("OL"===r&&void 0!==i?`${i}. `:`${e} `),surroundingNewlines:1,postprocess:({content:e})=>(0,n.isWhiteSpaceOnly)(e)?o.PostProcessResult.RemoveNode:e.trim().replace(/([^\r\n])(?:\r?\n)+/g,`$1 \n${" ".repeat(a)}`).replace(/(\S+?)[^\S\r\n]+$/gm,"$1 ")}},blockquote:{postprocess:({content:e})=>(0,n.trimNewLines)(e).replace(/^(>*)[^\S\r\n]?/gm,">$1 ")},code:({node:e,parent:t,options:{codeFence:r,codeBlockStyle:o},visitor:i})=>{var a,s;return["PRE","WRAPPED-PRE"].includes(null==t?void 0:t.tagName)&&t.childNodes.length<2?"fenced"===o?{noEscape:!0,prefix:r+((null===(s=null===(a=e.getAttribute("class"))||void 0===a?void 0:a.match(/language-(\S+)/))||void 0===s?void 0:s[1])||"")+"\n",postfix:"\n"+r,childTranslators:i.instance.codeBlockTranslators}:{noEscape:!0,postprocess:({content:e})=>e.replace(/^/gm," "),childTranslators:i.instance.codeBlockTranslators}:{spaceIfRepeatingChar:!0,noEscape:!0,postprocess:({content:e})=>{var t,r;const o="`"+((null===(r=null===(t=e.match(/`+/g))||void 0===t?void 0:t.sort((e,t)=>t.length-e.length))||void 0===r?void 0:r[0])||""),i=o.length>1?" ":"";return(0,n.surround)((0,n.surround)(e,i),o)}}},table:({visitor:e})=>({surroundingNewlines:2,childTranslators:e.instance.tableTranslators,postprocess:({content:e,nodeMetadata:t,node:r})=>{const i=(0,n.splitSpecial)(e).map(({text:e})=>e.replace(/^(?:\|\s+)?(.+)\s*\|\s*$/,"$1")),a=[];let s=[];for(const e of i){if(!e)continue;const t=e.split(" |").map((e,t)=>(e=e.trim(),(s.length<t+1||s[t]<e.length)&&(s[t]=e.length),e));a.push(t)}if(a.length<1)return o.PostProcessResult.RemoveNode;const l=s.length;let c="";const d=t.get(r).tableMeta.caption;return d&&(c+=d+"\n"),a.forEach((e,t)=>{var r;c+="| ";for(let t=0;t<l;t++){let n=null!==(r=e[t])&&void 0!==r?r:"";n+=" ".repeat(Math.max(0,s[t]-n.length)),c+=n+" |"+(t<l-1?" ":"")}c+="\n",0===t&&(c+="|"+s.map(e=>" "+"-".repeat(e)+" |").join("")+"\n")}),c}}),a:({node:e,options:t,visitor:r})=>{const n=e.getAttribute("href");if(!n)return{};let o="";for(const e of n)switch(e){case"(":o+="%28";break;case")":o+="%29";break;case"_":o+="%5F";break;case"*":o+="%2A";break;default:o+=e}const i=e.getAttribute("title");return e.textContent===n&&t.useInlineLinks?{content:`<${o}>`}:{postprocess:({content:e})=>e.replace(/(?:\r?\n)+/g," "),childTranslators:r.instance.aTagTranslators,prefix:"[",postfix:"]"+(t.useLinkReferenceDefinitions?`[${r.addOrGetUrlDefinition(o)}]`:`(${o}${i?` "${i}"`:""})`)}},img:({node:e,options:t})=>{const r=e.getAttribute("src")||"";if(!r||!t.keepDataImages&&/^data:/i.test(r))return{ignore:!0};const n=e.getAttribute("alt")||"",o=e.getAttribute("title")||"";return{content:``,recurse:!1}}},t.tableTranslatorConfig={caption:({visitor:e})=>({surroundingNewlines:!1,childTranslators:e.instance.tableCellTranslators,postprocess:({content:e,nodeMetadata:t,node:r})=>{const n=e.replace(/(?:\r?\n)+/g," ").trim();return n&&(t.get(r).tableMeta.caption="__"+n+"__"),o.PostProcessResult.RemoveNode}}),tr:({visitor:e})=>({surroundingNewlines:!1,childTranslators:e.instance.tableRowTranslators,postfix:"\n",prefix:"| ",postprocess:({content:e})=>/ \|\s*$/.test(e)?e:o.PostProcessResult.RemoveNode}),"th,td":({visitor:e})=>({surroundingNewlines:!1,childTranslators:e.instance.tableCellTranslators,prefix:" ",postfix:" |",postprocess:({content:e})=>(0,n.trimNewLines)(e).replace("|","\\|").replace(/(?:\r?\n)+/g," ").trim()})},t.tableRowTranslatorConfig={"th,td":t.tableTranslatorConfig["th,td"]},t.tableCellTranslatorConfig={a:t.defaultTranslators.a,"strong,b":t.defaultTranslators["strong,b"],"del,s,strike":t.defaultTranslators["del,s,strike"],"em,i":t.defaultTranslators["em,i"],img:t.defaultTranslators.img},t.defaultCodeBlockTranslators={br:{content:"\n",recurse:!1},hr:{content:"---",recurse:!1},"h1,h2,h3,h4,h5,h6":{prefix:"[",postfix:"]"},"ol,ul":t.defaultTranslators["ol,ul"],li:t.defaultTranslators.li,tr:{surroundingNewlines:!0},img:{recurse:!1}},t.aTagTranslatorConfig={br:{content:"\n",recurse:!1},hr:{content:"\n",recurse:!1},pre:t.defaultTranslators.pre,"strong,b":t.defaultTranslators["strong,b"],"del,s,strike":t.defaultTranslators["del,s,strike"],"em,i":t.defaultTranslators["em,i"],img:t.defaultTranslators.img},t.nodeHtmlParserConfig={lowerCaseTagName:!1,comment:!1,fixNestedATags:!0,blockTextElements:{script:!1,noscript:!1,style:!1}}},4770(e,t,r){"use strict";t.lW=void 0;var n=r(981);Object.defineProperty(t,"lW",{enumerable:!0,get:function(){return n.NodeHtmlMarkdown}});r(7306)},981(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeHtmlMarkdown=void 0;const n=r(7306),o=r(8970),i=r(6470),a=r(2488);class s{constructor(e,t,r){var i,a,s,l;this.translators=new n.TranslatorCollection,this.aTagTranslators=new n.TranslatorCollection,this.codeBlockTranslators=new n.TranslatorCollection,this.tableTranslators=new n.TranslatorCollection,this.tableRowTranslators=new n.TranslatorCollection,this.tableCellTranslators=new n.TranslatorCollection,this.options=Object.assign(Object.assign({},o.defaultOptions),e);const c=null!==(a=null===(i=this.options.ignore)||void 0===i?void 0:i.concat(o.defaultIgnoreElements))&&void 0!==a?a:o.defaultIgnoreElements,d=null!==(l=null===(s=this.options.blockElements)||void 0===s?void 0:s.concat(o.defaultBlockElements))&&void 0!==l?l:o.defaultBlockElements;null==c||c.forEach(e=>{this.translators.set(e,{ignore:!0,recurse:!1}),this.codeBlockTranslators.set(e,{ignore:!0,recurse:!1})}),null==d||d.forEach(e=>{this.translators.set(e,{surroundingNewlines:2}),this.codeBlockTranslators.set(e,{surroundingNewlines:2})});for(const[e,r]of Object.entries(Object.assign(Object.assign({},o.defaultTranslators),t)))this.translators.set(e,r,!0);for(const[e,t]of Object.entries(Object.assign(Object.assign({},o.defaultCodeBlockTranslators),r)))this.codeBlockTranslators.set(e,t,!0);for(const[e,t]of Object.entries(o.aTagTranslatorConfig))this.aTagTranslators.set(e,t,!0);for(const[e,t]of Object.entries(o.tableTranslatorConfig))this.tableTranslators.set(e,t,!0);for(const[e,t]of Object.entries(o.tableRowTranslatorConfig))this.tableRowTranslators.set(e,t,!0);for(const[e,t]of Object.entries(o.tableCellTranslatorConfig))this.tableCellTranslators.set(e,t,!0);this.options.textReplace||(this.options.textReplace=[]),this.options.textReplace.push([/^<!DOCTYPE.*>/gim,""])}static translate(e,t,r,n){return s.prototype.translateWorker.call(new s(t,r,n),e)}translate(e){return this.translateWorker(e)}translateWorker(e){const t="string"!=typeof e,r=t?e:{default:e},n={};for(const[e,t]of Object.entries(r)){const r=(0,i.parseHTML)(t,this.options);n[e]=(0,a.getMarkdownForHtmlNodes)(this,r,"default"!==e?e:void 0)}return t?n:n.default}}t.NodeHtmlMarkdown=s},9239(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isElementNode=t.isCommentNode=t.isTextNode=t.CommentNode=t.NodeType=void 0;const n=r(6192);Object.defineProperty(t,"CommentNode",{enumerable:!0,get:function(){return n.CommentNode}}),Object.defineProperty(t,"NodeType",{enumerable:!0,get:function(){return n.NodeType}}),t.isTextNode=e=>e.nodeType===n.NodeType.TEXT_NODE,t.isCommentNode=e=>e.nodeType===n.NodeType.COMMENT_NODE,t.isElementNode=e=>e.nodeType===n.NodeType.ELEMENT_NODE},7306(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.createTranslatorContext=t.isTranslatorConfig=t.TranslatorCollection=t.PostProcessResult=void 0,(r=t.PostProcessResult||(t.PostProcessResult={}))[r.NoChange=0]="NoChange",r[r.RemoveNode=1]="RemoveNode",t.TranslatorCollection=class{get size(){return Object.keys(this).length}set(e,r,n){e.split(",").forEach(e=>{e=e.toUpperCase();let o=r;if(n){const n=this[e];(0,t.isTranslatorConfig)(n)&&(o=(0,t.isTranslatorConfig)(r)?Object.assign(Object.assign({},n),r):Object.assign((...e)=>r.apply(void 0,e),{base:n}))}this[e]=o})}get(e){return this[e.toUpperCase()]}entries(){return Object.entries(this)}remove(e){e.split(",").forEach(e=>delete this[e.toUpperCase()])}},t.isTranslatorConfig=e=>"object"==typeof e,t.createTranslatorContext=function(e,t,r,n){const{instance:o,nodeMetadata:i}=e;return Object.assign({node:t,options:o.options,parent:t.parentNode,nodeMetadata:i,visitor:e,base:n},r)}},6470(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.perfStop=t.perfStart=t.getChildNodes=t.parseHTML=t.truthyStr=t.getTrailingWhitespaceInfo=t.tagSurround=t.splitSpecial=t.isWhiteSpaceOnly=t.surround=t.trimNewLines=void 0;const n=r(8970);function o(e){const t=[],r=e.length;for(let n=0,o=0;n<r;++n){let i=e.charAt(n),a="";"\r"===i?a="\n"===e.charAt(n+1)?"\r\n":i:"\n"===i&&(a=i);const s=a?n:n===r-1?n+1:void 0;void 0!==s&&(t.push({text:e.slice(o,s),newLineChar:a}),o=s+a.length,a.length>1&&++n)}return t}t.trimNewLines=e=>e.replace(/^\n+|\n+$/g,""),t.surround=(e,t)=>`${t}${e}${t}`,t.isWhiteSpaceOnly=e=>!/\S/.test(e),t.splitSpecial=o,t.tagSurround=function(e,t){e.indexOf(t)>=0&&(e=e.replace(new RegExp(`([^\\\\])\\${t.split("").join("\\")}`,"gm"),"$1"));const r=o(e);let n="";for(const{text:e,newLineChar:o}of r){let r,i,a=0;for(;a>=0&&a<e.length;)/[\S]/.test(e[a])&&(void 0===r?(r=a,a=e.length):(i=a,a=NaN)),void 0===r?++a:--a;if(void 0===r){n+=e+o;continue}void 0===i&&(i=e.length-1);const s=r>0?e[r-1]:"",l=i<e.length-1?e[i+1]:"";n+=s+t+e.slice(r,i+1)+t+l+o}return n},t.getTrailingWhitespaceInfo=e=>{const t={whitespace:0,newLines:0},r=Math.max(e.length-10,0);for(let n=e.length-1;n>=r;--n){const r=e.slice(n,n+1);if(!/\s/.test(r))break;++t.whitespace,["\r","\n"].includes(r)&&++t.newLines}return t},t.truthyStr=(e,t)=>e?void 0!==t?t:String(e):"";const i=()=>{try{return r(6192).parse}catch(e){return}};function a(e){process.env.LOG_PERF&&console.time(e)}function s(e){process.env.LOG_PERF&&console.timeEnd(e)}t.parseHTML=function(e,t){let r,o;if(a("parse"),t.preferNativeParser)try{o=function(e){try{if(!(null===window||void 0===window?void 0:window.DOMParser)||!(new window.DOMParser).parseFromString("","text/html"))return}catch(e){return}let t;try{t=document.implementation.createHTMLDocument("").open()}catch(e){const{ActiveXObject:t}=window;if(t){const e=t("htmlfile");return e.designMode="on",e.open()}throw e}return t.write("<node-html-markdown>"+e+"</node-html-markdown>"),t.close(),t.documentElement}(e)}catch(e){if(r=i(),!r)throw e;console.warn("Native DOM parser encountered an error during parse",e)}else r=i();return o||(o=r(e,n.nodeHtmlParserConfig)),s("parse"),o},t.getChildNodes=function(e){if(null==(t=e.childNodes)&&"function"!=typeof t[Symbol.iterator])return e.childNodes;var t;const r=[];return e.childNodes.forEach(e=>r.push(e)),r},t.perfStart=a,t.perfStop=s},2488(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getMarkdownForHtmlNodes=t.Visitor=void 0;const n=r(9239),o=r(6470),i=r(7306),a=r(8970);class s{constructor(e,t,r){this.instance=e,this.rootNode=t,this.fileName=r,this.nodeMetadata=new Map,this.urlDefinitions=[],this.result={text:"",trailingNewlineStats:{whitespace:0,newLines:0}},this.options=e.options,this.optimizeTree(t),this.visitNode(t)}addOrGetUrlDefinition(e){let t=this.urlDefinitions.findIndex(t=>t===e);return t<0&&(t=this.urlDefinitions.push(e)-1),t+1}appendResult(e,t,r){if(!e&&void 0===t)return;const{result:n}=this;void 0!==t&&(n.text=n.text.substr(0,t)),n.text+=(r&&n.text.slice(-1)===e[0]?" ":"")+e,n.trailingNewlineStats=(0,o.getTrailingWhitespaceInfo)(n.text)}appendNewlines(e){const{newLines:t}=this.result.trailingNewlineStats;this.appendResult("\n".repeat(Math.max(0,+e-t)))}optimizeTree(e){(0,o.perfStart)("Optimize tree");const{translators:t}=this.instance;!function e(r){let i=!1;if((0,n.isTextNode)(r)||(0,n.isElementNode)(r)&&a.contentlessElements.includes(r.tagName))i=!0;else{const n=(0,o.getChildNodes)(r);if(n.length)for(const t of n)i?e(t):i=e(t);else{const e=t[r.tagName];((null==e?void 0:e.preserveIfEmpty)||"function"==typeof e)&&(i=!0)}}return r.preserve=i}(e),(0,o.perfStop)("Optimize tree")}processText(e,t){let r=e;if((null==t?void 0:t.preserveWhitespace)||(r=r.replace(/\s+/g," ")),null==t?void 0:t.noEscape)return r;const{lineStartEscape:n,globalEscape:o,textReplace:i}=this.options;if(r=r.replace(o[0],o[1]).replace(n[0],n[1]),i)for(const[e,t]of i)r=r.replace(e,t);return r}visitNode(e,t,r){var a,s,l,c,d,u;const{result:p}=this;if(!e.preserve)return;if((0,n.isTextNode)(e))return e.wholeText&&(null!==(a=(d=e).text)&&void 0!==a||(d.text=e.wholeText),null!==(s=(u=e).trimmedText)&&void 0!==s||(u.trimmedText=(0,o.trimNewLines)(e.wholeText))),e.isWhitespace&&!(null==r?void 0:r.preserveWhitespace)?!p.text.length||p.trailingNewlineStats.whitespace>0?void 0:this.appendResult(" "):this.appendResult(this.processText((null==r?void 0:r.preserveWhitespace)?e.text:e.trimmedText,r));if(t||!(0,n.isElementNode)(e))return;const h=(null==r?void 0:r.translators)?r.translators[e.tagName]:this.instance.translators[e.tagName];switch(e.tagName){case"UL":case"OL":r=Object.assign(Object.assign({},r),{listItemNumber:0,listKind:e.tagName,indentLevel:(null!==(l=null==r?void 0:r.indentLevel)&&void 0!==l?l:-1)+1});break;case"LI":"OL"===(null==r?void 0:r.listKind)&&(r.listItemNumber=(null!==(c=r.listItemNumber)&&void 0!==c?c:0)+1);break;case"PRE":r=Object.assign(Object.assign({},r),{preserveWhitespace:!0});break;case"TABLE":r=Object.assign(Object.assign({},r),{tableMeta:{node:e}})}if(r&&this.nodeMetadata.set(e,r),!h){for(const n of(0,o.getChildNodes)(e))this.visitNode(n,t,r);return}let f,g;if((0,i.isTranslatorConfig)(h)?f=h:(g=(0,i.createTranslatorContext)(this,e,r,h.base),f=Object.assign(Object.assign({},h.base),h(g))),f.ignore)return;f.noEscape&&!(null==r?void 0:r.noEscape)&&(r=Object.assign(Object.assign({},r),{noEscape:f.noEscape}),this.nodeMetadata.set(e,r)),f.childTranslators&&f.childTranslators!==(null==r?void 0:r.translators)&&(r=Object.assign(Object.assign({},r),{translators:f.childTranslators}),this.nodeMetadata.set(e,r));const m=p.text.length;if(f.surroundingNewlines&&this.appendNewlines(+f.surroundingNewlines),f.prefix&&this.appendResult(f.prefix),"string"==typeof f.content)this.appendResult(f.content,void 0,f.spaceIfRepeatingChar);else{const t=p.text.length;for(const t of(0,o.getChildNodes)(e))this.visitNode(t,!1===f.recurse,r);if(f.postprocess){const n=f.postprocess(Object.assign(Object.assign({},g||(0,i.createTranslatorContext)(this,e,r)),{content:p.text.substr(t)}));if(n===i.PostProcessResult.RemoveNode)return"LI"===e.tagName&&(null==r?void 0:r.listItemNumber)&&--r.listItemNumber,this.appendResult("",m);"string"==typeof n&&this.appendResult(n,t,f.spaceIfRepeatingChar)}}f.postfix&&this.appendResult(f.postfix),f.surroundingNewlines&&this.appendNewlines(+f.surroundingNewlines)}}t.Visitor=s,t.getMarkdownForHtmlNodes=function(e,t,r){(0,o.perfStart)("walk");const n=new s(e,t,r);let i=n.result.text;(0,o.perfStop)("walk"),e.options.useLinkReferenceDefinitions&&(/[^\r\n]/.test(i.slice(-1))&&(i+="\n"),n.urlDefinitions.forEach((e,t)=>{i+=`\n[${t+1}]: ${e}`}));const{maxConsecutiveNewlines:a}=e.options;return a&&(i=i.replace(new RegExp(String.raw`(?:\r?\n\s*)+((?:\r?\n\s*){${a}})`,"g"),"$1")),(0,o.trimNewLines)(i)}},181(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e[e.length-1]}},6192(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=t.TextNode=t.Node=t.valid=t.CommentNode=t.HTMLElement=t.parse=void 0;var o=n(r(3447));t.CommentNode=o.default;var i=n(r(9781));t.HTMLElement=i.default;var a=n(r(724));t.Node=a.default;var s=n(r(9719));t.TextNode=s.default;var l=n(r(8140));t.NodeType=l.default;var c=n(r(4083)),d=n(r(7578));function u(e,t){return void 0===t&&(t={}),(0,c.default)(e,t)}t.valid=d.default,t.default=u,t.parse=u,u.parse=c.default,u.HTMLElement=i.default,u.CommentNode=o.default,u.valid=d.default,u.Node=a.default,u.TextNode=s.default,u.NodeType=l.default},9418(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=n(r(8140));function i(e){return e&&e.nodeType===o.default.ELEMENT_NODE}function a(e,t){return i(e)?e.getAttribute(t):void 0}function s(e){return e&&e.childNodes}function l(e){return e?e.parentNode:null}t.default={isTag:i,getAttributeValue:a,getName:function(e){return(e&&e.rawTagName||"").toLowerCase()},getChildren:s,getParent:l,getText:function(e){return e.text},removeSubsets:function(e){for(var t,r,n,o=e.length;--o>-1;){for(t=r=e[o],e[o]=null,n=!0;r;){if(e.indexOf(r)>-1){n=!1,e.splice(o,1);break}r=l(r)}n&&(e[o]=t)}return e},existsOne:function e(t,r){return r.some(function(r){return!!i(r)&&(t(r)||e(t,s(r)))})},getSiblings:function(e){var t=l(e);return t?s(t):[]},hasAttrib:function(e,t){return void 0!==a(e,t)},findOne:function e(t,r){for(var n=null,o=0,i=null==r?void 0:r.length;o<i&&!n;o++){var a=r[o];if(t(a))n=a;else{var l=s(a);l&&l.length>0&&(n=e(t,l))}}return n},findAll:function e(t,r){for(var n=[],o=0,a=r.length;o<a;o++)if(i(r[o])){t(r[o])&&n.push(r[o]);var l=s(r[o]);l&&(n=n.concat(e(t,l)))}return n}}},3447(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(r(724)),s=i(r(8140)),l=function(e){function t(t,r,n,o){void 0===r&&(r=null),void 0===o&&(o="!--");var i=e.call(this,r,n)||this;return i.rawText=t,i.rawTagName=o,i.nodeType=s.default.COMMENT_NODE,i}return o(t,e),t.prototype.clone=function(){return new t(this.rawText,null,void 0,this.rawTagName)},Object.defineProperty(t.prototype,"text",{get:function(){return this.rawText},enumerable:!1,configurable:!0}),t.prototype.toString=function(){return"\x3c!--".concat(this.rawText,"--\x3e")},t}(a.default);t.default=l},9781(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)},a=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.parse=t.base_parse=void 0;var l=r(2603),c=s(r(6067)),d=s(r(181)),u=s(r(9418)),p=s(r(97)),h=s(r(3447)),f=s(r(724)),g=s(r(9719)),m=s(r(8140));function v(e){return JSON.parse(JSON.stringify(c.default.decode(e)))}var b=new Set;!function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=function(e){for(var t=0;t<e.length;t++){var r=e[t];b.add(r),b.add(r.toUpperCase())}},n=0,o=e;n<o.length;n++)r(o[n])}(["h1","h2","h3","h4","h5","h6","header","hgroup"],["details","dialog","dd","div","dt"],["fieldset","figcaption","figure","footer","form"],["table","td","tr"],["address","article","aside","blockquote","br","hr","li","main","nav","ol","p","pre","section","ul"]);var w=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=function(){return null}),this._set=new Set(e),this._afterUpdate=t}return e.prototype._validate=function(e){if(/\s/.test(e))throw new Error("DOMException in DOMTokenList.add: The token '".concat(e,"' contains HTML space characters, which are not valid in tokens."))},e.prototype.add=function(e){this._validate(e),this._set.add(e),this._afterUpdate(this)},e.prototype.replace=function(e,t){this._validate(t),this._set.delete(e),this._set.add(t),this._afterUpdate(this)},e.prototype.remove=function(e){this._set.delete(e)&&this._afterUpdate(this)},e.prototype.toggle=function(e){this._validate(e),this._set.has(e)?this._set.delete(e):this._set.add(e),this._afterUpdate(this)},e.prototype.contains=function(e){return this._set.has(e)},Object.defineProperty(e.prototype,"length",{get:function(){return this._set.size},enumerable:!1,configurable:!0}),e.prototype.values=function(){return this._set.values()},Object.defineProperty(e.prototype,"value",{get:function(){return Array.from(this._set.values())},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return Array.from(this._set.values()).join(" ")},e}(),y=function(e){function t(t,r,n,o,i,a,s){void 0===n&&(n=""),void 0===o&&(o=null),void 0===a&&(a=new p.default),void 0===s&&(s={});var l=e.call(this,o,i)||this;if(l.rawAttrs=n,l.voidTag=a,l.nodeType=m.default.ELEMENT_NODE,l.rawTagName=t,l.rawAttrs=n||"",l.id=r.id||"",l.childNodes=[],l._parseOptions=s,l.classList=new w(r.class?r.class.split(/\s+/):[],function(e){return l.setAttribute("class",e.toString())}),r.id&&(n||(l.rawAttrs='id="'.concat(r.id,'"'))),r.class&&!n){var c='class="'.concat(l.classList.toString(),'"');l.rawAttrs?l.rawAttrs+=" ".concat(c):l.rawAttrs=c}return l}return o(t,e),t.prototype.quoteAttribute=function(e){return null==e?"null":JSON.stringify(e.replace(/"/g,""")).replace(/\\t/g,"\t").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\/g,"")},t.prototype.removeChild=function(e){return this.childNodes=this.childNodes.filter(function(t){return t!==e}),this},t.prototype.exchangeChild=function(e,t){var r=this.childNodes;return this.childNodes=r.map(function(r){return r===e?t:r}),this},Object.defineProperty(t.prototype,"tagName",{get:function(){return this.rawTagName?this.rawTagName.toUpperCase():this.rawTagName},set:function(e){this.rawTagName=e.toLowerCase()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"localName",{get:function(){return this.rawTagName.toLowerCase()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isVoidElement",{get:function(){return this.voidTag.isVoidElement(this.localName)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rawText",{get:function(){return/^br$/i.test(this.rawTagName)?"\n":this.childNodes.reduce(function(e,t){return e+t.rawText},"")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"textContent",{get:function(){return v(this.rawText)},set:function(e){var t=[new g.default(e,this)];this.childNodes=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return v(this.rawText)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"structuredText",{get:function(){var e=[],t=[e];return function r(n){if(n.nodeType===m.default.ELEMENT_NODE)b.has(n.rawTagName)?(e.length>0&&t.push(e=[]),n.childNodes.forEach(r),e.length>0&&t.push(e=[])):n.childNodes.forEach(r);else if(n.nodeType===m.default.TEXT_NODE)if(n.isWhitespace)e.prependWhitespace=!0;else{var o=n.trimmedText;e.prependWhitespace&&(o=" ".concat(o),e.prependWhitespace=!1),e.push(o)}}(this),t.map(function(e){return e.join("").replace(/\s{2,}/g," ")}).join("\n").replace(/\s+$/,"")},enumerable:!1,configurable:!0}),t.prototype.toString=function(){var e=this.rawTagName;if(e){var t=this.rawAttrs?" ".concat(this.rawAttrs):"";return this.voidTag.formatNode(e,t,this.innerHTML)}return this.innerHTML},Object.defineProperty(t.prototype,"innerHTML",{get:function(){return this.childNodes.map(function(e){return e.toString()}).join("")},set:function(e){var t=A(e,this._parseOptions),r=t.childNodes.length?t.childNodes:[new g.default(e,this)];C(r,this),C(this.childNodes,null),this.childNodes=r},enumerable:!1,configurable:!0}),t.prototype.set_content=function(e,t){if(void 0===t&&(t={}),e instanceof f.default)e=[e];else if("string"==typeof e){var r=A(e,t=i(i({},this._parseOptions),t));e=r.childNodes.length?r.childNodes:[new g.default(r.innerHTML,this)]}return C(this.childNodes,null),C(e,this),this.childNodes=e,this},t.prototype.replaceWith=function(){for(var e=this,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=this.parentNode,o=t.map(function(t){if(t instanceof f.default)return[t];if("string"==typeof t){var r=A(t,e._parseOptions);return r.childNodes.length?r.childNodes:[new g.default(t,e)]}return[]}).flat(),i=n.childNodes.findIndex(function(t){return t===e});return C([this],null),n.childNodes=a(a(a([],n.childNodes.slice(0,i),!0),C(o,n),!0),n.childNodes.slice(i+1),!0),this},Object.defineProperty(t.prototype,"outerHTML",{get:function(){return this.toString()},enumerable:!1,configurable:!0}),t.prototype.trimRight=function(e){for(var t=0;t<this.childNodes.length;t++){var r=this.childNodes[t];if(r.nodeType===m.default.ELEMENT_NODE)r.trimRight(e);else{var n=r.rawText.search(e);n>-1&&(r.rawText=r.rawText.substr(0,n),this.childNodes.length=t+1)}}return this},Object.defineProperty(t.prototype,"structure",{get:function(){var e=[],t=0;function r(r){e.push(" ".repeat(t)+r)}return function e(n){var o=n.id?"#".concat(n.id):"",i=n.classList.length?".".concat(n.classList.value.join(".")):"";r("".concat(n.rawTagName).concat(o).concat(i)),t++,n.childNodes.forEach(function(t){t.nodeType===m.default.ELEMENT_NODE?e(t):t.nodeType===m.default.TEXT_NODE&&(t.isWhitespace||r("#text"))}),t--}(this),e.join("\n")},enumerable:!1,configurable:!0}),t.prototype.removeWhitespace=function(){var e=this,t=0;return this.childNodes.forEach(function(r){if(r.nodeType===m.default.TEXT_NODE){if(r.isWhitespace)return;r.rawText=r.trimmedRawText}else r.nodeType===m.default.ELEMENT_NODE&&r.removeWhitespace();e.childNodes[t++]=r}),this.childNodes.length=t,this},t.prototype.querySelectorAll=function(e){return(0,l.selectAll)(e,this,{xmlMode:!0,adapter:u.default})},t.prototype.querySelector=function(e){return(0,l.selectOne)(e,this,{xmlMode:!0,adapter:u.default})},t.prototype.getElementsByTagName=function(e){for(var t=e.toUpperCase(),r=[],n=[],o=this,i=0;void 0!==i;){var a=void 0;do{a=o.childNodes[i++]}while(i<o.childNodes.length&&void 0===a);void 0!==a?a.nodeType===m.default.ELEMENT_NODE&&("*"!==e&&a.tagName!==t||r.push(a),a.childNodes.length>0&&(n.push(i),o=a,i=0)):(o=o.parentNode,i=n.pop())}return r},t.prototype.getElementById=function(e){for(var t=[],r=this,n=0;void 0!==n;){var o=void 0;do{o=r.childNodes[n++]}while(n<r.childNodes.length&&void 0===o);if(void 0!==o){if(o.nodeType===m.default.ELEMENT_NODE){if(o.id===e)return o;o.childNodes.length>0&&(t.push(n),r=o,n=0)}}else r=r.parentNode,n=t.pop()}return null},t.prototype.closest=function(e){var t=new Map,r=this,n=null;function o(e,r){for(var n=null,i=0,a=r.length;i<a&&!n;i++){var s=r[i];if(e(s))n=s;else{var l=t.get(s);l&&(n=o(e,[l]))}}return n}for(;r;)t.set(r,n),n=r,r=r.parentNode;for(r=this;r;){var a=(0,l.selectOne)(e,r,{xmlMode:!0,adapter:i(i({},u.default),{getChildren:function(e){var r=t.get(e);return r&&[r]},getSiblings:function(e){return[e]},findOne:o,findAll:function(){return[]}})});if(a)return a;r=r.parentNode}return null},t.prototype.appendChild=function(e){return e.remove(),this.childNodes.push(e),e.parentNode=this,e},Object.defineProperty(t.prototype,"firstChild",{get:function(){return this.childNodes[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastChild",{get:function(){return(0,d.default)(this.childNodes)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attrs",{get:function(){if(this._attrs)return this._attrs;this._attrs={};var e=this.rawAttributes;for(var t in e){var r=e[t]||"";this._attrs[t.toLowerCase()]=v(r)}return this._attrs},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e={},t=this.rawAttributes;for(var r in t){var n=t[r]||"";e[r]=v(n)}return e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rawAttributes",{get:function(){if(this._rawAttrs)return this._rawAttrs;var e={};if(this.rawAttrs)for(var t=/([a-zA-Z()[\]#@$.?:][a-zA-Z0-9-_:()[\]#]*)(?:\s*=\s*((?:'[^']*')|(?:"[^"]*")|\S+))?/g,r=void 0;r=t.exec(this.rawAttrs);){var n=r[1],o=r[2]||null;!o||"'"!==o[0]&&'"'!==o[0]||(o=o.slice(1,o.length-1)),e[n]=e[n]||o}return this._rawAttrs=e,e},enumerable:!1,configurable:!0}),t.prototype.removeAttribute=function(e){var t=this,r=this.rawAttributes;return delete r[e],this._attrs&&delete this._attrs[e],this.rawAttrs=Object.keys(r).map(function(e){var n=t.quoteAttribute(r[e]);return"null"===n||'""'===n?e:"".concat(e,"=").concat(n)}).join(" "),"id"===e&&(this.id=""),this},t.prototype.hasAttribute=function(e){return e.toLowerCase()in this.attrs},t.prototype.getAttribute=function(e){return this.attrs[e.toLowerCase()]},t.prototype.setAttribute=function(e,t){var r=this;if(arguments.length<2)throw new Error("Failed to execute 'setAttribute' on 'Element'");var n=e.toLowerCase(),o=this.rawAttributes;for(var i in o)if(i.toLowerCase()===n){e=i;break}return o[e]=String(t),this._attrs&&(this._attrs[n]=v(o[e])),this.rawAttrs=Object.keys(o).map(function(e){var t=r.quoteAttribute(o[e]);return"null"===t||'""'===t?e:"".concat(e,"=").concat(t)}).join(" "),"id"===e&&(this.id=t),this},t.prototype.setAttributes=function(e){var t=this;return this._attrs&&delete this._attrs,this._rawAttrs&&delete this._rawAttrs,this.rawAttrs=Object.keys(e).map(function(r){var n=e[r];return"null"===n||'""'===n?r:"".concat(r,"=").concat(t.quoteAttribute(String(n)))}).join(" "),this},t.prototype.insertAdjacentHTML=function(e,t){var r,n,o,i=this;if(arguments.length<2)throw new Error("2 arguments required");var s=A(t,this._parseOptions);if("afterend"===e){var l=this.parentNode.childNodes.findIndex(function(e){return e===i});C(s.childNodes,this.parentNode),(r=this.parentNode.childNodes).splice.apply(r,a([l+1,0],s.childNodes,!1))}else if("afterbegin"===e)C(s.childNodes,this),(n=this.childNodes).unshift.apply(n,s.childNodes);else if("beforeend"===e)s.childNodes.forEach(function(e){i.appendChild(e)});else{if("beforebegin"!==e)throw new Error("The value provided ('".concat(e,"') is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'"));l=this.parentNode.childNodes.findIndex(function(e){return e===i}),C(s.childNodes,this.parentNode),(o=this.parentNode.childNodes).splice.apply(o,a([l,0],s.childNodes,!1))}return this},Object.defineProperty(t.prototype,"nextSibling",{get:function(){if(this.parentNode){for(var e=this.parentNode.childNodes,t=0;t<e.length;)if(this===e[t++])return e[t]||null;return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"nextElementSibling",{get:function(){if(this.parentNode){for(var e=this.parentNode.childNodes,r=0,n=!1;r<e.length;){var o=e[r++];if(n){if(o instanceof t)return o||null}else this===o&&(n=!0)}return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"previousSibling",{get:function(){if(this.parentNode){for(var e=this.parentNode.childNodes,t=e.length;t>0;)if(this===e[--t])return e[t-1]||null;return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"previousElementSibling",{get:function(){if(this.parentNode){for(var e=this.parentNode.childNodes,r=e.length,n=!1;r>0;){var o=e[--r];if(n){if(o instanceof t)return o||null}else this===o&&(n=!0)}return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"classNames",{get:function(){return this.classList.toString()},enumerable:!1,configurable:!0}),t.prototype.clone=function(){return A(this.toString(),this._parseOptions).firstChild},t}(f.default);t.default=y;var x=/<!--[\s\S]*?-->|<(\/?)([a-zA-Z][-.:0-9_a-zA-Z]*)((?:\s+[^>]*?(?:(?:'[^']*')|(?:"[^"]*"))?)*)\s*(\/?)>/g,k=/(?:^|\s)(id|class)\s*=\s*((?:'[^']*')|(?:"[^"]*")|\S+)/gi,E={li:{li:!0,LI:!0},LI:{li:!0,LI:!0},p:{p:!0,div:!0,P:!0,DIV:!0},P:{p:!0,div:!0,P:!0,DIV:!0},b:{div:!0,DIV:!0},B:{div:!0,DIV:!0},td:{td:!0,th:!0,TD:!0,TH:!0},TD:{td:!0,th:!0,TD:!0,TH:!0},th:{td:!0,th:!0,TD:!0,TH:!0},TH:{td:!0,th:!0,TD:!0,TH:!0},h1:{h1:!0,H1:!0},H1:{h1:!0,H1:!0},h2:{h2:!0,H2:!0},H2:{h2:!0,H2:!0},h3:{h3:!0,H3:!0},H3:{h3:!0,H3:!0},h4:{h4:!0,H4:!0},H4:{h4:!0,H4:!0},h5:{h5:!0,H5:!0},H5:{h5:!0,H5:!0},h6:{h6:!0,H6:!0},H6:{h6:!0,H6:!0}},T={li:{ul:!0,ol:!0,UL:!0,OL:!0},LI:{ul:!0,ol:!0,UL:!0,OL:!0},a:{div:!0,DIV:!0},A:{div:!0,DIV:!0},b:{div:!0,DIV:!0},B:{div:!0,DIV:!0},i:{div:!0,DIV:!0},I:{div:!0,DIV:!0},p:{div:!0,DIV:!0},P:{div:!0,DIV:!0},td:{tr:!0,table:!0,TR:!0,TABLE:!0},TD:{tr:!0,table:!0,TR:!0,TABLE:!0},th:{tr:!0,table:!0,TR:!0,TABLE:!0},TH:{tr:!0,table:!0,TR:!0,TABLE:!0}},S="documentfragmentcontainer";function D(e,t){var r,n;void 0===t&&(t={});var o=new p.default(null===(r=null==t?void 0:t.voidTag)||void 0===r?void 0:r.closingSlash,null===(n=null==t?void 0:t.voidTag)||void 0===n?void 0:n.tags),i=t.blockTextElements||{script:!0,noscript:!0,style:!0,pre:!0},a=Object.keys(i),s=a.map(function(e){return new RegExp("^".concat(e,"$"),"i")}),l=a.filter(function(e){return Boolean(i[e])}).map(function(e){return new RegExp("^".concat(e,"$"),"i")});function c(e){return l.some(function(t){return t.test(e)})}function u(e){return s.some(function(t){return t.test(e)})}var f,m=function(e,t){return[e-L,t-L]},v=new y(null,{},"",null,[0,e.length],o,t),b=v,w=[v],D=-1,A=void 0;e="<".concat(S,">").concat(e,"</").concat(S,">");for(var C=t.lowerCaseTagName,_=t.fixNestedATags,N=e.length-27,L=27;f=x.exec(e);){var O=f[0],B=f[1],I=f[2],M=f[3],P=f[4],R=O.length,q=x.lastIndex-R,F=x.lastIndex;if(D>-1&&D+R<F){var j=e.substring(D,q);b.appendChild(new g.default(j,b,m(D,q)))}if(D=x.lastIndex,I!==S)if("!"!==O[1]){if(C&&(I=I.toLowerCase()),!B){for(var $={},U=void 0;U=k.exec(M);){var H=U[1],V=U[2],z="'"===V[0]||'"'===V[0];$[H.toLowerCase()]=z?V.slice(1,V.length-1):V}var K=b.rawTagName;!P&&E[K]&&E[K][I]&&(w.pop(),b=(0,d.default)(w)),!_||"a"!==I&&"A"!==I||(void 0!==A&&(w.splice(A),b=(0,d.default)(w)),A=w.length);var Y=x.lastIndex,G=Y-R;if(b=b.appendChild(new y(I,$,M.slice(1),null,m(G,Y),o,t)),w.push(b),u(I)){var W="</".concat(I,">"),J=C?e.toLocaleLowerCase().indexOf(W,x.lastIndex):e.indexOf(W,x.lastIndex),X=-1===J?N:J;c(I)&&(j=e.substring(Y,X)).length>0&&/\S/.test(j)&&b.appendChild(new g.default(j,b,m(Y,X))),-1===J?D=x.lastIndex=e.length+1:(D=x.lastIndex=J+W.length,B="/")}}if(B||P||o.isVoidElement(I))for(;;){if(null==A||"a"!==I&&"A"!==I||(A=void 0),b.rawTagName===I){b.range[1]=m(-1,Math.max(D,F))[1],w.pop(),b=(0,d.default)(w);break}if(K=b.tagName,!T[K]||!T[K][I])break;w.pop(),b=(0,d.default)(w)}}else if(t.comment){j=e.substring(q+4,F-3);b.appendChild(new h.default(j,b,m(q,F)))}}return w}function A(e,t){void 0===t&&(t={});for(var r=D(e,t),n=r[0],o=function(){var e=r.pop(),n=(0,d.default)(r);e.parentNode&&e.parentNode.parentNode&&(e.parentNode===n&&e.tagName===n.tagName?!0!==t.parseNoneClosedTags&&(n.removeChild(e),e.childNodes.forEach(function(e){n.parentNode.appendChild(e)}),r.pop()):!0!==t.parseNoneClosedTags&&(n.removeChild(e),e.childNodes.forEach(function(e){n.appendChild(e)})))};r.length>1;)o();return n}function C(e,t){return e.map(function(e){return e.parentNode=t,e})}t.base_parse=D,t.parse=A},724(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6067),o=function(){function e(e,t){void 0===e&&(e=null),this.parentNode=e,this.childNodes=[],Object.defineProperty(this,"range",{enumerable:!1,writable:!0,configurable:!0,value:null!=t?t:[-1,-1]})}return e.prototype.remove=function(){var e=this;if(this.parentNode){var t=this.parentNode.childNodes;this.parentNode.childNodes=t.filter(function(t){return e!==t}),this.parentNode=null}return this},Object.defineProperty(e.prototype,"innerText",{get:function(){return this.rawText},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"textContent",{get:function(){return(0,n.decode)(this.rawText)},set:function(e){this.rawText=(0,n.encode)(e)},enumerable:!1,configurable:!0}),e}();t.default=o},9719(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(6067),s=i(r(724)),l=i(r(8140)),c=function(e){function t(t,r,n){void 0===r&&(r=null);var o=e.call(this,r,n)||this;return o.nodeType=l.default.TEXT_NODE,o.rawTagName="",o._rawText=t,o}return o(t,e),t.prototype.clone=function(){return new t(this._rawText,null)},Object.defineProperty(t.prototype,"rawText",{get:function(){return this._rawText},set:function(e){this._rawText=e,this._trimmedRawText=void 0,this._trimmedText=void 0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"trimmedRawText",{get:function(){return void 0!==this._trimmedRawText||(this._trimmedRawText=d(this.rawText)),this._trimmedRawText},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"trimmedText",{get:function(){return void 0!==this._trimmedText||(this._trimmedText=d(this.text)),this._trimmedText},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return(0,a.decode)(this.rawText)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isWhitespace",{get:function(){return/^(\s| )*$/.test(this.rawText)},enumerable:!1,configurable:!0}),t.prototype.toString=function(){return this.rawText},t}(s.default);function d(e){for(var t,r,n=0;n>=0&&n<e.length;)/\S/.test(e[n])&&(void 0===t?(t=n,n=e.length):(r=n,n=void 0)),void 0===t?n++:n--;void 0===t&&(t=0),void 0===r&&(r=e.length-1);var o=t>0&&/[^\S\r\n]/.test(e[t-1]),i=r<e.length-1&&/[^\S\r\n]/.test(e[r+1]);return(o?" ":"")+e.slice(t,r+1)+(i?" ":"")}t.default=c},8140(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.ELEMENT_NODE=1]="ELEMENT_NODE",e[e.TEXT_NODE=3]="TEXT_NODE",e[e.COMMENT_NODE=8]="COMMENT_NODE"}(r||(r={})),t.default=r},4083(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(9781);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n.parse}})},7578(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9781);t.default=function(e,t){void 0===t&&(t={});var r=(0,n.base_parse)(e,t);return Boolean(1===r.length)}},97(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){void 0===e&&(e=!1),this.addClosingSlash=e,Array.isArray(t)?this.voidTags=t.reduce(function(e,t){return e.add(t.toLowerCase()).add(t.toUpperCase()).add(t)},new Set):this.voidTags=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"].reduce(function(e,t){return e.add(t.toLowerCase()).add(t.toUpperCase()).add(t)},new Set)}return e.prototype.formatNode=function(e,t,r){var n=this.addClosingSlash,o=n&&t&&!t.endsWith(" ")?" ":"",i=n?"".concat(o,"/"):"";return this.isVoidElement(e.toLowerCase())?"<".concat(e).concat(t).concat(i,">"):"<".concat(e).concat(t,">").concat(r,"</").concat(e,">")},e.prototype.isVoidElement=function(e){return this.voidTags.has(e)},e}();t.default=r},8525(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.generate=t.compile=void 0;var o=n(r(1264));t.compile=function(e){var t=e[0],r=e[1]-1;if(r<0&&t<=0)return o.default.falseFunc;if(-1===t)return function(e){return e<=r};if(0===t)return function(e){return e===r};if(1===t)return r<0?o.default.trueFunc:function(e){return e>=r};var n=Math.abs(t),i=(r%n+n)%n;return t>1?function(e){return e>=r&&e%n===i}:function(e){return e<=r&&e%n===i}},t.generate=function(e){var t=e[0],r=e[1]-1,n=0;if(t<0){var o=-t,i=(r%o+o)%o;return function(){var e=i+o*n++;return e>r?null:e}}return 0===t?r<0?function(){return null}:function(){return 0===n++?r:null}:(r<0&&(r+=t*Math.ceil(-r/t)),function(){return t*n+++r})}},3172(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sequence=t.generate=t.compile=t.parse=void 0;var n=r(8151);Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return n.parse}});var o=r(8525);Object.defineProperty(t,"compile",{enumerable:!0,get:function(){return o.compile}}),Object.defineProperty(t,"generate",{enumerable:!0,get:function(){return o.generate}}),t.default=function(e){return(0,o.compile)((0,n.parse)(e))},t.sequence=function(e){return(0,o.generate)((0,n.parse)(e))}},8151(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0;var r=new Set([9,10,12,13,32]),n="0".charCodeAt(0),o="9".charCodeAt(0);t.parse=function(e){if("even"===(e=e.trim().toLowerCase()))return[2,0];if("odd"===e)return[2,1];var t=0,i=0,a=l(),s=c();if(t<e.length&&"n"===e.charAt(t)&&(t++,i=a*(null!=s?s:1),d(),t<e.length?(a=l(),d(),s=c()):a=s=0),null===s||t<e.length)throw new Error("n-th rule couldn't be parsed ('".concat(e,"')"));return[i,a*s];function l(){return"-"===e.charAt(t)?(t++,-1):("+"===e.charAt(t)&&t++,1)}function c(){for(var r=t,i=0;t<e.length&&e.charCodeAt(t)>=n&&e.charCodeAt(t)<=o;)i=10*i+(e.charCodeAt(t)-n),t++;return t===r?null:i}function d(){for(;t<e.length&&r.has(e.charCodeAt(t));)t++}}},1326(e){var t;"undefined"!=typeof self&&self,t=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=11)}([function(e,t,r){"use strict";var n=Array.prototype,o=Object.prototype,i={"&":"&",'"':""","'":"'","<":"<",">":">","\\":"\"},a=/[&"'<>\\]/g;function s(e,t){return o.hasOwnProperty.call(e,t)}function l(e){return i[e]}function c(e,t,r){var n,o,i;if(e instanceof Error&&(e=(o=e).name+": "+o.message),Object.setPrototypeOf?(n=new Error(e),Object.setPrototypeOf(n,c.prototype)):(n=this,Object.defineProperty(n,"message",{enumerable:!1,writable:!0,value:e})),Object.defineProperty(n,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(n,this.constructor),o){var a=Object.getOwnPropertyDescriptor(o,"stack");(i=a&&(a.get||function(){return a.value}))||(i=function(){return o.stack})}else{var s=new Error(e).stack;i=function(){return s}}return Object.defineProperty(n,"stack",{get:function(){return i.call(n)}}),Object.defineProperty(n,"cause",{value:o}),n.lineno=t,n.colno=r,n.firstUpdate=!0,n.Update=function(e){var t="("+(e||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?t+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(t+=" [Line "+this.lineno+"]")),t+="\n ",this.firstUpdate&&(t+=" "),this.message=t+(this.message||""),this.firstUpdate=!1,this},n}function d(e){return"[object Function]"===o.toString.call(e)}function u(e){return"[object Array]"===o.toString.call(e)}function p(e){return"[object String]"===o.toString.call(e)}function h(e){return"[object Object]"===o.toString.call(e)}function f(e){var t,r=(t=e)?"string"==typeof t?t.split("."):[t]:[];return function(e){for(var t=e,n=0;n<r.length;n++){var o=r[n];if(!s(t,o))return;t=t[o]}return t}}function g(e){return Array.prototype.slice.call(e)}function m(e,t,r){return Array.prototype.indexOf.call(e||[],t,r)}function v(e){var t=[];for(var r in e)s(e,r)&&t.push(r);return t}(t=e.exports={}).hasOwnProp=s,t._prettifyError=function(e,r,n){if(n.Update||(n=new t.TemplateError(n)),n.Update(e),!r){var o=n;(n=new Error(o.message)).name=o.name}return n},Object.setPrototypeOf?Object.setPrototypeOf(c.prototype,Error.prototype):c.prototype=Object.create(Error.prototype,{constructor:{value:c}}),t.TemplateError=c,t.escape=function(e){return e.replace(a,l)},t.isFunction=d,t.isArray=u,t.isString=p,t.isObject=h,t.getAttrGetter=f,t.groupBy=function(e,t,r){for(var n={},o=d(t)?t:f(t),i=0;i<e.length;i++){var a=e[i],s=o(a,i);if(void 0===s&&!0===r)throw new TypeError('groupby: attribute "'+t+'" resolved to undefined');(n[s]||(n[s]=[])).push(a)}return n},t.toArray=g,t.without=function(e){var t=[];if(!e)return t;for(var r=e.length,n=g(arguments).slice(1),o=-1;++o<r;)-1===m(n,e[o])&&t.push(e[o]);return t},t.repeat=function(e,t){for(var r="",n=0;n<t;n++)r+=e;return r},t.each=function(e,t,r){if(null!=e)if(n.forEach&&e.forEach===n.forEach)e.forEach(t,r);else if(e.length===+e.length)for(var o=0,i=e.length;o<i;o++)t.call(r,e[o],o,e)},t.map=function(e,t){var r=[];if(null==e)return r;if(n.map&&e.map===n.map)return e.map(t);for(var o=0;o<e.length;o++)r[r.length]=t(e[o],o);return e.length===+e.length&&(r.length=e.length),r},t.asyncIter=function(e,t,r){var n=-1;!function o(){++n<e.length?t(e[n],n,o,r):r()}()},t.asyncFor=function(e,t,r){var n=v(e||{}),o=n.length,i=-1;!function a(){i++;var s=n[i];i<o?t(s,e[s],i,o,a):r()}()},t.indexOf=m,t.keys=v,t._entries=function(e){return v(e).map(function(t){return[t,e[t]]})},t._values=function(e){return v(e).map(function(t){return e[t]})},t._assign=t.extend=function(e,t){return e=e||{},v(t).forEach(function(r){e[r]=t[r]}),e},t.inOperator=function(e,t){if(u(t)||p(t))return-1!==t.indexOf(e);if(h(t))return e in t;throw new Error('Cannot use "in" operator to search for "'+e+'" in unexpected types.')}},function(e,t,r){"use strict";function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function o(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(e){var t=function(e){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}var l=r(16),c=r(0);function d(e,t,r){r=r||{},c.keys(r).forEach(function(t){var n,o;r[t]=(n=e.prototype[t],o=r[t],"function"!=typeof n||"function"!=typeof o?o:function(){var e=this.parent;this.parent=n;var t=o.apply(this,arguments);return this.parent=e,t})});var n=function(e){function r(){return e.apply(this,arguments)||this}return a(r,e),o(r,[{key:"typename",get:function(){return t}}]),r}(e);return c._assign(n.prototype,r),n}var u=function(){function e(){this.init.apply(this,arguments)}return e.prototype.init=function(){},e.extend=function(e,t){return"object"==typeof e&&(t=e,e="anonymous"),d(this,e,t)},o(e,[{key:"typename",get:function(){return this.constructor.name}}]),e}(),p=function(e){function t(){var t,r;return(t=r=e.call(this)||this).init.apply(t,arguments),r}return a(t,e),t.prototype.init=function(){},t.extend=function(e,t){return"object"==typeof e&&(t=e,e="anonymous"),d(this,e,t)},o(t,[{key:"typename",get:function(){return this.constructor.name}}]),t}(l);e.exports={Obj:u,EmitterObj:p}},function(e,t,r){"use strict";var n=r(0),o=Array.from,i="function"==typeof Symbol&&Symbol.iterator&&"function"==typeof o,a=function(){function e(e,t){this.variables=Object.create(null),this.parent=e,this.topLevel=!1,this.isolateWrites=t}var t=e.prototype;return t.set=function(e,t,r){var n=e.split("."),o=this.variables,i=this;if(r&&(i=this.resolve(n[0],!0)))i.set(e,t);else{for(var a=0;a<n.length-1;a++){var s=n[a];o[s]||(o[s]={}),o=o[s]}o[n[n.length-1]]=t}},t.get=function(e){var t=this.variables[e];return void 0!==t?t:null},t.lookup=function(e){var t=this.parent,r=this.variables[e];return void 0!==r?r:t&&t.lookup(e)},t.resolve=function(e,t){var r=t&&this.isolateWrites?void 0:this.parent;return void 0!==this.variables[e]?this:r&&r.resolve(e)},t.push=function(t){return new e(this,t)},t.pop=function(){return this.parent},e}();function s(e){return e&&Object.prototype.hasOwnProperty.call(e,"__keywords")}function l(e){var t=e.length;return 0===t?0:s(e[t-1])?t-1:t}function c(e){if("string"!=typeof e)return e;this.val=e,this.length=e.length}c.prototype=Object.create(String.prototype,{length:{writable:!0,configurable:!0,value:0}}),c.prototype.valueOf=function(){return this.val},c.prototype.toString=function(){return this.val},e.exports={Frame:a,makeMacro:function(e,t,r){return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var a,c=l(o),d=function(e){var t=e.length;if(t){var r=e[t-1];if(s(r))return r}return{}}(o);if(c>e.length)a=o.slice(0,e.length),o.slice(a.length,c).forEach(function(e,r){r<t.length&&(d[t[r]]=e)}),a.push(d);else if(c<e.length){a=o.slice(0,c);for(var u=c;u<e.length;u++){var p=e[u];a.push(d[p]),delete d[p]}a.push(d)}else a=o;return r.apply(this,a)}},makeKeywordArgs:function(e){return e.__keywords=!0,e},numArgs:l,suppressValue:function(e,t){return e=null!=e?e:"",!t||e instanceof c||(e=n.escape(e.toString())),e},ensureDefined:function(e,t,r){if(null==e)throw new n.TemplateError("attempted to output null or undefined value",t+1,r+1);return e},memberLookup:function(e,t){if(null!=e)return"function"==typeof e[t]?function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return e[t].apply(e,n)}:e[t]},contextOrFrameLookup:function(e,t,r){var n=t.lookup(r);return void 0!==n?n:e.lookup(r)},callWrap:function(e,t,r,n){if(!e)throw new Error("Unable to call `"+t+"`, which is undefined or falsey");if("function"!=typeof e)throw new Error("Unable to call `"+t+"`, which is not a function");return e.apply(r,n)},handleError:function(e,t,r){return e.lineno?e:new n.TemplateError(e,t,r)},isArray:n.isArray,keys:n.keys,SafeString:c,copySafeness:function(e,t){return e instanceof c?new c(t):t.toString()},markSafe:function(e){var t=typeof e;return"string"===t?new c(e):"function"!==t?e:function(t){var r=e.apply(this,arguments);return"string"==typeof r?new c(r):r}},asyncEach:function(e,t,r,o){if(n.isArray(e)){var i=e.length;n.asyncIter(e,function(e,n,o){switch(t){case 1:r(e,n,i,o);break;case 2:r(e[0],e[1],n,i,o);break;case 3:r(e[0],e[1],e[2],n,i,o);break;default:e.push(n,i,o),r.apply(this,e)}},o)}else n.asyncFor(e,function(e,t,n,o,i){r(e,t,n,o,i)},o)},asyncAll:function(e,t,r,o){var i,a,s=0;function l(e,t){s++,a[e]=t,s===i&&o(null,a.join(""))}if(n.isArray(e))if(i=e.length,a=new Array(i),0===i)o(null,"");else for(var c=0;c<e.length;c++){var d=e[c];switch(t){case 1:r(d,c,i,l);break;case 2:r(d[0],d[1],c,i,l);break;case 3:r(d[0],d[1],d[2],c,i,l);break;default:d.push(c,i,l),r.apply(this,d)}}else{var u=n.keys(e||{});if(i=u.length,a=new Array(i),0===i)o(null,"");else for(var p=0;p<u.length;p++){var h=u[p];r(h,e[h],p,i,l)}}},inOperator:n.inOperator,fromIterator:function(e){return"object"!=typeof e||null===e||n.isArray(e)?e:i&&Symbol.iterator in e?o(e):e}}},function(e,t,r){"use strict";function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function o(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(e){var t=function(e){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function l(e,t,r){e instanceof t&&r.push(e),e instanceof c&&e.findAll(t,r)}var c=function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(e,t){for(var r=arguments,n=this,o=arguments.length,i=new Array(o>2?o-2:0),a=2;a<o;a++)i[a-2]=arguments[a];this.lineno=e,this.colno=t,this.fields.forEach(function(e,t){var o=r[t+2];void 0===o&&(o=null),n[e]=o})},r.findAll=function(e,t){var r=this;return t=t||[],this instanceof u?this.children.forEach(function(r){return l(r,e,t)}):this.fields.forEach(function(n){return l(r[n],e,t)}),t},r.iterFields=function(e){var t=this;this.fields.forEach(function(r){e(t[r],r)})},t}(r(1).Obj),d=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),o(t,[{key:"typename",get:function(){return"Value"}},{key:"fields",get:function(){return["value"]}}]),t}(c),u=function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(t,r,n){e.prototype.init.call(this,t,r,n||[])},r.addChild=function(e){this.children.push(e)},o(t,[{key:"typename",get:function(){return"NodeList"}},{key:"fields",get:function(){return["children"]}}]),t}(c),p=u.extend("Root"),h=d.extend("Literal"),f=d.extend("Symbol"),g=u.extend("Group"),m=u.extend("Array"),v=c.extend("Pair",{fields:["key","value"]}),b=u.extend("Dict"),w=c.extend("LookupVal",{fields:["target","val"]}),y=c.extend("If",{fields:["cond","body","else_"]}),x=y.extend("IfAsync"),k=c.extend("InlineIf",{fields:["cond","body","else_"]}),E=c.extend("For",{fields:["arr","name","body","else_"]}),T=E.extend("AsyncEach"),S=E.extend("AsyncAll"),D=c.extend("Macro",{fields:["name","args","body"]}),A=D.extend("Caller"),C=c.extend("Import",{fields:["template","target","withContext"]}),_=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(t,r,n,o,i){e.prototype.init.call(this,t,r,n,o||new u,i)},o(t,[{key:"typename",get:function(){return"FromImport"}},{key:"fields",get:function(){return["template","names","withContext"]}}]),t}(c),N=c.extend("FunCall",{fields:["name","args"]}),L=N.extend("Filter"),O=L.extend("FilterAsync",{fields:["name","args","symbol"]}),B=b.extend("KeywordArgs"),I=c.extend("Block",{fields:["name","body"]}),M=c.extend("Super",{fields:["blockName","symbol"]}),P=c.extend("TemplateRef",{fields:["template"]}).extend("Extends"),R=c.extend("Include",{fields:["template","ignoreMissing"]}),q=c.extend("Set",{fields:["targets","value"]}),F=c.extend("Switch",{fields:["expr","cases","default"]}),j=c.extend("Case",{fields:["cond","body"]}),$=u.extend("Output"),U=c.extend("Capture",{fields:["body"]}),H=h.extend("TemplateData"),V=c.extend("UnaryOp",{fields:["target"]}),z=c.extend("BinOp",{fields:["left","right"]}),K=z.extend("In"),Y=z.extend("Is"),G=z.extend("Or"),W=z.extend("And"),J=V.extend("Not"),X=z.extend("Add"),Z=z.extend("Concat"),Q=z.extend("Sub"),ee=z.extend("Mul"),te=z.extend("Div"),re=z.extend("FloorDiv"),ne=z.extend("Mod"),oe=z.extend("Pow"),ie=V.extend("Neg"),ae=V.extend("Pos"),se=c.extend("Compare",{fields:["expr","ops"]}),le=c.extend("CompareOperand",{fields:["expr","type"]}),ce=c.extend("CallExtension",{init:function(e,t,r,n){this.parent(),this.extName=e.__name||e,this.prop=t,this.args=r||new u,this.contentArgs=n||[],this.autoescape=e.autoescape},fields:["extName","prop","args","contentArgs"]}),de=ce.extend("CallExtensionAsync");function ue(e,t,r){var n=e.split("\n");n.forEach(function(e,o){e&&(r&&o>0||!r)&&process.stdout.write(" ".repeat(t));var i=o===n.length-1?"":"\n";process.stdout.write(""+e+i)})}e.exports={Node:c,Root:p,NodeList:u,Value:d,Literal:h,Symbol:f,Group:g,Array:m,Pair:v,Dict:b,Output:$,Capture:U,TemplateData:H,If:y,IfAsync:x,InlineIf:k,For:E,AsyncEach:T,AsyncAll:S,Macro:D,Caller:A,Import:C,FromImport:_,FunCall:N,Filter:L,FilterAsync:O,KeywordArgs:B,Block:I,Super:M,Extends:P,Include:R,Set:q,Switch:F,Case:j,LookupVal:w,BinOp:z,In:K,Is:Y,Or:G,And:W,Not:J,Add:X,Concat:Z,Sub:Q,Mul:ee,Div:te,FloorDiv:re,Mod:ne,Pow:oe,Neg:ie,Pos:ae,Compare:se,CompareOperand:le,CallExtension:ce,CallExtensionAsync:de,printNodes:function e(t,r){if(r=r||0,ue(t.typename+": ",r),t instanceof u)ue("\n"),t.children.forEach(function(t){e(t,r+2)});else if(t instanceof ce)ue(t.extName+"."+t.prop+"\n"),t.args&&e(t.args,r+2),t.contentArgs&&t.contentArgs.forEach(function(t){e(t,r+2)});else{var n=[],o=null;t.iterFields(function(e,t){e instanceof c?n.push([t,e]):(o=o||{})[t]=e}),o?ue(JSON.stringify(o,null,2)+"\n",null,!0):ue("\n"),n.forEach(function(t){var n=t[0],o=t[1];ue("["+n+"] =>",r+2),e(o,r+4)})}}}},function(e,t){},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}var o=r(8),i=r(17),a=r(3),s=r(0).TemplateError,l=r(2).Frame,c=r(1).Obj,d={"==":"==","===":"===","!=":"!=","!==":"!==","<":"<",">":">","<=":"<=",">=":">="},u=function(e){var t,r;function o(){return e.apply(this,arguments)||this}r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r);var i=o.prototype;return i.init=function(e,t){this.templateName=e,this.codebuf=[],this.lastId=0,this.buffer=null,this.bufferStack=[],this._scopeClosers="",this.inBlock=!1,this.throwOnUndefined=t},i.fail=function(e,t,r){throw void 0!==t&&(t+=1),void 0!==r&&(r+=1),new s(e,t,r)},i._pushBuffer=function(){var e=this._tmpid();return this.bufferStack.push(this.buffer),this.buffer=e,this._emit("var "+this.buffer+' = "";'),e},i._popBuffer=function(){this.buffer=this.bufferStack.pop()},i._emit=function(e){this.codebuf.push(e)},i._emitLine=function(e){this._emit(e+"\n")},i._emitLines=function(){for(var e=this,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.forEach(function(t){return e._emitLine(t)})},i._emitFuncBegin=function(e,t){this.buffer="output",this._scopeClosers="",this._emitLine("function "+t+"(env, context, frame, runtime, cb) {"),this._emitLine("var lineno = "+e.lineno+";"),this._emitLine("var colno = "+e.colno+";"),this._emitLine("var "+this.buffer+' = "";'),this._emitLine("try {")},i._emitFuncEnd=function(e){e||this._emitLine("cb(null, "+this.buffer+");"),this._closeScopeLevels(),this._emitLine("} catch (e) {"),this._emitLine(" cb(runtime.handleError(e, lineno, colno));"),this._emitLine("}"),this._emitLine("}"),this.buffer=null},i._addScopeLevel=function(){this._scopeClosers+="})"},i._closeScopeLevels=function(){this._emitLine(this._scopeClosers+";"),this._scopeClosers=""},i._withScopedSyntax=function(e){var t=this._scopeClosers;this._scopeClosers="",e.call(this),this._closeScopeLevels(),this._scopeClosers=t},i._makeCallback=function(e){var t=this._tmpid();return"function("+t+(e?","+e:"")+") {\nif("+t+") { cb("+t+"); return; }"},i._tmpid=function(){return this.lastId++,"t_"+this.lastId},i._templateName=function(){return null==this.templateName?"undefined":JSON.stringify(this.templateName)},i._compileChildren=function(e,t){var r=this;e.children.forEach(function(e){r.compile(e,t)})},i._compileAggregate=function(e,t,r,n){var o=this;r&&this._emit(r),e.children.forEach(function(e,r){r>0&&o._emit(","),o.compile(e,t)}),n&&this._emit(n)},i._compileExpression=function(e,t){this.assertType(e,a.Literal,a.Symbol,a.Group,a.Array,a.Dict,a.FunCall,a.Caller,a.Filter,a.LookupVal,a.Compare,a.InlineIf,a.In,a.Is,a.And,a.Or,a.Not,a.Add,a.Concat,a.Sub,a.Mul,a.Div,a.FloorDiv,a.Mod,a.Pow,a.Neg,a.Pos,a.Compare,a.NodeList),this.compile(e,t)},i.assertType=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];r.some(function(t){return e instanceof t})||this.fail("assertType: invalid type: "+e.typename,e.lineno,e.colno)},i.compileCallExtension=function(e,t,r){var n=this,o=e.args,i=e.contentArgs,s="boolean"!=typeof e.autoescape||e.autoescape;if(r||this._emit(this.buffer+" += runtime.suppressValue("),this._emit('env.getExtension("'+e.extName+'")["'+e.prop+'"]('),this._emit("context"),(o||i)&&this._emit(","),o&&(o instanceof a.NodeList||this.fail("compileCallExtension: arguments must be a NodeList, use `parser.parseSignature`"),o.children.forEach(function(e,r){n._compileExpression(e,t),(r!==o.children.length-1||i.length)&&n._emit(",")})),i.length&&i.forEach(function(e,r){if(r>0&&n._emit(","),e){n._emitLine("function(cb) {"),n._emitLine("if(!cb) { cb = function(err) { if(err) { throw err; }}}");var o=n._pushBuffer();n._withScopedSyntax(function(){n.compile(e,t),n._emitLine("cb(null, "+o+");")}),n._popBuffer(),n._emitLine("return "+o+";"),n._emitLine("}")}else n._emit("null")}),r){var l=this._tmpid();this._emitLine(", "+this._makeCallback(l)),this._emitLine(this.buffer+" += runtime.suppressValue("+l+", "+s+" && env.opts.autoescape);"),this._addScopeLevel()}else this._emit(")"),this._emit(", "+s+" && env.opts.autoescape);\n")},i.compileCallExtensionAsync=function(e,t){this.compileCallExtension(e,t,!0)},i.compileNodeList=function(e,t){this._compileChildren(e,t)},i.compileLiteral=function(e){if("string"==typeof e.value){var t=e.value.replace(/\\/g,"\\\\");t=(t=(t=(t=(t=t.replace(/"/g,'\\"')).replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t")).replace(/\u2028/g,"\\u2028"),this._emit('"'+t+'"')}else null===e.value?this._emit("null"):this._emit(e.value.toString())},i.compileSymbol=function(e,t){var r=e.value,n=t.lookup(r);n?this._emit(n):this._emit('runtime.contextOrFrameLookup(context, frame, "'+r+'")')},i.compileGroup=function(e,t){this._compileAggregate(e,t,"(",")")},i.compileArray=function(e,t){this._compileAggregate(e,t,"[","]")},i.compileDict=function(e,t){this._compileAggregate(e,t,"{","}")},i.compilePair=function(e,t){var r=e.key,n=e.value;r instanceof a.Symbol?r=new a.Literal(r.lineno,r.colno,r.value):r instanceof a.Literal&&"string"==typeof r.value||this.fail("compilePair: Dict keys must be strings or names",r.lineno,r.colno),this.compile(r,t),this._emit(": "),this._compileExpression(n,t)},i.compileInlineIf=function(e,t){this._emit("("),this.compile(e.cond,t),this._emit("?"),this.compile(e.body,t),this._emit(":"),null!==e.else_?this.compile(e.else_,t):this._emit('""'),this._emit(")")},i.compileIn=function(e,t){this._emit("runtime.inOperator("),this.compile(e.left,t),this._emit(","),this.compile(e.right,t),this._emit(")")},i.compileIs=function(e,t){var r=e.right.name?e.right.name.value:e.right.value;this._emit('env.getTest("'+r+'").call(context, '),this.compile(e.left,t),e.right.args&&(this._emit(","),this.compile(e.right.args,t)),this._emit(") === true")},i._binOpEmitter=function(e,t,r){this.compile(e.left,t),this._emit(r),this.compile(e.right,t)},i.compileOr=function(e,t){return this._binOpEmitter(e,t," || ")},i.compileAnd=function(e,t){return this._binOpEmitter(e,t," && ")},i.compileAdd=function(e,t){return this._binOpEmitter(e,t," + ")},i.compileConcat=function(e,t){return this._binOpEmitter(e,t,' + "" + ')},i.compileSub=function(e,t){return this._binOpEmitter(e,t," - ")},i.compileMul=function(e,t){return this._binOpEmitter(e,t," * ")},i.compileDiv=function(e,t){return this._binOpEmitter(e,t," / ")},i.compileMod=function(e,t){return this._binOpEmitter(e,t," % ")},i.compileNot=function(e,t){this._emit("!"),this.compile(e.target,t)},i.compileFloorDiv=function(e,t){this._emit("Math.floor("),this.compile(e.left,t),this._emit(" / "),this.compile(e.right,t),this._emit(")")},i.compilePow=function(e,t){this._emit("Math.pow("),this.compile(e.left,t),this._emit(", "),this.compile(e.right,t),this._emit(")")},i.compileNeg=function(e,t){this._emit("-"),this.compile(e.target,t)},i.compilePos=function(e,t){this._emit("+"),this.compile(e.target,t)},i.compileCompare=function(e,t){var r=this;this.compile(e.expr,t),e.ops.forEach(function(e){r._emit(" "+d[e.type]+" "),r.compile(e.expr,t)})},i.compileLookupVal=function(e,t){this._emit("runtime.memberLookup(("),this._compileExpression(e.target,t),this._emit("),"),this._compileExpression(e.val,t),this._emit(")")},i._getNodeName=function(e){switch(e.typename){case"Symbol":return e.value;case"FunCall":return"the return value of ("+this._getNodeName(e.name)+")";case"LookupVal":return this._getNodeName(e.target)+'["'+this._getNodeName(e.val)+'"]';case"Literal":return e.value.toString();default:return"--expression--"}},i.compileFunCall=function(e,t){this._emit("(lineno = "+e.lineno+", colno = "+e.colno+", "),this._emit("runtime.callWrap("),this._compileExpression(e.name,t),this._emit(', "'+this._getNodeName(e.name).replace(/"/g,'\\"')+'", context, '),this._compileAggregate(e.args,t,"[","])"),this._emit(")")},i.compileFilter=function(e,t){var r=e.name;this.assertType(r,a.Symbol),this._emit('env.getFilter("'+r.value+'").call(context, '),this._compileAggregate(e.args,t),this._emit(")")},i.compileFilterAsync=function(e,t){var r=e.name,n=e.symbol.value;this.assertType(r,a.Symbol),t.set(n,n),this._emit('env.getFilter("'+r.value+'").call(context, '),this._compileAggregate(e.args,t),this._emitLine(", "+this._makeCallback(n)),this._addScopeLevel()},i.compileKeywordArgs=function(e,t){this._emit("runtime.makeKeywordArgs("),this.compileDict(e,t),this._emit(")")},i.compileSet=function(e,t){var r=this,n=[];e.targets.forEach(function(e){var o=e.value,i=t.lookup(o);null==i&&(i=r._tmpid(),r._emitLine("var "+i+";")),n.push(i)}),e.value?(this._emit(n.join(" = ")+" = "),this._compileExpression(e.value,t),this._emitLine(";")):(this._emit(n.join(" = ")+" = "),this.compile(e.body,t),this._emitLine(";")),e.targets.forEach(function(e,t){var o=n[t],i=e.value;r._emitLine('frame.set("'+i+'", '+o+", true);"),r._emitLine("if(frame.topLevel) {"),r._emitLine('context.setVariable("'+i+'", '+o+");"),r._emitLine("}"),"_"!==i.charAt(0)&&(r._emitLine("if(frame.topLevel) {"),r._emitLine('context.addExport("'+i+'", '+o+");"),r._emitLine("}"))})},i.compileSwitch=function(e,t){var r=this;this._emit("switch ("),this.compile(e.expr,t),this._emit(") {"),e.cases.forEach(function(e,n){r._emit("case "),r.compile(e.cond,t),r._emit(": "),r.compile(e.body,t),e.body.children.length&&r._emitLine("break;")}),e.default&&(this._emit("default:"),this.compile(e.default,t)),this._emit("}")},i.compileIf=function(e,t,r){var n=this;this._emit("if("),this._compileExpression(e.cond,t),this._emitLine(") {"),this._withScopedSyntax(function(){n.compile(e.body,t),r&&n._emit("cb()")}),e.else_?(this._emitLine("}\nelse {"),this._withScopedSyntax(function(){n.compile(e.else_,t),r&&n._emit("cb()")})):r&&(this._emitLine("}\nelse {"),this._emit("cb()")),this._emitLine("}")},i.compileIfAsync=function(e,t){this._emit("(function(cb) {"),this.compileIf(e,t,!0),this._emit("})("+this._makeCallback()),this._addScopeLevel()},i._emitLoopBindings=function(e,t,r,n){var o=this;[{name:"index",val:r+" + 1"},{name:"index0",val:r},{name:"revindex",val:n+" - "+r},{name:"revindex0",val:n+" - "+r+" - 1"},{name:"first",val:r+" === 0"},{name:"last",val:r+" === "+n+" - 1"},{name:"length",val:n}].forEach(function(e){o._emitLine('frame.set("loop.'+e.name+'", '+e.val+");")})},i.compileFor=function(e,t){var r=this,n=this._tmpid(),o=this._tmpid(),i=this._tmpid();if(t=t.push(),this._emitLine("frame = frame.push();"),this._emit("var "+i+" = "),this._compileExpression(e.arr,t),this._emitLine(";"),this._emit("if("+i+") {"),this._emitLine(i+" = runtime.fromIterator("+i+");"),e.name instanceof a.Array){this._emitLine("var "+n+";"),this._emitLine("if(runtime.isArray("+i+")) {"),this._emitLine("var "+o+" = "+i+".length;"),this._emitLine("for("+n+"=0; "+n+" < "+i+".length; "+n+"++) {"),e.name.children.forEach(function(o,a){var s=r._tmpid();r._emitLine("var "+s+" = "+i+"["+n+"]["+a+"];"),r._emitLine('frame.set("'+o+'", '+i+"["+n+"]["+a+"]);"),t.set(e.name.children[a].value,s)}),this._emitLoopBindings(e,i,n,o),this._withScopedSyntax(function(){r.compile(e.body,t)}),this._emitLine("}"),this._emitLine("} else {");var s=e.name.children,l=s[0],c=s[1],d=this._tmpid(),u=this._tmpid();t.set(l.value,d),t.set(c.value,u),this._emitLine(n+" = -1;"),this._emitLine("var "+o+" = runtime.keys("+i+").length;"),this._emitLine("for(var "+d+" in "+i+") {"),this._emitLine(n+"++;"),this._emitLine("var "+u+" = "+i+"["+d+"];"),this._emitLine('frame.set("'+l.value+'", '+d+");"),this._emitLine('frame.set("'+c.value+'", '+u+");"),this._emitLoopBindings(e,i,n,o),this._withScopedSyntax(function(){r.compile(e.body,t)}),this._emitLine("}"),this._emitLine("}")}else{var p=this._tmpid();t.set(e.name.value,p),this._emitLine("var "+o+" = "+i+".length;"),this._emitLine("for(var "+n+"=0; "+n+" < "+i+".length; "+n+"++) {"),this._emitLine("var "+p+" = "+i+"["+n+"];"),this._emitLine('frame.set("'+e.name.value+'", '+p+");"),this._emitLoopBindings(e,i,n,o),this._withScopedSyntax(function(){r.compile(e.body,t)}),this._emitLine("}")}this._emitLine("}"),e.else_&&(this._emitLine("if (!"+o+") {"),this.compile(e.else_,t),this._emitLine("}")),this._emitLine("frame = frame.pop();")},i._compileAsyncLoop=function(e,t,r){var n=this,o=this._tmpid(),i=this._tmpid(),s=this._tmpid(),l=r?"asyncAll":"asyncEach";if(t=t.push(),this._emitLine("frame = frame.push();"),this._emit("var "+s+" = runtime.fromIterator("),this._compileExpression(e.arr,t),this._emitLine(");"),e.name instanceof a.Array){var c=e.name.children.length;this._emit("runtime."+l+"("+s+", "+c+", function("),e.name.children.forEach(function(e){n._emit(e.value+",")}),this._emit(o+","+i+",next) {"),e.name.children.forEach(function(e){var r=e.value;t.set(r,r),n._emitLine('frame.set("'+r+'", '+r+");")})}else{var d=e.name.value;this._emitLine("runtime."+l+"("+s+", 1, function("+d+", "+o+", "+i+",next) {"),this._emitLine('frame.set("'+d+'", '+d+");"),t.set(d,d)}this._emitLoopBindings(e,s,o,i),this._withScopedSyntax(function(){var i;r&&(i=n._pushBuffer()),n.compile(e.body,t),n._emitLine("next("+o+(i?","+i:"")+");"),r&&n._popBuffer()});var u=this._tmpid();this._emitLine("}, "+this._makeCallback(u)),this._addScopeLevel(),r&&this._emitLine(this.buffer+" += "+u+";"),e.else_&&(this._emitLine("if (!"+s+".length) {"),this.compile(e.else_,t),this._emitLine("}")),this._emitLine("frame = frame.pop();")},i.compileAsyncEach=function(e,t){this._compileAsyncLoop(e,t)},i.compileAsyncAll=function(e,t){this._compileAsyncLoop(e,t,!0)},i._compileMacro=function(e,t){var r=this,n=[],o=null,i="macro_"+this._tmpid(),s=void 0!==t;e.args.children.forEach(function(t,i){i===e.args.children.length-1&&t instanceof a.Dict?o=t:(r.assertType(t,a.Symbol),n.push(t))});var c,d=[].concat(n.map(function(e){return"l_"+e.value}),["kwargs"]),u=n.map(function(e){return'"'+e.value+'"'}),p=(o&&o.children||[]).map(function(e){return'"'+e.key.value+'"'});c=s?t.push(!0):new l,this._emitLines("var "+i+" = runtime.makeMacro(","["+u.join(", ")+"], ","["+p.join(", ")+"], ","function ("+d.join(", ")+") {","var callerFrame = frame;","frame = "+(s?"frame.push(true);":"new runtime.Frame();"),"kwargs = kwargs || {};",'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {','frame.set("caller", kwargs.caller); }'),n.forEach(function(e){r._emitLine('frame.set("'+e.value+'", l_'+e.value+");"),c.set(e.value,"l_"+e.value)}),o&&o.children.forEach(function(e){var t=e.key.value;r._emit('frame.set("'+t+'", '),r._emit('Object.prototype.hasOwnProperty.call(kwargs, "'+t+'")'),r._emit(' ? kwargs["'+t+'"] : '),r._compileExpression(e.value,c),r._emit(");")});var h=this._pushBuffer();return this._withScopedSyntax(function(){r.compile(e.body,c)}),this._emitLine("frame = "+(s?"frame.pop();":"callerFrame;")),this._emitLine("return new runtime.SafeString("+h+");"),this._emitLine("});"),this._popBuffer(),i},i.compileMacro=function(e,t){var r=this._compileMacro(e),n=e.name.value;t.set(n,r),t.parent?this._emitLine('frame.set("'+n+'", '+r+");"):("_"!==e.name.value.charAt(0)&&this._emitLine('context.addExport("'+n+'");'),this._emitLine('context.setVariable("'+n+'", '+r+");"))},i.compileCaller=function(e,t){this._emit("(function (){");var r=this._compileMacro(e,t);this._emit("return "+r+";})()")},i._compileGetTemplate=function(e,t,r,n){var o=this._tmpid(),i=this._templateName(),a=this._makeCallback(o),s=r?"true":"false",l=n?"true":"false";return this._emit("env.getTemplate("),this._compileExpression(e.template,t),this._emitLine(", "+s+", "+i+", "+l+", "+a),o},i.compileImport=function(e,t){var r=e.target.value,n=this._compileGetTemplate(e,t,!1,!1);this._addScopeLevel(),this._emitLine(n+".getExported("+(e.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(n)),this._addScopeLevel(),t.set(r,n),t.parent?this._emitLine('frame.set("'+r+'", '+n+");"):this._emitLine('context.setVariable("'+r+'", '+n+");")},i.compileFromImport=function(e,t){var r=this,n=this._compileGetTemplate(e,t,!1,!1);this._addScopeLevel(),this._emitLine(n+".getExported("+(e.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(n)),this._addScopeLevel(),e.names.children.forEach(function(e){var o,i,s=r._tmpid();e instanceof a.Pair?(o=e.key.value,i=e.value.value):i=o=e.value,r._emitLine("if(Object.prototype.hasOwnProperty.call("+n+', "'+o+'")) {'),r._emitLine("var "+s+" = "+n+"."+o+";"),r._emitLine("} else {"),r._emitLine("cb(new Error(\"cannot import '"+o+"'\")); return;"),r._emitLine("}"),t.set(i,s),t.parent?r._emitLine('frame.set("'+i+'", '+s+");"):r._emitLine('context.setVariable("'+i+'", '+s+");")})},i.compileBlock=function(e){var t=this._tmpid();this.inBlock||this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : '),this._emit('context.getBlock("'+e.name.value+'")'),this.inBlock||this._emit(")"),this._emitLine("(env, context, frame, runtime, "+this._makeCallback(t)),this._emitLine(this.buffer+" += "+t+";"),this._addScopeLevel()},i.compileSuper=function(e,t){var r=e.blockName.value,n=e.symbol.value,o=this._makeCallback(n);this._emitLine('context.getSuper(env, "'+r+'", b_'+r+", frame, runtime, "+o),this._emitLine(n+" = runtime.markSafe("+n+");"),this._addScopeLevel(),t.set(n,n)},i.compileExtends=function(e,t){var r=this._tmpid(),n=this._compileGetTemplate(e,t,!0,!1);this._emitLine("parentTemplate = "+n),this._emitLine("for(var "+r+" in parentTemplate.blocks) {"),this._emitLine("context.addBlock("+r+", parentTemplate.blocks["+r+"]);"),this._emitLine("}"),this._addScopeLevel()},i.compileInclude=function(e,t){this._emitLine("var tasks = [];"),this._emitLine("tasks.push("),this._emitLine("function(callback) {");var r=this._compileGetTemplate(e,t,!1,e.ignoreMissing);this._emitLine("callback(null,"+r+");});"),this._emitLine("});");var n=this._tmpid();this._emitLine("tasks.push("),this._emitLine("function(template, callback){"),this._emitLine("template.render(context.getVariables(), frame, "+this._makeCallback(n)),this._emitLine("callback(null,"+n+");});"),this._emitLine("});"),this._emitLine("tasks.push("),this._emitLine("function(result, callback){"),this._emitLine(this.buffer+" += result;"),this._emitLine("callback(null);"),this._emitLine("});"),this._emitLine("env.waterfall(tasks, function(){"),this._addScopeLevel()},i.compileTemplateData=function(e,t){this.compileLiteral(e,t)},i.compileCapture=function(e,t){var r=this,n=this.buffer;this.buffer="output",this._emitLine("(function() {"),this._emitLine('var output = "";'),this._withScopedSyntax(function(){r.compile(e.body,t)}),this._emitLine("return output;"),this._emitLine("})()"),this.buffer=n},i.compileOutput=function(e,t){var r=this;e.children.forEach(function(n){n instanceof a.TemplateData?n.value&&(r._emit(r.buffer+" += "),r.compileLiteral(n,t),r._emitLine(";")):(r._emit(r.buffer+" += runtime.suppressValue("),r.throwOnUndefined&&r._emit("runtime.ensureDefined("),r.compile(n,t),r.throwOnUndefined&&r._emit(","+e.lineno+","+e.colno+")"),r._emit(", env.opts.autoescape);\n"))})},i.compileRoot=function(e,t){var r=this;t&&this.fail("compileRoot: root node can't have frame"),t=new l,this._emitFuncBegin(e,"root"),this._emitLine("var parentTemplate = null;"),this._compileChildren(e,t),this._emitLine("if(parentTemplate) {"),this._emitLine("parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);"),this._emitLine("} else {"),this._emitLine("cb(null, "+this.buffer+");"),this._emitLine("}"),this._emitFuncEnd(!0),this.inBlock=!0;var n=[],o=e.findAll(a.Block);o.forEach(function(e,t){var o=e.name.value;if(-1!==n.indexOf(o))throw new Error('Block "'+o+'" defined more than once.');n.push(o),r._emitFuncBegin(e,"b_"+o);var i=new l;r._emitLine("var frame = frame.push(true);"),r.compile(e.body,i),r._emitFuncEnd()}),this._emitLine("return {"),o.forEach(function(e,t){var n="b_"+e.name.value;r._emitLine(n+": "+n+",")}),this._emitLine("root: root\n};")},i.compile=function(e,t){var r=this["compile"+e.typename];r?r.call(this,e,t):this.fail("compile: Cannot compile node: "+e.typename,e.lineno,e.colno)},i.getCode=function(){return this.codebuf.join("")},o}(c);e.exports={compile:function(e,t,r,n,a){void 0===a&&(a={});var s=new u(n,a.throwOnUndefined),l=(r||[]).map(function(e){return e.preprocess}).filter(function(e){return!!e}).reduce(function(e,t){return t(e)},e);return s.compile(i.transform(o.parse(l,r,a),t,n)),s.getCode()},Compiler:u}},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}var o=r(4),i=r(1).EmitterObj;e.exports=function(e){var t,r;function i(){return e.apply(this,arguments)||this}r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r);var a=i.prototype;return a.resolve=function(e,t){return o.resolve(o.dirname(e),t)},a.isRelative=function(e){return 0===e.indexOf("./")||0===e.indexOf("../")},i}(i)},function(e,t,r){"use strict";function n(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,o(e,t)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}var i=r(12),a=r(15),s=r(0),l=r(5),c=r(18),d=r(10),u=d.FileSystemLoader,p=d.WebLoader,h=d.PrecompiledLoader,f=r(20),g=r(21),m=r(1),v=m.Obj,b=m.EmitterObj,w=r(2),y=w.handleError,x=w.Frame,k=r(22);function E(e,t,r){i(function(){e(t,r)})}var T={type:"code",obj:{root:function(e,t,r,n,o){try{o(null,"")}catch(e){o(y(e,null,null))}}}},S=function(e){function t(){return e.apply(this,arguments)||this}n(t,e);var r=t.prototype;return r.init=function(e,t){var r=this;t=this.opts=t||{},this.opts.dev=!!t.dev,this.opts.autoescape=null==t.autoescape||t.autoescape,this.opts.throwOnUndefined=!!t.throwOnUndefined,this.opts.trimBlocks=!!t.trimBlocks,this.opts.lstripBlocks=!!t.lstripBlocks,this.loaders=[],e?this.loaders=s.isArray(e)?e:[e]:u?this.loaders=[new u("views")]:p&&(this.loaders=[new p("/views")]),"undefined"!=typeof window&&window.nunjucksPrecompiled&&this.loaders.unshift(new h(window.nunjucksPrecompiled)),this._initLoaders(),this.globals=g(),this.filters={},this.tests={},this.asyncFilters=[],this.extensions={},this.extensionsList=[],s._entries(c).forEach(function(e){var t=e[0],n=e[1];return r.addFilter(t,n)}),s._entries(f).forEach(function(e){var t=e[0],n=e[1];return r.addTest(t,n)})},r._initLoaders=function(){var e=this;this.loaders.forEach(function(t){t.cache={},"function"==typeof t.on&&(t.on("update",function(r,n){t.cache[r]=null,e.emit("update",r,n,t)}),t.on("load",function(r,n){e.emit("load",r,n,t)}))})},r.invalidateCache=function(){this.loaders.forEach(function(e){e.cache={}})},r.addExtension=function(e,t){return t.__name=e,this.extensions[e]=t,this.extensionsList.push(t),this},r.removeExtension=function(e){var t=this.getExtension(e);t&&(this.extensionsList=s.without(this.extensionsList,t),delete this.extensions[e])},r.getExtension=function(e){return this.extensions[e]},r.hasExtension=function(e){return!!this.extensions[e]},r.addGlobal=function(e,t){return this.globals[e]=t,this},r.getGlobal=function(e){if(void 0===this.globals[e])throw new Error("global not found: "+e);return this.globals[e]},r.addFilter=function(e,t,r){var n=t;return r&&this.asyncFilters.push(e),this.filters[e]=n,this},r.getFilter=function(e){if(!this.filters[e])throw new Error("filter not found: "+e);return this.filters[e]},r.addTest=function(e,t){return this.tests[e]=t,this},r.getTest=function(e){if(!this.tests[e])throw new Error("test not found: "+e);return this.tests[e]},r.resolveTemplate=function(e,t,r){return e.isRelative&&t&&e.isRelative(r)&&e.resolve?e.resolve(t,r):r},r.getTemplate=function(e,t,r,n,o){var i,a=this,l=this,c=null;if(e&&e.raw&&(e=e.raw),s.isFunction(r)&&(o=r,r=null,t=t||!1),s.isFunction(t)&&(o=t,t=!1),e instanceof A)c=e;else{if("string"!=typeof e)throw new Error("template names must be a string: "+e);for(var d=0;d<this.loaders.length;d++){var u=this.loaders[d];if(c=u.cache[this.resolveTemplate(u,r,e)])break}}return c?(t&&c.compile(),o?void o(null,c):c):(s.asyncIter(this.loaders,function(t,n,o,i){function a(e,r){e?i(e):r?(r.loader=t,i(null,r)):o()}e=l.resolveTemplate(t,r,e),t.async?t.getSource(e,a):a(null,t.getSource(e))},function(r,s){if(s||r||n||(r=new Error("template not found: "+e)),r){if(o)return void o(r);throw r}var l;s?(l=new A(s.src,a,s.path,t),s.noCache||(s.loader.cache[e]=l)):l=new A(T,a,"",t),o?o(null,l):i=l}),i)},r.express=function(e){return k(this,e)},r.render=function(e,t,r){s.isFunction(t)&&(r=t,t=null);var n=null;return this.getTemplate(e,function(e,o){if(e&&r)E(r,e);else{if(e)throw e;n=o.render(t,r)}}),n},r.renderString=function(e,t,r,n){return s.isFunction(r)&&(n=r,r={}),new A(e,this,(r=r||{}).path).render(t,n)},r.waterfall=function(e,t,r){return a(e,t,r)},t}(b),D=function(e){function t(){return e.apply(this,arguments)||this}n(t,e);var r=t.prototype;return r.init=function(e,t,r){var n=this;this.env=r||new S,this.ctx=s.extend({},e),this.blocks={},this.exported=[],s.keys(t).forEach(function(e){n.addBlock(e,t[e])})},r.lookup=function(e){return e in this.env.globals&&!(e in this.ctx)?this.env.globals[e]:this.ctx[e]},r.setVariable=function(e,t){this.ctx[e]=t},r.getVariables=function(){return this.ctx},r.addBlock=function(e,t){return this.blocks[e]=this.blocks[e]||[],this.blocks[e].push(t),this},r.getBlock=function(e){if(!this.blocks[e])throw new Error('unknown block "'+e+'"');return this.blocks[e][0]},r.getSuper=function(e,t,r,n,o,i){var a=s.indexOf(this.blocks[t]||[],r),l=this.blocks[t][a+1];if(-1===a||!l)throw new Error('no super block available for "'+t+'"');l(e,this,n,o,i)},r.addExport=function(e){this.exported.push(e)},r.getExported=function(){var e=this,t={};return this.exported.forEach(function(r){t[r]=e.ctx[r]}),t},t}(v),A=function(e){function t(){return e.apply(this,arguments)||this}n(t,e);var r=t.prototype;return r.init=function(e,t,r,n){if(this.env=t||new S,s.isObject(e))switch(e.type){case"code":this.tmplProps=e.obj;break;case"string":this.tmplStr=e.obj;break;default:throw new Error("Unexpected template object type "+e.type+"; expected 'code', or 'string'")}else{if(!s.isString(e))throw new Error("src must be a string or an object describing the source");this.tmplStr=e}if(this.path=r,n)try{this._compile()}catch(e){throw s._prettifyError(this.path,this.env.opts.dev,e)}else this.compiled=!1},r.render=function(e,t,r){var n=this;"function"==typeof e?(r=e,e={}):"function"==typeof t&&(r=t,t=null);var o=!t;try{this.compile()}catch(e){var i=s._prettifyError(this.path,this.env.opts.dev,e);if(r)return E(r,i);throw i}var a=new D(e||{},this.blocks,this.env),l=t?t.push(!0):new x;l.topLevel=!0;var c=null,d=!1;return this.rootRenderFunc(this.env,a,l,w,function(e,t){if(!d||!r||void 0===t)if(e&&(e=s._prettifyError(n.path,n.env.opts.dev,e),d=!0),r)o?E(r,e,t):r(e,t);else{if(e)throw e;c=t}}),c},r.getExported=function(e,t,r){"function"==typeof e&&(r=e,e={}),"function"==typeof t&&(r=t,t=null);try{this.compile()}catch(e){if(r)return r(e);throw e}var n=t?t.push():new x;n.topLevel=!0;var o=new D(e||{},this.blocks,this.env);this.rootRenderFunc(this.env,o,n,w,function(e){e?r(e,null):r(null,o.getExported())})},r.compile=function(){this.compiled||this._compile()},r._compile=function(){var e;if(this.tmplProps)e=this.tmplProps;else{var t=l.compile(this.tmplStr,this.env.asyncFilters,this.env.extensionsList,this.path,this.env.opts);e=new Function(t)()}this.blocks=this._getBlocks(e),this.rootRenderFunc=e.root,this.compiled=!0},r._getBlocks=function(e){var t={};return s.keys(e).forEach(function(r){"b_"===r.slice(0,2)&&(t[r.slice(2)]=e[r])}),t},t}(v);e.exports={Environment:S,Template:A}},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}var o=r(9),i=r(3),a=r(1).Obj,s=r(0),l=function(e){var t,r;function a(){return e.apply(this,arguments)||this}r=e,(t=a).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r);var l=a.prototype;return l.init=function(e){this.tokens=e,this.peeked=null,this.breakOnBlocks=null,this.dropLeadingWhitespace=!1,this.extensions=[]},l.nextToken=function(e){var t;if(this.peeked){if(e||this.peeked.type!==o.TOKEN_WHITESPACE)return t=this.peeked,this.peeked=null,t;this.peeked=null}if(t=this.tokens.nextToken(),!e)for(;t&&t.type===o.TOKEN_WHITESPACE;)t=this.tokens.nextToken();return t},l.peekToken=function(){return this.peeked=this.peeked||this.nextToken(),this.peeked},l.pushToken=function(e){if(this.peeked)throw new Error("pushToken: can only push one token on between reads");this.peeked=e},l.error=function(e,t,r){if(void 0===t||void 0===r){var n=this.peekToken()||{};t=n.lineno,r=n.colno}return void 0!==t&&(t+=1),void 0!==r&&(r+=1),new s.TemplateError(e,t,r)},l.fail=function(e,t,r){throw this.error(e,t,r)},l.skip=function(e){var t=this.nextToken();return!(!t||t.type!==e)||(this.pushToken(t),!1)},l.expect=function(e){var t=this.nextToken();return t.type!==e&&this.fail("expected "+e+", got "+t.type,t.lineno,t.colno),t},l.skipValue=function(e,t){var r=this.nextToken();return!(!r||r.type!==e||r.value!==t)||(this.pushToken(r),!1)},l.skipSymbol=function(e){return this.skipValue(o.TOKEN_SYMBOL,e)},l.advanceAfterBlockEnd=function(e){var t;return e||((t=this.peekToken())||this.fail("unexpected end of file"),t.type!==o.TOKEN_SYMBOL&&this.fail("advanceAfterBlockEnd: expected symbol token or explicit name to be passed"),e=this.nextToken().value),(t=this.nextToken())&&t.type===o.TOKEN_BLOCK_END?"-"===t.value.charAt(0)&&(this.dropLeadingWhitespace=!0):this.fail("expected block end in "+e+" statement"),t},l.advanceAfterVariableEnd=function(){var e=this.nextToken();e&&e.type===o.TOKEN_VARIABLE_END?this.dropLeadingWhitespace="-"===e.value.charAt(e.value.length-this.tokens.tags.VARIABLE_END.length-1):(this.pushToken(e),this.fail("expected variable end"))},l.parseFor=function(){var e,t,r=this.peekToken();if(this.skipSymbol("for")?(e=new i.For(r.lineno,r.colno),t="endfor"):this.skipSymbol("asyncEach")?(e=new i.AsyncEach(r.lineno,r.colno),t="endeach"):this.skipSymbol("asyncAll")?(e=new i.AsyncAll(r.lineno,r.colno),t="endall"):this.fail("parseFor: expected for{Async}",r.lineno,r.colno),e.name=this.parsePrimary(),e.name instanceof i.Symbol||this.fail("parseFor: variable name expected for loop"),this.peekToken().type===o.TOKEN_COMMA){var n=e.name;for(e.name=new i.Array(n.lineno,n.colno),e.name.addChild(n);this.skip(o.TOKEN_COMMA);){var a=this.parsePrimary();e.name.addChild(a)}}return this.skipSymbol("in")||this.fail('parseFor: expected "in" keyword for loop',r.lineno,r.colno),e.arr=this.parseExpression(),this.advanceAfterBlockEnd(r.value),e.body=this.parseUntilBlocks(t,"else"),this.skipSymbol("else")&&(this.advanceAfterBlockEnd("else"),e.else_=this.parseUntilBlocks(t)),this.advanceAfterBlockEnd(),e},l.parseMacro=function(){var e=this.peekToken();this.skipSymbol("macro")||this.fail("expected macro");var t=this.parsePrimary(!0),r=this.parseSignature(),n=new i.Macro(e.lineno,e.colno,t,r);return this.advanceAfterBlockEnd(e.value),n.body=this.parseUntilBlocks("endmacro"),this.advanceAfterBlockEnd(),n},l.parseCall=function(){var e=this.peekToken();this.skipSymbol("call")||this.fail("expected call");var t=this.parseSignature(!0)||new i.NodeList,r=this.parsePrimary();this.advanceAfterBlockEnd(e.value);var n=this.parseUntilBlocks("endcall");this.advanceAfterBlockEnd();var o=new i.Symbol(e.lineno,e.colno,"caller"),a=new i.Caller(e.lineno,e.colno,o,t,n),s=r.args.children;return s[s.length-1]instanceof i.KeywordArgs||s.push(new i.KeywordArgs),s[s.length-1].addChild(new i.Pair(e.lineno,e.colno,o,a)),new i.Output(e.lineno,e.colno,[r])},l.parseWithContext=function(){var e=this.peekToken(),t=null;return this.skipSymbol("with")?t=!0:this.skipSymbol("without")&&(t=!1),null!==t&&(this.skipSymbol("context")||this.fail("parseFrom: expected context after with/without",e.lineno,e.colno)),t},l.parseImport=function(){var e=this.peekToken();this.skipSymbol("import")||this.fail("parseImport: expected import",e.lineno,e.colno);var t=this.parseExpression();this.skipSymbol("as")||this.fail('parseImport: expected "as" keyword',e.lineno,e.colno);var r=this.parseExpression(),n=this.parseWithContext(),o=new i.Import(e.lineno,e.colno,t,r,n);return this.advanceAfterBlockEnd(e.value),o},l.parseFrom=function(){var e=this.peekToken();this.skipSymbol("from")||this.fail("parseFrom: expected from");var t=this.parseExpression();this.skipSymbol("import")||this.fail("parseFrom: expected import",e.lineno,e.colno);for(var r,n=new i.NodeList;;){var a=this.peekToken();if(a.type===o.TOKEN_BLOCK_END){n.children.length||this.fail("parseFrom: Expected at least one import name",e.lineno,e.colno),"-"===a.value.charAt(0)&&(this.dropLeadingWhitespace=!0),this.nextToken();break}n.children.length>0&&!this.skip(o.TOKEN_COMMA)&&this.fail("parseFrom: expected comma",e.lineno,e.colno);var s=this.parsePrimary();if("_"===s.value.charAt(0)&&this.fail("parseFrom: names starting with an underscore cannot be imported",s.lineno,s.colno),this.skipSymbol("as")){var l=this.parsePrimary();n.addChild(new i.Pair(s.lineno,s.colno,s,l))}else n.addChild(s);r=this.parseWithContext()}return new i.FromImport(e.lineno,e.colno,t,n,r)},l.parseBlock=function(){var e=this.peekToken();this.skipSymbol("block")||this.fail("parseBlock: expected block",e.lineno,e.colno);var t=new i.Block(e.lineno,e.colno);t.name=this.parsePrimary(),t.name instanceof i.Symbol||this.fail("parseBlock: variable name expected",e.lineno,e.colno),this.advanceAfterBlockEnd(e.value),t.body=this.parseUntilBlocks("endblock"),this.skipSymbol("endblock"),this.skipSymbol(t.name.value);var r=this.peekToken();return r||this.fail("parseBlock: expected endblock, got end of file"),this.advanceAfterBlockEnd(r.value),t},l.parseExtends=function(){var e="extends",t=this.peekToken();this.skipSymbol(e)||this.fail("parseTemplateRef: expected "+e);var r=new i.Extends(t.lineno,t.colno);return r.template=this.parseExpression(),this.advanceAfterBlockEnd(t.value),r},l.parseInclude=function(){var e="include",t=this.peekToken();this.skipSymbol(e)||this.fail("parseInclude: expected "+e);var r=new i.Include(t.lineno,t.colno);return r.template=this.parseExpression(),this.skipSymbol("ignore")&&this.skipSymbol("missing")&&(r.ignoreMissing=!0),this.advanceAfterBlockEnd(t.value),r},l.parseIf=function(){var e,t=this.peekToken();this.skipSymbol("if")||this.skipSymbol("elif")||this.skipSymbol("elseif")?e=new i.If(t.lineno,t.colno):this.skipSymbol("ifAsync")?e=new i.IfAsync(t.lineno,t.colno):this.fail("parseIf: expected if, elif, or elseif",t.lineno,t.colno),e.cond=this.parseExpression(),this.advanceAfterBlockEnd(t.value),e.body=this.parseUntilBlocks("elif","elseif","else","endif");var r=this.peekToken();switch(r&&r.value){case"elseif":case"elif":e.else_=this.parseIf();break;case"else":this.advanceAfterBlockEnd(),e.else_=this.parseUntilBlocks("endif"),this.advanceAfterBlockEnd();break;case"endif":e.else_=null,this.advanceAfterBlockEnd();break;default:this.fail("parseIf: expected elif, else, or endif, got end of file")}return e},l.parseSet=function(){var e=this.peekToken();this.skipSymbol("set")||this.fail("parseSet: expected set",e.lineno,e.colno);for(var t,r=new i.Set(e.lineno,e.colno,[]);(t=this.parsePrimary())&&(r.targets.push(t),this.skip(o.TOKEN_COMMA)););return this.skipValue(o.TOKEN_OPERATOR,"=")?(r.value=this.parseExpression(),this.advanceAfterBlockEnd(e.value)):this.skip(o.TOKEN_BLOCK_END)?(r.body=new i.Capture(e.lineno,e.colno,this.parseUntilBlocks("endset")),r.value=null,this.advanceAfterBlockEnd()):this.fail("parseSet: expected = or block end in set tag",e.lineno,e.colno),r},l.parseSwitch=function(){var e="switch",t="endswitch",r="case",n="default",o=this.peekToken();this.skipSymbol(e)||this.skipSymbol(r)||this.skipSymbol(n)||this.fail('parseSwitch: expected "switch," "case" or "default"',o.lineno,o.colno);var a=this.parseExpression();this.advanceAfterBlockEnd(e),this.parseUntilBlocks(r,n,t);var s,l=this.peekToken(),c=[];do{this.skipSymbol(r);var d=this.parseExpression();this.advanceAfterBlockEnd(e);var u=this.parseUntilBlocks(r,n,t);c.push(new i.Case(l.line,l.col,d,u)),l=this.peekToken()}while(l&&l.value===r);switch(l.value){case n:this.advanceAfterBlockEnd(),s=this.parseUntilBlocks(t),this.advanceAfterBlockEnd();break;case t:this.advanceAfterBlockEnd();break;default:this.fail('parseSwitch: expected "case," "default" or "endswitch," got EOF.')}return new i.Switch(o.lineno,o.colno,a,c,s)},l.parseStatement=function(){var e=this.peekToken();if(e.type!==o.TOKEN_SYMBOL&&this.fail("tag name expected",e.lineno,e.colno),this.breakOnBlocks&&-1!==s.indexOf(this.breakOnBlocks,e.value))return null;switch(e.value){case"raw":return this.parseRaw();case"verbatim":return this.parseRaw("verbatim");case"if":case"ifAsync":return this.parseIf();case"for":case"asyncEach":case"asyncAll":return this.parseFor();case"block":return this.parseBlock();case"extends":return this.parseExtends();case"include":return this.parseInclude();case"set":return this.parseSet();case"macro":return this.parseMacro();case"call":return this.parseCall();case"import":return this.parseImport();case"from":return this.parseFrom();case"filter":return this.parseFilterStatement();case"switch":return this.parseSwitch();default:if(this.extensions.length)for(var t=0;t<this.extensions.length;t++){var r=this.extensions[t];if(-1!==s.indexOf(r.tags||[],e.value))return r.parse(this,i,o)}this.fail("unknown block tag: "+e.value,e.lineno,e.colno)}},l.parseRaw=function(e){for(var t="end"+(e=e||"raw"),r=new RegExp("([\\s\\S]*?){%\\s*("+e+"|"+t+")\\s*(?=%})%}"),n=1,o="",a=null,s=this.advanceAfterBlockEnd();(a=this.tokens._extractRegex(r))&&n>0;){var l=a[0],c=a[1],d=a[2];d===e?n+=1:d===t&&(n-=1),0===n?(o+=c,this.tokens.backN(l.length-c.length)):o+=l}return new i.Output(s.lineno,s.colno,[new i.TemplateData(s.lineno,s.colno,o)])},l.parsePostfix=function(e){for(var t,r=this.peekToken();r;){if(r.type===o.TOKEN_LEFT_PAREN)e=new i.FunCall(r.lineno,r.colno,e,this.parseSignature());else if(r.type===o.TOKEN_LEFT_BRACKET)(t=this.parseAggregate()).children.length>1&&this.fail("invalid index"),e=new i.LookupVal(r.lineno,r.colno,e,t.children[0]);else{if(r.type!==o.TOKEN_OPERATOR||"."!==r.value)break;this.nextToken();var n=this.nextToken();n.type!==o.TOKEN_SYMBOL&&this.fail("expected name as lookup value, got "+n.value,n.lineno,n.colno),t=new i.Literal(n.lineno,n.colno,n.value),e=new i.LookupVal(r.lineno,r.colno,e,t)}r=this.peekToken()}return e},l.parseExpression=function(){return this.parseInlineIf()},l.parseInlineIf=function(){var e=this.parseOr();if(this.skipSymbol("if")){var t=this.parseOr(),r=e;(e=new i.InlineIf(e.lineno,e.colno)).body=r,e.cond=t,this.skipSymbol("else")?e.else_=this.parseOr():e.else_=null}return e},l.parseOr=function(){for(var e=this.parseAnd();this.skipSymbol("or");){var t=this.parseAnd();e=new i.Or(e.lineno,e.colno,e,t)}return e},l.parseAnd=function(){for(var e=this.parseNot();this.skipSymbol("and");){var t=this.parseNot();e=new i.And(e.lineno,e.colno,e,t)}return e},l.parseNot=function(){var e=this.peekToken();return this.skipSymbol("not")?new i.Not(e.lineno,e.colno,this.parseNot()):this.parseIn()},l.parseIn=function(){for(var e=this.parseIs();;){var t=this.nextToken();if(!t)break;var r=t.type===o.TOKEN_SYMBOL&&"not"===t.value;if(r||this.pushToken(t),!this.skipSymbol("in")){r&&this.pushToken(t);break}var n=this.parseIs();e=new i.In(e.lineno,e.colno,e,n),r&&(e=new i.Not(e.lineno,e.colno,e))}return e},l.parseIs=function(){var e=this.parseCompare();if(this.skipSymbol("is")){var t=this.skipSymbol("not"),r=this.parseCompare();e=new i.Is(e.lineno,e.colno,e,r),t&&(e=new i.Not(e.lineno,e.colno,e))}return e},l.parseCompare=function(){for(var e=["==","===","!=","!==","<",">","<=",">="],t=this.parseConcat(),r=[];;){var n=this.nextToken();if(!n)break;if(-1===e.indexOf(n.value)){this.pushToken(n);break}r.push(new i.CompareOperand(n.lineno,n.colno,this.parseConcat(),n.value))}return r.length?new i.Compare(r[0].lineno,r[0].colno,t,r):t},l.parseConcat=function(){for(var e=this.parseAdd();this.skipValue(o.TOKEN_TILDE,"~");){var t=this.parseAdd();e=new i.Concat(e.lineno,e.colno,e,t)}return e},l.parseAdd=function(){for(var e=this.parseSub();this.skipValue(o.TOKEN_OPERATOR,"+");){var t=this.parseSub();e=new i.Add(e.lineno,e.colno,e,t)}return e},l.parseSub=function(){for(var e=this.parseMul();this.skipValue(o.TOKEN_OPERATOR,"-");){var t=this.parseMul();e=new i.Sub(e.lineno,e.colno,e,t)}return e},l.parseMul=function(){for(var e=this.parseDiv();this.skipValue(o.TOKEN_OPERATOR,"*");){var t=this.parseDiv();e=new i.Mul(e.lineno,e.colno,e,t)}return e},l.parseDiv=function(){for(var e=this.parseFloorDiv();this.skipValue(o.TOKEN_OPERATOR,"/");){var t=this.parseFloorDiv();e=new i.Div(e.lineno,e.colno,e,t)}return e},l.parseFloorDiv=function(){for(var e=this.parseMod();this.skipValue(o.TOKEN_OPERATOR,"//");){var t=this.parseMod();e=new i.FloorDiv(e.lineno,e.colno,e,t)}return e},l.parseMod=function(){for(var e=this.parsePow();this.skipValue(o.TOKEN_OPERATOR,"%");){var t=this.parsePow();e=new i.Mod(e.lineno,e.colno,e,t)}return e},l.parsePow=function(){for(var e=this.parseUnary();this.skipValue(o.TOKEN_OPERATOR,"**");){var t=this.parseUnary();e=new i.Pow(e.lineno,e.colno,e,t)}return e},l.parseUnary=function(e){var t,r=this.peekToken();return t=this.skipValue(o.TOKEN_OPERATOR,"-")?new i.Neg(r.lineno,r.colno,this.parseUnary(!0)):this.skipValue(o.TOKEN_OPERATOR,"+")?new i.Pos(r.lineno,r.colno,this.parseUnary(!0)):this.parsePrimary(),e||(t=this.parseFilter(t)),t},l.parsePrimary=function(e){var t,r=this.nextToken(),n=null;if(r?r.type===o.TOKEN_STRING?t=r.value:r.type===o.TOKEN_INT?t=parseInt(r.value,10):r.type===o.TOKEN_FLOAT?t=parseFloat(r.value):r.type===o.TOKEN_BOOLEAN?"true"===r.value?t=!0:"false"===r.value?t=!1:this.fail("invalid boolean: "+r.value,r.lineno,r.colno):r.type===o.TOKEN_NONE?t=null:r.type===o.TOKEN_REGEX&&(t=new RegExp(r.value.body,r.value.flags)):this.fail("expected expression, got end of file"),void 0!==t?n=new i.Literal(r.lineno,r.colno,t):r.type===o.TOKEN_SYMBOL?n=new i.Symbol(r.lineno,r.colno,r.value):(this.pushToken(r),n=this.parseAggregate()),e||(n=this.parsePostfix(n)),n)return n;throw this.error("unexpected token: "+r.value,r.lineno,r.colno)},l.parseFilterName=function(){for(var e=this.expect(o.TOKEN_SYMBOL),t=e.value;this.skipValue(o.TOKEN_OPERATOR,".");)t+="."+this.expect(o.TOKEN_SYMBOL).value;return new i.Symbol(e.lineno,e.colno,t)},l.parseFilterArgs=function(e){return this.peekToken().type===o.TOKEN_LEFT_PAREN?this.parsePostfix(e).args.children:[]},l.parseFilter=function(e){for(;this.skip(o.TOKEN_PIPE);){var t=this.parseFilterName();e=new i.Filter(t.lineno,t.colno,t,new i.NodeList(t.lineno,t.colno,[e].concat(this.parseFilterArgs(e))))}return e},l.parseFilterStatement=function(){var e=this.peekToken();this.skipSymbol("filter")||this.fail("parseFilterStatement: expected filter");var t=this.parseFilterName(),r=this.parseFilterArgs(t);this.advanceAfterBlockEnd(e.value);var n=new i.Capture(t.lineno,t.colno,this.parseUntilBlocks("endfilter"));this.advanceAfterBlockEnd();var o=new i.Filter(t.lineno,t.colno,t,new i.NodeList(t.lineno,t.colno,[n].concat(r)));return new i.Output(t.lineno,t.colno,[o])},l.parseAggregate=function(){var e,t=this.nextToken();switch(t.type){case o.TOKEN_LEFT_PAREN:e=new i.Group(t.lineno,t.colno);break;case o.TOKEN_LEFT_BRACKET:e=new i.Array(t.lineno,t.colno);break;case o.TOKEN_LEFT_CURLY:e=new i.Dict(t.lineno,t.colno);break;default:return null}for(;;){var r=this.peekToken().type;if(r===o.TOKEN_RIGHT_PAREN||r===o.TOKEN_RIGHT_BRACKET||r===o.TOKEN_RIGHT_CURLY){this.nextToken();break}if(e.children.length>0&&(this.skip(o.TOKEN_COMMA)||this.fail("parseAggregate: expected comma after expression",t.lineno,t.colno)),e instanceof i.Dict){var n=this.parsePrimary();this.skip(o.TOKEN_COLON)||this.fail("parseAggregate: expected colon after dict key",t.lineno,t.colno);var a=this.parseExpression();e.addChild(new i.Pair(n.lineno,n.colno,n,a))}else{var s=this.parseExpression();e.addChild(s)}}return e},l.parseSignature=function(e,t){var r=this.peekToken();if(!t&&r.type!==o.TOKEN_LEFT_PAREN){if(e)return null;this.fail("expected arguments",r.lineno,r.colno)}r.type===o.TOKEN_LEFT_PAREN&&(r=this.nextToken());for(var n=new i.NodeList(r.lineno,r.colno),a=new i.KeywordArgs(r.lineno,r.colno),s=!1;;){if(r=this.peekToken(),!t&&r.type===o.TOKEN_RIGHT_PAREN){this.nextToken();break}if(t&&r.type===o.TOKEN_BLOCK_END)break;if(s&&!this.skip(o.TOKEN_COMMA))this.fail("parseSignature: expected comma after expression",r.lineno,r.colno);else{var l=this.parseExpression();this.skipValue(o.TOKEN_OPERATOR,"=")?a.addChild(new i.Pair(l.lineno,l.colno,l,this.parseExpression())):n.addChild(l)}s=!0}return a.children.length&&n.addChild(a),n},l.parseUntilBlocks=function(){for(var e=this.breakOnBlocks,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];this.breakOnBlocks=r;var o=this.parse();return this.breakOnBlocks=e,o},l.parseNodes=function(){for(var e,t=[];e=this.nextToken();)if(e.type===o.TOKEN_DATA){var r=e.value,n=this.peekToken(),a=n&&n.value;this.dropLeadingWhitespace&&(r=r.replace(/^\s*/,""),this.dropLeadingWhitespace=!1),n&&(n.type===o.TOKEN_BLOCK_START&&"-"===a.charAt(a.length-1)||n.type===o.TOKEN_VARIABLE_START&&"-"===a.charAt(this.tokens.tags.VARIABLE_START.length)||n.type===o.TOKEN_COMMENT&&"-"===a.charAt(this.tokens.tags.COMMENT_START.length))&&(r=r.replace(/\s*$/,"")),t.push(new i.Output(e.lineno,e.colno,[new i.TemplateData(e.lineno,e.colno,r)]))}else if(e.type===o.TOKEN_BLOCK_START){this.dropLeadingWhitespace=!1;var s=this.parseStatement();if(!s)break;t.push(s)}else if(e.type===o.TOKEN_VARIABLE_START){var l=this.parseExpression();this.dropLeadingWhitespace=!1,this.advanceAfterVariableEnd(),t.push(new i.Output(e.lineno,e.colno,[l]))}else e.type===o.TOKEN_COMMENT?this.dropLeadingWhitespace="-"===e.value.charAt(e.value.length-this.tokens.tags.COMMENT_END.length-1):this.fail("Unexpected token at top-level: "+e.type,e.lineno,e.colno);return t},l.parse=function(){return new i.NodeList(0,0,this.parseNodes())},l.parseAsRoot=function(){return new i.Root(0,0,this.parseNodes())},a}(a);e.exports={parse:function(e,t,r){var n=new l(o.lex(e,r));return void 0!==t&&(n.extensions=t),n.parseAsRoot()},Parser:l}},function(e,t,r){"use strict";var n=r(0),o=" \n\t\r ",i="()[]{}%*-+~/#,:|.<>=!",a="string",s="whitespace",l="data",c="block-start",d="block-end",u="variable-start",p="variable-end",h="comment",f="left-paren",g="right-paren",m="left-bracket",v="right-bracket",b="left-curly",w="right-curly",y="operator",x="comma",k="colon",E="tilde",T="pipe",S="float",D="boolean",A="none",C="symbol",_="regex";function N(e,t,r,n){return{type:e,value:t,lineno:r,colno:n}}var L=function(){function e(e,t){this.str=e,this.index=0,this.len=e.length,this.lineno=0,this.colno=0,this.in_code=!1;var r=(t=t||{}).tags||{};this.tags={BLOCK_START:r.blockStart||"{%",BLOCK_END:r.blockEnd||"%}",VARIABLE_START:r.variableStart||"{{",VARIABLE_END:r.variableEnd||"}}",COMMENT_START:r.commentStart||"{#",COMMENT_END:r.commentEnd||"#}"},this.trimBlocks=!!t.trimBlocks,this.lstripBlocks=!!t.lstripBlocks}var t=e.prototype;return t.nextToken=function(){var e,t=this.lineno,r=this.colno;if(this.in_code){var L=this.current();if(this.isFinished())return null;if('"'===L||"'"===L)return N(a,this._parseString(L),t,r);if(e=this._extract(o))return N(s,e,t,r);if((e=this._extractString(this.tags.BLOCK_END))||(e=this._extractString("-"+this.tags.BLOCK_END)))return this.in_code=!1,this.trimBlocks&&("\n"===(L=this.current())?this.forward():"\r"===L&&(this.forward(),"\n"===(L=this.current())?this.forward():this.back())),N(d,e,t,r);if((e=this._extractString(this.tags.VARIABLE_END))||(e=this._extractString("-"+this.tags.VARIABLE_END)))return this.in_code=!1,N(p,e,t,r);if("r"===L&&"/"===this.str.charAt(this.index+1)){this.forwardN(2);for(var O="";!this.isFinished();){if("/"===this.current()&&"\\"!==this.previous()){this.forward();break}O+=this.current(),this.forward()}for(var B=["g","i","m","y"],I="";!this.isFinished()&&-1!==B.indexOf(this.current());)I+=this.current(),this.forward();return N(_,{body:O,flags:I},t,r)}if(-1!==i.indexOf(L)){this.forward();var M,P=["==","===","!=","!==","<=",">=","//","**"],R=L+this.current();switch(-1!==n.indexOf(P,R)&&(this.forward(),L=R,-1!==n.indexOf(P,R+this.current())&&(L=R+this.current(),this.forward())),L){case"(":M=f;break;case")":M=g;break;case"[":M=m;break;case"]":M=v;break;case"{":M=b;break;case"}":M=w;break;case",":M=x;break;case":":M=k;break;case"~":M=E;break;case"|":M=T;break;default:M=y}return N(M,L,t,r)}if((e=this._extractUntil(o+i)).match(/^[-+]?[0-9]+$/)){if("."===this.current()){this.forward();var q=this._extract("0123456789");return N(S,e+"."+q,t,r)}return N("int",e,t,r)}if(e.match(/^(true|false)$/))return N(D,e,t,r);if("none"===e)return N(A,e,t,r);if("null"===e)return N(A,e,t,r);if(e)return N(C,e,t,r);throw new Error("Unexpected value while parsing: "+e)}var F,j=this.tags.BLOCK_START.charAt(0)+this.tags.VARIABLE_START.charAt(0)+this.tags.COMMENT_START.charAt(0)+this.tags.COMMENT_END.charAt(0);if(this.isFinished())return null;if((e=this._extractString(this.tags.BLOCK_START+"-"))||(e=this._extractString(this.tags.BLOCK_START)))return this.in_code=!0,N(c,e,t,r);if((e=this._extractString(this.tags.VARIABLE_START+"-"))||(e=this._extractString(this.tags.VARIABLE_START)))return this.in_code=!0,N(u,e,t,r);e="";var $=!1;for(this._matches(this.tags.COMMENT_START)&&($=!0,e=this._extractString(this.tags.COMMENT_START));null!==(F=this._extractUntil(j));){if(e+=F,(this._matches(this.tags.BLOCK_START)||this._matches(this.tags.VARIABLE_START)||this._matches(this.tags.COMMENT_START))&&!$){if(this.lstripBlocks&&this._matches(this.tags.BLOCK_START)&&this.colno>0&&this.colno<=e.length){var U=e.slice(-this.colno);if(/^\s+$/.test(U)&&!(e=e.slice(0,-this.colno)).length)return this.nextToken()}break}if(this._matches(this.tags.COMMENT_END)){if(!$)throw new Error("unexpected end of comment");e+=this._extractString(this.tags.COMMENT_END);break}e+=this.current(),this.forward()}if(null===F&&$)throw new Error("expected end of comment, got end of file");return N($?h:l,e,t,r)},t._parseString=function(e){this.forward();for(var t="";!this.isFinished()&&this.current()!==e;){var r=this.current();if("\\"===r){switch(this.forward(),this.current()){case"n":t+="\n";break;case"t":t+="\t";break;case"r":t+="\r";break;default:t+=this.current()}this.forward()}else t+=r,this.forward()}return this.forward(),t},t._matches=function(e){return this.index+e.length>this.len?null:this.str.slice(this.index,this.index+e.length)===e},t._extractString=function(e){return this._matches(e)?(this.forwardN(e.length),e):null},t._extractUntil=function(e){return this._extractMatching(!0,e||"")},t._extract=function(e){return this._extractMatching(!1,e)},t._extractMatching=function(e,t){if(this.isFinished())return null;var r=t.indexOf(this.current());if(e&&-1===r||!e&&-1!==r){var n=this.current();this.forward();for(var o=t.indexOf(this.current());(e&&-1===o||!e&&-1!==o)&&!this.isFinished();)n+=this.current(),this.forward(),o=t.indexOf(this.current());return n}return""},t._extractRegex=function(e){var t=this.currentStr().match(e);return t?(this.forwardN(t[0].length),t):null},t.isFinished=function(){return this.index>=this.len},t.forwardN=function(e){for(var t=0;t<e;t++)this.forward()},t.forward=function(){this.index++,"\n"===this.previous()?(this.lineno++,this.colno=0):this.colno++},t.backN=function(e){for(var t=0;t<e;t++)this.back()},t.back=function(){if(this.index--,"\n"===this.current()){this.lineno--;var e=this.src.lastIndexOf("\n",this.index-1);this.colno=-1===e?this.index:this.index-e}else this.colno--},t.current=function(){return this.isFinished()?"":this.str.charAt(this.index)},t.currentStr=function(){return this.isFinished()?"":this.str.substr(this.index)},t.previous=function(){return this.str.charAt(this.index-1)},e}();e.exports={lex:function(e,t){return new L(e,t)},TOKEN_STRING:a,TOKEN_WHITESPACE:s,TOKEN_DATA:l,TOKEN_BLOCK_START:c,TOKEN_BLOCK_END:d,TOKEN_VARIABLE_START:u,TOKEN_VARIABLE_END:p,TOKEN_COMMENT:h,TOKEN_LEFT_PAREN:f,TOKEN_RIGHT_PAREN:g,TOKEN_LEFT_BRACKET:m,TOKEN_RIGHT_BRACKET:v,TOKEN_LEFT_CURLY:b,TOKEN_RIGHT_CURLY:w,TOKEN_OPERATOR:y,TOKEN_COMMA:x,TOKEN_COLON:k,TOKEN_TILDE:E,TOKEN_PIPE:T,TOKEN_INT:"int",TOKEN_FLOAT:S,TOKEN_BOOLEAN:D,TOKEN_NONE:A,TOKEN_SYMBOL:C,TOKEN_SPECIAL:"special",TOKEN_REGEX:_}},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}var o=r(6),i=r(19).PrecompiledLoader,a=function(e){var t,r;function o(t,r){var n;return(n=e.call(this)||this).baseURL=t||".",r=r||{},n.useCache=!!r.useCache,n.async=!!r.async,n}r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r);var i=o.prototype;return i.resolve=function(e,t){throw new Error("relative templates not support in the browser yet")},i.getSource=function(e,t){var r,n=this,o=this.useCache;return this.fetch(this.baseURL+"/"+e,function(i,a){if(i)if(t)t(i.content);else{if(404!==i.status)throw i.content;r=null}else r={src:a,path:e,noCache:!o},n.emit("load",e,r),t&&t(null,r)}),r},i.fetch=function(e,t){if("undefined"==typeof window)throw new Error("WebLoader can only by used in a browser");var r=new XMLHttpRequest,n=!0;r.onreadystatechange=function(){4===r.readyState&&n&&(n=!1,0===r.status||200===r.status?t(null,r.responseText):t({status:r.status,content:r.responseText}))},e+=(-1===e.indexOf("?")?"?":"&")+"s="+(new Date).getTime(),r.open("GET",e,this.async),r.send()},o}(o);e.exports={WebLoader:a,PrecompiledLoader:i}},function(e,t,r){"use strict";var n,o=r(0),i=r(7),a=i.Environment,s=i.Template,l=r(6),c=r(10),d=r(23),u=r(5),p=r(8),h=r(9),f=r(2),g=r(3),m=r(25);function v(e,t){var r;return t=t||{},o.isObject(e)&&(t=e,e=null),c.FileSystemLoader?r=new c.FileSystemLoader(e,{watch:t.watch,noCache:t.noCache}):c.WebLoader&&(r=new c.WebLoader(e,{useCache:t.web&&t.web.useCache,async:t.web&&t.web.async})),n=new a(r,t),t&&t.express&&n.express(t.express),n}e.exports={Environment:a,Template:s,Loader:l,FileSystemLoader:c.FileSystemLoader,NodeResolveLoader:c.NodeResolveLoader,PrecompiledLoader:c.PrecompiledLoader,WebLoader:c.WebLoader,compiler:u,parser:p,lexer:h,runtime:f,lib:o,nodes:g,installJinjaCompat:m,configure:v,reset:function(){n=void 0},compile:function(e,t,r,o){return n||v(),new s(e,t,r,o)},render:function(e,t,r){return n||v(),n.render(e,t,r)},renderString:function(e,t,r){return n||v(),n.renderString(e,t,r)},precompile:d?d.precompile:void 0,precompileString:d?d.precompileString:void 0}},function(e,t,r){"use strict";var n=r(13),o=[],i=[],a=n.makeRequestCallFromTimer(function(){if(i.length)throw i.shift()});function s(e){var t;(t=o.length?o.pop():new l).task=e,n(t)}function l(){this.task=null}e.exports=s,l.prototype.call=function(){try{this.task.call()}catch(e){s.onerror?s.onerror(e):(i.push(e),a())}finally{this.task=null,o[o.length]=this}}},function(e,t,r){"use strict";(function(t){function r(e){o.length||n(),o[o.length]=e}e.exports=r;var n,o=[],i=0;function a(){for(;i<o.length;){var e=i;if(i+=1,o[e].call(),i>1024){for(var t=0,r=o.length-i;t<r;t++)o[t]=o[t+i];o.length-=i,i=0}}o.length=0,i=0}var s,l,c,d=void 0!==t?t:self,u=d.MutationObserver||d.WebKitMutationObserver;function p(e){return function(){var t=setTimeout(n,0),r=setInterval(n,50);function n(){clearTimeout(t),clearInterval(r),e()}}}"function"==typeof u?(s=1,l=new u(a),c=document.createTextNode(""),l.observe(c,{characterData:!0}),n=function(){s=-s,c.data=s}):n=p(a),r.requestFlush=n,r.makeRequestCallFromTimer=p}).call(t,r(14))},function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){var n;!function(){"use strict";var r=function(){var e=Array.prototype.slice.call(arguments);"function"==typeof e[0]&&e[0].apply(null,e.splice(1))},o=function(e){"function"==typeof setImmediate?setImmediate(e):"undefined"!=typeof process&&process.nextTick?process.nextTick(e):setTimeout(e,0)},i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},a=function(e,t,n){var a=n?o:r;if(t=t||function(){},!i(e)){var s=new Error("First argument to waterfall must be an array of functions");return t(s)}if(!e.length)return t();var l=function(e){return function(r){if(r)t.apply(null,arguments),t=function(){};else{var n=Array.prototype.slice.call(arguments,1),o=e.next();o?n.push(l(o)):n.push(t),a(function(){e.apply(null,n)})}}};l(function(e){var t=function(r){var n=function(){return e.length&&e[r].apply(null,arguments),n.next()};return n.next=function(){return r<e.length-1?t(r+1):null},n};return t(0)}(e))()};void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},function(e,t,r){"use strict";var n,o="object"==typeof Reflect?Reflect:null,i=o&&"function"==typeof o.apply?o.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};n=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise(function(r,n){function o(r){e.removeListener(t,i),n(r)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",o),r([].slice.call(arguments))}v(e,t,i,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&v(e,"error",t,{once:!0})}(e,o)})},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var l=10;function c(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function d(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function u(e,t,r,n){var o,i,a,s;if(c(r),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),a=i[t]),void 0===a)a=i[t]=r,++e._eventsCount;else if("function"==typeof a?a=i[t]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(o=d(e))>0&&a.length>o&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=a.length,s=l,console&&console.warn&&console.warn(s)}return e}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=p.bind(n);return o.listener=r,n.wrapFn=o,o}function f(e,t,r){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?r?[o.listener||o]:[o]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(o):m(o,o.length)}function g(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function m(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function v(e,t,r,n){if("function"==typeof e.on)n.once?e.once(t,r):e.on(t,r);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function o(i){n.once&&e.removeEventListener(t,o),r(i)})}}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return l},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");l=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return d(this)},s.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var n="error"===e,o=this._events;if(void 0!==o)n=n&&void 0===o.error;else if(!n)return!1;if(n){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)i(l,this,t);else{var c=l.length,d=m(l,c);for(r=0;r<c;++r)i(d[r],this,t)}return!0},s.prototype.addListener=function(e,t){return u(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return u(this,e,t,!0)},s.prototype.once=function(e,t){return c(t),this.on(e,h(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return c(t),this.prependListener(e,h(this,e,t)),this},s.prototype.removeListener=function(e,t){var r,n,o,i,a;if(c(t),void 0===(n=this._events))return this;if(void 0===(r=n[e]))return this;if(r===t||r.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,i=r.length-1;i>=0;i--)if(r[i]===t||r[i].listener===t){a=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,o),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var o,i=Object.keys(r);for(n=0;n<i.length;++n)"removeListener"!==(o=i[n])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return f(this,e,!0)},s.prototype.rawListeners=function(e){return f(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){"use strict";var n=r(3),o=r(0),i=0;function a(){return"hole_"+i++}function s(e,t){for(var r=null,n=0;n<e.length;n++){var o=t(e[n]);o!==e[n]&&(r||(r=e.slice()),r[n]=o)}return r||e}function l(e,t,r){if(!(e instanceof n.Node))return e;if(!r){var o=t(e);if(o&&o!==e)return o}if(e instanceof n.NodeList){var i=s(e.children,function(e){return l(e,t,r)});i!==e.children&&(e=new n[e.typename](e.lineno,e.colno,i))}else if(e instanceof n.CallExtension){var a=l(e.args,t,r),c=s(e.contentArgs,function(e){return l(e,t,r)});a===e.args&&c===e.contentArgs||(e=new n[e.typename](e.extName,e.prop,a,c))}else{var d=e.fields.map(function(t){return e[t]}),u=s(d,function(e){return l(e,t,r)});u!==d&&(e=new n[e.typename](e.lineno,e.colno),u.forEach(function(t,r){e[e.fields[r]]=t}))}return r&&t(e)||e}function c(e,t){return l(e,t,!0)}function d(e,t,r){var i=[],s=c(r?e[r]:e,function(e){var r;return e instanceof n.Block?e:((e instanceof n.Filter&&-1!==o.indexOf(t,e.name.value)||e instanceof n.CallExtensionAsync)&&(r=new n.Symbol(e.lineno,e.colno,a()),i.push(new n.FilterAsync(e.lineno,e.colno,e.name,e.args,r))),r)});return r?e[r]=s:e=s,i.length?(i.push(e),new n.NodeList(e.lineno,e.colno,i)):e}e.exports={transform:function(e,t){return function(e,t){return function(e){return c(e,function(e){if(e instanceof n.If||e instanceof n.For){var t=!1;if(l(e,function(e){if(e instanceof n.FilterAsync||e instanceof n.IfAsync||e instanceof n.AsyncEach||e instanceof n.AsyncAll||e instanceof n.CallExtensionAsync)return t=!0,e}),t){if(e instanceof n.If)return new n.IfAsync(e.lineno,e.colno,e.cond,e.body,e.else_);if(e instanceof n.For&&!(e instanceof n.AsyncAll))return new n.AsyncEach(e.lineno,e.colno,e.arr,e.name,e.body,e.else_)}}})}(function(e){return l(e,function(e){if(e instanceof n.Block){var t=!1,r=a();e.body=l(e.body,function(e){if(e instanceof n.FunCall&&"super"===e.name.value)return t=!0,new n.Symbol(e.lineno,e.colno,r)}),t&&e.body.children.unshift(new n.Super(0,0,e.name,new n.Symbol(0,0,r)))}})}(function(e,t){return c(e,function(e){return e instanceof n.Output?d(e,t):e instanceof n.Set?d(e,t,"value"):e instanceof n.For?d(e,t,"arr"):e instanceof n.If?d(e,t,"cond"):e instanceof n.CallExtension?d(e,t,"args"):void 0})}(e,t)))}(e,t||[])}}},function(e,t,r){"use strict";var n=r(0),o=r(2);function i(e,t){return null==e||!1===e?t:e}function a(e){return e!=e}function s(e){var t=(e=i(e,"")).toLowerCase();return o.copySafeness(e,t.charAt(0).toUpperCase()+t.slice(1))}function l(e){if(n.isString(e))return e.split("");if(n.isObject(e))return n._entries(e||{}).map(function(e){return{key:e[0],value:e[1]}});if(n.isArray(e))return e;throw new n.TemplateError("list filter: type not iterable")}function c(e){return function(t,r,o){void 0===r&&(r="truthy");var i=this,a=i.env.getTest(r);return n.toArray(t).filter(function(t){return a.call(i,t,o)===e})}}function d(e){return o.copySafeness(e,e.replace(/^\s*|\s*$/g,""))}(t=e.exports={}).abs=Math.abs,t.batch=function(e,t,r){var n,o=[],i=[];for(n=0;n<e.length;n++)n%t===0&&i.length&&(o.push(i),i=[]),i.push(e[n]);if(i.length){if(r)for(n=i.length;n<t;n++)i.push(r);o.push(i)}return o},t.capitalize=s,t.center=function(e,t){if(t=t||80,(e=i(e,"")).length>=t)return e;var r=t-e.length,a=n.repeat(" ",r/2-r%2),s=n.repeat(" ",r/2);return o.copySafeness(e,a+e+s)},t.default=function(e,t,r){return r?e||t:void 0!==e?e:t},t.dictsort=function(e,t,r){if(!n.isObject(e))throw new n.TemplateError("dictsort filter: val must be an object");var o,i=[];for(var a in e)i.push([a,e[a]]);if(void 0===r||"key"===r)o=0;else{if("value"!==r)throw new n.TemplateError("dictsort filter: You can only sort by either key or value");o=1}return i.sort(function(e,r){var i=e[o],a=r[o];return t||(n.isString(i)&&(i=i.toUpperCase()),n.isString(a)&&(a=a.toUpperCase())),i>a?1:i===a?0:-1}),i},t.dump=function(e,t){return JSON.stringify(e,null,t)},t.escape=function(e){return e instanceof o.SafeString?e:(e=e??"",o.markSafe(n.escape(e.toString())))},t.safe=function(e){return e instanceof o.SafeString?e:(e=e??"",o.markSafe(e.toString()))},t.first=function(e){return e[0]},t.forceescape=function(e){return e=e??"",o.markSafe(n.escape(e.toString()))},t.groupby=function(e,t){return n.groupBy(e,t,this.env.opts.throwOnUndefined)},t.indent=function(e,t,r){if(""===(e=i(e,"")))return"";t=t||4;var a=e.split("\n"),s=n.repeat(" ",t),l=a.map(function(e,t){return 0!==t||r?""+s+e:e}).join("\n");return o.copySafeness(e,l)},t.join=function(e,t,r){return t=t||"",r&&(e=n.map(e,function(e){return e[r]})),e.join(t)},t.last=function(e){return e[e.length-1]},t.length=function(e){var t=i(e,"");return void 0!==t?"function"==typeof Map&&t instanceof Map||"function"==typeof Set&&t instanceof Set?t.size:!n.isObject(t)||t instanceof o.SafeString?t.length:n.keys(t).length:0},t.list=l,t.lower=function(e){return(e=i(e,"")).toLowerCase()},t.nl2br=function(e){return null==e?"":o.copySafeness(e,e.replace(/\r\n|\n/g,"<br />\n"))},t.random=function(e){return e[Math.floor(Math.random()*e.length)]},t.reject=c(!1),t.rejectattr=function(e,t){return e.filter(function(e){return!e[t]})},t.select=c(!0),t.selectattr=function(e,t){return e.filter(function(e){return!!e[t]})},t.replace=function(e,t,r,n){var i=e;if(t instanceof RegExp)return e.replace(t,r);void 0===n&&(n=-1);var a="";if("number"==typeof t)t=""+t;else if("string"!=typeof t)return e;if("number"==typeof e&&(e=""+e),"string"!=typeof e&&!(e instanceof o.SafeString))return e;if(""===t)return a=r+e.split("").join(r)+r,o.copySafeness(e,a);var s=e.indexOf(t);if(0===n||-1===s)return e;for(var l=0,c=0;s>-1&&(-1===n||c<n);)a+=e.substring(l,s)+r,l=s+t.length,c++,s=e.indexOf(t,l);return l<e.length&&(a+=e.substring(l)),o.copySafeness(i,a)},t.reverse=function(e){var t;return(t=n.isString(e)?l(e):n.map(e,function(e){return e})).reverse(),n.isString(e)?o.copySafeness(e,t.join("")):t},t.round=function(e,t,r){t=t||0;var n=Math.pow(10,t);return("ceil"===r?Math.ceil:"floor"===r?Math.floor:Math.round)(e*n)/n},t.slice=function(e,t,r){for(var n=Math.floor(e.length/t),o=e.length%t,i=[],a=0,s=0;s<t;s++){var l=a+s*n;s<o&&a++;var c=a+(s+1)*n,d=e.slice(l,c);r&&s>=o&&d.push(r),i.push(d)}return i},t.sum=function(e,t,r){return void 0===r&&(r=0),t&&(e=n.map(e,function(e){return e[t]})),r+e.reduce(function(e,t){return e+t},0)},t.sort=o.makeMacro(["value","reverse","case_sensitive","attribute"],[],function(e,t,r,o){var i=this,a=n.map(e,function(e){return e}),s=n.getAttrGetter(o);return a.sort(function(e,a){var l=o?s(e):e,c=o?s(a):a;if(i.env.opts.throwOnUndefined&&o&&(void 0===l||void 0===c))throw new TypeError('sort: attribute "'+o+'" resolved to undefined');return!r&&n.isString(l)&&n.isString(c)&&(l=l.toLowerCase(),c=c.toLowerCase()),l<c?t?1:-1:l>c?t?-1:1:0}),a}),t.string=function(e){return o.copySafeness(e,e)},t.striptags=function(e,t){var r,n=d((e=i(e,"")).replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>|<!--[\s\S]*?-->/gi,""));return r=t?n.replace(/^ +| +$/gm,"").replace(/ +/g," ").replace(/(\r\n)/g,"\n").replace(/\n\n\n+/g,"\n\n"):n.replace(/\s+/gi," "),o.copySafeness(e,r)},t.title=function(e){var t=(e=i(e,"")).split(" ").map(function(e){return s(e)});return o.copySafeness(e,t.join(" "))},t.trim=d,t.truncate=function(e,t,r,n){var a=e;if(t=t||255,(e=i(e,"")).length<=t)return e;if(r)e=e.substring(0,t);else{var s=e.lastIndexOf(" ",t);-1===s&&(s=t),e=e.substring(0,s)}return e+=null!=n?n:"...",o.copySafeness(a,e)},t.upper=function(e){return(e=i(e,"")).toUpperCase()},t.urlencode=function(e){var t=encodeURIComponent;return n.isString(e)?t(e):(n.isArray(e)?e:n._entries(e)).map(function(e){var r=e[0],n=e[1];return t(r)+"="+t(n)}).join("&")};var u=/^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/,p=/^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i,h=/^https?:\/\/.*$/,f=/^www\./,g=/\.(?:org|net|com)(?:\:|\/|$)/;t.urlize=function(e,t,r){a(t)&&(t=1/0);var n=!0===r?' rel="nofollow"':"";return e.split(/(\s+)/).filter(function(e){return e&&e.length}).map(function(e){var r=e.match(u),o=r?r[1]:e,i=o.substr(0,t);return h.test(o)?'<a href="'+o+'"'+n+">"+i+"</a>":f.test(o)?'<a href="http://'+o+'"'+n+">"+i+"</a>":p.test(o)?'<a href="mailto:'+o+'">'+o+"</a>":g.test(o)?'<a href="http://'+o+'"'+n+">"+i+"</a>":e}).join("")},t.wordcount=function(e){var t=(e=i(e,""))?e.match(/\w+/g):null;return t?t.length:null},t.float=function(e,t){var r=parseFloat(e);return a(r)?t:r};var m=o.makeMacro(["value","default","base"],[],function(e,t,r){void 0===r&&(r=10);var n=parseInt(e,r);return a(n)?t:n});t.int=m,t.d=t.default,t.e=t.escape},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}var o=function(e){var t,r;function o(t){var r;return(r=e.call(this)||this).precompiled=t||{},r}return r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r),o.prototype.getSource=function(e){return this.precompiled[e]?{src:{type:"code",obj:this.precompiled[e]},path:e}:null},o}(r(6));e.exports={PrecompiledLoader:o}},function(e,t,r){"use strict";var n=r(2).SafeString;t.callable=function(e){return"function"==typeof e},t.defined=function(e){return void 0!==e},t.divisibleby=function(e,t){return e%t===0},t.escaped=function(e){return e instanceof n},t.equalto=function(e,t){return e===t},t.eq=t.equalto,t.sameas=t.equalto,t.even=function(e){return e%2==0},t.falsy=function(e){return!e},t.ge=function(e,t){return e>=t},t.greaterthan=function(e,t){return e>t},t.gt=t.greaterthan,t.le=function(e,t){return e<=t},t.lessthan=function(e,t){return e<t},t.lt=t.lessthan,t.lower=function(e){return e.toLowerCase()===e},t.ne=function(e,t){return e!==t},t.null=function(e){return null===e},t.number=function(e){return"number"==typeof e},t.odd=function(e){return e%2==1},t.string=function(e){return"string"==typeof e},t.truthy=function(e){return!!e},t.undefined=function(e){return void 0===e},t.upper=function(e){return e.toUpperCase()===e},t.iterable=function(e){return"undefined"!=typeof Symbol?!!e[Symbol.iterator]:Array.isArray(e)||"string"==typeof e},t.mapping=function(e){var t=null!=e&&"object"==typeof e&&!Array.isArray(e);return Set?t&&!(e instanceof Set):t}},function(e,t,r){"use strict";e.exports=function(){return{range:function(e,t,r){void 0===t?(t=e,e=0,r=1):r||(r=1);var n=[];if(r>0)for(var o=e;o<t;o+=r)n.push(o);else for(var i=e;i>t;i+=r)n.push(i);return n},cycler:function(){return e=Array.prototype.slice.call(arguments),t=-1,{current:null,reset:function(){t=-1,this.current=null},next:function(){return++t>=e.length&&(t=0),this.current=e[t],this.current}};var e,t},joiner:function(e){return function(e){e=e||",";var t=!0;return function(){var r=t?"":e;return t=!1,r}}(e)}}}},function(e,t,r){var n=r(4);e.exports=function(e,t){function r(e,t){if(this.name=e,this.path=e,this.defaultEngine=t.defaultEngine,this.ext=n.extname(e),!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");this.ext||(this.name+=this.ext=("."!==this.defaultEngine[0]?".":"")+this.defaultEngine)}return r.prototype.render=function(t,r){e.render(this.name,t,r)},t.set("view",r),t.set("nunjucksEnv",e),e}},function(e,t,r){"use strict";var n=r(4),o=r(4),i=r(0)._prettifyError,a=r(5),s=r(7).Environment,l=r(24);function c(e,t){return!!Array.isArray(t)&&t.some(function(t){return e.match(t)})}function d(e,t){(t=t||{}).isString=!0;var r=t.env||new s([]),n=t.wrapper||l;if(!t.name)throw new Error('the "name" option is required when compiling a string');return n([u(e,t.name,r)],t)}function u(e,t,r){var n,o=(r=r||new s([])).asyncFilters,l=r.extensionsList;t=t.replace(/\\/g,"/");try{n=a.compile(e,o,l,t,r.opts)}catch(e){throw i(t,!1,e)}return{name:t,template:n}}e.exports={precompile:function(e,t){var r=(t=t||{}).env||new s([]),i=t.wrapper||l;if(t.isString)return d(e,t);var a=n.existsSync(e)&&n.statSync(e),p=[],h=[];if(a.isFile())p.push(u(n.readFileSync(e,"utf-8"),t.name||e,r));else if(a.isDirectory()){!function r(i){n.readdirSync(i).forEach(function(a){var s=o.join(i,a),l=s.substr(o.join(e,"/").length),d=n.statSync(s);d&&d.isDirectory()?c(l+="/",t.exclude)||r(s):c(l,t.include)&&h.push(s)})}(e);for(var f=0;f<h.length;f++){var g=h[f].replace(o.join(e,"/"),"");try{p.push(u(n.readFileSync(h[f],"utf-8"),g,r))}catch(e){if(!t.force)throw e;console.error(e)}}}return i(p,t)},precompileString:d}},function(e,t,r){"use strict";e.exports=function(e,t){var r="";t=t||{};for(var n=0;n<e.length;n++){var o=JSON.stringify(e[n].name);r+="(function() {(window.nunjucksPrecompiled = window.nunjucksPrecompiled || {})["+o+"] = (function() {\n"+e[n].template+"\n})();\n",t.asFunction&&(r+="return function(ctx, cb) { return nunjucks.render("+o+", ctx, cb); }\n"),r+="})();\n"}return r}},function(e,t,r){e.exports=function(){"use strict";var e,t,r=this.runtime,n=this.lib,o=this.compiler.Compiler,i=this.parser.Parser,a=this.nodes,s=this.lexer,l=r.contextOrFrameLookup,c=r.memberLookup;function d(e){return{index:e.index,lineno:e.lineno,colno:e.colno}}if(o&&(e=o.prototype.assertType),i&&(t=i.prototype.parseAggregate),r.contextOrFrameLookup=function(e,t,r){var n=l.apply(this,arguments);if(void 0!==n)return n;switch(r){case"True":return!0;case"False":return!1;case"None":return null;default:return}},a&&o&&i){var u=a.Node.extend("Slice",{fields:["start","stop","step"],init:function(e,t,r,n,o){r=r||new a.Literal(e,t,null),n=n||new a.Literal(e,t,null),o=o||new a.Literal(e,t,1),this.parent(e,t,r,n,o)}});o.prototype.assertType=function(t){t instanceof u||e.apply(this,arguments)},o.prototype.compileSlice=function(e,t){this._emit("("),this._compileExpression(e.start,t),this._emit("),("),this._compileExpression(e.stop,t),this._emit("),("),this._compileExpression(e.step,t),this._emit(")")},i.prototype.parseAggregate=function(){var e=this,r=d(this.tokens);r.colno--,r.index--;try{return t.apply(this)}catch(t){var o=d(this.tokens),i=function(){return n._assign(e.tokens,o),t};n._assign(this.tokens,r),this.peeked=!1;var l=this.peekToken();if(l.type!==s.TOKEN_LEFT_BRACKET)throw i();this.nextToken();for(var c=new u(l.lineno,l.colno),p=!1,h=0;h<=c.fields.length&&!this.skip(s.TOKEN_RIGHT_BRACKET);h++){if(h===c.fields.length){if(!p)break;this.fail("parseSlice: too many slice components",l.lineno,l.colno)}this.skip(s.TOKEN_COLON)?p=!0:(c[c.fields[h]]=this.parseExpression(),p=this.skip(s.TOKEN_COLON)||p)}if(!p)throw i();return new a.Array(l.lineno,l.colno,[c])}}}function p(e,t,n,o){e=e||[],null===t&&(t=o<0?e.length-1:0),null===n?n=o<0?-1:e.length:n<0&&(n+=e.length),t<0&&(t+=e.length);for(var i=[],a=t;!(a<0||a>e.length||o>0&&a>=n||o<0&&a<=n);a+=o)i.push(r.memberLookup(e,a));return i}function h(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var f={pop:function(e){if(void 0===e)return this.pop();if(e>=this.length||e<0)throw new Error("KeyError");return this.splice(e,1)},append:function(e){return this.push(e)},remove:function(e){for(var t=0;t<this.length;t++)if(this[t]===e)return this.splice(t,1);throw new Error("ValueError")},count:function(e){for(var t=0,r=0;r<this.length;r++)this[r]===e&&t++;return t},index:function(e){var t;if(-1===(t=this.indexOf(e)))throw new Error("ValueError");return t},find:function(e){return this.indexOf(e)},insert:function(e,t){return this.splice(e,0,t)}},g={items:function(){return n._entries(this)},values:function(){return n._values(this)},keys:function(){return n.keys(this)},get:function(e,t){var r=this[e];return void 0===r&&(r=t),r},has_key:function(e){return h(this,e)},pop:function(e,t){var r=this[e];if(void 0===r&&void 0!==t)r=t;else{if(void 0===r)throw new Error("KeyError");delete this[e]}return r},popitem:function(){var e=n.keys(this);if(!e.length)throw new Error("KeyError");var t=e[0],r=this[t];return delete this[t],[t,r]},setdefault:function(e,t){return void 0===t&&(t=null),e in this||(this[e]=t),this[e]},update:function(e){return n._assign(this,e),null}};return g.iteritems=g.items,g.itervalues=g.values,g.iterkeys=g.keys,r.memberLookup=function(e,t,r){return 4===arguments.length?p.apply(this,arguments):(e=e||{},n.isArray(e)&&h(f,t)?f[t].bind(e):n.isObject(e)&&h(g,t)?g[t].bind(e):c.apply(this,arguments))},function(){r.contextOrFrameLookup=l,r.memberLookup=c,o&&(o.prototype.assertType=e),i&&(i.prototype.parseAggregate=t)}}}])},e.exports=t()},2424(e,t,r){"use strict";var n=r(6743),o=/[\/\?<>\\:\*\|"]/g,i=/[\x00-\x1f\x80-\x9f]/g,a=/^\.+$/,s=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;function l(e,t){if("string"!=typeof e)throw new Error("Input must be string");var r=e.replace(o,t).replace(i,t).replace(a,t).replace(s,t);return r=function(e,t){for(var r=e.length;r>0&&("."===e[r-1]||" "===e[r-1]);)r--;return r<e.length?e.slice(0,r)+t:e}(r,t),n(r,255)}e.exports=function(e,t){var r=t&&t.replacement||"",n=l(e,r);return""===r?n:l(n,"")}},4635(e){"use strict";var t={decodeValues:!0,map:!1,silent:!1};function r(e){return"string"!=typeof e||e in{}}function n(){return Object.create(null)}function o(e){return"string"==typeof e&&!!e.trim()}function i(e,i){var a=e.split(";").filter(o),s=function(e){var t="",r="",n=e.split("=");return n.length>1?(t=n.shift(),r=n.join("=")):r=e,{name:t,value:r}}(a.shift()),l=s.name,c=s.value;if(i=i?Object.assign({},t,i):t,r(l))return null;try{c=i.decodeValues?decodeURIComponent(c):c}catch(e){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",e)}var d=n();return d.name=l,d.value=c,a.forEach(function(e){var t=e.split("="),n=t.shift().trimLeft().toLowerCase();if(!r(n)){var o=t.join("=");if("expires"===n)d.expires=new Date(o);else if("max-age"===n){var i=parseInt(o,10);Number.isNaN(i)||(d.maxAge=i)}else"secure"===n?d.secure=!0:"httponly"===n?d.httpOnly=!0:"samesite"===n?d.sameSite=o:"partitioned"===n?d.partitioned=!0:n&&(d[n]=o)}}),d}function a(e,a){if(a=a?Object.assign({},t,a):t,!e)return a.map?n():[];if(e.headers)if("function"==typeof e.headers.getSetCookie)e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var s=e.headers[Object.keys(e.headers).find(function(e){return"set-cookie"===e.toLowerCase()})];s||!e.headers.cookie||a.silent||console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=s}if(Array.isArray(e)||(e=[e]),a.map){var l=n();return e.filter(o).reduce(function(e,t){var n=i(t,a);return n&&!r(n.name)&&(e[n.name]=n),e},l)}return e.filter(o).map(function(e){return i(e,a)}).filter(Boolean)}e.exports=a,e.exports.parse=a,e.exports.parseString=i,e.exports.splitCookiesString=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return[];var t,r,n,o,i,a=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}function c(){return"="!==(r=e.charAt(s))&&";"!==r&&","!==r}for(;s<e.length;){for(t=s,i=!1;l();)if(","===(r=e.charAt(s))){for(n=s,s+=1,l(),o=s;s<e.length&&c();)s+=1;s<e.length&&"="===e.charAt(s)?(i=!0,s=o,a.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!i||s>=e.length)&&a.push(e.substring(t,e.length))}return a}},5072(e){"use strict";var t=[];function r(e){for(var r=-1,n=0;n<t.length;n++)if(t[n].identifier===e){r=n;break}return r}function n(e,n){for(var i={},a=[],s=0;s<e.length;s++){var l=e[s],c=n.base?l[0]+n.base:l[0],d=i[c]||0,u="".concat(c," ").concat(d);i[c]=d+1;var p=r(u),h={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)t[p].references++,t[p].updater(h);else{var f=o(h,n);n.byIndex=s,t.splice(s,0,{identifier:u,updater:f,references:1})}a.push(u)}return a}function o(e,t){var r=t.domAPI(t);return r.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;r.update(e=t)}else r.remove()}}e.exports=function(e,o){var i=n(e=e||[],o=o||{});return function(e){e=e||[];for(var a=0;a<i.length;a++){var s=r(i[a]);t[s].references--}for(var l=n(e,o),c=0;c<i.length;c++){var d=r(i[c]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}i=l}}},7659(e){"use strict";var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540(e){"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056(e,t,r){"use strict";e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},7825(e){"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113(e){"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},6743(e,t,r){"use strict";var n=r(5045),o=r(8446);e.exports=n.bind(null,o)},5045(e){"use strict";function t(e){return e>=55296&&e<=56319}function r(e){return e>=56320&&e<=57343}e.exports=function(e,n,o){if("string"!=typeof n)throw new Error("Input must be string");for(var i,a,s=n.length,l=0,c=0;c<s;c+=1){if(i=n.charCodeAt(c),a=n[c],t(i)&&r(n.charCodeAt(c+1))&&(a+=n[c+=1]),(l+=e(a))===o)return n.slice(0,c+1);if(l>o)return n.slice(0,c-a.length+1)}return n}},8446(e){"use strict";function t(e){return e>=55296&&e<=56319}function r(e){return e>=56320&&e<=57343}e.exports=function(e){if("string"!=typeof e)throw new Error("Input must be string");for(var n=e.length,o=0,i=null,a=null,s=0;s<n;s++)r(i=e.charCodeAt(s))?null!=a&&t(a)?o+=1:o+=3:i<=127?o+=1:i>=128&&i<=2047?o+=2:i>=2048&&i<=65535&&(o+=3),a=i;return o}},1288(e){"use strict";e.exports=require("electron")},6795(e){"use strict";e.exports=require("obsidian")},6982(e){"use strict";e.exports=require("crypto")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.nc=void 0;var n={};(()=>{"use strict";function e(e,t,r,n){return new(r||(r=Promise))(function(o,i){function a(e){try{l(n.next(e))}catch(e){i(e)}}function s(e){try{l(n.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,s)}l((n=n.apply(e,t||[])).next())})}r.r(n),r.d(n,{default:()=>Qe}),Object.create,Object.create;var t=r(6795),o=r(1326);new Set;const i="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;class a{_listeners="WeakMap"in i?new WeakMap:void 0;_observer=void 0;options;constructor(e){this.options=e}observe(e,t){return this._listeners.set(e,t),this._getObserver().observe(e,this.options),()=>{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){return this._observer??(this._observer=new ResizeObserver(e=>{for(const t of e)a.entries.set(t.target,t),this._listeners.get(t.target)?.(t)}))}}function s(){}function l(e){let t;return function(e,...t){if(null==e){for(const e of t)e(void 0);return s}const r=e.subscribe(...t);return r.unsubscribe?()=>r.unsubscribe():r}(e,e=>t=e)(),t}let c;function d(e,t,r,n){const o=r[e]?.type;if(t="Boolean"===o&&"boolean"!=typeof t?null!=t:t,!n||!r[e])return t;if("toAttribute"===n)switch(o){case"Object":case"Array":return null==t?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t??null;default:return t}else switch(o){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":default:return t;case"Number":return null!=t?+t:t}}a.entries="WeakMap"in i?new WeakMap:void 0,new Map,new Set,new Set,new Set(["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"]),"function"==typeof HTMLElement&&(c=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;constructor(e,t,r){super(),this.$$ctor=e,this.$$s=t,r&&this.attachShadow({mode:"open"})}addEventListener(e,t,r){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,r)}removeEventListener(e,t,r){if(super.removeEventListener(e,t,r),this.$$c){const e=this.$$l_u.get(t);e&&(e(),this.$$l_u.delete(t))}if(this.$$l[e]){const r=this.$$l[e].indexOf(t);r>=0&&this.$$l[e].splice(r,1)}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){if(await Promise.resolve(),!this.$$cn||this.$$c)return;function e(e){return()=>{let t;return{c:function(){t=function(e){return document.createElement(e)}("slot"),"default"!==e&&function(e,t,r){null==r?e.removeAttribute(t):e.getAttribute(t)!==r&&e.setAttribute(t,r)}(t,"name",e)},m:function(e,r){!function(e,t,r){e.insertBefore(t,r||null)}(e,t,r)},d:function(e){e&&function(e){e.parentNode&&e.parentNode.removeChild(e)}(t)}}}}const t={},r=function(e){const t={};return e.childNodes.forEach(e=>{t[e.slot||"default"]=!0}),t}(this);for(const o of this.$$s)o in r&&(t[o]=[e(o)]);for(const i of this.attributes){const a=this.$$g_p(i.name);a in this.$$d||(this.$$d[a]=d(a,i.value,this.$$p_d,"toProp"))}for(const s in this.$$p_d)s in this.$$d||void 0===this[s]||(this.$$d[s]=this[s],delete this[s]);this.$$c=new this.$$ctor({target:this.shadowRoot||this,props:{...this.$$d,$$slots:t,$$scope:{ctx:[]}}});const n=()=>{this.$$r=!0;for(const e in this.$$p_d)if(this.$$d[e]=this.$$c.$$.ctx[this.$$c.$$.props[e]],this.$$p_d[e].reflect){const t=d(e,this.$$d[e],this.$$p_d,"toAttribute");null==t?this.removeAttribute(this.$$p_d[e].attribute||e):this.setAttribute(this.$$p_d[e].attribute||e,t)}this.$$r=!1};this.$$c.$$.after_update.push(n),n();for(const l in this.$$l)for(const c of this.$$l[l]){const u=this.$$c.$on(l,c);this.$$l_u.set(c,u)}this.$$l={}}}attributeChangedCallback(e,t,r){this.$$r||(e=this.$$g_p(e),this.$$d[e]=d(e,r,this.$$p_d,"toProp"),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$c=void 0)})}$$g_p(e){return Object.keys(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});const u=[];const p=[{id:"builtin_merged",name:"合并式模板",description:"划线和想法 inline 展示,适合快速回顾",template:'---\nisbn: {{ metaData.isbn }}\nlastReadDate: {{ metaData.lastReadDate }}\n---\n# 元数据\n> [!abstract] {{ metaData.title }}\n> - \n> - 书名: {{ metaData.title }}\n> - 作者: {{ metaData.author }}\n> - 简介: {% set intro = metaData.intro | replace("\\n","") | replace("\\r","") %}{{ intro }}\n> - 出版时间: {{ metaData.publishTime }}\n> - ISBN: {{ metaData.isbn }}\n> - 字数: {{ metaData.totalWords }}\n> - 分类: {{ metaData.category }}\n> - 出版社: {{ metaData.publisher }}\n> - PC地址:{{ metaData.pcUrl }}\n\n# 高亮划线\n{% if syncPopularHighlightsToggle %}\n{% for chapter in chapterHighlights %}\n{% if chapter.level == 1 %}\n## {{ chapter.chapterTitle }}\n{% elif chapter.level == 2 %}\n### {{ chapter.chapterTitle }}\n{% elif chapter.level == 3 %}\n#### {{ chapter.chapterTitle }}\n{% endif %}\n{% for highlight in chapter.highlights %}\n{% set rangeParts = highlight.range | split("-") %}\n{% set deeplink = "weread://bestbookmark?bookId=" + metaData.bookId + "&chapterUid=" + highlight.chapterUid + "&rangeStart=" + rangeParts[0] + "&rangeEnd=" + rangeParts[1] %}\n{% if highlight.isPopular and highlight.isUserHighlight %}\n{# 用户自己的划线 + 热门:📌🔥 + 共读人数 #}\n{% if highlight.reviewContent %}\n> 📌🔥 [{{ highlight.markText | trim }}](<{{ deeplink }}>)\n> 🔥 {{ highlight.popularCount }} 人共读\n> 💭 {{ highlight.reviewContent }} \n> ⏱ {{ highlight.createTime }} ^{{ highlight.bookmarkId }}\n{% else %}\n> 📌🔥 [{{ highlight.markText | trim }}](<{{ deeplink }}>)\n> 🔥 {{ highlight.popularCount }} 人共读\n> ⏱ {{ highlight.createTime }} ^{{ highlight.bookmarkId }}\n\n{% endif %}\n{% elif highlight.isPopular %}\n{# 只有热门划线(非用户):🔥 + 共读人数 #}\n> 🔥 [{{ highlight.markText | trim }}](<{{ deeplink }}>)\n> 📊 {{ highlight.popularCount }} 人共读 ^{{ highlight.bookmarkId }}\n\n{% else %}\n{# 普通用户划线(非热门):📌 #}\n{% if highlight.reviewContent %}\n> 📌 [{{ highlight.markText | trim }}](<{{ deeplink }}>)\n> 💭 {{ highlight.reviewContent }} \n> ⏱ {{ highlight.createTime }} ^{{ highlight.bookmarkId }}\n{% else %}\n> 📌 [{{ highlight.markText | trim }}](<{{ deeplink }}>)\n> ⏱ {{ highlight.createTime }} ^{{ highlight.bookmarkId }}\n\n{% endif %}\n{% endif %}\n{% endfor %}\n{% endfor %}\n{% else %}\n{% for chapter in chapterHighlights %}\n{% if chapter.level == 1 %}\n## {{ chapter.chapterTitle }}\n{% elif chapter.level == 2 %}\n### {{ chapter.chapterTitle }}\n{% elif chapter.level == 3 %}\n#### {{ chapter.chapterTitle }}\n{% endif %}\n{% for highlight in chapter.highlights %}\n{% set rangeParts = highlight.range | split("-") %}\n{% set deeplink = "weread://bestbookmark?bookId=" + metaData.bookId + "&chapterUid=" + highlight.chapterUid + "&rangeStart=" + rangeParts[0] + "&rangeEnd=" + rangeParts[1] %}\n{# 普通用户划线(不显示热门):📌 #}\n{% if highlight.reviewContent %}\n> 📌 [{{ highlight.markText | trim }}](<{{ deeplink }}>)\n 💭 {{ highlight.reviewContent }} \n ⏱ {{ highlight.createTime }} ^{{ highlight.bookmarkId }}\n{% else %}\n> 📌 [{{ highlight.markText | trim }}](<{{ deeplink }}>)\n> ⏱ {{ highlight.createTime }} ^{{ highlight.bookmarkId }}\n\n{% endif %}\n{% endfor %}\n{% endfor %}\n{% endif %}\n\n# 读书笔记\n{% for chapter in bookReview.chapterReviews %}\n{% if chapter.reviews or chapter.chapterReview %}\n## {{ chapter.chapterTitle }}\n{% if chapter.chapterReviews %}\n{% for chapterReview in chapter.chapterReviews %}\n### 章节评论 No.{{ loop.index }}\n- {{ chapterReview.content }} ^{{ chapterReview.reviewId }}\n - ⏱ {{ chapterReview.createTime }}\n{% endfor %}\n{% endif %}\n{% if chapter.reviews %}\n{% for review in chapter.reviews %}\n### 划线评论\n> 📌 {{ review.abstract | trim }} ^{{ review.reviewId }}\n 💭 {{ review.content }}\n ⏱ {{ review.createTime }}\n{% endfor %}\n{% endif %}\n{% endif %}\n{% endfor %}\n\n# 本书评论\n{% if bookReview.bookReviews %}\n{% for bookReview in bookReview.bookReviews %}\n## 书评 No.{{ loop.index }}\n{{ bookReview.mdContent }} ^{{ bookReview.reviewId }}\n⏱ {{ bookReview.createTime }}\n{% endfor %}\n{% endif %}\n',trimBlocks:!0,isBuiltIn:!0,isReadOnly:!0,source:"builtin"},{id:"builtin_separated",name:"分离式模板",description:"先展示纯划线,笔记统一在底部,适合整理归纳",template:'---\nisbn: {{ metaData.isbn }}\nlastReadDate: {{ metaData.lastReadDate }}\n---\n# 元数据\n> [!abstract] {{ metaData.title }}\n> - \n> - 书名: {{ metaData.title }}\n> - 作者: {{ metaData.author }}\n> - 简介: {% set intro = metaData.intro | replace("\\n","") | replace("\\r","") %}{{ intro }}\n> - 出版时间: {{ metaData.publishTime }}\n> - ISBN: {{ metaData.isbn }}\n> - 字数: {{ metaData.totalWords }}\n> - 分类: {{ metaData.category }}\n> - 出版社: {{ metaData.publisher }}\n> - PC地址:{{ metaData.pcUrl }}\n\n# 高亮划线\n{% for chapter in chapterHighlights %}\n{% if chapter.level == 1 %}\n## {{ chapter.chapterTitle }}\n{% elif chapter.level == 2 %}\n### {{ chapter.chapterTitle }}\n{% elif chapter.level == 3 %}\n#### {{ chapter.chapterTitle }}\n{% endif %}\n{% for highlight in chapter.highlights %}\n{% set rangeParts = highlight.range | split("-") %}\n{% set deeplink = "weread://bestbookmark?bookId=" + metaData.bookId + "&chapterUid=" + highlight.chapterUid + "&rangeStart=" + rangeParts[0] + "&rangeEnd=" + rangeParts[1] %}\n{% if syncPopularHighlightsToggle and highlight.isPopular %}\n> 📌🔥 [{{ highlight.markText | trim }}](<{{ deeplink }}>) \n> 🔥 {{ highlight.popularCount }} 人共读 ^{{ highlight.bookmarkId }}\n\n{% else %}\n> 📌 [{{ highlight.markText | trim }}](<{{ deeplink }}>) ^{{ highlight.bookmarkId }}\n\n{% endif %}\n{% endfor %}\n{% endfor %}\n\n# 笔记汇总\n{% for chapter in chapterHighlights %}\n{% for highlight in chapter.highlights %}\n{% if highlight.reviewContent %}\n## {{ chapter.chapterTitle }} 的想法\n{{ highlight.reviewContent }}\n> 📌 {{ highlight.markText | trim }}\n\n{% endif %}\n{% endfor %}\n{% endfor %}\n\n{% if bookReview.bookReviews %}\n{% for bookReview in bookReview.bookReviews %}\n# 书评\n\n{{ bookReview.mdContent }}\n{{ bookReview.createTime }}\n{% endfor %}\n{% endif %}\n',trimBlocks:!0,isBuiltIn:!0,isReadOnly:!0,source:"builtin"},{id:"builtin_official",name:"微信官方笔记主题",description:"详细的元数据信息,适合生成书籍笔记",template:'---\nisbn: {{ metaData.isbn }}\nlastReadDate: {{ metaData.lastReadDate }}\n---\n《{{ metaData.title }}》\n{{ metaData.author }}\n{{ metaData.totalWords }}字\n{{ metaData.noteCount }}个笔记\n\n{% if bookReview.bookReviews %}\n{% for bookReview in bookReview.bookReviews %}\n◆ 点评\n{{ bookReview.createTime }}\n{{ bookReview.mdContent }}\n{% endfor %}\n{% endif %}\n\n{% for chapter in chapterHighlights %}\n{% if chapter.level == 1 %}\n## ◆ {{ chapter.chapterTitle }}\n{% elif chapter.level == 2 %}\n### ◆ {{ chapter.chapterTitle }}\n{% elif chapter.level == 3 %}\n#### ◆ {{ chapter.chapterTitle }}\n{% endif %}\n{% for highlight in chapter.highlights %}\n{% set rangeParts = highlight.range | split("-") %}\n{% set deeplink = "weread://bestbookmark?bookId=" + metaData.bookId + "&chapterUid=" + highlight.chapterUid + "&rangeStart=" + rangeParts[0] + "&rangeEnd=" + rangeParts[1] %}\n{% if highlight.reviewContent %}\n\n{{ highlight.createTime }} 发表想法\n{{ highlight.reviewContent }}\n\n{% if syncPopularHighlightsToggle and highlight.isPopular %}\n> [{{ highlight.markText | trim }}](<{{ deeplink }}>) ^{{ highlight.bookmarkId }}\n> 🔥 {{ highlight.popularCount }} 人共读\n{% else %}\n> [{{ highlight.markText | trim }}](<{{ deeplink }}>) ^{{ highlight.bookmarkId }}\n{% endif %}\n\n{% else %}\n\n{% if syncPopularHighlightsToggle and highlight.isPopular %}\n> [{{ highlight.markText | trim }}](<{{ deeplink }}>) ^{{ highlight.bookmarkId }}\n> 🔥 {{ highlight.popularCount }} 人共读\n{% else %}\n> [{{ highlight.markText | trim }}](<{{ deeplink }}>) ^{{ highlight.bookmarkId }}\n{% endif %}\n\n{% endif %}\n{% endfor %}\n{% endfor %}\n',trimBlocks:!0,isBuiltIn:!0,isReadOnly:!0,source:"builtin"}],h={loginMethod:"scan",cookies:[],noteLocation:"/",dailyNotesLocation:"/",insertAfter:"\x3c!-- start of weread --\x3e",insertBefore:"\x3c!-- end of weread --\x3e",dailyNotesFormat:"YYYY-MM-DD",lastCookieTime:-1,isCookieValid:!1,user:"",userVid:"",userAvatar:"",userSignature:"",template:"",noteCountLimit:-1,subFolderType:"-1",fileNameType:"BOOK_NAME",removeParens:!1,removeParensWhitelist:"",filterInlineImages:!1,dailyNotesToggle:!1,notesBlacklist:"",notesWhitelist:"",syncMode:"blacklist",showEmptyChapterTitleToggle:!1,convertTags:!1,saveArticleToggle:!0,saveReadingInfoToggle:!0,syncPopularHighlightsToggle:!1,readingOpenMode:"TAB",bookOpenMode:"web",trimBlocks:!1,cookieCloudInfo:{serverUrl:"",uuid:"",password:""},cookieAutoRefreshToggle:!1,cookieRefreshInterval:12,scheduledSyncToggle:!1,scheduledSyncInterval:5,lastSyncTime:0,lastSyncBookCount:0,lastSyncBookTitles:[],syncLogs:[],bookshelfSortMode:"recent",bookshelfGroupByYear:!0,bookshelfDefaultSyncStatusFilter:"all",themes:p,activeThemeId:"builtin_merged",wereadApiKey:"",apiKeyValid:null,readingStatsLocation:"/",statsStartYear:0,popularHighlightsCacheTtl:7},f=(()=>{const r=function(e,t=s){let r;const n=new Set;function o(t){if(i=t,((o=e)!=o?i==i:o!==i||o&&"object"==typeof o||"function"==typeof o)&&(e=t,r)){const t=!u.length;for(const t of n)t[1](),u.push(t,e);if(t){for(let e=0;e<u.length;e+=2)u[e][0](u[e+1]);u.length=0}}var o,i}function i(t){o(t(e))}return{set:o,update:i,subscribe:function(a,l=s){const c=[a,l];return n.add(c),1===n.size&&(r=t(o,i)||s),a(e),()=>{n.delete(c),0===n.size&&r&&(r(),r=null)}}}}(h);let n;r.subscribe(t=>e(void 0,void 0,void 0,function*(){if(n){const e=Object.assign({},t);yield n.saveData(e)}}));const o=e=>{for(const t of e)if("wr_name"==t.name&&""!==t.value&&(console.log("[weread plugin] setting user name=>",t.value),r.update(e=>(e.user=t.value,e))),"wr_vid"==t.name&&""!==t.value&&(console.log("[weread plugin] setting user vid=>",t.value),r.update(e=>(e.userVid=t.value,e))),"wr_avatar"==t.name&&""!==t.value){const e=decodeURIComponent(t.value);console.log("[weread plugin] setting user avatar=>",e),r.update(t=>(t.userAvatar=e,t))}};return{subscribe:r.subscribe,initialise:i=>e(void 0,void 0,void 0,function*(){var e,a;const s=yield i.loadData(),l=s&&"object"==typeof s&&!Array.isArray(s)?s:{},c=Object.assign({},h,l),{manualSyncMode:d}=c,u=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}(c,["manualSyncMode"]),f=Object.assign(Object.assign({},u),{syncMode:"blacklist"===c.syncMode||"whitelist"===c.syncMode?c.syncMode:d?"whitelist":"blacklist"});console.log("[weread plugin] Cookie 详情: 数量="+f.cookies.length+", 用户="+f.user+", 登录状态="+f.isCookieValid+", 平台="+(void 0!==t.Platform?t.Platform.isDesktopApp?"桌面端":"移动端":"未知")),f.cookies.length>0&&console.log("[weread plugin] Cookie 详细列表:",f.cookies.map(e=>e.name).join(", ")),f.cookies.length>1&&o(f.cookies);const g=f.cookies.find(e=>"wr_vid"===e.name);if(void 0!==g&&""!==g.value||(f.userVid="",0===f.cookies.length&&(f.isCookieValid=!1)),f.themes&&0!==f.themes.length){const e=f.themes.filter(e=>!e.isBuiltIn&&!e.id.startsWith("legacy_"));e.forEach(e=>{e.source||(e.source="legacy"),"legacy"===e.source&&(e.isReadOnly=!0)});const t=l.template,r=null!==(a=l.trimBlocks)&&void 0!==a&&a;if(t&&!e.some(e=>"legacy"===e.source)){const t={id:"legacy_template",name:"旧模板",description:"从旧版本迁移的模板,可复制后自定义",template:"",trimBlocks:r,isBuiltIn:!1,isReadOnly:!0,source:"legacy"};e.unshift(t)}f.themes=[...p,...e];const n=f.themes.find(e=>e.id===f.activeThemeId);if(!n||n.isBuiltIn){const e=f.themes.find(e=>"legacy"===e.source);e?f.activeThemeId=e.id:f.themes.length>0&&(f.activeThemeId=f.themes[0].id)}}else{f.themes=[...p];const t=l.template,r=null!==(e=l.trimBlocks)&&void 0!==e&&e;if(t){const e={id:`user_${Date.now()}`,name:"旧模板",description:"从旧版本迁移的模板,可复制后自定义",template:t,trimBlocks:r,isBuiltIn:!1,isReadOnly:!0,source:"legacy"};f.themes.push(e),f.activeThemeId=e.id}else p.length>0&&(f.activeThemeId=p[0].id)}n=i,r.set(f)}),actions:{setLoginMethod:e=>{r.update(t=>(t.loginMethod=e,t))},setNoteLocationFolder:e=>{r.update(t=>(t.noteLocation=e,t))},setCookies:e=>{r.update(t=>(t.cookies=e,t.lastCookieTime=(new Date).getTime(),t.isCookieValid=!0,o(e),t))},clearCookies:()=>{console.log("[weread plugin] cookie已失效,清理cookie..."),r.update(e=>(e.cookies=[],e.lastCookieTime=(new Date).getTime(),e.user="",e.userVid="",e.userAvatar="",e.userSignature="",e.isCookieValid=!1,e))},markCookiesInvalid:()=>{console.log("[weread plugin] cookie标记为无效,保留数据等待重新登录..."),r.update(e=>(e.isCookieValid=!1,e))},updateCookieRefreshTime:()=>{r.update(e=>(e.lastCookieTime=(new Date).getTime(),e))},setTemplate:e=>{r.update(t=>(t.template=e,t))},setNoteCountLimit:e=>{r.update(t=>(t.noteCountLimit=e,t))},setSubFolderType:e=>{r.update(t=>(t.subFolderType=e,t))},setFileNameType:e=>{r.update(t=>(t.fileNameType=e,t))},setRemoveParens:e=>{r.update(t=>(t.removeParens=e,t))},setRemoveParensWhitelist:e=>{r.update(t=>(t.removeParensWhitelist=e,t))},setFilterInlineImages:e=>{r.update(t=>(t.filterInlineImages=e,t))},setDailyNotesToggle:e=>{r.update(t=>(t.dailyNotesToggle=e,t))},setDailyNotesFolder:e=>{r.update(t=>(t.dailyNotesLocation=e,t))},setDailyNotesFormat:e=>{r.update(t=>(t.dailyNotesFormat=e,t))},setInsertAfter:e=>{r.update(t=>(t.insertAfter=e,t))},setInsertBefore:e=>{r.update(t=>(t.insertBefore=e,t))},setNoteBlacklist:e=>{r.update(t=>(t.notesBlacklist=e,t))},setSyncMode:e=>{r.update(t=>(t.syncMode=e,t))},setNotesWhitelist:e=>{r.update(t=>(t.notesWhitelist=e,t))},setEmptyChapterTitleToggle:e=>{r.update(t=>(t.showEmptyChapterTitleToggle=e,t))},setConvertTags:e=>{r.update(t=>(t.convertTags=e,t))},setSaveArticleToggle:e=>{r.update(t=>(t.saveArticleToggle=e,t))},setSaveReadingInfoToggle:e=>{r.update(t=>(t.saveReadingInfoToggle=e,t))},setSyncPopularHighlightsToggle:e=>{r.update(t=>(t.syncPopularHighlightsToggle=e,t))},setReadingOpenMode:e=>{r.update(t=>(t.readingOpenMode=e,t))},setBookOpenMode:e=>{r.update(t=>(t.bookOpenMode=e,t))},setCookieCloudInfo:e=>{r.update(t=>(t.cookieCloudInfo=e,t))},setTrimBlocks:e=>{r.update(t=>(t.trimBlocks=e,t))},setIsCookieValid:e=>{r.update(t=>(t.isCookieValid=e,t))},setScheduledSyncToggle:e=>{r.update(t=>(t.scheduledSyncToggle=e,t))},setScheduledSyncInterval:e=>{r.update(t=>(t.scheduledSyncInterval=Math.max(1,e),t))},updateLastSyncInfo:(e,t)=>{r.update(r=>(r.lastSyncTime=(new Date).getTime(),r.lastSyncBookCount=e,r.lastSyncBookTitles=t.slice(0,5),r))},addSyncLog:e=>{r.update(t=>{const r=[e,...t.syncLogs].slice(0,10);return t.syncLogs=r,t})},getSyncLogs:()=>l(r).syncLogs,setBookshelfSortMode:e=>{r.update(t=>(t.bookshelfSortMode=e,t))},setBookshelfGroupByYear:e=>{r.update(t=>(t.bookshelfGroupByYear=e,t))},setBookshelfDefaultSyncStatusFilter:e=>{r.update(t=>(t.bookshelfDefaultSyncStatusFilter=e,t))},setActiveTheme:e=>{r.update(t=>(t.activeThemeId=e,t))},saveTheme:e=>{r.update(t=>{const r=t.themes.findIndex(t=>t.id===e.id);return r>=0?t.themes[r]=e:t.themes.push(e),t})},deleteTheme:e=>{r.update(t=>{const r=t.themes.find(t=>t.id===e);return r&&!r.isBuiltIn&&(t.themes=t.themes.filter(t=>t.id!==e),t.activeThemeId===e&&(t.activeThemeId="builtin_merged")),t})},clearLegacyTemplate:()=>{r.update(e=>(e.template="",e))},getActiveTheme:()=>{var e;const t=l(r);return null!==(e=t.themes.find(e=>e.id===t.activeThemeId))&&void 0!==e?e:t.themes[0]},duplicateTheme:(e,t)=>{const n=l(r),o=n.themes.find(t=>t.id===e);if(!o)return null;const i="legacy"===o.source||"legacy_template"===o.id?n.template:o.template,a=Object.assign(Object.assign({},o),{id:`user_${Date.now()}`,name:t,template:i,isBuiltIn:!1,isReadOnly:!1,source:"custom"});return r.update(e=>(e.themes.push(a),e.activeThemeId=a.id,e)),a},importTheme:e=>!l(r).themes.some(t=>t.id===e.id)&&(r.update(t=>(t.themes.push(e),t)),!0),exportTheme:e=>{var t;return null!==(t=l(r).themes.find(t=>t.id===e))&&void 0!==t?t:null},setWereadApiKey:e=>{r.update(t=>(t.wereadApiKey=e,t))},setApiKeyValid:e=>{r.update(t=>(t.apiKeyValid=e,t))},setReadingStatsLocation:e=>{r.update(t=>(t.readingStatsLocation=e,t))},setStatsStartYear:e=>{r.update(t=>(t.statsStartYear=e,t))},setUserSignature:e=>{r.update(t=>(t.userSignature=e,t))}}}})(),g=e=>{e.addFilter("formatDate",function(e,t){return e?window.moment(1e3*e).format(null!=t?t:"YYYY-MM-DD"):""}),e.addFilter("formatDateTime",function(e,t){return e?window.moment(1e3*e).format(null!=t?t:"YYYY-MM-DD HH:mm:ss"):""}),e.addFilter("formatTime",function(e,t){return e?window.moment(1e3*e).format(null!=t?t:"HH:mm:ss"):""}),e.addFilter("split",function(e,t){return e?e.split(t):[]}),e.addFilter("replace",function(e,t,r){if(!e)return"";if("string"==typeof t)try{if(!(t.startsWith("/")&&t.lastIndexOf("/")>0))return e.replaceAll(t,r);{const e=t.slice(1,t.lastIndexOf("/")),r=t.slice(t.lastIndexOf("/")+1);t=new RegExp(e,r)}}catch(n){return String(e).replaceAll(t,r)}else if(t instanceof RegExp)return String(e).replace(t,r);return String(e).replaceAll(t,r)}),e.addFilter("trim",function(e){return e?String(e).trim():""})};class m{constructor(){const e=o.configure({autoescape:!1});g(e)}validate(e){try{return o.renderString(e,{}),!0}catch(e){return console.error("validate weread template error,please check",e),!1}}render(e){var t,r,n,i;const{metaData:a,chapterHighlights:s,bookReview:c,popularHighlights:d}=e,u=l(f),p={metaData:a,chapterHighlights:s,bookReview:c,popularHighlights:d,syncPopularHighlightsToggle:u.syncPopularHighlightsToggle};console.log("[weread renderer] popularHighlights in context:",null!==(t=null==d?void 0:d.length)&&void 0!==t?t:"undefined");const h=null===(r=u.themes)||void 0===r?void 0:r.find(e=>e.id===u.activeThemeId),m="legacy"===(null==h?void 0:h.source)||"legacy_template"===(null==h?void 0:h.id)?u.template:null!==(n=null==h?void 0:h.template)&&void 0!==n?n:u.template;if(null!==(i=null==h?void 0:h.trimBlocks)&&void 0!==i?i:u.trimBlocks){const e=new o.Environment(null,{autoescape:!1,trimBlocks:!0,lstripBlocks:!0});return g(e),e.renderString(m,p)}return o.renderString(m,p)}renderWithTemplate(e,t,r=!1){const{metaData:n,chapterHighlights:i,bookReview:a,popularHighlights:s}=t,c={metaData:n,chapterHighlights:i,bookReview:a,popularHighlights:s,syncPopularHighlightsToggle:l(f).syncPopularHighlightsToggle},d=new o.Environment(null,{autoescape:!1,trimBlocks:r,lstripBlocks:r});g(d);try{return d.renderString(e,c)}catch(e){throw console.error("[weread renderer] nunjucks error:",e),e}}}var v=r(2424),b=r.n(v);const w=e=>{const t=e.replace(/[':#|]/g,"").trim();return b()(t)},y=e=>window.moment(1e3*e).format("YYYY-MM-DD"),x="weread-highlights-reviews";var k;!function(e){e[e["未标记"]=1]="未标记",e[e["在读"]=2]="在读",e[e["读过"]=3]="读过",e[e["读完"]=4]="读完"}(k||(k={}));const E=(e,r,n,o)=>{const i={doc_type:x,bookId:r.metaData.bookId,title:r.metaData.title,reviewCount:r.metaData.reviewCount,noteCount:r.metaData.noteCount};if(l(f).saveReadingInfoToggle){i.author=r.metaData.author,i.cover=r.metaData.cover;const e=r.metaData.readInfo;e&&(e.finishedDate&&e.finishedDate>0?i.readingStatus=k["读完"].toString():i.readingStatus=k["在读"].toString(),i.progress=void 0===e.readingProgress?"-1":e.readingProgress+"%",i.totalReadDay=e.totalReadDay,i.readingTime=(a=e.readingTime,`${Math.floor(a/3600)}小时${Math.floor(a%3600/60)}分钟`),i.readingDate=y(e.readingBookDate),e.finishedDate&&(i.finishedDate=y(e.finishedDate)))}var a;let s=Object();if(n){if(s=o.metadataCache.getFileCache(n).frontmatter,void 0===s)throw new t.Notice("weread front matter invalid"),Error("weread front matter invalid");delete s.position}const c=e.indexOf("---");let d=Object();if(-1!==c){const r=e.indexOf("---")+4,n=e.substring(r).indexOf("---")-1,o=e.substring(r,r+n);d=(0,t.parseYaml)(o);const a=e.substring(n+4),l=Object.assign(Object.assign(Object.assign({},s),i),d);return"---\n"+(0,t.stringifyYaml)(l)+a}return"---\n"+(0,t.stringifyYaml)(i)+"---\n"+e};class T{constructor(e,t,r){this.getWereadNoteAnnotationFile=e=>{var t;const r=this.metadataCache.getFileCache(e),n=null==r?void 0:r.frontmatter;return(null==n?void 0:n.doc_type)===x&&void 0!==(null==n?void 0:n.bookId)?{file:e,bookId:n.bookId,title:null!==(t=n.title)&&void 0!==t?t:e.basename,author:n.author,cover:n.cover,progress:n.progress,readingDate:n.readingDate,finishedDate:n.finishedDate,reviewCount:n.reviewCount,noteCount:n.noteCount,new:!1}:null},this.vault=e,this.metadataCache=t,this.app=r,this.renderer=new m}saveDailyNotes(r,n){return e(this,void 0,void 0,function*(){const e=yield this.fileExists(r),o=this.buildAppendContent(n);if(e){const e=yield this.getFileByPath(r),t=yield this.vault.cachedRead(e),n=yield this.insertAfter(t,o);this.vault.modify(e,n)}else new t.Notice("没有找到Daily Note,请先创建"+r)})}buildAppendContent(e){return e.map(e=>"\n### ".concat(e.metaData.title).concat("\n")+e.refBlocks.map(t=>`![[${this.getFileName(e.metaData)}#^${t.refBlockId}]]`).join("\n")).join("\n")}getDailyNotePath(e){let r;const n=l(f).dailyNotesFormat;try{r=e.format(n)}catch(e){throw new t.Notice("Daily Notes 日期格式不正确"+n),e}return l(f).dailyNotesLocation+"/"+r+".md"}fileExists(t){return e(this,void 0,void 0,function*(){return yield this.vault.adapter.exists(t)})}getFileByPath(r){return e(this,void 0,void 0,function*(){const e=this.vault.getAbstractFileByPath(r);return e?e instanceof t.TFolder?(console.error(`${r} found but it's a folder`),null):e instanceof t.TFile?e:void 0:(console.error(`${r} not found`),null)})}insertAfter(r,n){return e(this,void 0,void 0,function*(){const e=l(f).insertAfter,o=new RegExp(`s*${e}s*`),i=(e=>{const t=[];let r=e;for(;r.contains("\n");){const e=r.indexOf("\n");t.push(r.slice(0,e)),r=r.slice(e+1)}return t.push(r),t})(r).findIndex(e=>o.test(e));if(-1===i)throw new t.Notice(`没有在Daily Note中找到区间开始:${e}!请检查Daily Notes设置`),new Error("cannot find "+e);return this.insertTextAfterPosition(n,r,i)})}insertTextAfterPosition(e,r,n){const o=r.split("\n"),i=o.slice(0,n+1).join("\n"),a=o.slice(n+1),s=l(f).insertBefore,c=a.findIndex(e=>new RegExp(`s*${s}s*`).test(e));if(-1===c)throw new t.Notice(`没有在Daily Note中找到区间结束:${s}!请检查Daily Notes设置`),new Error("cannot find "+s);return`${i}\n${e}\n${a.slice(c-1).join("\n")}`}saveNotebook(t){return e(this,void 0,void 0,function*(){const e=t.metaData.file;if(!e){const e=yield this.getNewNotebookFilePath(t);console.log(`Creating ${e}`);const r=this.renderer.render(t),n=E(r,t,void 0,this.app);return(yield this.vault.create(e,n)).path}if(e.new){const r=e.file;console.log(`Updating ${r.path}`);const n=this.renderer.render(t),o=E(n,t,r,this.app);return yield this.vault.modify(r,o),r.path}return null})}getNotebookFiles(){return e(this,void 0,void 0,function*(){return this.vault.getMarkdownFiles().map(e=>{const t=this.metadataCache.getFileCache(e);return{file:e,frontmatter:null==t?void 0:t.frontmatter}}).filter(({frontmatter:e})=>(null==e?void 0:e.doc_type)===x).map(({file:e,frontmatter:t})=>{var r;return{file:e,bookId:t.bookId,title:null!==(r=t.title)&&void 0!==r?r:e.basename,author:t.author,cover:t.cover,progress:t.progress,readingDate:t.readingDate,finishedDate:t.finishedDate,reviewCount:t.reviewCount,noteCount:t.noteCount,new:!0}})})}getNotebookFilesByBookId(){return e(this,void 0,void 0,function*(){return(yield this.getNotebookFiles()).reduce((e,t)=>(t.bookId&&e.set(t.bookId,t),e),new Map)})}deleteNotebookFile(t){return e(this,void 0,void 0,function*(){yield this.app.fileManager.trashFile(t)})}getNewNotebookFilePath(t){return e(this,void 0,void 0,function*(){const e=`${l(f).noteLocation}/${this.getSubFolderPath(t.metaData)}`;return(yield this.vault.adapter.exists(e))||(console.info(`Folder ${e} not found. Will be created`),yield this.vault.createFolder(e)),`${e}/${this.getFileName(t.metaData)}.md`})}getFileName(e){const t=l(f).fileNameType,r=w(e.title),n=l(f).removeParens,o=(l(f).removeParensWhitelist||"").split(/\r?\n/).map(e=>e.trim()).filter(Boolean).some(e=>r.includes(e));let i=r;switch(n&&!o&&(i=r.replace(/(.*)/g,"")),t){case"BOOK_ID":return e.bookId;case"BOOK_NAME_AUTHOR":return e.duplicate?`${i}-${e.author}-${e.bookId}`:`${i}-${e.author}`;case"BOOK_NAME_BOOKID":return`${i}-${e.bookId}`;case"BOOK_NAME":return e.duplicate?`${i}-${e.bookId}`:i;default:return i}}getSubFolderPath(e){const t=l(f).subFolderType;return"title"==t?w(e.title):"category"==t?e.category?e.category.split("-")[0]:"公众号"===e.author?"公众号":"未分类":""}}class S{constructor(e){this.cacheDir=".weread-cache",this.vault=e}getCachePath(e){return`${this.cacheDir}/popular-${e}.json`}isCacheExpired(e){var t;const r=24*(null!==(t=l(f).popularHighlightsCacheTtl)&&void 0!==t?t:7)*60*60*1e3;return Date.now()>e.cachedAt+r}get(t){return e(this,void 0,void 0,function*(){try{const e=this.getCachePath(t);if(!(yield this.vault.adapter.exists(e)))return null;const r=yield this.vault.adapter.read(e),n=JSON.parse(r);return this.isCacheExpired(n)?(console.log(`[weread plugin] 热门划线缓存已过期: ${t}`),null):(console.log(`[weread plugin] 热门划线缓存命中: ${t}`),n)}catch(e){return console.error(`[weread plugin] 读取热门划线缓存失败: ${t}`,e),null}})}set(t,r,n){return e(this,void 0,void 0,function*(){var e;try{const o=l(f),i={bookId:t,cachedAt:Date.now(),ttl:null!==(e=o.popularHighlightsCacheTtl)&&void 0!==e?e:7,items:r,chapters:n},a=this.getCachePath(t);yield this.ensureCacheDir(),yield this.vault.adapter.write(a,JSON.stringify(i,null,2)),console.log(`[weread plugin] 热门划线缓存已写入: ${t}`)}catch(e){console.error(`[weread plugin] 写入热门划线缓存失败: ${t}`,e)}})}clear(r){return e(this,void 0,void 0,function*(){try{const e=this.getCachePath(r);if(yield this.vault.adapter.exists(e)){const n=this.vault.getAbstractFileByPath(e);n instanceof t.TFile&&(yield this.vault.delete(n),console.log(`[weread plugin] 热门划线缓存已清除: ${r}`))}}catch(e){console.error(`[weread plugin] 清除热门划线缓存失败: ${r}`,e)}})}clearExpired(){return e(this,void 0,void 0,function*(){try{const e=this.cacheDir;if(!(yield this.vault.adapter.exists(e)))return 0;const r=yield this.listFiles(e);let n=0;for(const o of r)if(o.startsWith("popular-")&&o.endsWith(".json"))try{const r=yield this.vault.adapter.read(`${e}/${o}`),i=JSON.parse(r);if(this.isCacheExpired(i)){const r=`${e}/${o}`,i=this.vault.getAbstractFileByPath(r);i instanceof t.TFile&&(yield this.vault.delete(i)),n++}}catch(e){}return n>0&&console.log(`[weread plugin] 已清除 ${n} 个过期热门划线缓存`),n}catch(e){return console.error("[weread plugin] 清除过期缓存失败",e),0}})}ensureCacheDir(){return e(this,void 0,void 0,function*(){try{(yield this.vault.adapter.exists(this.cacheDir))||(yield this.vault.createFolder(this.cacheDir))}catch(e){}})}listFiles(r){return e(this,void 0,void 0,function*(){try{const e=this.vault.getAbstractFileByPath(r);return e instanceof t.TFolder?e.children.filter(e=>e instanceof t.TFile).map(e=>e.name):[]}catch(e){return[]}})}}var D=r(4770),A=r(1396);const C=e=>{const t=e.book,r=t.cover.replace("/s_","/t7_"),n=window.moment(1e3*e.sort).format("YYYY-MM-DD"),o=t.bookId,i=B(o),a=t.author.replace(/\[(.*?)\]/g,"【$1】");return{bookId:t.bookId,author:a,title:t.title,url:t.url,cover:r,publishTime:t.publishTime,noteCount:e.noteCount,reviewCount:e.reviewCount,bookType:t.type,lastReadDate:n,pcUrl:i}},_=e=>e.replace(/(?<=^|\s)#([^\s]+)/g,"[[$1]]"),N=e=>{if(void 0===e||""==e)return e;const t=e.split("\n");for(let e=1;e<t.length;e++)t[e]=" "+t[e];return t.join("\n")},L=/\[图片\]|\[插图\]/g,O=e=>{const t=l(f).convertTags;return e.reviews.map(e=>{var r;const n=e.review,o=n.createTime,i=window.moment(1e3*o).format("YYYY-MM-DD HH:mm:ss"),a=(n.htmlContent?D.lW.translate(n.htmlContent):null)||n.content,s=t?_(a):a,l=n.reviewId;return{bookId:n.bookId,created:o,createTime:i,chapterUid:n.chapterUid,chapterTitle:n.chapterTitle||(null===(r=n.refMpInfo)||void 0===r?void 0:r.title),content:t?_(n.content):n.content,reviewId:null==l?void 0:l.replace(/[_~]/g,"-"),mdContent:s,range:n.range,abstract:n.abstract,type:n.type}})},B=e=>{const t=A.MD5(e).toString(A.enc.Hex),r=(e=>{if(/^\d*$/.test(e)){const t=[];for(let r=0;r<e.length;r+=9){const n=e.slice(r,Math.min(r+9,e.length));t.push(parseInt(n,10).toString(16))}return["3",t]}let t="";for(let r=0;r<e.length;r++)t+=e.charCodeAt(r).toString(16);return["4",[t]]})(e);let n=t.slice(0,3);n+=r[0],n+="2"+t.slice(t.length-2,t.length);for(let e=0;e<r[1].length;e++){const t=r[1][e].length.toString(16);1===t.length?n+="0"+t:n+=t,n+=r[1][e],e<r[1].length-1&&(n+="g")}return n.length<20&&(n+=t.slice(0,20-n.length)),n+=A.MD5(n).toString(A.enc.Hex).slice(0,3),"https://weread.qq.com/web/reader/"+n},I=e=>new Set(e.split(/[,\n,]/).map(e=>e.trim()).filter(Boolean)),M=e=>({saveArticleToggle:e.saveArticleToggle,noteCountLimit:e.noteCountLimit,syncMode:e.syncMode,blacklistedBookIds:I(e.notesBlacklist),whitelistedBookIds:I(e.notesWhitelist)}),P=(e,t)=>{const r=!t.saveArticleToggle&&3===e.bookType,n=e.noteCount<t.noteCountLimit,o="blacklist"===t.syncMode&&t.blacklistedBookIds.has(e.bookId),i="whitelist"===t.syncMode&&!t.whitelistedBookIds.has(e.bookId),a=!(r||n||o||i),s=[];if(r&&s.push("公众号内容已过滤"),n){const e=Number.isInteger(t.noteCountLimit)?t.noteCountLimit.toString():t.noteCountLimit.toFixed(1);s.push(`划线少于 ${e} 条`)}return o&&s.push("命中黑名单"),i&&s.push("未在白名单"),{excludedByArticleType:r,excludedByNoteCount:n,excludedByBlacklist:o,excludedByWhitelist:i,includedByCurrentSettings:a,reasonLabels:s}};class R{constructor(e,t,r){this.fileManager=e,this.apiManager=t,this.cacheManager=new S(r)}syncNotebook(r){return e(this,void 0,void 0,function*(){const e=(yield this.getALlMetadata()).find(e=>e.bookId===r.bookId);if(r.new=!0,e.file=r,e){const r=yield this.convertToNotebook(e);yield this.saveNotebook(r),new t.Notice(`当前笔记 《${e.title}》 同步成功!`)}else new t.Notice("当前笔记元数据缺少,同步失败!")})}syncBookById(r){return e(this,void 0,void 0,function*(){const e=yield this.getALlMetadata(),n=yield this.fileManager.getNotebookFiles(),o=this.getDuplicateBooks(e),i=e.find(e=>e.bookId===r);if(!i)return void new t.Notice("未在远程书架中找到该书籍");i.file=yield this.getLocalNotebookFile(i,n,!0),o.has(i.title)&&(i.duplicate=!0);const a=yield this.convertToNotebook(i);yield this.saveNotebook(a),new t.Notice(`《${i.title}》已同步到本地`)})}syncNotebooks(){return e(this,arguments,void 0,function*(e=!1,r,n){var o,i;const a=(new Date).getTime(),s=yield this.getALlMetadata(),l=yield this.filterNoteMetas(e,s);let c=0,d=0;const u=l.length,p=new t.Notice("",0),h=[];let g;const m=document.createDocumentFragment(),v=m.createDiv({cls:"weread-notice-progress"}),b=v.createDiv({cls:"weread-notice-progress-header"}),w=v.createDiv({cls:"weread-notice-progress-track"}).createDiv({cls:"weread-notice-progress-fill"}),y=v.createDiv({cls:"weread-notice-progress-title"});p.setMessage(m);const x=(e,t)=>{const r=u>0?Math.round(e/u*100):0;b.setText(`📚 微信读书同步中 · ${e}/${u} 本 (${r}%)`),w.style.width=`${r}%`,y.setText(t?`正在同步:${t}`:"")};x(0,null===(o=l[0])||void 0===o?void 0:o.title);try{for(let e=0;e<l.length&&!(null==n?void 0:n.cancelled);e++){const t=l[e],r=l[e+1];x(c,t.title);try{const e=yield this.convertToNotebook(t),r=yield this.saveNotebook(e);c++,r&&h.push({bookId:t.bookId,title:t.title,filePath:r})}catch(e){d++,g=e instanceof Error?e.message:String(e),console.error(`[weread plugin] 同步书籍 ${t.title} 失败`,e)}x(c,null==r?void 0:r.title)}}catch(e){throw p.hide(),e}const k=null!==(i=null==n?void 0:n.cancelled)&&void 0!==i&&i;this.saveToJounal(r,s);const E=((new Date).getTime()-a)/1e3,T={id:`sync-${a}`,timestamp:a,totalBooks:s.length,syncedBooks:c,skippedBooks:l.length-c,duration:E,notes:h,success:!g,errorMessage:g};f.actions.addSyncLog(T);const S=k?"🚫":"✅",D=k?"已取消,已更新":"完成!更新";b.setText(`${S} 同步${D} ${c} 本书`),w.style.width="100%",k&&(w.style.background="var(--text-muted)");const A=[`📚 书架共 ${s.length} 本 · 本次处理 ${u} 本`,d>0?`⚠️ ${d} 本同步失败`:"",`⏱ 耗时 ${E.toFixed(1)} 秒`].filter(Boolean);return y.setText(A.join(" · ")),setTimeout(()=>p.hide(),5e3),c})}syncNotesToJounal(t){return e(this,void 0,void 0,function*(){const e=yield this.getALlMetadata();this.saveToJounal(t,e)})}convertToNotebook(t){return e(this,void 0,void 0,function*(){var e,r,n,o,i,a;const s=yield this.apiManager.getBook(t.bookId);s&&(t.category=s.category,t.publisher=s.publisher,t.isbn=s.isbn,t.intro=s.intro,t.totalWords=s.totalWords,t.rating=s.newRating/10+"%");const c=yield this.apiManager.getProgress(t.bookId);c&&c.book&&(t.readInfo={readingProgress:c.book.progress,readingTime:c.book.readingTime,readingBookDate:c.book.startReadingTime,finishedDate:c.book.finishTime});const d=yield this.apiManager.getNotebookHighlights(t.bookId,3===t.bookType),u=yield this.apiManager.getNotebookReviews(t.bookId,3===t.bookType),p=yield this.apiManager.getChapters(t.bookId,3===t.bookType);if(!d||!p){if(console.warn(`[weread plugin] 获取书籍数据失败: ${t.title}, bookType=${t.bookType}`),3===t.bookType)throw new Error(`公众号"${t.title}"数据获取失败,请检查 Cookie 是否有效(需扫码登录)`);throw new Error(`书籍"${t.title}"数据获取失败`)}const h=((e,t)=>{const r=l(f).convertTags;return e.updated.map(n=>{var o;const i=n.range;let a;if(t.reviews){const e=t.reviews.map(e=>e.review).filter(e=>e.range===i).first();e&&(a=r?_(e.content):e.content)}const s=e.chapters.filter(e=>e.chapterUid===n.chapterUid).first(),c=N(n.markText),d=l(f).filterInlineImages?(u=c)?u.replace(L,"").replace(/\n{3,}/g,"\n\n").trim():u:c;var u;return{bookmarkId:null===(o=n.bookmarkId)||void 0===o?void 0:o.replace(/[_~]/g,"-"),created:n.createTime,createTime:window.moment(1e3*n.createTime).format("YYYY-MM-DD HH:mm:ss"),chapterUid:n.chapterUid,chapterIdx:(null==s?void 0:s.chapterIdx)||n.chapterUid,refMpReviewId:n.refMpReviewId,range:n.range,style:n.style,colorStyle:n.colorStyle,chapterTitle:(null==s?void 0:s.title)||"未知章节",markText:d,reviewContent:N(a)}})})(d,u),g=O(u),m=((e,t)=>void 0===e?[]:void 0!==e.data&&e.data[0].updated.length>0?e.data[0].updated:void 0!==t.refMpInfos?t.refMpInfos.map(e=>({refMpReviewId:e.reviewId,updateTime:e.createTime,title:e.title,isMPChapter:1,level:2})):[])(p,d);let v;3===t.bookType?(console.log("sync 公众号:",t.title),v=((e,t,r)=>{const n=[];for(const o of e){const e=o.refMpReviewId,i=o.title,a=t.filter(t=>t.refMpReviewId===e).sort((e,t)=>parseInt(e.range.split("-")[0])-parseInt(t.range.split("-")[0]));let s;a&&a.length>0&&r&&(s=r.filter(t=>{var r;return e==(null===(r=t.refMpInfo)||void 0===r?void 0:r.reviewId)}).sort((e,t)=>void 0===e.range&&void 0===t.range?0:void 0===e.range?1:void 0===t.range?-1:parseInt(e.range.split("-")[0])-parseInt(t.range.split("-")[0]))),a&&a.length>0&&n.push({chapterTitle:i,level:o.level,isMPChapter:o.isMPChapter,chapterReviews:s,highlights:a})}return n.sort((e,t)=>e.chapterIdx-t.chapterIdx)})(m,h,g),console.log("sync 公众号 result",t.title,v)):v=((e,t,r)=>{const n=[];for(const o of e){const e=o.chapterUid,i=o.chapterIdx,a=o.title,s=t.filter(t=>t.chapterUid==e).sort((e,t)=>parseInt(e.range.split("-")[0])-parseInt(t.range.split("-")[0]));let c;s&&s.length>0&&r&&(c=r.filter(t=>e==t.chapterUid&&1==t.type).sort((e,t)=>void 0===e.range&&void 0===t.range?0:void 0===e.range?1:void 0===t.range?-1:parseInt(e.range.split("-")[0])-parseInt(t.range.split("-")[0])));const d=l(f).showEmptyChapterTitleToggle;(s&&s.length>0||d)&&n.push({chapterUid:e,chapterIdx:i,chapterTitle:a,level:o.level,isMPChapter:o.isMPChapter,chapterReviews:c,highlights:s})}return n.sort((e,t)=>e.chapterIdx-t.chapterIdx)})(m,h,g);const b=(e=>{const t=O(e),r=t.filter(e=>1==e.type);r.sort((e,t)=>void 0===e.range&&void 0===t.range?0:void 0===e.range?1:void 0===t.range?-1:parseInt(e.range.split("-")[0])-parseInt(t.range.split("-")[0]));const n=t.filter(e=>4==e.type),o=new Map;for(const e of r){const t=e.chapterUid,r=e.chapterTitle;if(null==o.get(e.chapterUid)){const n={chapterUid:t,chapterTitle:r,reviews:[],chapterReviews:[]};e.range?n.reviews.push(e):n.chapterReviews.push(e),o.set(e.chapterUid,n)}else{const t=o.get(e.chapterUid);e.range?t.reviews.push(e):t.chapterReviews.push(e)}}return{bookReviews:n,chapterReviews:Array.from(o.values()).sort((e,t)=>e.chapterUid-t.chapterUid)}})(u);let w=[];if(l(f).syncPopularHighlightsToggle){const s=m.map(e=>{var t,r;return{chapterUid:null!==(t=e.chapterUid)&&void 0!==t?t:0,chapterIdx:null!==(r=e.chapterIdx)&&void 0!==r?r:0,title:e.title}});w=yield this.getPopularHighlights(t.bookId,s);const l=new Map;for(const e of w)l.set(e.chapterUid,e.highlights);for(const t of v){const s=null!==(r=l.get(null!==(e=t.chapterUid)&&void 0!==e?e:0))&&void 0!==r?r:[];if(0===s.length)continue;const c=null!==(n=t.highlights)&&void 0!==n?n:[],d=new Set(c.map(e=>e.range));for(const e of c){const t=s.find(t=>t.range===e.range);t&&(e.isPopular=!0,e.popularCount=t.totalCount),e.isUserHighlight=!0}for(const e of s)d.has(e.range)||c.push({bookmarkId:null===(o=e.bookmarkId)||void 0===o?void 0:o.replace(/[_~]/g,"-"),created:0,createTime:"",chapterUid:null!==(i=t.chapterUid)&&void 0!==i?i:0,chapterIdx:null!==(a=t.chapterIdx)&&void 0!==a?a:0,chapterTitle:t.chapterTitle,markText:e.markText,style:0,colorStyle:0,range:e.range,isPopular:!0,popularCount:e.totalCount,isUserHighlight:!1});t.highlights=c.sort((e,t)=>(parseInt(e.range.split("-")[0])||0)-(parseInt(t.range.split("-")[0])||0))}}return{metaData:t,chapterHighlights:v,bookReview:b,popularHighlights:w}})}getPopularHighlights(t,r){return e(this,void 0,void 0,function*(){var e,n;const o=yield this.cacheManager.get(t);if(o)return this.groupPopularByChapter(o.items,o.chapters);const i=r.map(e=>e.chapterUid),a=yield this.apiManager.getBestBookmarksBatch(t,i,5),s=[],l=new Map(r.map(e=>[e.chapterUid,e]));for(const[t,r]of a){const o=l.get(t);for(const i of r)s.push({bookmarkId:null===(e=i.bookmarkId)||void 0===e?void 0:e.replace(/[_~]/g,"-"),chapterUid:t,chapterTitle:null!==(n=null==o?void 0:o.title)&&void 0!==n?n:"",range:i.range,markText:i.markText,totalCount:i.totalCount})}const c=r.map(e=>({bookId:t,chapterUid:e.chapterUid,chapterIdx:e.chapterIdx,title:e.title}));return yield this.cacheManager.set(t,s,c),this.groupPopularByChapter(s,c)})}groupPopularByChapter(e,t){var r,n,o;const i=new Map(t.map(e=>[e.chapterUid,e])),a=new Map;for(const t of e){if(t.bookmarkId=null===(r=t.bookmarkId)||void 0===r?void 0:r.replace(/[_~]/g,"-"),!a.has(t.chapterUid)){const e=i.get(t.chapterUid);a.set(t.chapterUid,{chapterUid:t.chapterUid,chapterIdx:null!==(n=null==e?void 0:e.chapterIdx)&&void 0!==n?n:0,chapterTitle:null!==(o=null==e?void 0:e.title)&&void 0!==o?o:t.chapterTitle,highlights:[]})}a.get(t.chapterUid).highlights.push(t)}return Array.from(a.values())}filterNoteMetas(){return e(this,arguments,void 0,function*(e=!1,t){const r=yield this.fileManager.getNotebookFiles(),n=this.getDuplicateBooks(t),o=this.filterMetasByCurrentSettings(t,!0),i=[];for(const t of o){const o=yield this.getLocalNotebookFile(t,r,e);o&&!o.new||(t.file=o,n.has(t.title)&&(t.duplicate=!0),i.push(t))}return i})}filterMetasByCurrentSettings(e,t=!1){const r=l(f),n=M(r);return e.filter(e=>{const r=P(e,n);return!!r.includedByCurrentSettings||(t&&console.debug(`[weread plugin] skip book ${e.title}, reasons: ${r.reasonLabels.join(", ")}`),!1)})}getALlMetadata(){return e(this,void 0,void 0,function*(){return(yield this.apiManager.getNotebooksWithRetry()).map(e=>C(e))})}saveToJounal(t,r){return e(this,void 0,void 0,function*(){const e=this.filterMetasByCurrentSettings(r).filter(e=>e.lastReadDate===t),n=[];for(const t of e){const e=yield this.convertToNotebook(t);n.push(e)}if(l(f).dailyNotesToggle){const e=(e=>{const t=window.moment().format("YYYYMMDD"),r=[];for(const n of e){const e=n.chapterHighlights.flatMap(e=>e.highlights).filter(e=>{const r=window.moment(1e3*e.created).format("YYYYMMDD");return t===r}),o=[];if(e)for(const t of e)o.push({refBlockId:t.bookmarkId,createTime:t.created});o.length>0&&r.push({metaData:n.metaData,refBlocks:o})}return r})(n),t=this.fileManager.getDailyNotePath(window.moment());console.log("get daily note path",t," size:",e.length),this.fileManager.saveDailyNotes(t,e)}})}getDuplicateBooks(e){const t=e.map(e=>e.title),r=new Set(t),n=t.filter(e=>{if(!r.has(e))return e;r.delete(e)});return new Set(n)}getLocalNotebookFile(t,r){return e(this,arguments,void 0,function*(e,t,r=!1){const n=t.find(t=>t.bookId===e.bookId)||null;return n?(n.noteCount!=e.noteCount||n.reviewCount!=e.reviewCount||r?n.new=!0:n.new=!1,n):null})}saveNotebook(t){return e(this,void 0,void 0,function*(){try{return yield this.fileManager.saveNotebook(t)}catch(e){return console.log("[weread plugin] sync note book error",t.metaData.title,e),null}})}}const q=e=>""===e?[]:e.split(";").map(e=>e.split("=")).map(e=>({name:decodeURIComponent(e[0].trim()),value:decodeURIComponent(e.slice(1).join("=").trim())}));var F=r(4635);class j{getCookie(){return e(this,void 0,void 0,function*(){const e=l(f).cookieCloudInfo;if(!e||""===e.serverUrl||""===e.uuid||""===e.password)return new t.Notice("请检查 CookieCloud 配置"),!1;const r={url:`${e.serverUrl}/get/${e.uuid}`,method:"GET"};try{const n=yield(0,t.requestUrl)(r);if(console.debug("request cookiecloud server resp",n),200!==n.status)return new t.Notice("CookieCloud 获取失败,请检查配置"),!1;const o=n.json;if(o&&o.encrypted){const{cookie_data:t}=this.cookieDecrypt(e.uuid,o.encrypted,e.password);for(const e in t){const r=[...t[e].filter(e=>e.domain.endsWith("weread.qq.com"))].map(e=>`${e.name}=${e.value}`).join("; ");return this.updateCookies(r)}}return new t.Notice("CookieCloud 获取微信读书登录信息失败,请检查配置"),!1}catch(e){return new t.Notice("CookieCloud 获取失败,请检查配置或网络连接"),!1}})}cookieDecrypt(e,r,n){const o=A.MD5(e+"-"+n).toString().substring(0,16);try{const e=A.AES.decrypt(r,o).toString(A.enc.Utf8);return JSON.parse(e)}catch(e){return new t.Notice("解密失败,请检查配置"),""}}updateCookies(e){const r=q(e),n=r.find(e=>"wr_name"==e.name);return void 0!==n&&""!==n.value?(f.actions.setCookies(r),new t.Notice("CookieCloud 获取 cookie 成功"),!0):(new t.Notice("CookieCloud 获取微信读书登录信息失败,请检查配置"),!1)}}class ${constructor(){this.baseUrl="https://weread.qq.com"}getHeaders(){let e=l(f).cookies.map(e=>{const t=e.name,r=e.value;return t+"="+(-1!==r.indexOf("%")?decodeURIComponent(r):r)}).join(";");const r={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)","Accept-Encoding":"gzip, deflate","Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8",accept:"application/json, text/plain, */*","Content-Type":"application/json"};return e&&(t.Platform.isDesktopApp||(e=l(f).cookies.map(e=>e.name+"="+encodeURIComponent(e.value)).join(";"),console.log("[weread plugin] iOS 端使用 URL 编码的 Cookie")),r.Cookie=e),r}refreshCookie(){return e(this,arguments,void 0,function*(e=!1){try{const e={url:this.baseUrl,method:"HEAD",headers:this.getHeaders()},r=yield(0,t.requestUrl)(e),n=r.headers["set-cookie"]||r.headers["Set-Cookie"];void 0!==n&&this.updateCookies(n)}catch(e){console.error("[weread plugin] Cookie 刷新 HEAD 请求失败",e)}if(0===l(f).cookies.length&&"cookieCloud"===l(f).loginMethod){const e=new j;yield e.getCookie()}const r=yield this.verifyCookieValidity();if(r)e&&new t.Notice("Cookie 已是最新,无须刷新");else{const r=t.Platform.isDesktopApp?"Cookie 已失效,请重新登录":"Cookie 已失效,请在电脑端重新登录";e&&new t.Notice(r),t.Platform.isDesktopApp?f.actions.clearCookies():f.actions.markCookiesInvalid()}return r})}verifyCookieValidity(){return e(this,void 0,void 0,function*(){const e=l(f).cookies;if(!e||0===e.length)return console.log("[weread plugin] Cookie 为空,标记无效"),f.actions.setIsCookieValid(!1),!1;try{const e=this.getHeaders(),r={url:`${this.baseUrl}/api/user/notebook`,method:"GET",headers:e},n=yield(0,t.requestUrl)(r),o=n.headers["set-cookie"]||n.headers["Set-Cookie"];if(o&&(console.log("[weread plugin] 收到新的 set-cookie 响应头,更新 Cookie"),this.updateCookies(o)),n.json&&void 0!==n.json.books)return console.log("[weread plugin] Cookie 有效,书籍数:",n.json.books.length),f.actions.setIsCookieValid(!0),l(f).wereadApiKey||this.fetchAndSaveApiKey().catch(e=>console.debug("[weread plugin] 自动获取 API Key 失败",e)),!0;if(n.json&&-2012===n.json.errcode)return console.log("[weread plugin] Cookie 超时错误 (-2012)"),f.actions.setIsCookieValid(!1),!1}catch(e){if(console.error("[weread plugin] 验证异常 - 错误信息:",e.message),401===e.status)return t.Platform.isDesktopApp?(console.log("[weread plugin] 桌面端 401,标记 Cookie 无效"),f.actions.setIsCookieValid(!1)):f.actions.markCookiesInvalid(),!1}return l(f).isCookieValid})}getNotebooksWithRetry(){return e(this,void 0,void 0,function*(){let e=yield this.getNotebooks();if(void 0===e&&(e=yield this.getNotebooks()),void 0===e){const e=t.Platform.isDesktopApp?"长时间未登录,Cookie已失效,请重新扫码登录!":"长时间未登录,Cookie已失效,请在电脑端登录!";throw new t.Notice(e),t.Platform.isDesktopApp?f.actions.clearCookies():f.actions.markCookiesInvalid(),Error("get weread note book error after retry")}return e})}getNotebooks(){return e(this,void 0,void 0,function*(){let e=[];const r={url:`${this.baseUrl}/api/user/notebook`,method:"GET",headers:this.getHeaders()};try{const n=yield(0,t.requestUrl)(r);401===n.status?-2012==n.json.errcode?(console.log("weread cookie expire retry refresh cookie... "),yield this.refreshCookie()):(t.Platform.isDesktopApp?new t.Notice("微信读书未登录或者用户异常,请在设置中重新登录!"):new t.Notice("微信读书未登录或者用户异常,请在电脑端重新登录!"),console.log("微信读书未登录或者用户异常,请重新登录, http status code:",n.json.errcode),t.Platform.isDesktopApp?f.actions.clearCookies():f.actions.markCookiesInvalid()):-2012==n.json.errcode&&(console.log("weread cookie expire retry refresh cookie... "),yield this.refreshCookie());const o=n.headers["set-cookie"]||n.headers["Set-Cookie"];void 0!==o&&this.updateCookies(o),e=n.json.books}catch(e){401==e.status&&(console.log(`parse request to cURL for debug: ${this.parseToCurl(r)}`),yield this.refreshCookie())}return e})}parseToCurl(e){const t=["curl"];t.push(e.url);const r=e.headers||{};return Object.keys(r).forEach(e=>{t.push("-H"),t.push(this.escapeStringPosix(e.replace(/^:/,"")+": "+r[e]))}),t.push(" --compressed"),t.join(" ")}escapeStringPosix(e){return/[^\x20-\x7E]|'/.test(e)?"$'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[^\x20-\x7E]/g,function(e){const t=e.charCodeAt(0);if(t<256)return t<16?"\\x0"+t.toString(16):"\\x"+t.toString(16);const r=t.toString(16);return"\\u"+("0000"+r).slice(r.length,r.length+4)})+"'":"'"+e+"'"}getBook(r){return e(this,void 0,void 0,function*(){try{const e={url:`${this.baseUrl}/web/book/info?bookId=${r}`,method:"GET",headers:this.getHeaders()},n=yield(0,t.requestUrl)(e);return-2012==n.json.errCode&&(console.log("weread cookie expire retry refresh cookie... "),yield this.refreshCookie()),n.json}catch(e){console.error("get book detail error",e)}})}getNotebookHighlights(r){return e(this,void 0,void 0,function*(){try{const e={url:`${this.baseUrl}/web/book/bookmarklist?bookId=${r}`,method:"GET",headers:this.getHeaders()};return(yield(0,t.requestUrl)(e)).json}catch(e){console.error("get book highlight error"+r,e)}})}getNotebookReviews(r){return e(this,void 0,void 0,function*(){try{const e={url:`${this.baseUrl}/web/review/list?bookId=${r}&listType=11&mine=1&synckey=0`,method:"GET",headers:this.getHeaders()};return(yield(0,t.requestUrl)(e)).json}catch(e){new t.Notice("Failed to fetch weread notebook reviews . Please check your Cookies and try again."),console.error("get book review error"+r,e)}})}getChapters(r){return e(this,void 0,void 0,function*(){try{const e=`${this.baseUrl}/web/book/chapterInfos`,n={bookIds:[r]},o={url:e,method:"POST",headers:this.getHeaders(),body:JSON.stringify(n)};return(yield(0,t.requestUrl)(o)).json}catch(e){new t.Notice("Failed to fetch weread notebook chapters . Please check your Cookies and try again."),console.error("get book chapters error"+r,e)}})}getProgress(r){return e(this,void 0,void 0,function*(){try{const e={url:`${this.baseUrl}/web/book/getProgress?bookId=${r}`,method:"GET",headers:this.getHeaders()};return(yield(0,t.requestUrl)(e)).json}catch(e){new t.Notice("获取微信读书阅读进度信息失败,请检查您的 Cookies 并重试。"),console.error("get book progress error for bookId: "+r,e)}})}getBookReadInfo(r){return e(this,void 0,void 0,function*(){try{const e={url:`${this.baseUrl}/web/book/readinfo?bookId=${r}&readingDetail=1&readingBookIndex=1&finishedDate=1`,method:"GET",headers:this.getHeaders()};return(yield(0,t.requestUrl)(e)).json}catch(e){new t.Notice("Failed to fetch weread notebook read info . Please check your Cookies and try again."),console.error("get book read info error"+r,e)}})}updateCookies(e){let t;if(Array.isArray(e))t=(0,F.parse)(e);else{const r=(0,F.splitCookiesString)(e);t=(0,F.parse)(r)}const r=l(f).cookies;r.forEach(e=>{const r=t.find(t=>t.name==e.name);r&&(e.value=r.value)}),f.actions.setCookies(r)}fetchAndSaveApiKey(){return e(this,void 0,void 0,function*(){var e;try{const r={url:`${this.baseUrl}/api/skills/apikeyGet`,method:"GET",headers:this.getHeaders()},n=yield(0,t.requestUrl)(r);return console.log("[weread plugin] /api/skills/apikeyGet 完整响应:",JSON.stringify(n.json)),(null===(e=n.json)||void 0===e?void 0:e.apikey)?(console.log("[weread plugin] 自动获取/创建 API Key 成功"),f.actions.setWereadApiKey(n.json.apikey),{apikey:n.json.apikey,expireTime:n.json.expireTime,lastUsedTime:n.json.lastUsedTime,createdAt:n.json.created_at,lastUsedAt:n.json.last_used_at}):(console.warn("[weread plugin] fetchAndSaveApiKey 获取失败:响应中没有 apikey"),null)}catch(e){return console.error("[weread plugin] fetchAndSaveApiKey 网络/服务异常:",e),new t.Notice("⚠️ API Key 自动获取失败,请前往以下链接手动获取并在设置中填写:https://weread.qq.com/r/weread-skills"),null}})}callAgentGateway(r){return e(this,arguments,void 0,function*(e,r={}){var n;const o=l(f).wereadApiKey;if(o)try{const i=Object.assign({api_name:e,skill_version:"1.0.3"},r),a={url:"https://i.weread.qq.com/api/agent/gateway",method:"POST",headers:{Authorization:`Bearer ${o}`,"Content-Type":"application/json"},body:JSON.stringify(i)},s=yield(0,t.requestUrl)(a);return(null===(n=s.json)||void 0===n?void 0:n.errcode)&&0!==s.json.errcode?void console.error(`[weread plugin] Agent API error: ${s.json.errmsg}`):s.json}catch(t){return void console.error(`[weread plugin] Agent API call failed: ${e}`,t)}else new t.Notice("未配置微信读书 API Key,请在设置中填写")})}getUserInfo(r){return e(this,void 0,void 0,function*(){try{return(yield(0,t.requestUrl)({url:`https://weread.qq.com/web/user?userVid=${r}`,method:"GET",headers:this.getHeaders()})).json}catch(e){return void console.warn("[weread] getUserInfo failed",e)}})}getReadingStats(t,r){return e(this,void 0,void 0,function*(){const e={mode:t};return void 0!==r&&(e.baseTime=r),this.callAgentGateway("/readdata/detail",e)})}}const U=class{constructor(){this.gatewayUrl="https://i.weread.qq.com/api/agent/gateway"}callAgent(r){return e(this,arguments,void 0,function*(e,r={}){var n;const o=l(f);if(!o.wereadApiKey)return void console.error("API Key 未配置,请在设置中填写。");const i={url:this.gatewayUrl,method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.wereadApiKey}`},body:JSON.stringify(Object.assign({api_name:e,skill_version:"1.0.3"},r))};try{const e=yield(0,t.requestUrl)(i);return(null===(n=e.json)||void 0===n?void 0:n.errcode)&&0!==e.json.errcode?void console.error(`Agent API 错误: ${e.json.errmsg}`):e.json}catch(t){return void console.error(`Agent API 调用失败: ${e}`,t)}})}getBook(t){return e(this,void 0,void 0,function*(){return this.callAgent("/book/info",{bookId:t})})}getNotebookHighlights(t){return e(this,void 0,void 0,function*(){return this.callAgent("/book/bookmarklist",{bookId:t})})}getProgress(t){return e(this,void 0,void 0,function*(){return this.callAgent("/book/getprogress",{bookId:t})})}getReadingStats(t,r){return e(this,void 0,void 0,function*(){const e={mode:t};return void 0!==r&&(e.baseTime=r),this.callAgent("/readdata/detail",e)})}getChapters(t){return e(this,void 0,void 0,function*(){const e=yield this.callAgent("/book/chapterinfo",{bookId:t});if(e)return{data:[{bookId:e.bookId,chapterUpdateTime:e.chapterUpdateTime,updated:e.chapters}]}})}getNotebookReviews(t){return e(this,void 0,void 0,function*(){return this.callAgent("/review/list/mine",{bookid:t,synckey:0})})}getBestBookmarks(t){return e(this,arguments,void 0,function*(e,t=0){return this.callAgent("/book/bestbookmarks",{bookId:e,chapterUid:t})})}getPublicReviews(t){return e(this,void 0,void 0,function*(){return this.callAgent("/review/list",{bookId:t,reviewListType:0,count:30})})}getUserInfo(t){return e(this,void 0,void 0,function*(){return this.callAgent("/user/info",{userVid:t})})}getCurrentUser(){return e(this,void 0,void 0,function*(){var e,t,r,n;const o=yield this.callAgent("/_list");if(!(null===(e=null==o?void 0:o.books)||void 0===e?void 0:e.length))return void console.warn("[weread plugin] getCurrentUser: 书架为空");const i=o.books.slice(0,10);for(const e of i){const o=yield this.callAgent("/review/list/mine",{bookid:e.bookId,count:1});if(null===(t=null==o?void 0:o.reviews)||void 0===t?void 0:t.length){const e=null===(n=null===(r=o.reviews[0])||void 0===r?void 0:r.review)||void 0===n?void 0:n.author;if(null==e?void 0:e.name)return e}}console.warn("[weread plugin] getCurrentUser: 前 10 本书均无评论")})}validateApiKey(){return e(this,void 0,void 0,function*(){const e=yield this.callAgent("/_list");return{valid:void 0===(null==e?void 0:e.errcode)||0===(null==e?void 0:e.errcode)}})}getNotebooks(){return e(this,void 0,void 0,function*(){let e,t=[];do{const r={count:300};void 0!==e&&(r.lastSort=e);const n=yield this.callAgent("/user/notebooks",r);if(!(null==n?void 0:n.books))break;if(t=t.concat(n.books),1!==n.hasMore)break;const o=n.books[n.books.length-1];e=null==o?void 0:o.sort}while(void 0!==e);return{books:t}})}},H=class{constructor(){this.v1Manager=new $,this.v2Manager=new U}useV2(){const e=l(f);return Boolean(e.wereadApiKey)}isArticleBook(e){return l(f),!1}getBook(t){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getBook(t);if(e)return e}catch(e){console.warn("V2 getBook 调用失败,回退到 V1",e)}return this.v1Manager.getBook(t)})}getNotebookHighlights(t){return e(this,arguments,void 0,function*(e,t=!1){if(t)return console.log("[weread plugin] 公众号类型,强制使用 V1 接口获取划线"),this.v1Manager.getNotebookHighlights(e);if(this.useV2())try{const t=yield this.v2Manager.getNotebookHighlights(e);if(t)return t}catch(e){console.warn("V2 getNotebookHighlights 调用失败,回退到 V1",e)}return this.v1Manager.getNotebookHighlights(e)})}getNotebookReviews(t){return e(this,arguments,void 0,function*(e,t=!1){if(t)return console.log("[weread plugin] 公众号类型,强制使用 V1 接口获取笔记"),this.v1Manager.getNotebookReviews(e);if(this.useV2())try{const t=yield this.v2Manager.getNotebookReviews(e);if(t)return t}catch(e){console.warn("V2 getNotebookReviews 调用失败,回退到 V1",e)}return this.v1Manager.getNotebookReviews(e)})}getChapters(t){return e(this,arguments,void 0,function*(e,t=!1){if(t)return console.log("[weread plugin] 公众号类型,强制使用 V1 接口获取章节"),this.v1Manager.getChapters(e);if(this.useV2())try{const t=yield this.v2Manager.getChapters(e);if(t)return t}catch(e){console.warn("V2 getChapters 调用失败,回退到 V1",e)}return this.v1Manager.getChapters(e)})}getProgress(t){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getProgress(t);if(e)return e}catch(e){console.warn("V2 getProgress 调用失败,回退到 V1",e)}return this.v1Manager.getProgress(t)})}getBookReadInfo(t){return e(this,void 0,void 0,function*(){return this.v1Manager.getBookReadInfo(t)})}getReadingStats(t,r){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getReadingStats(t,r);if(e)return e}catch(e){console.warn("V2 getReadingStats 调用失败,回退到 V1",e)}return this.v1Manager.getReadingStats(t,r)})}getUserInfo(t){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getUserInfo(t);if(e)return e}catch(e){console.warn("V2 getUserInfo 调用失败,回退到 V1",e)}return this.v1Manager.getUserInfo(t)})}getCurrentUser(){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getCurrentUser();if(e)return e}catch(e){console.warn("V2 getCurrentUser 调用失败",e)}})}getBestBookmarks(t,r){return e(this,void 0,void 0,function*(){if(this.useV2())try{return yield this.v2Manager.getBestBookmarks(t,r)}catch(e){console.warn("V2 getBestBookmarks 调用失败",e)}})}getBestBookmarksBatch(t,r){return e(this,arguments,void 0,function*(t,r,n=5){const o=new Map;for(let i=0;i<r.length;i+=n){const a=r.slice(i,i+n).map(r=>e(this,void 0,void 0,function*(){var e;try{const n=yield this.getBestBookmarks(t,r);return{chapterUid:r,items:null!==(e=null==n?void 0:n.items)&&void 0!==e?e:[]}}catch(e){throw{chapterUid:r,error:e}}})),s=yield Promise.allSettled(a);for(const e of s)if("fulfilled"===e.status)o.set(e.value.chapterUid,e.value.items);else{const{chapterUid:t}=e.reason;console.warn(`[weread plugin] 获取章节热门划线失败: chapterUid=${t}`,e.reason)}}return o})}getPublicReviews(t){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getPublicReviews(t);if(e)return e}catch(e){console.warn("V2 getPublicReviews 调用失败,回退到 V1",e)}})}getNotebooks(){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getNotebooks();if(null==e?void 0:e.books)return e.books}catch(e){console.warn("V2 getNotebooks 调用失败,回退到 V1",e)}return this.v1Manager.getNotebooks()})}getNotebooksWithRetry(){return e(this,void 0,void 0,function*(){if(this.useV2())try{const e=yield this.v2Manager.getNotebooks();if(null==e?void 0:e.books)return e.books}catch(e){console.warn("V2 getNotebooksWithRetry 调用失败,回退到 V1",e)}return this.v1Manager.getNotebooksWithRetry()})}refreshCookie(t){return e(this,void 0,void 0,function*(){return this.v1Manager.refreshCookie(t)})}fetchApiKey(){return e(this,void 0,void 0,function*(){return this.v1Manager.fetchAndSaveApiKey()})}validateApiKey(){return e(this,void 0,void 0,function*(){return this.useV2()?yield this.v2Manager.validateApiKey():{valid:yield this.v1Manager.verifyCookieValidity()}})}verifyCookieValidity(){return e(this,void 0,void 0,function*(){return this.v1Manager.verifyCookieValidity()})}callAgentGateway(t){return e(this,arguments,void 0,function*(e,t={}){return this.v1Manager.callAgentGateway(e,t)})}},V=/^(\d+(?:\.\d+)?)%?$/,z={state:"idle"};class K{constructor(e,t){this.fileManager=e,this.apiManager=t,this.progressCache=new Map}getBookshelfBooks(){return e(this,void 0,void 0,function*(){const[e,t]=yield Promise.all([this.apiManager.getNotebooksWithRetry(),this.fileManager.getNotebookFilesByBookId()]),r=e.map(e=>C(e)),n=new Set(r.map(e=>e.bookId)),o=M(l(f));return[...r.map(e=>this.buildRemoteBook(e,t.get(e.bookId),o)),...Array.from(t.values()).filter(e=>void 0!==e.bookId&&!n.has(e.bookId)).map(e=>this.buildLocalOnlyBook(e))]})}loadProgressForBooks(t,r){return e(this,void 0,void 0,function*(){const n=Array.from(new Set(t)).filter(e=>{const t=this.progressCache.get(e);return void 0===t||"idle"===t.state||"error"===t.state});for(let t=0;t<n.length;t+=4){const o=n.slice(t,t+4);yield Promise.all(o.map(t=>e(this,void 0,void 0,function*(){const e={state:"loading"};this.progressCache.set(t,e),null==r||r(t,e);try{const e=yield this.apiManager.getProgress(t);if(!(null==e?void 0:e.book)){const e={state:"error",error:"读取进度失败"};return this.progressCache.set(t,e),void(null==r||r(t,e))}const n={state:"loaded",readingProgress:e.book.progress,readingProgressText:`${e.book.progress}%`,readingDate:e.book.startReadingTime,readingDateText:e.book.startReadingTime?y(e.book.startReadingTime):void 0,finishedDate:e.book.finishTime,finishedDateText:e.book.finishTime?y(e.book.finishTime):void 0,readingTime:e.book.readingTime};this.progressCache.set(t,n),null==r||r(t,n)}catch(e){const n={state:"error",error:e instanceof Error?e.message:"读取进度失败"};this.progressCache.set(t,n),null==r||r(t,n)}})))}})}getProgress(e,t){var r,n;return null!==(n=null!==(r=this.progressCache.get(e))&&void 0!==r?r:t)&&void 0!==n?n:z}clearProgressCache(e){e?this.progressCache.delete(e):this.progressCache.clear()}buildRemoteBook(e,t,r){return{bookId:e.bookId,title:e.title,author:e.author,cover:e.cover,noteCount:e.noteCount,reviewCount:e.reviewCount,lastReadDate:e.lastReadDate,isArticle:3===e.bookType,hasLocalFile:Boolean(t),localFile:t,remoteExists:!0,isLocalOnly:!1,syncFilter:P(e,r),progress:this.getProgress(e.bookId,this.getLocalFallbackProgress(t))}}buildLocalOnlyBook(e){var t,r,n;return{bookId:e.bookId,title:null!==(t=e.title)&&void 0!==t?t:e.file.basename,author:null!==(r=e.author)&&void 0!==r?r:"未知作者",cover:e.cover,noteCount:e.noteCount,reviewCount:e.reviewCount,lastReadDate:null!==(n=e.readingDate)&&void 0!==n?n:e.finishedDate,isArticle:!1,hasLocalFile:!0,localFile:e,remoteExists:!1,isLocalOnly:!0,progress:this.getProgress(e.bookId,this.getLocalFallbackProgress(e))}}getLocalFallbackProgress(e){var t;if(!e)return;const r=this.parseProgressValue(e.progress);return void 0!==r||void 0!==e.readingDate||void 0!==e.finishedDate?{state:"loaded",readingProgress:r,readingProgressText:null!==(t=e.progress)&&void 0!==t?t:void 0===r?void 0:`${r}%`,readingDateText:e.readingDate,finishedDateText:e.finishedDate}:void 0}parseProgressValue(e){if(null==e)return;if("number"==typeof e)return Number.isNaN(e)?void 0:e;const t=e.trim().match(V);if(!t)return;const r=Number.parseFloat(t[1]);return Number.isNaN(r)?void 0:r}}function Y(e){const t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0&&r>0?`${t}小时${r}分钟`:t>0?`${t}小时`:`${r}分钟`}const G=["6时","7时","8时","9时","10时","11时","12时","13时","14时","15时","16时","17时","18时","19时","20时","21时","22时","23时","0时","1时","2时","3时","4时","5时"];function W(e,t,r=20){const n=Math.max(...e,1);return e.map((e,o)=>{const i=Math.round(e/n*r),a="█".repeat(i)+"░".repeat(r-i);return`${t[o].padEnd(4," ")} ${a} ${Y(e)}`}).join("\n")}class J{constructor(e,t){this.vault=e,this.apiManager=t}sync(){return e(this,void 0,void 0,function*(){const e=l(f);if(!e.wereadApiKey)return void new t.Notice("请先在设置中填写微信读书 API Key(wrk-xxx)",5e3);const r=new t.Notice("正在获取阅读统计数据…",0);try{const n=new Date,o=n.getFullYear(),i=n.getMonth()+1,a=Math.floor(new Date(o,0,1).getTime()/1e3);r.setMessage("获取历史总计…");const s=yield this.apiManager.getReadingStats("overall");if(!s)return r.hide(),void new t.Notice("获取阅读统计失败,请检查 API Key 是否正确",5e3);r.setMessage(`获取 ${o} 年数据…`);const l=yield this.apiManager.getReadingStats("annually",a);if(!l)return r.hide(),void new t.Notice("获取年度统计失败",5e3);r.setMessage(`获取 ${o} 年 ${i} 月数据…`);const c=yield this.apiManager.getReadingStats("monthly");if(!c)return r.hide(),void new t.Notice("获取月度统计失败",5e3);r.setMessage("生成统计文档…");const d=function(e,t,r,n,o){var i,a,s,l,c,d,u,p,h;const f=new Date,g=[];g.push("---"),g.push("title: 微信读书 · 阅读统计"),g.push(`updated: ${f.toISOString().slice(0,10)}`),g.push("tags:"),g.push(" - 阅读统计"),g.push(" - 微信读书"),g.push("---"),g.push(""),g.push("# 📚 微信读书 · 阅读数据分析"),g.push(""),g.push(`> 最后更新:${f.toLocaleString("zh-CN",{hour12:!1})}`),g.push(""),g.push("## 📊 一、历年总览"),g.push("");const m=Y(e.totalReadTime),v=e.readDays;if(g.push("| 指标 | 数值 |"),g.push("|------|------|"),g.push(`| 注册时间 | ${e.registTime?function(e){if(!e)return"—";const t=new Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}(e.registTime):"—"} |`),g.push(`| 累计阅读时长 | ${m} |`),g.push(`| 累计阅读天数 | ${v} 天 |`),null===(i=e.readStat)||void 0===i?void 0:i.length)for(const t of e.readStat)g.push(`| ${t.stat} | ${t.counts} |`);if(g.push(""),e.readTimes&&Object.keys(e.readTimes).length>0){g.push("### 历年阅读时长"),g.push(""),g.push("| 年份 | 阅读时长 |"),g.push("|------|---------|");const t=Object.entries(e.readTimes).sort(([e],[t])=>Number(e)-Number(t));for(const[e,r]of t){const t=new Date(1e3*Number(e)).getFullYear();g.push(`| ${t} | ${Y(r)} |`)}g.push("")}if(g.push(`## 📅 二、${n} 年阅读概况`),g.push(""),g.push("| 指标 | 数值 |"),g.push("|------|------|"),g.push(`| 总阅读时长 | ${Y(t.totalReadTime)} |`),g.push(`| 阅读天数 | ${t.readDays} 天 |`),g.push(`| 日均时长 | ${Y(t.dayAverageReadTime)} |`),null===(a=t.readStat)||void 0===a?void 0:a.length)for(const e of t.readStat)g.push(`| ${e.stat} | ${e.counts} |`);if(g.push(""),t.readTimes&&Object.keys(t.readTimes).length>0){g.push(`### ${n} 年逐月阅读时长`),g.push("");const e=Object.entries(t.readTimes).sort(([e],[t])=>Number(e)-Number(t)),r=e.map(([,e])=>e),o=e.map(([e])=>`${new Date(1e3*Number(e)).getMonth()+1}月`);g.push("```"),g.push(W(r,o,24)),g.push("```"),g.push("")}if((null===(s=t.readLongest)||void 0===s?void 0:s.length)&&(g.push(`### ${n} 年阅读时长 TOP${t.readLongest.length}`),g.push(""),g.push("| # | 书名 | 作者 | 阅读时长 | 标签 |"),g.push("|---|------|------|---------|------|"),t.readLongest.forEach((e,t)=>{var r,n,o,i,a,s,l,c,d,u;const p=null!==(i=null!==(n=null===(r=e.book)||void 0===r?void 0:r.title)&&void 0!==n?n:null===(o=e.albumInfo)||void 0===o?void 0:o.name)&&void 0!==i?i:"—",h=null!==(c=null!==(s=null===(a=e.book)||void 0===a?void 0:a.author)&&void 0!==s?s:null===(l=e.albumInfo)||void 0===l?void 0:l.authorName)&&void 0!==c?c:"—",f=null!==(u=null===(d=e.tags)||void 0===d?void 0:d.join("、"))&&void 0!==u?u:"";g.push(`| ${t+1} | ${p} | ${h} | ${Y(e.readTime)} | ${f} |`)}),g.push("")),null===(l=t.preferCategory)||void 0===l?void 0:l.length){g.push(`### ${n} 年偏好分类`),g.push(""),g.push("| 分类 | 阅读本数 | 阅读时长 |"),g.push("|------|---------|---------|");for(const e of t.preferCategory)e.readingTime>0&&g.push(`| ${e.categoryTitle} | ${e.readingCount} 本 | ${Y(e.readingTime)} |`);g.push("")}if(null===(c=t.preferAuthor)||void 0===c?void 0:c.length){g.push(`### ${n} 年偏好作者`),g.push(""),g.push("| 作者 | 阅读本数 | 阅读时长 |"),g.push("|------|---------|---------|");for(const e of t.preferAuthor)g.push(`| ${e.name} | ${e.count} 本 | ${e.readTime} |`);g.push("")}if(g.push(`## 🗓️ 三、${n} 年 ${o} 月阅读概况`),g.push(""),g.push("| 指标 | 数值 |"),g.push("|------|------|"),g.push(`| 本月阅读时长 | ${Y(r.totalReadTime)} |`),g.push(`| 阅读天数 | ${r.readDays} 天 |`),g.push(`| 日均时长 | ${Y(r.dayAverageReadTime)} |`),void 0!==r.compare){const e=function(e){if(null==e)return"";const t=Math.round(100*e);return t>=0?`↑${t}%`:`↓${Math.abs(t)}%`}(r.compare);e&&g.push(`| 与上月日均对比 | ${e} |`)}if(null===(d=r.readStat)||void 0===d?void 0:d.length)for(const e of r.readStat)g.push(`| ${e.stat} | ${e.counts} |`);if(g.push(""),r.readTimes&&Object.keys(r.readTimes).length>0){g.push(`### ${o} 月每日阅读时长`),g.push("");const e=Object.entries(r.readTimes).sort(([e],[t])=>Number(e)-Number(t)),t=e.map(([,e])=>e),n=e.map(([e])=>`${new Date(1e3*Number(e)).getDate()}日`);g.push("```"),g.push(W(t,n,20)),g.push("```"),g.push("")}if((null===(u=r.readLongest)||void 0===u?void 0:u.length)&&(g.push(`### ${o} 月阅读时长 TOP${r.readLongest.length}`),g.push(""),g.push("| # | 书名 | 作者 | 阅读时长 | 标签 |"),g.push("|---|------|------|---------|------|"),r.readLongest.forEach((e,t)=>{var r,n,o,i,a,s,l,c,d,u;const p=null!==(i=null!==(n=null===(r=e.book)||void 0===r?void 0:r.title)&&void 0!==n?n:null===(o=e.albumInfo)||void 0===o?void 0:o.name)&&void 0!==i?i:"—",h=null!==(c=null!==(s=null===(a=e.book)||void 0===a?void 0:a.author)&&void 0!==s?s:null===(l=e.albumInfo)||void 0===l?void 0:l.authorName)&&void 0!==c?c:"—",f=null!==(u=null===(d=e.tags)||void 0===d?void 0:d.join("、"))&&void 0!==u?u:"";g.push(`| ${t+1} | ${p} | ${h} | ${Y(e.readTime)} | ${f} |`)}),g.push("")),null===(p=r.preferCategory)||void 0===p?void 0:p.length){g.push(`### ${o} 月偏好分类`),g.push(""),g.push("| 分类 | 阅读本数 | 阅读时长 |"),g.push("|------|---------|---------|");for(const e of r.preferCategory)e.readingTime>0&&g.push(`| ${e.categoryTitle} | ${e.readingCount} 本 | ${Y(e.readingTime)} |`);g.push("")}return g.push("## 🎯 四、阅读偏好分析(年度)"),g.push(""),t.preferCategoryWord&&(g.push(`> ${t.preferCategoryWord}`),g.push("")),24===(null===(h=t.preferTime)||void 0===h?void 0:h.length)&&(g.push("### 阅读时段分布"),g.push(""),t.preferTimeWord&&(g.push(`> ${t.preferTimeWord}`),g.push("")),g.push("```"),g.push(W(t.preferTime,G,20)),g.push("```"),g.push("")),void 0!==t.readRate&&t.wrReadTime&&t.wrListenTime&&(g.push("### 阅读方式"),g.push(""),g.push("| 方式 | 时长 | 占比 |"),g.push("|------|------|------|"),g.push(`| 文字阅读 | ${Y(t.wrReadTime)} | ${t.readRate}% |`),g.push(`| 听书 | ${Y(t.wrListenTime)} | ${100-t.readRate}% |`),g.push("")),g.join("\n")}(s,l,c,o,i);yield this.saveFile(d,e.readingStatsLocation),r.hide(),new t.Notice("✅ 阅读统计已同步",4e3)}catch(e){r.hide(),new t.Notice("阅读统计同步失败,请查看控制台",5e3),console.error("[weread plugin] 阅读统计同步失败",e)}})}saveFile(t,r){return e(this,void 0,void 0,function*(){const e=r.endsWith("/")?r.slice(0,-1):r,n=""===e?"":e;n&&((yield this.vault.adapter.exists(n))||(yield this.vault.createFolder(n)));const o=n?`${n}/微信读书阅读统计.md`:"微信读书阅读统计.md";if(yield this.vault.adapter.exists(o)){const e=this.vault.getAbstractFileByPath(o);if(e)return void(yield this.vault.modify(e,t))}yield this.vault.create(o,t)})}}class X{constructor(t){this.isHandled=!1,this.settingTab=t;const{remote:n}=r(1288),{BrowserWindow:o}=n;this.modal=new o({parent:n.getCurrentWindow(),width:960,height:540,show:!1}),this.modal.once("ready-to-show",()=>{this.modal.setTitle("登录微信读书~"),this.modal.show()});const i=this.modal.webContents.session,a=()=>e(this,void 0,void 0,function*(){this.isHandled||(yield this.syncCookiesFromSession())&&(this.isHandled=!0,this.settingTab.display(),this.modal.close())});i.webRequest.onCompleted({urls:["https://weread.qq.com/api/auth/getLoginInfo?uid=*"]},e=>{200==e.statusCode&&(console.log("weread login success, redirect to weread shelf"),this.modal.loadURL("https://weread.qq.com/web/shelf"),a())}),i.webRequest.onSendHeaders({urls:["https://weread.qq.com/web/user?userVid=*"]},e=>{const r=e.requestHeaders.Cookie,n=q(r),o=n.find(e=>"wr_name"==e.name),i=n.find(e=>"wr_vid"==e.name);o&&""!==o.value||i&&""!==i.value?(f.actions.setCookies(n),t.display(),this.isHandled=!0,this.modal.close()):this.modal.reload()}),this.modal.webContents.on("did-navigate",()=>{a()}),this.modal.webContents.on("did-navigate-in-page",()=>{a()}),this.modal.webContents.on("did-finish-load",()=>{a()})}doLogin(){return e(this,void 0,void 0,function*(){try{yield this.modal.loadURL("https://weread.qq.com/#login"),yield this.syncCookiesFromSession()}catch(e){console.log(e),new t.Notice("加载微信读书登录页面失败")}})}syncCookiesFromSession(){return e(this,void 0,void 0,function*(){try{const e=this.modal.webContents.session.cookies,t=[...yield e.get({domain:".weread.qq.com"}),...yield e.get({domain:"weread.qq.com"})],r=new Map;for(const e of t)r.has(e.name)||r.set(e.name,{name:decodeURIComponent(e.name),value:decodeURIComponent(e.value)});const n=Array.from(r.values());if(0===n.length)return!1;const o=n.find(e=>"wr_vid"===e.name),i=n.find(e=>"wr_name"===e.name),a=n.find(e=>"wr_skey"===e.name);if(!o||!(i&&""!==i.value||a&&""!==a.value))return!1;f.actions.setCookies(n);const s=new $;return!!(yield s.verifyCookieValidity())}catch(e){return console.error("[weread plugin] 从登录窗口同步 Cookie 失败",e),!1}})}onClose(){this.modal.close()}}class Z extends t.Modal{constructor(e,t){super(e),this.settingTab=t,this.serverUrl="",this.uuid="",this.password="",this.cookieCloudManager=new j,this.wereadSettingsTab=t,this.loadConfigFromSettings()}loadConfigFromSettings(){const e=l(f).cookieCloudInfo;e&&(this.serverUrl=e.serverUrl,this.uuid=e.uuid,this.password=e.password)}onOpen(){const{contentEl:e}=this;e.addClass("cookie-cloud-modal"),new t.Setting(e).setHeading().setName("CookieCloud 配置"),new t.Setting(e).setName("服务器地址").addText(e=>e.setPlaceholder("请输入内容").setValue(this.serverUrl).onChange(e=>{this.serverUrl=e})),new t.Setting(e).setName("用户KEY").addText(e=>e.setPlaceholder("请输入内容").setValue(this.uuid).onChange(e=>{this.uuid=e})),new t.Setting(e).setName("端对端加密密码").addText(e=>e.setPlaceholder("请输入内容").setValue(this.password).onChange(e=>{this.password=e})),new t.Setting(e).addButton(e=>e.setButtonText("确定").setCta().onClick(()=>{this.onSubmit()}))}onSubmit(){this.serverUrl?this.uuid?this.password?(f.actions.setCookieCloudInfo({serverUrl:this.serverUrl,uuid:this.uuid,password:this.password}),new t.Notice("清除 Cookie"),f.actions.clearCookies(),this.cookieCloudManager.getCookie().then(t=>e(this,void 0,void 0,function*(){t&&(this.wereadSettingsTab.display(),this.close())}))):new t.Notice("请输入端对端加密密码"):new t.Notice("请输入用户KEY"):new t.Notice("请输入服务器地址")}onClose(){const{contentEl:e}=this;e.empty()}}class Q extends t.Modal{constructor(e,t,r,n,o=!1,i){super(e),this.debounceTimer=null,this.isMarkdownRendered=!1,this.initialTemplate=t,this.onSave=r,this.renderer=new m,this.trimBlocks=null!=n?n:l(f).trimBlocks,this.readOnly=o,this.themeName=null!=i?i:""}shouldCloseOnEsc(){return!1}onOpen(){const{contentEl:e,modalEl:t}=this;t.addEventListener("click",e=>{e.target===t&&e.stopPropagation()}),t.addClass("weread-template-editor-modal"),t.style.width="95vw",t.style.height="90vh",t.style.maxWidth="95vw",t.style.maxHeight="90vh";const r=e.createDiv("weread-editor-titlebar");r.createEl("h2",{text:this.readOnly?`预览: ${this.themeName}`:`编辑: ${this.themeName}`});const n=r.createDiv("weread-editor-buttons");n.createEl("button",{text:"关闭",cls:"mod-cancel"}).onclick=()=>this.handleCancel(),this.readOnly||(n.createEl("button",{text:"保存",cls:"mod-cta"}).onclick=()=>this.handleSave());const o=e.createDiv("weread-editor-container");this.readOnly||(o.createDiv("weread-editor-instructions").innerHTML='<a href="https://github.com/zhaohongxuan/obsidian-weread-plugin/wiki/Weread-obsidian-plugin-markdown-template-usage">模板使用说明</a>\n\n<h3>功能开关</h3>\n<p><strong>✂️ 自动去空白:</strong>开启后会自动移除模板标签({% %})前后的换行和空格,让你可以用缩进写出更易读的模板代码。</p>\n<p><strong>📝 Markdown渲染:</strong>开启后右侧预览会渲染为格式化的 Markdown,关闭则显示原始文本。</p>\n\n<h3>Filter 过滤器</h3>\n<p>时间戳字段(readInfo 中的 readingBookDate、finishedDate 等)为秒级时间戳,可使用以下过滤器转换为可读格式:</p>\n<ul>\n <li><span class="u-pop">timestamp | formatDate</span> → <code>2020-01-29</code><br/>格式:YYYY-MM-DD,可传入自定义格式</li>\n <li><span class="u-pop">timestamp | formatDateTime</span> → <code>2020-01-29 08:00:00</code><br/>格式:YYYY-MM-DD HH:mm:ss,可传入自定义格式</li>\n <li><span class="u-pop">timestamp | formatTime</span> → <code>08:00:00</code><br/>格式:HH:mm:ss,可传入自定义格式</li>\n</ul>\n<p><strong>示例:</strong></p>\n<pre>{{ finishedDate | formatDate }}\n{{ finishedDate | formatDateTime }}\n{{ finishedDate | formatDate("YYYY年MM月DD日") }}\n{{ readingBookDate | formatDateTime("YYYY/MM/DD HH:mm") }}</pre>\n\n<h2>可用变量</h2>\n元数据变量(metaData)\n<ul>\n <li><span class="u-pop">{{title}}</span> - 书名</li>\n <li><span class="u-pop">{{author}}</span> - 作者</li>\n <li><span class="u-pop">{{cover}}</span> - 封面</li>\n <li><span class="u-pop">{{intro}}</span> - 书籍简介</li>\n <li><span class="u-pop">{{bookId}}</span> - 微信图书ID </li>\n <li><span class="u-pop">{{publishTime}}</span> - 出版时间</li>\n <li><span class="u-pop">{{totalWords}}</span> - 书籍字数</li>\n <li><span class="u-pop">{{noteCount}}</span> - 划线数量</li>\n <li><span class="u-pop">{{reviewCount}}</span> - 笔记数量</li>\n <li><span class="u-pop">{{isbn}}</span> - ISBN</li>\n <li><span class="u-pop">{{category}}</span> - 分类</li>\n <li><span class="u-pop">{{publisher}}</span> - 出版社</li>\n <li><span class="u-pop">{{readInfo}}</span> - 阅读信息, 点击查看详情</li>\n</ul>\nreadInfo 阅读信息\n<ul>\n <li><span class="u-pop">{{readingTime}}</span> - 阅读时长(秒)</li>\n <li><span class="u-pop">{{totalReadDay}}</span> - 总阅读天数</li>\n <li><span class="u-pop">{{continueReadDays}}</span> - 连续阅读天数</li>\n <li><span class="u-pop">{{readingBookCount}}</span> - 阅读书籍数</li>\n <li><span class="u-pop">{{readingBookDate}}</span> - 开始阅读时间(时间戳)</li>\n <li><span class="u-pop">{{finishedDate}}</span> - 完成阅读时间(时间戳)</li>\n <li><span class="u-pop">{{readingProgress}}</span> - 阅读进度</li>\n</ul>\n划线变量(chapterHighlights)\n<ul>\n <li><span class="u-pop">{{chapterUid}}</span> - 章节ID</li>\n <li><span class="u-pop">{{chapterTitle}}</span> - 章节标题</li>\n <li><span class="u-pop">{{createTime}}</span> - 创建时间</li>\n <li><span class="u-pop">{{range}}</span> - 划线范围</li>\n <li><span class="u-pop">{{markText}}</span> - 划线文本</li>\n</ul>\n笔记(bookReview)\n<ul>\n <li><span class="u-pop">{{reviewId}}</span> - reviewId</li>\n <li><span class="u-pop">{{chapterUid}}</span> - 章节ID</li>\n <li><span class="u-pop">{{chapterTitle}}</span> - 章节标题</li>\n <li><span class="u-pop">{{createTime}}</span> - 创建时间</li>\n <li><span class="u-pop">{{abstract}}</span> - 摘录内容</li>\n <li><span class="u-pop">{{content}}</span> - 笔记内容</li>\n <li><span class="u-pop">{{mdContent}}</span> - markdown笔记格式</li>\n <li><span class="u-pop">{{type}}</span> - 类型</li>\n <li><span class="u-pop">{{range}}</span> - 范围</li>\n</ul>\n');const i=o.createDiv("weread-editor-panel");i.createDiv({text:this.readOnly?"模板内容":"模板编辑 (Nunjucks)",cls:"panel-header"}),this.editorEl=i.createEl("textarea",{cls:"weread-editor-textarea"}),this.editorEl.value=this.initialTemplate,this.readOnly&&(this.editorEl.disabled=!0,this.editorEl.style.backgroundColor="var(--background-secondary)",this.editorEl.style.cursor="default");const a=o.createDiv("weread-editor-preview"),s=a.createDiv("panel-header");s.createSpan({text:"实时预览"});const l=s.createDiv("weread-toggle-container"),c=l.createDiv("weread-toggle-wrapper");c.createSpan({text:"✂️ 自动去空白",cls:"weread-toggle-label"});const d=c.createDiv("weread-toggle-switch");this.trimBlocks&&d.addClass("is-enabled"),this.readOnly?d.addClass("is-disabled"):d.addEventListener("click",()=>{this.trimBlocks=!this.trimBlocks,this.trimBlocks?d.addClass("is-enabled"):d.removeClass("is-enabled"),this.updatePreview()});const u=l.createDiv("weread-toggle-wrapper");u.createSpan({text:"🔥 热门划线",cls:"weread-toggle-label"});const p=u.createDiv("weread-toggle-switch");p.addClass("is-enabled"),p.addClass("is-disabled");const h=l.createDiv("weread-toggle-wrapper");h.createSpan({text:"📝 Markdown渲染",cls:"weread-toggle-label"});const f=h.createDiv("weread-toggle-switch");this.isMarkdownRendered&&f.addClass("is-enabled"),f.addEventListener("click",()=>{this.isMarkdownRendered=!this.isMarkdownRendered,this.isMarkdownRendered?f.addClass("is-enabled"):f.removeClass("is-enabled"),this.updatePreview()});const g=a.createDiv("preview-content");this.previewEl=g.createDiv({cls:"preview-text"}),this.errorEl=g.createDiv("error-message"),this.updatePreview(),this.editorEl.addEventListener("input",()=>{this.debounceTimer&&activeWindow.clearTimeout(this.debounceTimer),this.debounceTimer=activeWindow.setTimeout(()=>{this.updatePreview()},300)})}updatePreview(){if(this.previewEl&&this.errorEl)try{const e=this.editorEl.value,r=this.buildSampleNotebook(),n=this.renderer.renderWithTemplate(e,r,this.trimBlocks);if(this.previewEl.empty(),this.errorEl.removeClass("weread-error-visible"),this.errorEl.textContent="",!n||""===n.trim())return this.errorEl.addClass("weread-error-visible"),void(this.errorEl.textContent="⚠️ 渲染结果为空,请检查模板语法");this.isMarkdownRendered?(this.previewEl.addClass("markdown-preview-view"),this.previewEl.removeClass("preview-source-mode"),console.log("[weread preview] calling MarkdownRenderer with preview length:",n.length),t.MarkdownRenderer.renderMarkdown(n,this.previewEl,"",this),console.log("[weread preview] MarkdownRenderer completed, previewEl children:",this.previewEl.children.length)):(this.previewEl.removeClass("markdown-preview-view"),this.previewEl.addClass("preview-source-mode"),this.previewEl.createEl("pre").textContent=n)}catch(e){this.previewEl.empty(),this.errorEl.addClass("weread-error-visible"),this.errorEl.textContent="❌ "+(e.message||String(e))}else console.warn("[weread preview] DOM elements not ready yet")}handleCancel(){(this.editorEl.value===this.initialTemplate||confirm("模板已修改但未保存,确定要关闭吗?"))&&this.close()}handleSave(){const e=this.editorEl.value;this.renderer.validate(e)?(this.onSave(e,this.trimBlocks),new t.Notice("模板已保存!"),this.close()):new t.Notice("模板语法错误,请检查后再保存!")}onClose(){const{contentEl:e}=this;e.empty(),this.debounceTimer&&activeWindow.clearTimeout(this.debounceTimer)}buildSampleNotebook(){return{metaData:{bookId:"651358",title:"中国哲学简史",author:"冯友兰",cover:"https://cdn.weread.qq.com/weread/cover/24/YueWen_651358/t7_YueWen_651358.jpg",url:"https://weread.qq.com/web/reader/9f832d8059f05e9f8657f05",pcUrl:"https://weread.qq.com/web/reader/9f832d8059f05e9f8657f05",bookType:1,publishTime:"2013-01-01",noteCount:11,reviewCount:11,isbn:"9787301215692",category:"哲学宗教-东方哲学",publisher:"北京大学出版社",intro:"《中国哲学简史》打通古今中外的相关知识,以宏观开阔的视野对中国哲学进行了深入浅出的、融会贯通的讲解。",lastReadDate:"2022-05-20",totalWords:45e4,rating:"9.2",readInfo:{readingTime:21720,totalReadDay:7,continueReadDays:5,readingBookCount:3,readingBookDate:1579929600,finishedDate:1580227200,readingProgress:100,markedStatus:1,finishedBookCount:12,finishedBookIndex:1}},chapterHighlights:[{chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",level:1,isMPChapter:0,highlights:[{bookmarkId:"651358-33-3905-3956",created:1580201316,createTime:"2020-01-28 16:41:50",chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",markText:"所以在西方,宗教与科学向来有冲突。科学前进一步,宗教就后退一步;在科学进展的面前,宗教的权威降低了。",style:0,colorStyle:1,range:"3905-3956",reviewContent:"以笛卡尔为代表的一批思想家为了打破教会黑暗的统治开始探究科学,所以科学的尽头是哲学完全正确"},{bookmarkId:"651358-33-938-962",created:1580041310,createTime:"2020-01-28 16:41:50",chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",markText:"我所说的哲学,就是对于人生的有系统的反思的思想。",style:0,colorStyle:2,range:"938-962",isPopular:!0,popularCount:7208,isUserHighlight:!0},{bookmarkId:"651358-33-1819-1919",created:1580052228,createTime:"2020-01-28 22:06:21",chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",markText:"宗教也和人生有关系。每种大宗教的核心都有一种哲学。事实上,每种大宗教就是一种哲学加上一定的上层建筑,包括迷信、教条、仪式和组织。这就是我所说的宗教。",style:0,colorStyle:1,range:"1819-1919",isPopular:!0,popularCount:7146,isUserHighlight:!0},{bookmarkId:"651358-33-8387-8441",created:1580048348,createTime:"2020-01-28 16:52:28",chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",markText:"学哲学的目的,是使人作为人能够成为人,而不是成为某种人。",style:0,colorStyle:3,range:"8387-8441",isPopular:!0,popularCount:7125,isUserHighlight:!0},{bookmarkId:"651358-33-4202-4275",created:158006e4,createTime:"2020-01-29 10:00:00",chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",markText:"在未来的世界,人类将要以哲学代宗教。这是与中国传统相合的。人不一定应当是宗教的,但是他一定应当是哲学的。他一旦是哲学的,他也就有了正是宗教的洪福。",style:0,colorStyle:1,range:"4202-4275",isPopular:!0,popularCount:2424,isUserHighlight:!1},{bookmarkId:"651358-33-9049-9090",created:15801e5,createTime:"2020-02-01 09:00:00",chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",markText:"富于暗示,而不是明晰得一览无遗,是一切中国艺术的理想,诗歌、绘画以及其他无不如此。",style:0,colorStyle:2,range:"9049-9090",isPopular:!0,popularCount:4081,isUserHighlight:!1}]},{chapterUid:34,chapterIdx:5,chapterTitle:"第二章 中国哲学的背景",level:1,isMPChapter:0,highlights:[{bookmarkId:"651358-34-2846-2942",created:1580105e3,createTime:"2020-02-01 12:00:00",chapterUid:34,chapterIdx:5,chapterTitle:"第二章 中国哲学的背景",markText:"在自然界和人类社会的任何事物,发展到了一个极端,就反向另一个极端;这就是说,借用黑格尔的说法,一切事物都包含着它自己的否定。这是老子哲学的主要论点之一,也是儒家所解释的《易经》的主要论点之一。",style:0,colorStyle:1,range:"2846-2942",isPopular:!0,popularCount:2608,isUserHighlight:!1},{bookmarkId:"651358-34-9546-9595",created:1580105e3,createTime:"2020-02-01 12:00:00",chapterUid:34,chapterIdx:5,chapterTitle:"第二章 中国哲学的背景",markText:"说西方侵略东方,这样说并不准确。事实上,正是现代侵略中世纪。要生存在现代世界里,中国就必须现代化。",style:0,colorStyle:2,range:"9546-9595",isPopular:!0,popularCount:4590,isUserHighlight:!1}]},{chapterUid:36,chapterIdx:7,chapterTitle:"第四章 孔子:第一位教师",level:1,isMPChapter:0,highlights:[{bookmarkId:"651358-36-5369-5420",created:1580105e3,createTime:"2020-02-01 12:00:00",chapterUid:36,chapterIdx:7,chapterTitle:"第四章 孔子:第一位教师",markText:'所以我们能够做的,莫过于一心一意地尽力去做我们知道是我们应该做的事,而不计成败。这样做,就是"知命"。',style:0,colorStyle:1,range:"5369-5420",isPopular:!0,popularCount:1950,isUserHighlight:!1}]},{chapterUid:60,chapterIdx:31,chapterTitle:"第二十八章 中国哲学在现代世界",level:1,isMPChapter:0,highlights:[{bookmarkId:"651358-60-8669-8685",created:1580272972,createTime:"2020-01-29 12:02:52",chapterUid:60,chapterIdx:31,chapterTitle:"第二十八章 中国哲学在现代世界",markText:"人必须先说很多话,然后保持静默。\n",style:0,colorStyle:2,range:"8669-8685",reviewContent:"太有哲学意味了🧐",isPopular:!0,popularCount:6048,isUserHighlight:!0}]}],popularHighlights:[{chapterUid:33,chapterIdx:4,chapterTitle:"第一章 中国哲学的精神",highlights:[{bookmarkId:"651358-33-938-962",chapterUid:33,chapterTitle:"第一章 中国哲学的精神",range:"938-962",markText:"我所说的哲学,就是对于人生的有系统的反思的思想。",totalCount:7208},{bookmarkId:"651358-33-1819-1919",chapterUid:33,chapterTitle:"第一章 中国哲学的精神",range:"1819-1919",markText:"宗教也和人生有关系。每种大宗教的核心都有一种哲学。事实上,每种大宗教就是一种哲学加上一定的上层建筑,包括迷信、教条、仪式和组织。这就是我所说的宗教。",totalCount:7146},{bookmarkId:"651358-33-8387-8441",chapterUid:33,chapterTitle:"第一章 中国哲学的精神",range:"8387-8441",markText:"学哲学的目的,是使人作为人能够成为人,而不是成为某种人。",totalCount:7125},{bookmarkId:"651358-33-9049-9090",chapterUid:33,chapterTitle:"第一章 中国哲学的精神",range:"9049-9090",markText:"富于暗示,而不是明晰得一览无遗,是一切中国艺术的理想,诗歌、绘画以及其他无不如此。",totalCount:4081},{bookmarkId:"651358-33-4202-4275",chapterUid:33,chapterTitle:"第一章 中国哲学的精神",range:"4202-4275",markText:"在未来的世界,人类将要以哲学代宗教。这是与中国传统相合的。人不一定应当是宗教的,但是他一定应当是哲学的。他一旦是哲学的,他也就有了正是宗教的洪福。",totalCount:2424}]},{chapterUid:34,chapterIdx:5,chapterTitle:"第二章 中国哲学的背景",highlights:[{bookmarkId:"651358-34-9546-9595",chapterUid:34,chapterTitle:"第二章 中国哲学的背景",range:"9546-9595",markText:"说西方侵略东方,这样说并不准确。事实上,正是现代侵略中世纪。要生存在现代世界里,中国就必须现代化。",totalCount:4590},{bookmarkId:"651358-34-2846-2942",chapterUid:34,chapterTitle:"第二章 中国哲学的背景",range:"2846-2942",markText:"在自然界和人类社会的任何事物,发展到了一个极端,就反向另一个极端;这就是说,借用黑格尔的说法,一切事物都包含着它自己的否定。这是老子哲学的主要论点之一,也是儒家所解释的《易经》的主要论点之一。",totalCount:2608}]},{chapterUid:60,chapterIdx:31,chapterTitle:"第二十八章 中国哲学在现代世界",highlights:[{bookmarkId:"651358-60-8669-8685",chapterUid:60,chapterTitle:"第二十八章 中国哲学在现代世界",range:"8669-8685",markText:"人必须先说很多话,然后保持静默。\n",totalCount:6048}]}],bookReview:{chapterReviews:[{chapterUid:33,chapterTitle:"第一章 中国哲学的精神",reviews:[{reviewId:"15707910-7eIktLxIX",created:1580201316,createTime:"2020-01-28 16:41:50",content:"以笛卡尔为代表的一批思想家为了打破教会黑暗的统治开始探究科学,所以科学的尽头是哲学完全正确",range:"3905-3956",type:1,abstract:"所以在西方,宗教与科学向来有冲突。科学前进一步,宗教就后退一步;在科学进展的面前,宗教的权威降低了。"}]},{chapterUid:60,chapterTitle:"第二十八章 中国哲学在现代世界",reviews:[{reviewId:"15707910-7eJATFNqj",created:1580273157,createTime:"2020-01-29 12:02:52",content:"太有哲学意味了🧐",range:"8669-8685",type:1,abstract:"人必须先说很多话,然后保持静默。\n"}]}],bookReviews:[{reviewId:"15707910-7eJErADUa",created:1580276407,createTime:"2020-01-29 13:00:00",content:"哲学的意义\n很多人说中国人没有信仰,在看完这位本书之后我有了很大改观,中国人不是没有信仰,只是没有像基督教、伊斯兰教宗教那样得信仰罢了,但是中国人有自己的哲学体系,这种哲学思想贯穿在整个中华文化,甚至于日常生活中。\n这本书的分量很重,从儒家的孔子孟子到道家的杨朱、老子、庄子,以及墨家的墨子,再到名家、法家阴阳家,再到后来得玄学、新道家、佛教、禅宗到最后的新儒家(理学和心学)等等,极大的开拓了眼界。\n最后用冯先生的一句话总结一下:人必须先说很多话,然后保持静默。",mdContent:"## 总体评价\n\n这是一部影响深远的哲学经典著作,适合所有想要了解中国传统思想的读者。",type:4}]}}}}class ee extends t.Modal{constructor(e){super(e)}onOpen(){const{contentEl:r,modalEl:n}=this;r.empty(),n.classList.add("weread-theme-manager-modal"),n.style.width="80vw",n.style.maxWidth="800px",n.style.height="70vh",n.style.maxHeight="70vh";const o=r.createDiv("theme-manager-header");o.createDiv("theme-manager-title").createEl("h2",{text:"主题管理"}),o.createEl("button",{text:"+ 新增主题",cls:"theme-btn mod-cta"}).onclick=()=>{new ne(this.app,()=>{this.onOpen()}).open()};const i=r.createDiv("theme-manager-list"),a=l(f),s=a.themes,c=a.activeThemeId;[...s].sort((e,t)=>e.id===c?-1:t.id===c?1:0).forEach(e=>{const r=e.id===c,n=i.createDiv("theme-card");r&&n.addClass("is-active");const o=n.createDiv("theme-card-header").createDiv("theme-title-group");o.createEl("h3",{text:e.name});const a=o.createSpan("theme-badge");"legacy"===e.source?(a.textContent="旧模板",a.addClass("badge-legacy")):e.isBuiltIn?(a.textContent="内置",a.addClass("badge-builtin")):e.isReadOnly?(a.textContent="社区",a.addClass("badge-community")):(a.textContent="自定义",a.addClass("badge-custom")),r&&(o.createSpan("theme-active-badge").textContent="✓ 使用中"),e.description&&n.createEl("p",{text:e.description,cls:"theme-description"}),e.author&&n.createEl("p",{text:`作者: ${e.author}`,cls:"theme-author"});const s=n.createDiv("theme-card-actions");r||(s.createEl("button",{text:"使用此主题",cls:"theme-btn"}).onclick=()=>{f.actions.setActiveTheme(e.id),new t.Notice(`已切换到: ${e.name}`),this.onOpen()}),s.createEl("button",{text:"预览",cls:"theme-btn"}).onclick=()=>{const t="legacy"===e.source||"legacy_template"===e.id?l(f).template:e.template;new Q(this.app,t,()=>{},e.trimBlocks,!0,e.name).open()},e.isReadOnly||(s.createEl("button",{text:"编辑",cls:"theme-btn"}).onclick=()=>{new Q(this.app,e.template,(r,n)=>{var o;const i=null!==(o=l(f).themes.find(t=>t.id===e.id))&&void 0!==o?o:e;f.actions.saveTheme(Object.assign(Object.assign({},i),{template:r,trimBlocks:n})),new t.Notice("主题已保存"),this.onOpen()},e.trimBlocks,!1,e.name).open()}),e.isBuiltIn||e.isReadOnly||(s.createEl("button",{text:"重命名",cls:"theme-btn"}).onclick=()=>{new te(this.app,e.name,r=>{r&&r.trim()&&r.trim()!==e.name&&(f.actions.saveTheme(Object.assign(Object.assign({},e),{name:r.trim()})),new t.Notice(`已重命名为: ${r.trim()}`),this.onOpen())}).open()}),(e.isBuiltIn||e.isReadOnly||"legacy"===e.source)&&(s.createEl("button",{text:"复制并自定义",cls:"theme-btn"}).onclick=()=>{const r=`${e.name} (副本)`;f.actions.duplicateTheme(e.id,r),new t.Notice(`已创建副本: ${r}`),this.onOpen()}),e.isBuiltIn||r||(s.createEl("button",{text:"删除",cls:"theme-btn mod-danger"}).onclick=()=>{confirm(`确定要删除 "${e.name}" 吗?`)&&("legacy"!==e.source&&"legacy_template"!==e.id||f.actions.clearLegacyTemplate(),f.actions.deleteTheme(e.id),new t.Notice("主题已删除"),this.onOpen())}),s.createEl("button",{text:"导出",cls:"theme-btn"}).onclick=()=>{var r,n,o;const i={manifest:{id:e.id,name:e.name,description:null!==(r=e.description)&&void 0!==r?r:"",author:null!==(n=e.author)&&void 0!==n?n:"user",version:null!==(o=e.version)&&void 0!==o?o:"1.0.0"},theme:{template:e.template,trimBlocks:e.trimBlocks}},a=new Blob([JSON.stringify(i,null,2)],{type:"application/json"}),s=URL.createObjectURL(a),l=document.createElement("a");l.href=s,l.download=`${e.name.replace(/\s+/g,"_")}_theme.json`,l.click(),URL.revokeObjectURL(s),new t.Notice("主题已导出")}});const d=r.createDiv("theme-import-section");d.createEl("h3",{text:"导入主题"}),d.createEl("p",{text:"从 JSON 文件或 URL 导入社区主题"});const u=d.createDiv("theme-import-buttons");u.createEl("button",{text:"选择文件",cls:"theme-btn mod-cta"}).onclick=()=>{const r=document.createElement("input");r.type="file",r.accept=".json",r.onchange=()=>e(this,void 0,void 0,function*(){var e,n;const o=null===(e=r.files)||void 0===e?void 0:e[0];if(o)try{const e=yield o.text(),r=JSON.parse(e);if(!r.manifest||!r.theme)return void new t.Notice("无效的主题文件格式");const i={id:`user_${Date.now()}`,name:r.manifest.name,description:r.manifest.description,template:r.theme.template,trimBlocks:null!==(n=r.theme.trimBlocks)&&void 0!==n&&n,isBuiltIn:!1,isReadOnly:!1,source:"custom",author:r.manifest.author,version:r.manifest.version};f.actions.saveTheme(i),f.actions.setActiveTheme(i.id),new t.Notice(`主题 "${i.name}" 导入成功`),this.onOpen()}catch(e){new t.Notice("导入失败: "+(e instanceof Error?e.message:String(e)))}}),r.click()},u.createEl("button",{text:"从 URL 导入",cls:"theme-btn"}).onclick=()=>{new re(this.app,e=>{f.actions.saveTheme(e),f.actions.setActiveTheme(e.id),new t.Notice(`主题 "${e.name}" 导入成功`),this.onOpen()}).open()},r.createDiv("theme-close-section").createEl("button",{text:"关闭",cls:"mod-cancel"}).onclick=()=>this.close()}onClose(){const{contentEl:e}=this;e.empty()}}class te extends t.Modal{constructor(e,t,r){super(e),this.currentName=t,this.onRename=r}onOpen(){const{contentEl:e,modalEl:r}=this;e.empty(),r.style.width="400px",e.createDiv("theme-rename-header").createEl("h3",{text:"重命名主题"});const n=e.createDiv("theme-rename-input"),o=new t.TextComponent(n);o.setValue(this.currentName),o.inputEl.style.width="100%",o.setPlaceholder("请输入新的主题名称");const i=e.createDiv("theme-rename-actions");i.createEl("button",{text:"取消",cls:"mod-cancel"}).onclick=()=>this.close(),i.createEl("button",{text:"确定",cls:"mod-cta"}).onclick=()=>{const e=o.getValue();this.onRename(e),this.close()}}onClose(){const{contentEl:e}=this;e.empty()}}class re extends t.Modal{constructor(e,t){super(e),this.onImport=t}onOpen(){const{contentEl:r,modalEl:n}=this;r.empty(),n.style.width="500px",r.createDiv("theme-import-url-header").createEl("h3",{text:"从 URL 导入主题"});const o=r.createDiv("theme-import-url-input"),i=new t.TextComponent(o);i.setValue(""),i.inputEl.style.width="100%",i.setPlaceholder("请输入主题 JSON 的 URL 地址");const a=r.createDiv("theme-import-url-actions");a.createEl("button",{text:"取消",cls:"mod-cancel"}).onclick=()=>this.close(),a.createEl("button",{text:"导入",cls:"mod-cta"}).onclick=()=>e(this,void 0,void 0,function*(){var e;const r=i.getValue().trim();if(r)try{new t.Notice("正在下载...");const n=yield fetch(r);if(!n.ok)throw new Error(`HTTP ${n.status}`);const o=yield n.text(),i=JSON.parse(o);if(!i.manifest||!i.theme)return void new t.Notice("无效的主题文件格式");const a={id:`user_${Date.now()}`,name:i.manifest.name,description:i.manifest.description,template:i.theme.template,trimBlocks:null!==(e=i.theme.trimBlocks)&&void 0!==e&&e,isBuiltIn:!1,isReadOnly:!1,source:"custom",author:i.manifest.author,version:i.manifest.version};this.onImport(a),this.close()}catch(e){new t.Notice("导入失败: "+(e instanceof Error?e.message:String(e)))}else new t.Notice("请输入 URL 地址")})}onClose(){const{contentEl:e}=this;e.empty()}}class ne extends t.Modal{constructor(e,t){super(e),this.onCreated=t}onOpen(){const{contentEl:e,modalEl:r}=this;e.empty(),r.style.width="600px",e.createDiv("theme-create-header").createEl("h3",{text:"新增主题"});const n=e.createDiv("theme-create-form"),o=n.createDiv("theme-create-row");o.createEl("label",{text:"主题名称",cls:"theme-create-label"});const i=new t.TextComponent(o);i.setValue(""),i.inputEl.style.flex="1",i.inputEl.style.width="100%",i.inputEl.style.boxSizing="border-box",i.setPlaceholder("请输入主题名称");const a=n.createDiv("theme-create-row");a.createEl("label",{text:"主题描述",cls:"theme-create-label"});const s=new t.TextComponent(a);s.setValue(""),s.inputEl.style.flex="1",s.inputEl.style.width="100%",s.inputEl.style.boxSizing="border-box",s.setPlaceholder("请输入主题描述(可选)");const c=n.createDiv("theme-create-actions");c.createEl("button",{text:"取消",cls:"mod-cancel"}).onclick=()=>this.close(),c.createEl("button",{text:"下一步",cls:"mod-cta"}).onclick=()=>{const e=i.getValue().trim();if(!e)return void new t.Notice("请输入主题名称");const r={id:`user_${Date.now()}`,name:e,description:s.getValue().trim(),template:"",trimBlocks:!1,isBuiltIn:!1,isReadOnly:!1,source:"custom"};f.actions.saveTheme(r),f.actions.setActiveTheme(r.id),this.close(),new Q(this.app,r.template,(e,n)=>{var o;const i=null!==(o=l(f).themes.find(e=>e.id===r.id))&&void 0!==o?o:r;f.actions.saveTheme(Object.assign(Object.assign({},i),{template:e,trimBlocks:n})),new t.Notice("主题已创建"),this.onCreated()},r.trimBlocks,!1,r.name).open()}}onClose(){const{contentEl:e}=this;e.empty()}}const oe=e=>"blacklist"===e?"黑名单模式":"白名单模式",ie=e=>{var t,r;return(null===(t=e.readInfo)||void 0===t?void 0:t.finishedDate)?`完成时间:${y(e.readInfo.finishedDate)}`:(null===(r=e.readInfo)||void 0===r?void 0:r.readingBookDate)?`最近阅读:${y(e.readInfo.readingBookDate)}`:e.lastReadDate?`最近阅读:${e.lastReadDate}`:"最近阅读:暂无"};class ae extends t.PluginSettingTab{constructor(e,t){super(e,t),this.selectableBooksCache=[],this.selectableBooksLoadingPromise=null,this.syncSettingsHeadingEl=null,this.plugin=t}display(){const{containerEl:e}=this;e.empty(),this.syncSettingsHeadingEl=null,e.createEl("h2",{text:"设置微信读书插件"}),this.preloadSelectableBooks(),this.showApiKeySetting(),this.notebookFolder(),this.bookshelfSettings(),this.syncModeSettings(),this.scheduledSync(),new t.Setting(this.containerEl).setName("文件设置").setHeading(),this.fileNameType(),this.removeParens(),this.filterInlineImages(),this.subFolderType(),new t.Setting(this.containerEl).setName("日记设置").setHeading(),this.dailyNotes(),l(f).dailyNotesToggle&&(this.dailyNotesFolder(),this.dailyNoteFormat(),this.insertAfter()),this.template(),this.readingStatsSettings(),t.Platform.isDesktopApp&&this.showDebugHelp()}showMobileLogin(){const e=this.containerEl.createDiv({cls:"weread-mobile-login-container"});e.createDiv({cls:"weread-mobile-login-text",text:"微信读书未登录"}),e.createDiv({cls:"weread-mobile-login-desc",text:"请先在电脑端登录"})}showMobileLogout(){const e=this.containerEl.createDiv(),t=l(f).userAvatar,r=l(f).user,n=l(f),o=n.isCookieValid,i=n.cookies&&n.cookies.length>0,a=n.lastCookieTime;let s;s=o?"✅ Cookie 有效":i?"⚠️ Cookie 已失效":"❌ 未登录",a>0&&(s+=`,上次刷新时间:${new Date(a).toLocaleString()}`);const c=e.createDiv({cls:"weread-user-info"});if(t){const e=c.createEl("img",{cls:"weread-user-avatar"});e.src=t,e.alt="用户头像"}c.createDiv({cls:"weread-user-name",text:`微信读书已登录,用户名:${r}`}),c.createDiv({cls:"weread-cookie-status",text:s})}getFolderPaths(){const e=this.app.vault.getAllLoadedFiles().filter(e=>e instanceof t.TFolder).map(e=>""===e.path?"/":e.path);return e.includes("/")||e.unshift("/"),Array.from(new Set(e)).sort()}notebookFolder(){let e=null;new t.Setting(this.containerEl).setName("笔记保存位置").setDesc("请选择Obsidian Vault中微信读书笔记存放的位置,例如:/ 或 Books/Weread").addText(t=>(e=t,t.setPlaceholder("例如:/ 或 Books/Weread").setValue(l(f).noteLocation).onChange(e=>{const t=""===e.trim()?"/":e.trim();f.actions.setNoteLocationFolder(t)}))).addButton(t=>t.setButtonText("选择").onClick(()=>{this.createFolderSuggestModal(t=>{const r=""===t.trim()?"/":t.trim();f.actions.setNoteLocationFolder(r),null==e||e.setValue(r)}).open()}))}bookOpenModeSetting(){new t.Setting(this.containerEl).setName("书架阅读入口").setDesc('点击书架"阅读此书"按钮及详情页阅读链接时,跳转到网页版还是 App').addDropdown(e=>{var t;return e.addOption("web","网页版").addOption("app","App(deeplink)").setValue(null!==(t=l(f).bookOpenMode)&&void 0!==t?t:"web").onChange(e=>{f.actions.setBookOpenMode(e)})})}readingOpenModeSetting(){new t.Setting(this.containerEl).setName("网页版打开方式").setDesc("控制书架中的”进入网页版”和详情页中的”打开网页版详情”默认在新标签页还是新窗口打开").addDropdown(e=>e.addOption("TAB","新标签页").addOption("WINDOW","新窗口").setValue(l(f).readingOpenMode).onChange(e=>{f.actions.setReadingOpenMode(e)}))}bookshelfSettings(){new t.Setting(this.containerEl).setName("书架设置").setHeading(),this.readingOpenModeSetting(),this.bookOpenModeSetting(),new t.Setting(this.containerEl).setName("书架排序方式").setDesc("控制书架中书籍的默认排序方式").addDropdown(e=>e.addOption("recent","时间排序").addOption("title","按标题排序").setValue(l(f).bookshelfSortMode).onChange(e=>{f.actions.setBookshelfSortMode(e)})),new t.Setting(this.containerEl).setName("按年份分组").setDesc("在时间排序时,按照阅读年份对书架进行分组展示").addToggle(e=>e.setValue(l(f).bookshelfGroupByYear).onChange(e=>{f.actions.setBookshelfGroupByYear(e)})),new t.Setting(this.containerEl).setName("默认书架状态").setDesc("初次打开书架时的默认筛选状态").addDropdown(e=>e.addOption("all","全部状态").addOption("synced","已同步").addOption("remoteOnly","仅远程").addOption("localOnly","仅本地").setValue(l(f).bookshelfDefaultSyncStatusFilter).onChange(e=>{f.actions.setBookshelfDefaultSyncStatusFilter(e)}))}syncModeSettings(){this.syncSettingsHeadingEl=this.containerEl.createEl("h3",{text:"同步设置"}),new t.Setting(this.containerEl).setName("同步模式").setDesc("切换后,下方会展示对应模式的书籍选择器。").addDropdown(e=>e.addOption("blacklist","黑名单模式").addOption("whitelist","白名单模式").setValue(l(f).syncMode).onChange(e=>{f.actions.setSyncMode(e),this.display()}));const e=l(f).syncMode;"blacklist"===e&&(this.saveArticleToggle(),this.noteCountLimit()),this.syncPopularHighlightsToggle(),this.renderSyncModeBookSelection(e)}scrollToSection(e){var t;"sync"===e&&(null===(t=this.syncSettingsHeadingEl)||void 0===t||t.scrollIntoView({behavior:"smooth",block:"start"}))}renderSyncModeBookSelection(r){const n=this.getSelectedBookIds(r),o="blacklist"===r?n.size>0?`当前已排除 ${n.size} 本书,同步时将跳过这些书籍`:"当前未排除任何书籍,同步时会处理全部书籍":n.size>0?`当前已选择 ${n.size} 本书,同步时仅处理这些书籍`:"当前未选择任何书籍,同步时不会处理任何书籍";new t.Setting(this.containerEl).setName(`${oe(r)}书籍`).setDesc(o).addButton(o=>o.setButtonText("选择书籍").setCta().onClick(()=>e(this,void 0,void 0,function*(){o.setDisabled(!0),o.setButtonText("加载中...");try{const e=yield this.fetchSelectableBooks();new le(this.app,e,r,{hideArticles:!l(f).saveArticleToggle,noteCountLimit:"blacklist"===r?l(f).noteCountLimit:-1},n,e=>{this.setSelectedBookIds(r,e),this.display()}).open()}catch(e){const r=e instanceof Error?e.message:"获取书籍列表失败,请稍后重试";new t.Notice(r)}finally{o.setDisabled(!1),o.setButtonText("选择书籍")}}))).addButton(e=>e.setButtonText("刷新书籍").onClick(()=>{this.selectableBooksCache=[],new t.Notice("已清空书籍缓存,请重新打开选择器获取最新列表"),this.preloadSelectableBooks(),this.display()})).addButton(e=>e.setButtonText("清空").onClick(()=>{this.setSelectedBookIds(r,[]),this.display()})),n.size>0&&this.renderSyncModePreview(r,n)}getSelectedBookIds(e){const t=l(f);return I("blacklist"===e?t.notesBlacklist:t.notesWhitelist)}setSelectedBookIds(e,t){const r=t.join(",");"blacklist"!==e?f.actions.setNotesWhitelist(r):f.actions.setNoteBlacklist(r)}preloadSelectableBooks(){const e=l(f);if(this.selectableBooksCache.length>0||this.selectableBooksLoadingPromise)return;const t=Boolean(e.wereadApiKey);(e.isCookieValid&&e.cookies.length>0||t)&&(this.selectableBooksLoadingPromise=this.fetchSelectableBooks().then(()=>{this.containerEl.isConnected&&this.display()}).catch(e=>{console.debug("[weread plugin] preload selectable books failed",e)}).finally(()=>{this.selectableBooksLoadingPromise=null}))}showLogin(){const t=this.containerEl.createDiv({cls:"weread-login-action"}),r=t.createDiv({cls:"weread-login-text-info"});r.createDiv({cls:"weread-login-title",text:"微信读书未登录"});const n=document.createRange().createContextualFragment("点击【登录】按钮,在弹出页面【扫码登录】");r.createDiv({cls:"weread-login-desc-inline"}).appendChild(n);const o=t.createEl("button",{cls:"weread-action-button weread-login-btn",text:"登录"});o.addEventListener("click",()=>e(this,void 0,void 0,function*(){o.disabled=!0;const e=new X(this);yield e.doLogin(),this.display()}))}saveArticleToggle(){const e=l(f),r=e.isCookieValid&&e.cookies.length>0,n=Boolean(e.wereadApiKey)&&!r;new t.Setting(this.containerEl).setName("同步公众号内容").setDesc(r?"关闭后将过滤公众号内容;在黑名单模式的选择器中会单独展示这些自动排除项。":n?"⚠️ 此功能需要 Cookie(扫码登录获取),手动填入 API Key 无法使用。":"关闭后将过滤公众号内容;在黑名单模式的选择器中会单独展示这些自动排除项。注意:公众号类型数据依赖 Cookie(需扫码登录)。").addToggle(e=>r?e.setValue(l(f).saveArticleToggle).onChange(e=>{f.actions.setSaveArticleToggle(e),this.display()}):(e.setDisabled(!0),e.setValue(!1),e.toggleEl.onclick=()=>{new t.Notice("同步公众号内容需要 Cookie,请使用扫码登录")},e))}syncPopularHighlightsToggle(){new t.Setting(this.containerEl).setName("同步热门划线").setDesc("开启后同步每本书最多 20 条热门划线(按热度排序),需要 API Key,仅 V2 支持").addToggle(e=>e.setValue(l(f).syncPopularHighlightsToggle).onChange(e=>{f.actions.setSyncPopularHighlightsToggle(e)}))}saveReadingInfoToggle(){new t.Setting(this.containerEl).setName("保存阅读元数据?").setDesc("开启此选项会阅读数据写入frontmatter").addToggle(e=>e.setValue(l(f).saveReadingInfoToggle).onChange(e=>{f.actions.setSaveReadingInfoToggle(e),this.display()}))}convertTagToggle(){new t.Setting(this.containerEl).setName("将标签转换为双链?").setDesc("开启此选项会笔记中的 #标签 转换为:[[标签]]").addToggle(e=>e.setValue(l(f).convertTags).onChange(e=>{f.actions.setConvertTags(e),this.display()}))}dailyNotes(){new t.Setting(this.containerEl).setName("是否保存笔记到 DailyNotes?").addToggle(e=>e.setValue(l(f).dailyNotesToggle).onChange(e=>{console.debug("set daily notes toggle to",e),f.actions.setDailyNotesToggle(e),this.display()}))}dailyNotesFolder(){let e=null;new t.Setting(this.containerEl).setName("Daily Notes文件夹").setDesc("请选择Daily Notes文件夹").addText(t=>(e=t,t.setPlaceholder("例如:/ 或 Daily Notes").setValue(l(f).dailyNotesLocation).onChange(e=>{const t=""===e.trim()?"/":e.trim();f.actions.setDailyNotesFolder(t)}))).addButton(t=>t.setButtonText("选择").onClick(()=>{this.createFolderSuggestModal(t=>{const r=""===t.trim()?"/":t.trim();f.actions.setDailyNotesFolder(r),null==e||e.setValue(r)}).open()}))}dailyNoteFormat(){new t.Setting(this.containerEl).setName("Daily Notes Format").setDesc("请填写Daily Notes文件名格式,支持官方Daily Notes插件的格式,比如:YYYY-MM-DD \t\t\t\t 和 Periodic Notes的嵌套格式,比如 YYYY/[W]ww/YYYY-MM-DD").addText(e=>{e.setValue(l(f).dailyNotesFormat).onChange(e=>{f.actions.setDailyNotesFormat(e)})})}insertAfter(){new t.Setting(this.containerEl).setName("在特定区间之内插入").setDesc("请填写Daily Notes中希望读书笔记插入的区间,使用前记得修改Daily Notes模板🫡, 💥注意: 区间之内的内容会被覆盖,请不要在区间内修改内容,").addText(e=>{e.setValue(l(f).insertAfter).onChange(e=>{f.actions.setInsertAfter(e)})}).addButton(e=>e.setButtonText("至").buttonEl.style.borderStyle="none").addText(e=>{e.setValue(l(f).insertBefore).onChange(e=>{f.actions.setInsertBefore(e)})})}subFolderType(){new t.Setting(this.containerEl).setName("文件夹分类").setDesc("请选择按照哪个维度对笔记文件进行分类").addDropdown(t=>(t.addOptions({"-1":"无分类",title:"书名",category:"图书分类"}),t.setValue(l(f).subFolderType).onChange(t=>e(this,void 0,void 0,function*(){f.actions.setSubFolderType(t)}))))}fileNameType(){new t.Setting(this.containerEl).setName("文件名模板").setDesc("你选择你喜欢的文件名模板,重复的书会在文件名后加上ID").addDropdown(t=>(t.addOptions({BOOK_ID:"bookId",BOOK_NAME:"书名",BOOK_NAME_AUTHOR:"书名-作者名",BOOK_NAME_BOOKID:"书名-bookId"}),t.setValue(l(f).fileNameType).onChange(t=>e(this,void 0,void 0,function*(){f.actions.setFileNameType(t)}))))}removeParens(){new t.Setting(this.containerEl).setName("移除书名中的括号内容").setDesc("是否移除书名中的括号及其内部文字(注:谨慎启用,可能导致重名)").addToggle(e=>e.setValue(l(f).removeParens).onChange(e=>{f.actions.setRemoveParens(e),this.display()})),l(f).removeParens&&new t.Setting(this.containerEl).setName("括号移除白名单").setDesc("如文件名包含下列任意文本,则不移除括号。每行一个关键词。").addTextArea(e=>{e.setValue(l(f).removeParensWhitelist||"").onChange(e=>{f.actions.setRemoveParensWhitelist(e)})})}filterInlineImages(){new t.Setting(this.containerEl).setName("过滤弹注图片占位符").setDesc("启用后,书摘中的 [图片]、[插图] 等弹注占位符将被自动移除,适合古诗文等配有大量弹注的书籍").addToggle(e=>e.setValue(l(f).filterInlineImages).onChange(e=>{f.actions.setFilterInlineImages(e)}))}template(){new t.Setting(this.containerEl).setName("模板设置").setHeading(),this.convertTagToggle(),this.saveReadingInfoToggle(),this.showEmptyChapterTitleToggle(),new t.Setting(this.containerEl).setName("主题管理").setDesc("管理模板主题,包括内置主题、自定义主题和社区主题").addButton(e=>e.setButtonText("打开主题管理").setCta().onClick(()=>{new ee(this.app).open()}));const e=f.actions.getActiveTheme(),r=e.isBuiltIn?"内置":e.isReadOnly?"社区":"自定义";new t.Setting(this.containerEl).setName("当前使用").setDesc(`${e.name} (${r})`)}noteCountLimit(){new t.Setting(this.containerEl).setName("笔记划线数量最小值").setDesc("划线数量小于该值的书籍将被自动排除,并在黑名单选择器中单独展示").addDropdown(t=>{t.addOptions({"-1":"无限制",3:"3条",5:"5条",10:"10条",15:"15条",30:"30条"}).setValue(l(f).noteCountLimit.toString()).onChange(t=>e(this,void 0,void 0,function*(){console.log("[weread plugin] new note count limit",t),f.actions.setNoteCountLimit(+t)}))})}readingStatsSettings(){new t.Setting(this.containerEl).setName("阅读统计").setHeading(),new t.Setting(this.containerEl).setName("Heatmap 起始年份").setDesc("全部 Tab 的 Heatmap 从该年份开始展示,留空则使用注册时间。例如:2019").addText(e=>e.setPlaceholder("例如:2019").setValue(l(f).statsStartYear?String(l(f).statsStartYear):"").onChange(e=>{const t=parseInt(e.trim());f.actions.setStatsStartYear(isNaN(t)?0:t)}))}showApiKeySetting(){let r,n;const o=(e,t)=>{const r=null!=t?t:n;r&&(!0===e?(r.setIcon("check-circle").setTooltip("API Key 有效"),r.extraSettingsEl.style.color="var(--color-green)"):!1===e?(r.setIcon("x-circle").setTooltip("API Key 无效,请检查或重新获取"),r.extraSettingsEl.style.color="var(--color-red)"):(r.setIcon("help-circle").setTooltip("API Key 状态未知,点击验证"),r.extraSettingsEl.style.color="var(--text-muted)"))},i=document.createRange().createContextualFragment('点击「扫码获取」扫码登录后自动获取API Key,也可在 <a href="https://weread.qq.com/r/weread-skills">weread.qq.com/r/weread-skills</a> 手动申请,格式:wrk-xxxxxxxx。<br><strong>注意:</strong> 一些额外的功能需要依赖Cookie,建议使用扫码登录!!'),a=new t.Setting(this.containerEl).setName("微信读书 API Key").setDesc(i).addText(e=>{var t;return e.setPlaceholder("wrk-xxxxxxxx").setValue(null!==(t=l(f).wereadApiKey)&&void 0!==t?t:"").onChange(e=>{f.actions.setWereadApiKey(e.trim()),f.actions.setApiKeyValid(null),o(null)}),e.inputEl.type="password",e.inputEl.style.width="220px",r=e,e}).addExtraButton(e=>(e.setIcon("eye").setTooltip("显示/隐藏 API Key").onClick(()=>{const t=r.inputEl,n="password"===t.type;t.type=n?"text":"password",e.setIcon(n?"eye-off":"eye")}),e)).addExtraButton(e=>(n=e,o(l(f).apiKeyValid,e),e)),s=l(f).wereadApiKey,c=l(f),d=c.isCookieValid,u=c.cookies&&c.cookies.length>0;s?(u&&a.addExtraButton(e=>(d?(e.setIcon("cookie").setTooltip("Cookie 有效"),e.extraSettingsEl.style.color="var(--color-green)"):(e.setIcon("cookie").setTooltip("Cookie 已失效"),e.extraSettingsEl.style.color="var(--color-red)"),e)),d?a.addButton(r=>(r.setButtonText("注销").setTooltip("清除 API Key 和登录状态").onClick(()=>e(this,void 0,void 0,function*(){f.actions.clearCookies(),f.actions.setWereadApiKey(""),f.actions.setApiKeyValid(null),new t.Notice("已注销,API Key 已清除"),this.display()})),r)):t.Platform.isDesktopApp&&a.addButton(t=>(t.setButtonText(u?"扫码登录":"扫码获取").setTooltip(u?"Cookie 已失效,点击重新扫码登录":"扫码登录获取 Cookie").onClick(()=>e(this,void 0,void 0,function*(){yield this.handleScanApiKey(t)})),t)),n.setIcon("loader-2").setTooltip("验证中..."),n.extraSettingsEl.style.color="var(--text-muted)",(new H).validateApiKey().then(e=>{f.actions.setApiKeyValid(e.valid),o(e.valid)})):t.Platform.isDesktopApp&&a.addButton(t=>(t.setButtonText("扫码获取").setTooltip("扫码登录获取 API Key").onClick(()=>e(this,void 0,void 0,function*(){yield this.handleScanApiKey(t)})),t))}handleScanApiKey(r){return e(this,void 0,void 0,function*(){if(!t.Platform.isDesktopApp)return void new t.Notice("扫码登录仅支持桌面端,请在移动端手动粘贴 API Key");const e=l(f),n=e.isCookieValid&&e.cookies.length>0;r.setDisabled(!0),r.setButtonText("获取中...");try{if(n){const e=new H,r=yield e.fetchApiKey();(null==r?void 0:r.apikey)?(f.actions.setApiKeyValid(!0),new t.Notice("API Key 获取成功")):new t.Notice("API Key 获取失败,请尝试重新扫码登录")}else{const e=new X(this);yield e.doLogin()}}catch(e){console.error("[weread plugin] 扫码获取 API Key 失败",e),new t.Notice("扫码获取 API Key 失败,请查看控制台")}finally{r.setDisabled(!1),r.setButtonText("扫码获取"),this.display()}})}showDebugHelp(){const e=this.containerEl.createDiv();e.setAttr("align","center"),e.setText("查看控制台日志: 使用以下快捷键快速打开控制台,查看本插件以及其他插件的运行日志");const r=this.containerEl.createDiv();r.setAttr("align","center"),r.style.margin="10px",!0===t.Platform.isMacOS?r.createEl("kbd",{text:"CMD (⌘) + OPTION (⌥) + I"}):r.createEl("kbd",{text:"CTRL + SHIFT + I"})}showEmptyChapterTitleToggle(){new t.Setting(this.containerEl).setName("展示空白章节标题?").setDesc("如果启用,则章节内没有划线也将展示章节标题").addToggle(e=>e.setValue(l(f).showEmptyChapterTitleToggle).onChange(e=>{console.debug("set empty chapter title toggle to",e),f.actions.setEmptyChapterTitleToggle(e),this.display()}))}showLoginMethod(){new t.Setting(this.containerEl).setName("登录设置").setHeading().addDropdown(t=>(t.addOptions({scan:"扫码登录",cookieCloud:"CookieCloud 登录"}),t.setValue(l(f).loginMethod).onChange(t=>e(this,void 0,void 0,function*(){console.debug("set login method to",t),f.actions.setLoginMethod(t),"apiKey"!==t&&f.actions.clearCookies(),this.display()}))))}showCookieCloudInfo(){let r="配置 CookieCloud";l(f).isCookieValid&&(r=`微信读书已登录,用户名: ${l(f).user}`),new t.Setting(this.containerEl).setName(r).addButton(t=>t.setIcon("settings-2").onClick(()=>e(this,void 0,void 0,function*(){t.setDisabled(!0),new Z(this.app,this).open(),this.display()})))}showCookieStatus(){const r=l(f),n=r.isCookieValid,o=r.cookies&&r.cookies.length>0,i=r.lastCookieTime;if("scan"===r.loginMethod)return;let a;a=n?"✅ Cookie 有效":o?t.Platform.isDesktopApp?"⚠️ Cookie 已失效,请点击刷新或重新登录":"⚠️ Cookie 已失效,请在电脑端登录":t.Platform.isDesktopApp?"❌ 未登录":"❌ 未登录,请在电脑端登录",i>0&&(a+=`,上次刷新时间:${new Date(i).toLocaleString()}`);const s=new t.Setting(this.containerEl).setName("Cookie 状态").setDesc(a);t.Platform.isDesktopApp&&s.addButton(t=>t.setButtonText("立即刷新 Cookie").setCta().onClick(()=>e(this,void 0,void 0,function*(){t.setDisabled(!0),t.setButtonText("刷新中...");const e=new H;yield e.refreshCookie(),this.display()})))}scheduledSync(){new t.Setting(this.containerEl).setName("定时同步").setDesc("开启后,插件将按照设定的时间间隔自动同步微信读书笔记").addToggle(e=>e.setValue(l(f).scheduledSyncToggle).onChange(e=>{f.actions.setScheduledSyncToggle(e),this.plugin.setupScheduledSync(),this.display()})),l(f).scheduledSyncToggle&&this.scheduledSyncInterval()}scheduledSyncInterval(){new t.Setting(this.containerEl).setName("定时同步间隔(分钟)").setDesc("设置自动同步的时间间隔,单位为分钟(最小 1 分钟)").addText(e=>e.setPlaceholder("5").setValue(String(l(f).scheduledSyncInterval)).onChange(e=>{const t=parseInt(e,10);!isNaN(t)&&t>=1&&(f.actions.setScheduledSyncInterval(t),this.plugin.setupScheduledSync())}))}createFolderSuggestModal(e){const t=this.getFolderPaths();return new se(this.app,t,e)}fetchSelectableBooks(){return e(this,void 0,void 0,function*(){if(this.selectableBooksCache.length>0)return this.selectableBooksCache;const e=l(f),t=Boolean(e.wereadApiKey);if(!(e.isCookieValid&&e.cookies.length>0||t))throw new Error("请先登录微信读书或配置 API Key 后再加载书籍列表");const r=new H,n=yield r.getNotebooksWithRetry();return this.selectableBooksCache=n.map(e=>C(e)),this.selectableBooksCache})}renderSyncModePreview(e,t){const r=this.containerEl.createDiv({cls:"weread-manual-sync-preview"}),n=this.selectableBooksCache.filter(e=>t.has(e.bookId));if(0!==n.length)for(const e of n){const t=r.createDiv({cls:"weread-selected-book-card"}),n=t.createEl("img",{cls:"weread-selected-book-cover"});n.src=e.cover,n.alt=e.title;const o=t.createDiv({cls:"weread-selected-book-details"});o.createDiv({cls:"weread-selected-book-title",text:e.title}),o.createDiv({cls:"weread-selected-book-author",text:e.author}),o.createDiv({cls:"weread-book-selector-meta",text:`划线:${e.noteCount} 条`}),o.createDiv({cls:"weread-book-selector-meta",text:ie(e)})}else r.createDiv({cls:"setting-item-description",text:null!==this.selectableBooksLoadingPromise?"正在异步加载书籍信息,请稍候...":`${oe(e)}已选书籍共 ${t.size} 本(部分书籍信息尚未加载)`})}}class se extends t.FuzzySuggestModal{constructor(e,t,r){super(e),this.folders=t,this.onSelectFolder=r,this.setPlaceholder("选择或搜索文件夹路径")}getItems(){return this.folders}getItemText(e){return e}onChooseItem(e){this.onSelectFolder(e)}}class le extends t.Modal{constructor(e,t,r,n,o,i){super(e),this.books=t,this.syncMode=r,this.selectorOptions=n,this.onSaveSelection=i,this.searchKeyword="",this.selectionFilter="all",this.selectedBookIds=new Set(o)}onOpen(){const{contentEl:e,modalEl:t}=this;e.empty(),t.addClass("weread-book-selector-modal"),t.style.width="90vw",t.style.maxWidth="960px",t.style.height="80vh",t.style.maxHeight="80vh";const r="blacklist"===this.syncMode;if(r)for(const e of this.books)this.isAutoExcluded(e)&&this.selectedBookIds.delete(e.bookId);const n=e.createDiv({cls:"weread-book-selector-header"});n.createEl("h2",{text:r?"选择要排除的书籍":"选择要同步的书籍"}),this.selectedCountEl=n.createDiv({cls:"weread-book-selector-count"});const o=e.createDiv({cls:"weread-book-selector-toolbar"}),i=o.createEl("input",{type:"search",cls:"weread-book-selector-search"});i.placeholder="搜索书名或作者",i.addEventListener("input",()=>{this.searchKeyword=i.value.trim().toLowerCase(),this.renderBooks()});const a=o.createEl("select",{cls:"dropdown"});[["all","全部书籍"],["selected",r?"仅看已排除":"仅看已选"],["unselected",r?"仅看未排除":"仅看未选"]].forEach(([e,t])=>{a.createEl("option",{value:e,text:t})}),a.addEventListener("change",()=>{this.selectionFilter=a.value,this.renderBooks()});const s=o.createDiv({cls:"weread-book-selector-actions"});s.createEl("button",{text:r?"排除当前结果":"勾选当前结果"}).onclick=()=>{for(const e of this.getFilteredBooks())this.selectedBookIds.add(e.bookId);this.renderBooks()},s.createEl("button",{text:"清空选择"}).onclick=()=>{this.selectedBookIds.clear(),this.renderBooks()};const l=e.createDiv({cls:"weread-book-selector-panels"}),c=l.createDiv({cls:"weread-book-selector-list-panel"});c.createEl("h3",{text:"书籍列表"}),this.listEl=c.createDiv({cls:"weread-book-selector-grid"});const d=l.createDiv({cls:"weread-book-selector-selected-panel"});d.createEl("h3",{text:r?"已排除书籍":"已选择书籍"}),this.selectedListEl=d.createDiv({cls:"weread-book-selector-selected-list"}),this.renderBooks();const u=e.createDiv({cls:"weread-book-selector-footer"});u.createEl("button",{text:"取消",cls:"mod-cancel"}).onclick=()=>this.close(),u.createEl("button",{text:"保存选择",cls:"mod-cta"}).onclick=()=>{const e=this.books.filter(e=>this.selectedBookIds.has(e.bookId)).map(e=>e.bookId);this.onSaveSelection(e),this.close()}}onClose(){this.contentEl.empty()}renderBooks(){this.listEl.empty(),this.selectedListEl.empty();const e=this.getFilteredBooks(),t="blacklist"===this.syncMode?"已排除":"已选择";if(this.selectedCountEl.setText(`${t} ${this.selectedBookIds.size} 本 / 共 ${this.books.length} 本`),0===e.length)this.listEl.createDiv({cls:"weread-book-selector-empty",text:"没有找到匹配的书籍"});else for(const t of e){const e=this.selectedBookIds.has(t.bookId),r=this.listEl.createDiv({cls:"weread-book-selector-card"});e&&r.addClass("is-selected"),r.onclick=()=>{this.selectedBookIds.has(t.bookId)?this.selectedBookIds.delete(t.bookId):this.selectedBookIds.add(t.bookId),this.renderBooks()};const n=r.createEl("input",{type:"checkbox",cls:"weread-book-selector-checkbox"});n.checked=e,n.onclick=e=>e.stopPropagation(),n.onchange=()=>{n.checked?this.selectedBookIds.add(t.bookId):this.selectedBookIds.delete(t.bookId),this.renderBooks()},this.renderBookCardDetails(r,t)}this.renderSelectedBooks()}getFilteredBooks(){return this.books.filter(e=>{if(this.isAutoExcluded(e))return!1;const t=`${e.title} ${e.author}`.toLowerCase(),r="all"===this.selectionFilter||"selected"===this.selectionFilter&&this.selectedBookIds.has(e.bookId)||"unselected"===this.selectionFilter&&!this.selectedBookIds.has(e.bookId),n=!this.searchKeyword||t.includes(this.searchKeyword);return r&&n})}renderSelectedBooks(){const e=this.books.filter(e=>this.selectedBookIds.has(e.bookId)),t=this.getAutoExcludedBooks("article"),r=this.getAutoExcludedBooks("noteCount");if(0!==e.length||0!==t.length||0!==r.length){if(e.length>0){const t=this.selectedListEl.createDiv({cls:"weread-book-selector-section"});t.createEl("h4",{text:"blacklist"===this.syncMode?"手动排除":"已选择"});for(const r of e){const e=t.createDiv({cls:"weread-book-selector-selected-card"});this.renderBookCardDetails(e,r),e.createEl("button",{cls:"weread-book-selector-remove",text:"移除"}).onclick=()=>{this.selectedBookIds.delete(r.bookId),this.renderBooks()}}}if("blacklist"===this.syncMode&&t.length>0&&this.renderAutoExcludedSection("已自动排除的公众号",t,"由”同步公众号内容”设置自动排除"),"blacklist"===this.syncMode&&r.length>0){const e=-1!==this.selectorOptions.noteCountLimit?`划线少于 ${this.selectorOptions.noteCountLimit} 条,已自动排除`:"已自动排除";this.renderAutoExcludedSection("已自动排除的低划线书籍",r,e)}}else this.selectedListEl.createDiv({cls:"weread-book-selector-empty",text:"blacklist"===this.syncMode?"暂无已排除的书籍":"暂无已选择的书籍"})}renderBookCardDetails(e,t){const r=e.createEl("img",{cls:"weread-book-selector-cover"});r.src=t.cover,r.alt=t.title;const n=e.createDiv({cls:"weread-book-selector-card-details"});n.createDiv({cls:"weread-book-selector-title",text:t.title}),n.createDiv({cls:"weread-book-selector-author",text:t.author}),n.createDiv({cls:"weread-book-selector-meta",text:`划线:${t.noteCount} 条`}),n.createDiv({cls:"weread-book-selector-meta",text:ie(t)})}renderAutoExcludedSection(e,t,r){const n=this.selectedListEl.createDiv({cls:"weread-book-selector-section"});n.createEl("h4",{text:e}),n.createDiv({cls:"weread-book-selector-section-description",text:r});for(const e of t){const t=n.createDiv({cls:"weread-book-selector-selected-card is-disabled"});this.renderBookCardDetails(t,e)}}getAutoExcludedBooks(e){return"blacklist"!==this.syncMode?[]:this.books.filter(t=>"article"===e?this.selectorOptions.hideArticles&&3===t.bookType:-1!==this.selectorOptions.noteCountLimit&&3!==t.bookType&&t.noteCount<this.selectorOptions.noteCountLimit)}isAutoExcluded(e){return!(!this.selectorOptions.hideArticles||3!==e.bookType)||"blacklist"===this.syncMode&&-1!==this.selectorOptions.noteCountLimit&&e.noteCount<this.selectorOptions.noteCountLimit}}class ce{constructor(){const{remote:e}=r(1288),{BrowserWindow:t}=e;this.modal=new t({parent:e.getCurrentWindow(),width:1280,height:860,show:!1,webPreferences:{partition:"persist:weread-plugin-browser"}}),this.modal.once("ready-to-show",()=>{this.modal.setTitle("微信读书"),this.modal.show()})}open(){return e(this,arguments,void 0,function*(e="https://weread.qq.com/web/shelf"){yield this.syncCookiesToSession(),yield this.modal.loadURL(e)})}syncCookiesToSession(){return e(this,void 0,void 0,function*(){var e;const t=this.modal.webContents.session,r=null!==(e=l(f).cookies)&&void 0!==e?e:[];for(const e of r)try{yield t.cookies.set({url:"https://weread.qq.com",name:e.name,value:e.value,domain:".weread.qq.com",path:"/",secure:!0,httpOnly:!1})}catch(t){console.debug("[weread plugin] sync window cookie failed",e.name,t)}yield t.cookies.flush()})}}const de="weread-reading-view",ue="https://weread.qq.com/web/shelf";class pe extends t.ItemView{getViewType(){return de}getDisplayText(){return"微信读书"}constructor(e){super(e),this.currentUrl=ue,this.pendingUrl=null,this.isBootstrapped=!1}getIcon(){return"book-open"}onClose(){return e(this,void 0,void 0,function*(){})}onOpen(){return e(this,void 0,void 0,function*(){this.webviewEl=this.contentEl.doc.createElement("webview"),this.webviewEl.setAttribute("partition","persist:weread-plugin-browser"),this.webviewEl.setAttribute("allowpopups",""),this.webviewEl.addClass("weread-frame"),this.webviewEl.addEventListener("did-finish-load",()=>{if(!this.isBootstrapped&&(this.isBootstrapped=!0,this.pendingUrl)){const e=this.pendingUrl;this.pendingUrl=null,this.webviewEl.setAttribute("src",e)}}),this.currentUrl===ue||(this.pendingUrl=this.currentUrl),this.webviewEl.setAttribute("src",ue),this.contentEl.appendChild(this.webviewEl),this.contentEl.addClass("weread-view-content")})}getState(){return{url:this.currentUrl}}setState(t){return e(this,void 0,void 0,function*(){if(this.currentUrl=(null==t?void 0:t.url)||ue,this.webviewEl){if(!this.isBootstrapped&&this.currentUrl!==ue)return this.pendingUrl=this.currentUrl,void this.webviewEl.setAttribute("src",ue);this.pendingUrl=null,this.webviewEl.setAttribute("src",this.currentUrl)}})}navigate(e=ue){if(this.currentUrl=e,this.webviewEl){if(!this.isBootstrapped&&e!==ue)return this.pendingUrl=e,void this.webviewEl.setAttribute("src",ue);this.pendingUrl=null,this.webviewEl.setAttribute("src",e)}}}const he="90vw";class fe extends t.Modal{constructor(e){super(e),this.showAll=!1}onOpen(){const{contentEl:e,modalEl:r}=this;e.empty(),r.style.width=t.Platform.isDesktopApp?"700px":he,r.style.maxWidth=he,r.style.maxHeight="80vh";const n=e.createDiv({cls:"sync-log-header"});n.createEl("h2",{text:"同步日志"});const o=n.createDiv({cls:"sync-log-header-right"});o.createSpan({cls:"sync-log-toggle-label",text:"显示空白记录"});const i=new t.ToggleComponent(o);i.setValue(this.showAll),i.onChange(e=>{this.showAll=e,this.renderLogs()}),this.logsContainer=e.createDiv({cls:"sync-log-container"}),this.renderLogs()}renderLogs(){this.logsContainer.empty();const e=f.actions.getSyncLogs(),t=this.showAll?e:e.filter(e=>e.syncedBooks>0),r=t.length,n=e.length,o=this.showAll?`最近 ${n} 次同步记录`:`${r} 条有效记录(共 ${n} 次)`;let i=this.contentEl.querySelector(".sync-log-subtitle");if(!i){const e=this.contentEl.querySelector(".sync-log-header");i=e.createDiv({cls:"sync-log-subtitle"}),e.insertBefore(i,e.querySelector(".sync-log-header-right"))}if(i.setText(o),0!==t.length)for(const e of t){const t=this.logsContainer.createDiv({cls:"sync-log-item"});this.renderLogEntry(t,e)}else this.logsContainer.createDiv({cls:"sync-log-empty",text:this.showAll?"暂无同步记录":"暂无有效同步记录"})}renderLogEntry(r,n){const o=r.createDiv({cls:"sync-log-item-header"}),i=o.createDiv({cls:"sync-log-timestamp"}),a=new Date(n.timestamp);i.createDiv({cls:"sync-log-date",text:a.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"})}),i.createDiv({cls:"sync-log-time",text:a.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})});const s=o.createDiv({cls:n.success?"sync-log-status sync-log-success":"sync-log-status sync-log-error"});(0,t.setIcon)(s,n.success?"check-circle":"x-circle"),s.createSpan({text:n.success?"成功":"失败"});const l=r.createDiv({cls:"sync-log-stats"});if(l.createSpan({text:`共 ${n.totalBooks} 本书`}),l.createSpan({text:`同步 ${n.syncedBooks} 本`}),l.createSpan({text:`跳过 ${n.skippedBooks} 本`}),l.createSpan({text:`耗时 ${n.duration.toFixed(2)} 秒`}),!n.success&&n.errorMessage&&r.createDiv({cls:"sync-log-error"}).createSpan({text:`错误: ${n.errorMessage}`}),n.notes&&n.notes.length>0){r.createDiv({cls:"sync-log-notes-header"}).createSpan({text:`同步的笔记 (${n.notes.length})`});const o=r.createDiv({cls:"sync-log-notes-list"});for(const r of n.notes){const n=o.createDiv({cls:"sync-log-note-item"});n.createDiv({cls:"sync-log-note-title"}).createSpan({text:r.title});const i=n.createEl("button",{cls:"sync-log-note-btn",attr:{"aria-label":"打开笔记"}});(0,t.setIcon)(i,"file-text"),i.onclick=()=>e(this,void 0,void 0,function*(){yield this.openNoteFile(r.filePath)})}}}openNoteFile(r){return e(this,void 0,void 0,function*(){try{const e=this.app.vault.getAbstractFileByPath(r);if(e&&e instanceof t.TFile){const t=this.app.workspace.getLeaf("tab");yield t.openFile(e),this.close()}else new t.Notice("未找到笔记文件: "+r)}catch(e){new t.Notice("打开笔记失败: "+(e instanceof Error?e.message:String(e)))}})}onClose(){this.contentEl.empty()}}const ge="weread-bookshelf-view",me="未知年份";class ve extends t.Modal{constructor(e,t,r){super(e),this.titleText=t,this.onConfirm=r}onOpen(){const{contentEl:t}=this;t.empty(),t.createEl("h3",{text:"删除本地文件"}),t.createEl("p",{text:`确认删除《${this.titleText}》的本地文件吗?`});const r=t.createDiv({cls:"weread-bookshelf-modal-actions"});r.createEl("button",{text:"取消"}).onclick=()=>this.close(),r.createEl("button",{text:"删除",cls:"mod-warning"}).onclick=()=>e(this,void 0,void 0,function*(){yield this.onConfirm(),this.close()})}onClose(){this.contentEl.empty()}}class be extends t.ItemView{constructor(e,t,r){super(e),this.plugin=t,this.bookshelfService=r,this.shelfBooks=[],this.searchKeyword="",this.categoryFilter="all",this.syncStatusFilter=l(f).bookshelfDefaultSyncStatusFilter,this.readingStatusFilter="all",this.sortMode="recent",this.groupByYear=!0,this.loading=!1,this.settingsUnsubscribe=null,this.previousCookieValid=!1;const n=l(f);this.previousCookieValid=n.isCookieValid,this.previousApiKey=n.wereadApiKey}getViewType(){return ge}getDisplayText(){return"微信读书书架"}getIcon(){return"library"}onMoreOptionsMenu(e){e.addItem(e=>e.setTitle("刷新书架").setIcon("refresh-ccw").onClick(()=>{this.loadBookshelf()})),e.addSeparator()}onOpen(){return e(this,void 0,void 0,function*(){this.contentEl.empty(),this.contentEl.addClass("weread-bookshelf-view");const r=this.contentEl.createDiv({cls:"weread-bookshelf-toolbar"}),n=r.createDiv({cls:"weread-bookshelf-toolbar-filters"}),o=n.createEl("input",{type:"search",cls:"weread-bookshelf-search",attr:{"aria-label":"搜索书名或作者"}});o.placeholder="搜索书名或作者",o.addEventListener("input",()=>{this.searchKeyword=o.value.trim().toLowerCase(),this.renderBooks()});const i=n.createEl("button",{cls:"weread-bookshelf-filter-toggle",attr:{"aria-label":"显示筛选选项"}});i.textContent="筛选",(0,t.setIcon)(i,"chevron-down");const a=n.createDiv({cls:"weread-bookshelf-filter-dropdowns"});if(l(f).saveArticleToggle){const e=a.createEl("select",{cls:"dropdown",attr:{"aria-label":"筛选书籍类型"}});[["all","全部类型"],["book","图书"],["article","公众号"]].forEach(([t,r])=>{e.createEl("option",{value:t,text:r})}),e.onchange=()=>{this.categoryFilter=e.value,this.renderBooks()}}else this.categoryFilter="book";const s=a.createEl("select",{cls:"dropdown",attr:{"aria-label":"筛选同步状态"}});[["all","全部状态",""],["remoteOnly","仅远程","只在微信读书有,本地还没同步"],["synced","已同步","本地和微信读书都有,笔记保持同步"],["localOnly","仅本地","只在本地有,微信读书已删除"]].forEach(([e,t,r])=>{const n=s.createEl("option",{value:e,text:t});r&&(n.title=r),n.selected=e===this.syncStatusFilter}),s.onchange=()=>{this.syncStatusFilter=s.value,this.renderBooks()};const c=a.createEl("select",{cls:"dropdown",attr:{"aria-label":"筛选阅读状态"}});[["all","在读+已读"],["reading","在读"],["finished","已读"]].forEach(([e,t])=>{c.createEl("option",{value:e,text:t}).selected=e===this.readingStatusFilter}),c.onchange=()=>{this.readingStatusFilter=c.value,this.renderBooks()},i.addEventListener("click",e=>{e.stopPropagation(),a.classList.toggle("is-open")}),document.addEventListener("click",e=>{n.contains(e.target)||a.classList.remove("is-open")});const d=r.createDiv({cls:"weread-bookshelf-toolbar-actions"}),u=d.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button weread-toolbar-icon-button mod-cta"});(0,t.setIcon)(u,"refresh-ccw");let p=!1,h=!1,g=!1;const m=t.Platform.isMacOS?"Opt":"Alt",v=e=>{g||(e?((0,t.setIcon)(u,"refresh-ccw-dot"),u.addClass("mod-warning"),u.removeClass("mod-cta"),(0,t.setTooltip)(u,"强制同步(重新同步所有书籍)")):((0,t.setIcon)(u,"refresh-ccw"),u.addClass("mod-cta"),u.removeClass("mod-warning"),(0,t.setTooltip)(u,`同步 (按住 ${m} 强制同步)`)))};(0,t.setTooltip)(u,`同步 (按住 ${m} 强制同步)`),u.addEventListener("mouseenter",()=>{p=!0,v(h)}),u.addEventListener("mouseleave",()=>{p=!1,v(!1)}),document.addEventListener("keydown",e=>{"AltLeft"!==e.code&&"AltRight"!==e.code||(h=!0,p&&v(!0))}),document.addEventListener("keyup",e=>{"AltLeft"!==e.code&&"AltRight"!==e.code||(h=!1,p&&v(!1))});const b=t.Platform.isDesktopApp?(()=>{const e=d.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button weread-toolbar-icon-button",attr:{"aria-label":"网页版"}});return(0,t.setIcon)(e,"globe"),e})():null,w=d.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button weread-toolbar-icon-button",attr:{"aria-label":"同步阅读统计"}});(0,t.setIcon)(w,"bar-chart-2"),(0,t.setTooltip)(w,"阅读统计"),w.addEventListener("click",()=>{this.plugin.activateReadingStatsView()});const y=d.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button weread-toolbar-icon-button",attr:{"aria-label":"同步日志"}});(0,t.setIcon)(y,"history");const x=d.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button weread-toolbar-icon-button",attr:{"aria-label":"选项"}});(0,t.setIcon)(x,"settings"),u.onclick=()=>e(this,void 0,void 0,function*(){if(g)return;const e=h;g=!0;const r={cancelled:!1};(0,t.setIcon)(u,"square"),(0,t.setTooltip)(u,"取消同步"),u.removeClass("mod-cta"),u.addClass("mod-warning"),x.disabled=!0,b&&(b.disabled=!0);const n=()=>{r.cancelled=!0};u.addEventListener("click",n,{once:!0});try{const t=yield this.plugin.startSync(e,r);(null!=t?t:0)>0&&(this.bookshelfService.clearProgressCache(),yield new Promise(e=>setTimeout(e,500)),yield this.loadBookshelf())}finally{g=!1,u.removeEventListener("click",n),v(h),x.disabled=!1,b&&(b.disabled=!1)}}),x.onclick=()=>{this.plugin.openWereadSettingsTab()},y.onclick=()=>{new fe(this.app).open()},b&&(b.onclick=()=>e(this,void 0,void 0,function*(){yield this.plugin.openPreferredReadingView()})),this.summaryEl=this.contentEl.createDiv({cls:"weread-bookshelf-summary"}),this.emptyStateEl=this.contentEl.createDiv({cls:"weread-bookshelf-empty"}),this.gridEl=this.contentEl.createDiv({cls:"weread-bookshelf-grid"}),this.settingsUnsubscribe=f.subscribe(e=>{const t=e.isCookieValid!==this.previousCookieValid,r=e.wereadApiKey!==this.previousApiKey;(t||r)&&(this.previousCookieValid=e.isCookieValid,this.previousApiKey=e.wereadApiKey,this.loadBookshelf())}),yield this.loadBookshelf()})}onClose(){return e(this,void 0,void 0,function*(){this.settingsUnsubscribe&&this.settingsUnsubscribe(),this.contentEl.empty()})}loadBookshelf(){return e(this,void 0,void 0,function*(){this.loading=!0,this.summaryEl.empty(),this.summaryEl.createDiv({cls:"weread-bookshelf-summary-loading",text:"加载书架中..."}),this.emptyStateEl.empty(),this.gridEl.empty();const e=l(f),t=Boolean(e.wereadApiKey);if(!(e.isCookieValid&&e.cookies.length>0||t))return this.loading=!1,void this.renderUnloggedState();try{this.shelfBooks=yield this.bookshelfService.getBookshelfBooks(),this.sortMode=e.bookshelfSortMode,this.groupByYear=e.bookshelfGroupByYear,this.renderBooks()}catch(e){this.summaryEl.empty(),this.summaryEl.createDiv({cls:"weread-bookshelf-summary-error",text:"加载书架失败"}),this.emptyStateEl.setText(e instanceof Error?e.message:"加载书架失败")}finally{this.loading=!1}})}renderUnloggedState(){this.summaryEl.empty();const e=this.summaryEl.createDiv({cls:"weread-bookshelf-unlogged-card"}).createDiv({cls:"weread-bookshelf-unlogged-content"});e.createDiv({cls:"weread-bookshelf-unlogged-title",text:"请先设置 API Key"}),e.createDiv({cls:"weread-bookshelf-unlogged-description",text:"请点击右上角设置按钮配置 API Key"}),e.createEl("button",{cls:"weread-bookshelf-unlogged-button",text:"前往设置"}).onclick=()=>{this.plugin.openWereadSettingsTab()}}renderBooks(){const e=this.getFilteredBooks();this.gridEl.empty(),this.emptyStateEl.empty();const t=l(f);if(this.renderSummaryCard(e,t),0===e.length)return void this.emptyStateEl.setText(this.loading?"加载中...":"没有找到匹配的书籍");if(this.shouldGroupByYear()){for(const t of this.groupBooksByYear(e)){const e=this.gridEl.createDiv({cls:"weread-bookshelf-group"});e.createEl("h3",{cls:"weread-bookshelf-group-title",text:t.year===me?t.year:`${t.year} 年`});const r=e.createDiv({cls:"weread-bookshelf-group-grid"});for(const e of t.books)this.renderBookCard(e,r)}return}const r=this.gridEl.createDiv({cls:"weread-bookshelf-group-grid"});for(const t of e)this.renderBookCard(t,r)}renderSummaryCard(e,r){this.summaryEl.empty();const n=this.summaryEl.createDiv({cls:"weread-bookshelf-summary-card"}),o=n.createDiv({cls:"weread-bookshelf-summary-item"}),i=o.createDiv({cls:"weread-bookshelf-summary-icon"});(0,t.setIcon)(i,"book"),o.createDiv({cls:"weread-bookshelf-summary-value",text:`${e.length} 本书`}),(0,t.setTooltip)(o,`展示书籍: ${e.length} 本`);const a=e.reduce((e,t)=>e+t.noteCount+t.reviewCount,0),s=n.createDiv({cls:"weread-bookshelf-summary-item"}),l=s.createDiv({cls:"weread-bookshelf-summary-icon"});if((0,t.setIcon)(l,"pencil"),s.createDiv({cls:"weread-bookshelf-summary-value",text:`${a} 个笔记`}),(0,t.setTooltip)(s,`笔记总数: ${a}`),this.shouldGroupByYear()){const r=this.groupBooksByYear(e),o=n.createDiv({cls:"weread-bookshelf-summary-item"}),i=o.createDiv({cls:"weread-bookshelf-summary-icon"});(0,t.setIcon)(i,"calendar"),o.createDiv({cls:"weread-bookshelf-summary-value",text:`${r.length} 年`}),(0,t.setTooltip)(o,`年份分组: ${r.length} 年`)}const c=n.createDiv({cls:"weread-bookshelf-summary-item"}),d=c.createDiv({cls:"weread-bookshelf-summary-icon"});let u,p;(0,t.setIcon)(d,"clock"),r.lastSyncTime>0?(u=function(e){const t=Date.now()-e,r=Math.floor(t/1e3),n=Math.floor(r/60),o=Math.floor(n/60),i=Math.floor(o/24);return r<60?"刚刚":n<60?`${n}分钟前`:o<24?`${o}小时前`:i<30?`${i}天前`:`${Math.floor(i/30)}月前`}(r.lastSyncTime),p=`上次同步: ${new Date(r.lastSyncTime).toLocaleString()}`):(u="尚未同步",p="尚未同步"),c.createDiv({cls:"weread-bookshelf-summary-value",text:u}),(0,t.setTooltip)(c,p);const h=n.createDiv({cls:"weread-bookshelf-summary-item"}),f=h.createDiv({cls:"weread-bookshelf-summary-icon"});(0,t.setIcon)(f,"refresh-ccw"),h.createDiv({cls:"weread-bookshelf-summary-value",text:`${r.lastSyncBookCount} 本`}),(0,t.setTooltip)(h,`更新数量: ${r.lastSyncBookCount} 本`)}renderBookCard(t,r=this.gridEl){const n=r.createDiv({cls:"weread-bookshelf-card is-clickable"});n.setAttr("title",`查看《${t.title}》详情`),n.onclick=()=>{this.openBookDetail(t)};const o=n.createDiv({cls:"weread-bookshelf-card-top-actions"});this.renderActionIcons(t,o);const i=n.createDiv({cls:"weread-bookshelf-card-cover-wrap"+(t.hasLocalFile?" is-clickable":"")});if(t.hasLocalFile&&(i.setAttr("title",`查看《${t.title}》详情`),i.onclick=r=>e(this,void 0,void 0,function*(){r.stopPropagation(),this.openBookDetail(t)})),t.cover){const e=i.createEl("img",{cls:"weread-bookshelf-card-cover"});e.src=t.cover,e.alt=t.title}else i.createDiv({cls:"weread-bookshelf-card-cover-placeholder",text:"无封面"});const a=n.createDiv({cls:"weread-bookshelf-card-details"}),s=a.createDiv({cls:"weread-bookshelf-card-title",text:t.title,attr:{title:t.title}});t.hasLocalFile&&(s.addClass("is-clickable"),s.setAttr("title",`打开《${t.title}》本地文件`),s.onclick=r=>e(this,void 0,void 0,function*(){r.stopPropagation(),yield this.openLocalFile(t)})),a.createDiv({cls:"weread-bookshelf-card-author",text:t.author});const l=a.createDiv({cls:"weread-bookshelf-badges"});this.renderBadges(t,l),a.createDiv({cls:"weread-bookshelf-card-meta",text:`划线 ${t.noteCount} · 想法 ${t.reviewCount}`}),a.createDiv({cls:"weread-bookshelf-card-meta",text:`最近阅读 ${this.getLastReadDateText(t)}`})}renderActionIcons(r,n){var o,i;if(r.remoteExists&&!r.hasLocalFile){const o=n.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button",attr:{"aria-label":"同步此书"}});(0,t.setIcon)(o,"refresh-ccw"),o.onclick=t=>e(this,void 0,void 0,function*(){t.stopPropagation(),o.disabled=!0;try{yield this.plugin.syncBookById(r.bookId),yield new Promise(e=>setTimeout(e,500)),yield this.loadBookshelf()}finally{o.disabled=!1}})}if(this.isDisplayLocalOnly(r)&&(null===(i=null===(o=r.localFile)||void 0===o?void 0:o.file)||void 0===i?void 0:i.path)){const o=n.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button",attr:{"aria-label":"删除本地文件"}});(0,t.setIcon)(o,"trash"),o.onclick=t=>e(this,void 0,void 0,function*(){t.stopPropagation(),new ve(this.app,r.title,()=>e(this,void 0,void 0,function*(){o.disabled=!0;try{yield this.plugin.deleteLocalBookByPath(r.localFile.file.path),yield this.loadBookshelf()}finally{o.disabled=!1}})).open()})}if(r.remoteExists&&!r.isArticle&&t.Platform.isDesktopApp){const o=n.createEl("button",{cls:"clickable-icon weread-bookshelf-icon-button",attr:{"aria-label":"阅读此书"}});(0,t.setIcon)(o,"book-open"),o.onclick=t=>e(this,void 0,void 0,function*(){t.stopPropagation();const e=l(f),n="app"===e.bookOpenMode?`weread://reading?bId=${r.bookId}`:B(r.bookId);"app"===e.bookOpenMode?window.open(n):yield this.plugin.openPreferredReadingView(n)})}}renderBadges(e,t){var r;const n=[];this.isDisplayLocalOnly(e)?n.push("仅本地"):this.isDisplaySynced(e)?n.push("已同步"):e.hasLocalFile||n.push("仅远程"),n.push(e.isArticle?"公众号":"图书"),e.hasLocalFile&&(null===(r=e.localFile)||void 0===r?void 0:r.finishedDate)?n.push("已读"):e.hasLocalFile&&n.push("在读"),e.syncFilter&&!e.syncFilter.includedByCurrentSettings&&n.push(...e.syncFilter.reasonLabels);for(const e of n)t.createDiv({cls:"weread-bookshelf-badge",text:e})}getFilteredBooks(){const e=this.searchKeyword,t=l(f).saveArticleToggle;return[...this.shelfBooks].filter(r=>{if(0!==e.length&&!`${r.title} ${r.author}`.toLowerCase().includes(e))return!1;if(!t&&r.isArticle)return!1;if("book"===this.categoryFilter&&r.isArticle)return!1;if("article"===this.categoryFilter&&!r.isArticle)return!1;if("remoteOnly"===this.syncStatusFilter&&(this.isDisplayLocalOnly(r)||r.hasLocalFile))return!1;if("synced"===this.syncStatusFilter&&!this.isDisplaySynced(r))return!1;if("localOnly"===this.syncStatusFilter&&!this.isDisplayLocalOnly(r))return!1;if("all"!==this.readingStatusFilter){const e=this.isBookFinished(r);if("finished"===this.readingStatusFilter&&!e)return!1;if("reading"===this.readingStatusFilter&&e)return!1}return!0}).sort((e,t)=>this.sortBooks(e,t))}sortBooks(e,t){return"title"===this.sortMode?e.title.localeCompare(t.title):this.getRecentValue(t)-this.getRecentValue(e)}shouldGroupByYear(){return this.groupByYear&&"recent"===this.sortMode}groupBooksByYear(e){const t=new Map;for(const r of e){const e=this.getReadYear(r),n=t.get(e);n?n.push(r):t.set(e,[r])}return Array.from(t.entries()).map(([e,t])=>({year:e,books:t}))}getRecentValue(e){if(e.lastReadDate){const r=(0,t.moment)(e.lastReadDate,"YYYY-MM-DD",!0);if(r.isValid())return r.unix()}return 0}getReadYear(e){if(!e.lastReadDate)return me;const r=(0,t.moment)(e.lastReadDate,["YYYY-MM-DD","YYYY/M/D","YYYY/MM/DD"],!0);return r.isValid()?r.format("YYYY"):me}getLastReadDateText(e){var t,r,n;return null!==(n=null!==(r=null!==(t=e.lastReadDate)&&void 0!==t?t:e.progress.readingDateText)&&void 0!==r?r:e.progress.finishedDateText)&&void 0!==n?n:"暂无"}isDisplaySynced(e){return e.hasLocalFile&&this.isRemoteIncludedInCurrentSettings(e)}isDisplayLocalOnly(e){return e.hasLocalFile&&!this.isRemoteIncludedInCurrentSettings(e)}isBookFinished(e){var t;return e.hasLocalFile&&void 0!==(null===(t=e.localFile)||void 0===t?void 0:t.finishedDate)}isRemoteIncludedInCurrentSettings(e){var t,r;return!!e.remoteExists&&(null===(r=null===(t=e.syncFilter)||void 0===t?void 0:t.includedByCurrentSettings)||void 0===r||r)}openBookDetail(e){var t,r;const n=(null===(r=null===(t=e.localFile)||void 0===t?void 0:t.file)||void 0===r?void 0:r.path)||"";this.plugin.activateBookDetailView(e.bookId,e.title,e.cover,n)}openLocalFile(r){return e(this,void 0,void 0,function*(){var e;if(!(null===(e=r.localFile)||void 0===e?void 0:e.file))return void new t.Notice("该书暂无本地文件");const n=this.app.workspace.getLeaf(!0);yield n.openFile(r.localFile.file),this.app.workspace.revealLeaf(n)})}}const we="weread-reading-stats-view";function ye(e){if(!e)return"0分钟";const t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0&&r>0?`${t}小时${r}分钟`:t>0?`${t}小时`:`${r}分钟`}function xe(e){if(0===e)return"0";const t=Math.round(e/60),r=e/3600;if(r>=1&&Number.isInteger(Math.round(r)))return`${Math.round(r)}小时`;if(t>=60){const e=Math.floor(t/60),r=t%60;return 0===r?`${e}小时`:`${e}小时${r}分`}return`${t}分钟`}function ke(e,t){if(0===e.length)return 1;const r=[...e].sort((e,t)=>e-t);return r[Math.floor(t/100*(r.length-1))]||1}function Ee(e){return null==e?null:{text:`${Math.round(100*Math.abs(e))}%`,up:e>=0}}const Te=["6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","0","1","2","3","4","5"],Se=["一","二","三","四","五","六","日"];function De(e,t){if("overall"===e)return;const r=new Date;if("weekly"===e){const e=0===r.getDay()?6:r.getDay()-1,n=new Date(r.getFullYear(),r.getMonth(),r.getDate()-e);return n.setDate(n.getDate()+7*t),Math.floor(n.getTime()/1e3)}if("monthly"===e){const e=new Date(r.getFullYear(),r.getMonth()+t,1);return Math.floor(e.getTime()/1e3)}if("annually"===e){const e=new Date(r.getFullYear()+t,0,1);return Math.floor(e.getTime()/1e3)}}function Ae(e,t){if("overall"===e)return"全部";const r=new Date;if("weekly"===e){const e=0===r.getDay()?6:r.getDay()-1,n=new Date(r.getFullYear(),r.getMonth(),r.getDate()-e+7*t),o=new Date(n.getTime()+5184e5),i=e=>`${e.getMonth()+1}/${e.getDate()}`;return`${n.getFullYear()} · ${i(n)} - ${i(o)}`}if("monthly"===e){const e=new Date(r.getFullYear(),r.getMonth()+t,1);return`${e.getFullYear()}年${e.getMonth()+1}月`}return"annually"===e?`${r.getFullYear()+t}年`:""}const Ce=".weread-cache",_e=`${Ce}/daily-stats.json`;function Ne(t){return e(this,void 0,void 0,function*(){try{if(yield t.adapter.exists(_e)){const e=yield t.adapter.read(_e);return JSON.parse(e)}}catch(e){}return{version:1,data:{},fetchedMonths:[]}})}function Le(t,r){return e(this,void 0,void 0,function*(){try{(yield t.adapter.exists(Ce))||(yield t.adapter.mkdir(Ce));const e=JSON.stringify(r);yield t.adapter.write(_e,e)}catch(e){console.error("[weread] Failed to save daily stats cache",e)}})}class Oe extends t.Modal{onOpen(){const{contentEl:e}=this;e.addClass("weread-export-loading-modal");const t=e.createDiv({cls:"weread-export-loading-wrap"});t.createDiv({cls:"weread-stats-spinner"}),t.createDiv({cls:"weread-export-loading-text",text:"正在生成图片…"})}onClose(){this.contentEl.empty()}}class Be extends t.Modal{constructor(e,t,r,n){super(e),this.dataUrl=t,this.filename=r,this.vault=n}onOpen(){const{contentEl:r}=this;r.addClass("weread-export-modal");const n=r.createEl("h2",{cls:"weread-export-title"}),o=n.createSpan({cls:"weread-export-title-icon"});(0,t.setIcon)(o,"image-down"),n.createSpan({text:"导出阅读统计图片"}),r.createDiv({cls:"weread-export-preview"}).createEl("img",{cls:"weread-export-preview-img"}).src=this.dataUrl;const i=r.createDiv({cls:"weread-export-actions"}),a=i.createEl("button",{cls:"weread-export-action-btn mod-cta"});(0,t.setIcon)(a.createSpan(),"vault"),a.createSpan({text:"保存到 Vault"}),a.addEventListener("click",()=>e(this,void 0,void 0,function*(){try{const e=this.dataUrl.split(",")[1],r=Uint8Array.from(atob(e),e=>e.charCodeAt(0)),n=(l(f).noteLocation||"/").replace(/\/$/,"")+"/"+this.filename;yield this.vault.adapter.writeBinary(n,r.buffer),new t.Notice(`✅ 已保存到 Vault:${n}`),this.close()}catch(e){new t.Notice("❌ 保存失败:"+e.message)}}));const s=i.createEl("button",{cls:"weread-export-action-btn"});(0,t.setIcon)(s.createSpan(),"download"),s.createSpan({text:"保存到本地"}),s.addEventListener("click",()=>{const e=document.createElement("a");e.download=this.filename,e.href=this.dataUrl,e.click(),this.close()});const c=i.createEl("button",{cls:"weread-export-action-btn"});(0,t.setIcon)(c.createSpan(),"copy"),c.createSpan({text:"复制到剪切板"}),c.addEventListener("click",()=>e(this,void 0,void 0,function*(){try{const e=this.dataUrl.split(",")[1],r=Uint8Array.from(atob(e),e=>e.charCodeAt(0)),n=new Blob([r],{type:"image/png"});yield navigator.clipboard.write([new ClipboardItem({"image/png":n})]),new t.Notice("✅ 已复制到剪切板"),this.close()}catch(e){new t.Notice("❌ 复制失败:"+e.message)}}))}onClose(){this.contentEl.empty()}}class Ie extends t.ItemView{constructor(e,t,r){super(e),this.currentMode="monthly",this.currentOffset=0,this.data=null,this.loading=!1,this.chartView={},this.imgCache=new Map,this.apiManager=t,this.fileManager=r}getViewType(){return we}getDisplayText(){return"微信读书阅读统计"}getIcon(){return"bar-chart-2"}onMoreOptionsMenu(e){e.addItem(e=>e.setTitle("刷新数据").setIcon("refresh-ccw").onClick(()=>{this.data=null,this.loadData()})),e.addSeparator()}onOpen(){return e(this,void 0,void 0,function*(){this.contentEl.empty(),this.contentEl.addClass("weread-stats-view"),this.statsEl=this.contentEl.createDiv({cls:"weread-stats-container"}),this.render(),this.loadData()})}onClose(){return e(this,void 0,void 0,function*(){this.contentEl.empty()})}loadData(){return e(this,void 0,void 0,function*(){const e=l(f);if(!e.wereadApiKey)return void this.renderNoApiKey();if(this.loading=!0,this.renderLoading(),e.userVid){const t=yield this.apiManager.getUserInfo(e.userVid),r=[null==t?void 0:t.signature,null==t?void 0:t.vDesc].filter(Boolean).join(" | ");r&&f.actions.setUserSignature(r)}const t=De(this.currentMode,this.currentOffset),r=yield this.apiManager.getReadingStats(this.currentMode,t);this.loading=!1,r?(this.data=r,this.render()):this.renderError()})}render(){const e=this.statsEl;e.empty(),l(f).wereadApiKey?this.loading?this.renderLoading():this.data&&(this.renderHeader(e),this.renderTabBar(e),this.renderReadingTimeHero(e,this.data),this.renderKPICards(e,this.data),this.renderTimeSeries(e,this.data),this.renderTopBooks(e,this.data),this.renderPreferences(e,this.data)):this.renderNoApiKey()}renderHeader(e){const r=e.createDiv({cls:"weread-stats-header"}).createDiv({cls:"weread-stats-header-row"}),n=l(f),o=n.user,i=n.userAvatar,a=n.userSignature,s=r.createDiv({cls:"weread-stats-user-left"});if(i){const e=s.createEl("img",{cls:"weread-stats-user-avatar"});e.src=i,e.alt=o||"用户头像"}const c=s.createDiv({cls:"weread-stats-user-text"});if(c.createSpan({cls:"weread-stats-user-name",text:o||"微信读书用户"}),a&&c.createSpan({cls:"weread-stats-user-sub",text:a}),"overall"===this.currentMode||"annually"===this.currentMode||"monthly"===this.currentMode){const e=r.createEl("button",{cls:"weread-stats-btn weread-stats-export-btn",attr:{title:"导出为图片"}});(0,t.setIcon)(e,"image-down"),e.createSpan({text:"导出图片"}),e.addEventListener("click",()=>this.exportAsImage(e))}}exportAsImage(n){return e(this,void 0,void 0,function*(){const{toPng:n}=r(777),{requestUrl:o}=r(6795),i=new Oe(this.app);i.open();const a=this.statsEl.querySelector(".weread-stats-export-btn");a&&(a.style.display="none");const s=Array.from(this.statsEl.querySelectorAll("img")),l=s.map(e=>e.src);yield Promise.allSettled(s.map((t,r)=>e(this,void 0,void 0,function*(){const e=l[r];if(e&&!e.startsWith("data:"))try{if(!this.imgCache.has(e)){const t=yield o({url:e,method:"GET"}),r=t.headers["content-type"]||"image/jpeg",n=btoa(String.fromCharCode(...new Uint8Array(t.arrayBuffer)));this.imgCache.set(e,`data:${r};base64,${n}`)}t.src=this.imgCache.get(e)}catch(e){}})));const c=[];this.statsEl.querySelectorAll("svg, svg *").forEach(e=>{const t=getComputedStyle(e),r=t.fill,n=t.stroke;c.push({el:e,fill:e.getAttribute("fill"),stroke:e.getAttribute("stroke"),style:e.getAttribute("style")||""}),e.setAttribute("fill",r||"none"),e.setAttribute("stroke",n||"none");const o=e.getAttribute("style")||"";(o.includes("var(")||o.includes("color-mix("))&&e.setAttribute("style",o.replace(/fill\s*:[^;]+/g,`fill:${r}`).replace(/stroke\s*:[^;]+/g,`stroke:${n}`))});const d=this.statsEl.offsetWidth,u=this.statsEl.scrollHeight,p=this.contentEl,h=p.style.overflow,f=p.style.height;p.style.overflow="visible",p.style.height="auto";const g=[];let m=this.statsEl.parentElement;for(;m&&m!==document.body;)0===m.scrollLeft&&0===m.scrollTop||(g.push({el:m,left:m.scrollLeft,top:m.scrollTop}),m.scrollLeft=0,m.scrollTop=0),m=m.parentElement;try{const e=yield n(this.statsEl,{pixelRatio:1.5,width:d,height:u,skipFonts:!0,cacheBust:!1,style:{overflow:"visible",position:"fixed",left:"0",top:"0",margin:"0"}});i.close(),new Be(this.app,e,this.exportFilename(),this.app.vault).open()}catch(e){i.close(),console.error("导出图片失败",e),new t.Notice("❌ 导出图片失败:"+e.message)}finally{a&&(a.style.display=""),s.forEach((e,t)=>{e.src=l[t]}),c.forEach(({el:e,fill:t,stroke:r,style:n})=>{null===t?e.removeAttribute("fill"):e.setAttribute("fill",t),null===r?e.removeAttribute("stroke"):e.setAttribute("stroke",r),""===n?e.removeAttribute("style"):e.setAttribute("style",n)}),g.forEach(({el:e,left:t,top:r})=>{e.scrollLeft=t,e.scrollTop=r}),p.style.overflow=h,p.style.height=f}})}exportFilename(){const e=new Date;return`weread-stats-${e.getFullYear()}${String(e.getMonth()+1).padStart(2,"0")}${String(e.getDate()).padStart(2,"0")}_${String(e.getHours()).padStart(2,"0")}${String(e.getMinutes()).padStart(2,"0")}${String(e.getSeconds()).padStart(2,"0")}.png`}renderTabBar(e){const r=[{mode:"weekly",label:"周"},{mode:"monthly",label:"月"},{mode:"annually",label:"年"},{mode:"overall",label:"全部"}],n=e.createDiv({cls:"weread-stats-nav"}),o=n.createDiv({cls:"weread-stats-tabbar"});for(const e of r)o.createEl("button",{text:e.label,cls:"weread-stats-tab"+(this.currentMode===e.mode?" is-active":"")}).addEventListener("click",()=>{this.currentMode!==e.mode&&(this.currentMode=e.mode,this.currentOffset=0,this.data=null,this.render(),this.loadData())});if("overall"!==this.currentMode){const e=n.createDiv({cls:"weread-stats-timepicker"}),r=e.createEl("button",{cls:"weread-stats-timepicker-btn"});(0,t.setIcon)(r,"chevron-left"),r.addEventListener("click",()=>{this.currentOffset--,this.data=null,this.render(),this.loadData()}),e.createSpan({cls:"weread-stats-timepicker-label",text:Ae(this.currentMode,this.currentOffset)});const o=e.createEl("button",{cls:"weread-stats-timepicker-btn"+(this.currentOffset>=0?" is-disabled":"")});(0,t.setIcon)(o,"chevron-right"),this.currentOffset>=0&&o.setAttribute("disabled","true"),o.addEventListener("click",()=>{this.currentOffset>=0||(this.currentOffset++,this.data=null,this.render(),this.loadData())})}}renderReadingTimeHero(e,t){const r=e.createDiv({cls:"weread-stats-hero"}),n=Math.floor(t.totalReadTime/3600),o=Math.floor(t.totalReadTime%3600/60),i=r.createDiv({cls:"weread-stats-hero-num"});n>0&&(i.createSpan({cls:"weread-stats-hero-big",text:String(n)}),i.createSpan({cls:"weread-stats-hero-unit",text:"小时"})),(o>0||0===n)&&(i.createSpan({cls:"weread-stats-hero-big",text:String(o)}),i.createSpan({cls:"weread-stats-hero-unit",text:"分钟"}));const a=t.dayAverageReadTime||(t.readDays>0?Math.round(t.totalReadTime/t.readDays):0),s=[];if("overall"===this.currentMode&&t.registTime)s.push(function(e){if(!e)return"—";const t=new Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}(t.registTime)+"至今"),s.push(`日均阅读 ${ye(a)}`),s.push(`与微信读书相伴 ${t.readDays} 天`);else if("annually"===this.currentMode){if(s.push(`日均阅读 ${ye(a)}`),void 0!==t.compare){const e=Ee(t.compare);e&&s.push(`比去年 ${e.up?"↑":"↓"}${e.text}`)}}else if("monthly"===this.currentMode){if(s.push(`日均阅读 ${ye(a)}`),void 0!==t.compare){const e=Ee(t.compare);e&&s.push(`比上月 ${e.up?"↑":"↓"}${e.text}`)}}else if("weekly"===this.currentMode&&(s.push(`日均阅读 ${ye(a)}`),void 0!==t.compare)){const e=Ee(t.compare);e&&s.push(`比上周 ${e.up?"↑":"↓"}${e.text}`)}s.length>0&&r.createDiv({cls:"weread-stats-hero-sub",text:s.join(" · ")})}renderKPICards(e,t){var r,n,o,i,a,s,l;const c=e.createDiv({cls:"weread-stats-kpi-grid"});if(this.makeKPICard(c,"阅读天数",`${t.readDays} 天`,"calendar"),"overall"!==this.currentMode&&this.makeKPICard(c,"日均时长",ye(t.dayAverageReadTime),"trending-up",void 0!==t.compare?Ee(t.compare):null),"weekly"!==this.currentMode){const e=null!==(r=t.readStat)&&void 0!==r?r:[],d=null!==(o=null===(n=e.find(e=>"读过"===e.stat))||void 0===n?void 0:n.counts)&&void 0!==o?o:"—",u=null!==(a=null===(i=e.find(e=>"读完"===e.stat))||void 0===i?void 0:i.counts)&&void 0!==a?a:"—",p=null!==(l=null===(s=e.find(e=>"笔记"===e.stat))||void 0===s?void 0:s.counts)&&void 0!==l?l:"—";this.makeKPICard(c,"读过",d,"book-open"),this.makeKPICard(c,"读完",u,"check-circle"),this.makeKPICard(c,"笔记",p,"pencil")}}makeKPICard(e,r,n,o,i){const a=e.createDiv({cls:"weread-stats-kpi-card"}),s=a.createDiv({cls:"weread-stats-kpi-icon"});(0,t.setIcon)(s,o);const l=a.createDiv({cls:"weread-stats-kpi-body"}),c=l.createDiv({cls:"weread-stats-kpi-value"}),d=n.match(/^([\d]+)(.*)/);d?(c.createSpan({cls:"weread-stats-kpi-number",text:d[1]}),d[2]&&c.createSpan({cls:"weread-stats-kpi-unit",text:d[2]})):c.setText(n);const u=l.createDiv({cls:"weread-stats-kpi-label-row"});u.createSpan({text:r,cls:"weread-stats-kpi-label"}),i&&u.createSpan({cls:"weread-stats-compare-badge "+(i.up?"is-up":"is-down"),text:(i.up?"↑":"↓")+i.text})}renderTimeSeries(e,r){var n,o;if(!r.readTimes||0===Object.keys(r.readTimes).length)return;const i=e.createDiv({cls:"weread-stats-section"}),a=i.createDiv({cls:"weread-stats-section-title-row"}),s=this.getAvailableViews(),l=null!==(n=this.chartView[this.currentMode])&&void 0!==n?n:this.getDefaultView(this.currentMode),c="annually"===this.currentMode&&"heatmap"===l?"每日阅读时长":{weekly:"每日阅读时长",monthly:"每日阅读时长",annually:"每月阅读时长",overall:"每年阅读时长"}[this.currentMode];if(a.createEl("h3",{text:c,cls:"weread-stats-section-title"}),s.length>1){const e=a.createDiv({cls:"weread-stats-view-toggle"}),r={bar:"bar-chart-2",calendar:"calendar-days",heatmap:"layout-grid"},n={bar:"柱状图",calendar:"日历",heatmap:"热力图"};for(const o of s){const i=e.createEl("button",{cls:"weread-stats-view-toggle-btn"+(l===o?" is-active":""),attr:{title:n[o]}});(0,t.setIcon)(i,r[o]),i.addEventListener("click",()=>{this.chartView[this.currentMode]=o,this.render()})}}const d=i.createDiv({cls:"weread-stats-chart-area"});if("calendar"===l&&"monthly"===this.currentMode)this.renderMonthCalendar(d,r.readTimes);else if("heatmap"===l&&"annually"===this.currentMode)this.renderYearHeatmap(d,r);else if("heatmap"===l&&"overall"===this.currentMode)this.renderOverallHeatmap(d,r);else{let e,t;if("weekly"===this.currentMode){const n=De("weekly",this.currentOffset),o=function(e,t){let r;if(void 0!==t)r=t;else{const e=new Date,t=0===e.getDay()?6:e.getDay()-1,n=new Date(e.getFullYear(),e.getMonth(),e.getDate()-t);r=Math.floor(n.getTime()/1e3)}const n=[],o=Se.slice();for(let t=0;t<7;t++){const o=r+86400*t,i=Object.keys(e).find(e=>{const t=Number(e)-o;return t>=0&&t<86400});n.push(i?e[i]:0)}return{values:n,labels:o}}(r.readTimes,n);e=o.values,t=o.labels}else if("monthly"===this.currentMode){const n=De("monthly",this.currentOffset),i=n?new Date(1e3*n):new Date,a=i.getFullYear(),s=i.getMonth(),l=new Date(a,s+1,0).getDate(),c={};for(const[e,t]of Object.entries(r.readTimes)){const r=new Date(1e3*Number(e));r.getFullYear()===a&&r.getMonth()===s&&(c[r.getDate()]=t)}e=[],t=[];for(let r=1;r<=l;r++)e.push(null!==(o=c[r])&&void 0!==o?o:0),t.push(String(r))}else{const n=Object.entries(r.readTimes).sort(([e],[t])=>Number(e)-Number(t));e=n.map(([,e])=>e),t=n.map(([e])=>{const t=new Date(1e3*Number(e));return"overall"===this.currentMode?`${t.getFullYear()}`:"annually"===this.currentMode?`${t.getMonth()+1}月`:`${t.getDate()}`})}this.renderBarChart(d,e,t)}}getAvailableViews(){return"monthly"===this.currentMode?["bar","calendar"]:"annually"===this.currentMode||"overall"===this.currentMode?["heatmap","bar"]:["bar"]}getDefaultView(e){return"monthly"===e?"bar":"annually"===e||"overall"===e?"heatmap":"bar"}renderMonthCalendar(e,t){var r;const n=De("monthly",this.currentOffset),o=n?new Date(1e3*n):new Date,i=o.getFullYear(),a=o.getMonth(),s={};for(const[e,r]of Object.entries(t)){const t=new Date(1e3*Number(e));t.getFullYear()===i&&t.getMonth()===a&&(s[t.getDate()]=r)}const l=ke(Object.values(s).filter(e=>e>0),95),c=e.createDiv({cls:"weread-calendar"}),d=["一","二","三","四","五","六","日"],u=c.createDiv({cls:"weread-calendar-header"});for(const e of d)u.createDiv({cls:"weread-calendar-dow",text:e});const p=new Date(i,a,1).getDay(),h=0===p?6:p-1,f=new Date(i,a+1,0).getDate(),g=new Date,m=c.createDiv({cls:"weread-calendar-grid"});for(let e=0;e<h;e++)m.createDiv({cls:"weread-calendar-cell is-empty"});for(let e=1;e<=f;e++){const t=null!==(r=s[e])&&void 0!==r?r:0,n=l>0?Math.min(t/l,1):0,o=m.createDiv({cls:"weread-calendar-cell"}),c=0===t?0:Math.max(1,Math.ceil(4*n));o.addClass(`weread-cal-level-${c}`),g.getFullYear()===i&&g.getMonth()===a&&g.getDate()===e&&o.addClass("is-today"),o.createDiv({cls:"weread-calendar-day",text:String(e)}),t>0&&o.createDiv({cls:"weread-calendar-duration",text:ye(t)}),t>0&&o.setAttribute("title",`${a+1}月${e}日:${ye(t)}`)}const v=(h+f)%7;if(0!==v)for(let e=0;e<7-v;e++)m.createDiv({cls:"weread-calendar-cell is-empty"})}renderYearHeatmap(e,t){if(t._dailyReadTimes)this.renderCalHeatmap(e,t._dailyReadTimes,t.readDays);else{const r=e.createDiv({cls:"weread-heatmap-loading"});r.createDiv({cls:"weread-stats-spinner weread-stats-spinner-sm"}),r.createDiv({text:"正在加载全年日数据…",cls:"weread-stats-empty-text"}),this.loadAnnualDailyData(t)}}loadAnnualDailyData(t){return e(this,void 0,void 0,function*(){const e=De("annually",this.currentOffset),r=(e?new Date(1e3*e):new Date).getFullYear(),n=new Date,o=yield Ne(this.app.vault);let i=!1;const a=Array.from({length:12},(e,t)=>Math.floor(new Date(r,t,1).getTime()/1e3)),s={};for(const[e,t]of Object.entries(o.data))e.startsWith(`${r}-`)&&(s[e]=t);Object.keys(s).length>0&&(t._dailyReadTimes=s,this.render());const l=a.filter(e=>{const t=new Date(1e3*e),r=`${t.getFullYear()}-${t.getMonth()}`,i=t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth();return!(t>n)&&(i||!o.fetchedMonths.includes(r))});if(0===l.length)return;for(let e=0;e<l.length;e+=6){const t=yield Promise.all(l.slice(e,e+6).map(e=>this.apiManager.getReadingStats("monthly",e)));for(let r=0;r<t.length;r++){const n=t[r],a=l[e+r],s=new Date(1e3*a),c=`${s.getFullYear()}-${s.getMonth()}`;if(null==n?void 0:n.readTimes){for(const[e,t]of Object.entries(n.readTimes)){const r=new Date(1e3*Number(e));o.data[`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`]=t}o.fetchedMonths.includes(c)||o.fetchedMonths.push(c),i=!0}}}i&&(yield Le(this.app.vault,o));const c={};for(const[e,t]of Object.entries(o.data))e.startsWith(`${r}-`)&&(c[e]=t);t._dailyReadTimes=c,this.render()})}renderOverallHeatmap(e,t){if(t._allDailyReadTimes)this.renderAllYearsHeatmap(e,t._allDailyReadTimes,t);else{const r=e.createDiv({cls:"weread-heatmap-loading"});r.createDiv({cls:"weread-stats-spinner weread-stats-spinner-sm"}),r.createDiv({text:"正在加载全部阅读数据…",cls:"weread-stats-empty-text"}),this.loadOverallDailyData(t)}}loadOverallDailyData(t){return e(this,void 0,void 0,function*(){const e=new Date,r=e.getFullYear(),n=l(f),o=n.statsStartYear&&n.statsStartYear>2e3?n.statsStartYear:t.registTime?new Date(1e3*t.registTime).getFullYear():r-2,i=[];for(let e=o;e<=r;e++)for(let t=0;t<12;t++)i.push(Math.floor(new Date(e,t,1).getTime()/1e3));const a=yield Ne(this.app.vault);let s=!1;const c=Object.keys(a.data).length>0;c&&(t._allDailyReadTimes=Object.assign({},a.data),t._statsStartYear=o,this.render());const d=i.filter(t=>{const r=new Date(1e3*t),n=`${r.getFullYear()}-${r.getMonth()}`,o=r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth();return!(r>e)&&(o||!a.fetchedMonths.includes(n))});if(0!==d.length){for(let e=0;e<d.length;e+=6){const t=yield Promise.all(d.slice(e,e+6).map(e=>this.apiManager.getReadingStats("monthly",e)));for(let r=0;r<t.length;r++){const n=t[r],o=d[e+r],i=new Date(1e3*o),l=`${i.getFullYear()}-${i.getMonth()}`;if(null==n?void 0:n.readTimes){for(const[e,t]of Object.entries(n.readTimes)){const r=new Date(1e3*Number(e));a.data[`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`]=t}a.fetchedMonths.includes(l)||a.fetchedMonths.push(l),s=!0}}e+6<d.length&&(yield new Promise(e=>setTimeout(e,200)))}s&&(yield Le(this.app.vault,a)),t._allDailyReadTimes=a.data,t._statsStartYear=o,this.render()}else c||(t._allDailyReadTimes=a.data,t._statsStartYear=o,this.render())})}renderAllYearsHeatmap(e,t,r){var n;const o=new Date,i=o.getFullYear(),a=l(f),s=null!==(n=r._statsStartYear)&&void 0!==n?n:a.statsStartYear&&a.statsStartYear>2e3?a.statsStartYear:r.registTime?new Date(1e3*r.registTime).getFullYear():i-2,c=t,d=ke(Object.values(c).filter(e=>e>0),95),u=e=>{if(0===e)return 0;const t=Math.min(e/d,1);return t<.25?1:t<.5?2:t<.75?3:4},p=e.createDiv({cls:"weread-allheatmap-wrap"});for(let e=i;e>=s;e--){const t=p.createDiv({cls:"weread-allheatmap-year"});t.createDiv({cls:"weread-allheatmap-yearlabel",text:String(e)}),this.renderCalHeatmapInto(t,c,e,o,u)}const h=p.createDiv({cls:"weread-ghmap-legend"});h.createSpan({cls:"weread-ghmap-legend-text",text:"少"});for(let e=0;e<=4;e++)h.createDiv({cls:`weread-ghmap-cell weread-ghmap-legend-cell level-${e}`});h.createSpan({cls:"weread-ghmap-legend-text",text:"多"})}renderCalHeatmapInto(e,t,r,n,o){var i;const a=[];for(let e=0;e<12;e++){const n=new Date(r,e+1,0).getDate();for(let o=1;o<=n;o++){const n=new Date(r,e,o);a.push({date:n,secs:null!==(i=t[`${r}-${e}-${o}`])&&void 0!==i?i:0})}}const s=a[0].date.getDay(),l=[...Array(0===s?6:s-1).fill(null),...a],c=Math.ceil(l.length/7),d={};for(let e=0;e<c;e++)for(let t=0;t<7;t++){const r=l[7*e+t];if(!r)continue;const n=r.date.getMonth();n in d||(d[n]=e)}const u=e.createDiv({cls:"weread-ghmap-inner"}),p=u.createDiv({cls:"weread-ghmap-daylabels"}),h=["一","三","五"],f=[0,2,4];for(let e=0;e<7;e++){const t=f.indexOf(e);p.createDiv({cls:"weread-ghmap-daylabel",text:t>=0?h[t]:""})}const g=u.createDiv({cls:"weread-ghmap-right"}),m=g.createDiv({cls:"weread-ghmap-months"});for(let e=0;e<c;e++){const t=Object.entries(d).find(([,t])=>t===e);m.createDiv({cls:"weread-ghmap-monthlabel",text:t?`${Number(t[0])+1}月`:""})}const v=g.createDiv({cls:"weread-ghmap-grid"});for(let e=0;e<c;e++){const t=v.createDiv({cls:"weread-ghmap-col"});for(let r=0;r<7;r++){const i=l[7*e+r];if(!i){t.createDiv({cls:"weread-ghmap-cell is-empty"});continue}const{date:a,secs:s}=i,c=o(s),d=a.toDateString()===n.toDateString(),u=t.createDiv({cls:`weread-ghmap-cell level-${c}${d?" is-today":""}`}),p=`${a.getMonth()+1}月${a.getDate()}日`;u.title=s>0?`${p}:${ye(s)}`:p}}}renderCalHeatmap(e,t,r){const n=De("annually",this.currentOffset),o=(n?new Date(1e3*n):new Date).getFullYear(),i=new Date,a=t,s=ke(Object.entries(a).filter(([e])=>e.startsWith(`${o}-`)).map(([,e])=>e).filter(e=>e>0),95),l=e.createDiv({cls:"weread-ghmap-wrap"});this.renderCalHeatmapInto(l,a,o,i,e=>{if(0===e)return 0;const t=Math.min(e/s,1);return t<.25?1:t<.5?2:t<.75?3:4});const c=l.createDiv({cls:"weread-ghmap-legend"});c.createSpan({cls:"weread-ghmap-legend-text",text:"少"});for(let e=0;e<=4;e++)c.createDiv({cls:`weread-ghmap-cell weread-ghmap-legend-cell level-${e}`});c.createSpan({cls:"weread-ghmap-legend-text",text:"多"});const d=Object.entries(a).filter(([e])=>e.startsWith(`${o}-`)),u=null!=r?r:d.filter(([,e])=>e>0).length,p=d.reduce((e,[,t])=>e+t,0);l.createDiv({cls:"weread-heatmap-summary",text:`${o} 年共阅读 ${u} 天,累计 ${ye(p)}`})}renderBarChart(e,t,r){const n=Math.max(...t,1),o=function(e){if(e<=0)return 60;const t=e/60;if(t<=10)return 60*Math.ceil(t);if(t<=60)return 5*Math.ceil(t/5)*60;if(t<=120)return 10*Math.ceil(t/10)*60;const r=e/3600;return Math.ceil(2*r)/2*3600}(n),i=e.createDiv({cls:"weread-stats-chart-wrapper"}),a=t.length,s=Math.max(8,Math.floor(600/a)-4),l=i.createSvg("svg",{attr:{viewBox:"0 0 652 176",width:"100%",height:176,class:"weread-stats-bar-chart",preserveAspectRatio:"xMidYMid meet"}}),c=[0,.5,1];for(const e of c){const t=o*e,r=154-140*e;l.createSvg("line",{attr:{x1:String(52),y1:String(r),x2:String(652),y2:String(r),class:"weread-stats-scale-line"}}),l.createSvg("text",{attr:{x:String(48),y:String(r+4),"text-anchor":"end",class:"weread-stats-scale-label"}}).textContent=xe(t)}t.forEach((e,t)=>{const i=Math.max(e/o*140,e>0?4:0),c=600/a,d=52+t*c+(c-s)/2,u=154-i;l.createSvg("rect",{attr:{x:String(d),y:String(u),width:String(s),height:String(i),rx:"4",class:"weread-stats-bar"+(e===n&&e>0?" is-max":"")}}).createSvg("title").textContent=`${r[t]}: ${ye(e)}`,l.createSvg("text",{attr:{x:String(d+s/2),y:String(174),"text-anchor":"middle",class:"weread-stats-bar-label"}}).textContent=r[t]})}renderTopBooks(r,n){var o;if(!(null===(o=n.readLongest)||void 0===o?void 0:o.length))return;const i=r.createDiv({cls:"weread-stats-section"});i.createEl("h3",{text:`阅读时长 Top ${n.readLongest.length}`,cls:"weread-stats-section-title"});const a=Math.max(...n.readLongest.map(e=>e.readTime),1),s=i.createDiv({cls:"weread-stats-book-list"});n.readLongest.forEach((r,n)=>{var o,i,l,c,d,u,p,h,f,g,m,v,b,w,y,x,k;const E=null!==(c=null!==(i=null===(o=r.book)||void 0===o?void 0:o.title)&&void 0!==i?i:null===(l=r.albumInfo)||void 0===l?void 0:l.name)&&void 0!==c?c:"未知",T=null!==(h=null!==(u=null===(d=r.book)||void 0===d?void 0:d.author)&&void 0!==u?u:null===(p=r.albumInfo)||void 0===p?void 0:p.authorName)&&void 0!==h?h:"",S=null!==(v=null!==(g=null===(f=r.book)||void 0===f?void 0:f.cover)&&void 0!==g?g:null===(m=r.albumInfo)||void 0===m?void 0:m.cover)&&void 0!==v?v:"",D=null!==(x=null!==(w=null===(b=r.book)||void 0===b?void 0:b.bookId)&&void 0!==w?w:null===(y=r.albumInfo)||void 0===y?void 0:y.albumId)&&void 0!==x?x:"",A=r.readTime/a*100,C=s.createDiv({cls:"weread-stats-book-row"});if(C.createDiv({cls:"weread-stats-book-rank",text:String(n+1)}),S){const e=C.createEl("img",{cls:"weread-stats-book-cover"});e.src=S,e.alt=E}else{const e=C.createDiv({cls:"weread-stats-book-cover weread-stats-book-cover-placeholder"});(0,t.setIcon)(e,"book")}const _=C.createDiv({cls:"weread-stats-book-info"});if(_.createDiv({cls:"weread-stats-book-title",text:E}),T&&_.createDiv({cls:"weread-stats-book-author",text:T}),null===(k=r.tags)||void 0===k?void 0:k.length){const e=_.createDiv({cls:"weread-stats-book-tags"});r.tags.forEach(t=>e.createSpan({cls:"weread-stats-tag",text:t}))}const N=C.createDiv({cls:"weread-stats-book-right"});N.createDiv({cls:"weread-stats-book-duration",text:ye(r.readTime)}),N.createDiv({cls:"weread-stats-mini-bar-track"}).createDiv({cls:"weread-stats-mini-bar-fill"}).style.width=`${A}%`,D&&(C.addClass("weread-stats-book-row-clickable"),C.addEventListener("click",()=>e(this,void 0,void 0,function*(){const e=(yield this.fileManager.getNotebookFilesByBookId()).get(D);(null==e?void 0:e.file)instanceof t.TFile&&(yield this.app.workspace.getLeaf(!1).openFile(e.file))})))})}renderPreferences(e,r){var n,o,i,a;const s=null===(n=r.preferCategory)||void 0===n?void 0:n.some(e=>e.readingTime>0),l=null===(o=r.preferAuthor)||void 0===o?void 0:o.length,c=24===(null===(i=r.preferTime)||void 0===i?void 0:i.length),d=null===(a=r.preferPublisher)||void 0===a?void 0:a.length;if(!(s||l||c||d))return;const u=e.createDiv({cls:"weread-stats-section"});u.createEl("h3",{text:"偏好分析",cls:"weread-stats-section-title"});const p=u.createDiv({cls:"weread-stats-pref-grid"});if(c){const e=p.createDiv({cls:"weread-stats-pref-card weread-stats-pref-card-wide"}),n=e.createDiv({cls:"weread-stats-pref-card-header"});(0,t.setIcon)(n.createSpan(),"clock"),n.createSpan({text:"阅读时段分布"}),r.preferTimeWord&&e.createDiv({cls:"weread-stats-pref-subtitle",text:r.preferTimeWord}),this.renderHourBarChart(e,r.preferTime)}if(s||d){if(s){const e=r.preferCategory.filter(e=>e.readingTime>0),n=p.createDiv({cls:"weread-stats-pref-card"}),o=n.createDiv({cls:"weread-stats-pref-card-header"});(0,t.setIcon)(o.createSpan(),"tag"),o.createSpan({text:"分类偏好"}),r.preferCategoryWord&&n.createDiv({cls:"weread-stats-pref-subtitle",text:r.preferCategoryWord}),this.renderPieChart(n,e.slice(0,8).map(e=>({label:e.categoryTitle,value:e.readingTime})))}if(d){const e=p.createDiv({cls:"weread-stats-pref-card"}),n=e.createDiv({cls:"weread-stats-pref-card-header"});(0,t.setIcon)(n.createSpan(),"building-2"),n.createSpan({text:"偏好出版方"}),this.renderTagCloud(e,r.preferPublisher.slice(0,20))}}if(l){const e=p.createDiv({cls:"weread-stats-pref-card"}),n=e.createDiv({cls:"weread-stats-pref-card-header"});(0,t.setIcon)(n.createSpan(),"user"),n.createSpan({text:"偏好作者"});const o=Math.max(...r.preferAuthor.map(e=>e.count),1);r.preferAuthor.slice(0,6).forEach(t=>{const r=e.createDiv({cls:"weread-stats-pref-row weread-stats-pref-row-author"});r.createSpan({cls:"weread-stats-pref-name",text:t.name}),r.createDiv({cls:"weread-stats-pref-bar-track"}).createDiv({cls:"weread-stats-pref-bar-fill"}).style.width=t.count/o*100+"%",r.createSpan({cls:"weread-stats-pref-meta",text:`${t.count}本`})})}}renderHourBarChart(e,t){const r=Math.max(...t,1),n=Math.floor(25)-2,o=e.createDiv({cls:"weread-stats-chart-wrapper"}).createSvg("svg",{attr:{viewBox:"0 0 600 78",width:"100%",height:78,class:"weread-stats-bar-chart",preserveAspectRatio:"xMidYMid meet"}});t.forEach((e,t)=>{const i=Math.max(e/r*60,e>0?2:0),a=25*t+(25-n)/2,s=60-i,l=o.createSvg("rect",{attr:{x:String(a),y:String(s),width:String(n),height:String(i),rx:"2",class:"weread-stats-hour-seg-bar"}});l.setAttribute("style",`fill: ${(e=>e<6?"var(--weread-hour-morning)":e<12?"var(--weread-hour-afternoon)":e<18?"var(--weread-hour-evening)":"var(--weread-hour-night)")(t)}`),l.createSvg("title").textContent=`${Te[t]}时: ${ye(e)}`,t%3==0&&(o.createSvg("text",{attr:{x:String(a+n/2),y:String(76),"text-anchor":"middle",class:"weread-stats-bar-label"}}).textContent=Te[t])});const i=e.createDiv({cls:"weread-stats-hour-legend"});[["凌晨","var(--weread-hour-night)"],["上午","var(--weread-hour-morning)"],["下午","var(--weread-hour-afternoon)"],["晚上","var(--weread-hour-evening)"]].forEach(([e,t])=>{const r=i.createDiv({cls:"weread-stats-hour-legend-item"});r.createDiv({cls:"weread-stats-hour-legend-dot"}).style.background=t,r.createSpan({text:e,cls:"weread-stats-hour-legend-label"})})}renderPieChart(e,t){if(t.length<3)return;const r=t.length,n=Math.max(...t.map(e=>e.value),1),o=e.createSvg("svg",{attr:{width:"100%",viewBox:"0 0 160 160",class:"weread-stats-radar-svg",preserveAspectRatio:"xMidYMid meet",style:"background:transparent"}}),i=o.createSvg("defs").createSvg("radialGradient");i.setAttribute("id","radarGrad"),i.setAttribute("cx","50%"),i.setAttribute("cy","50%"),i.setAttribute("r","50%");const a=i.createSvg("stop");a.setAttribute("offset","0%"),a.setAttribute("stop-color","#90c8f8"),a.setAttribute("stop-opacity","0.9");const s=i.createSvg("stop");s.setAttribute("offset","100%"),s.setAttribute("stop-color","#c8e6fc"),s.setAttribute("stop-opacity","0.4");const l=e=>2*Math.PI*e/r-Math.PI/2,c=(e,t)=>({x:80+t*Math.cos(l(e)),y:80+t*Math.sin(l(e))});for(let e=1;e<=3;e++){const t=52*e/3,n=Array.from({length:r},(e,r)=>c(r,t)),i=o.createSvg("polygon");i.setAttribute("points",n.map(e=>`${e.x},${e.y}`).join(" ")),i.setAttribute("class","weread-stats-radar-ring")}for(let e=0;e<r;e++){const t=c(e,52),r=o.createSvg("line");r.setAttribute("x1",String(80)),r.setAttribute("y1",String(80)),r.setAttribute("x2",String(t.x)),r.setAttribute("y2",String(t.y)),r.setAttribute("class","weread-stats-radar-axis")}const d=t.map((e,t)=>c(t,e.value/n*52)),u=o.createSvg("polygon");u.setAttribute("points",d.map(e=>`${e.x},${e.y}`).join(" ")),u.setAttribute("class","weread-stats-radar-area"),u.setAttribute("fill","url(#radarGrad)"),d.forEach((e,r)=>{const n=o.createSvg("circle");n.setAttribute("cx",String(e.x)),n.setAttribute("cy",String(e.y)),n.setAttribute("r","3"),n.setAttribute("class","weread-stats-radar-dot"),n.createSvg("title").textContent=`${t[r].label}: ${ye(t[r].value)}`});const p=t.map(e=>e.value).sort((e,t)=>t-e),h=new Set(p.slice(0,2));t.forEach((e,t)=>{const r=c(t,66),n=o.createSvg("text");n.setAttribute("x",String(r.x)),n.setAttribute("y",String(r.y)),n.setAttribute("text-anchor","middle"),n.setAttribute("dominant-baseline","middle");const i=h.has(e.value);n.setAttribute("class",i?"weread-stats-radar-label is-top":"weread-stats-radar-label"),n.textContent=e.label})}renderTagCloud(e,t){const r=Math.max(...t.map(e=>e.count),1),n=e.createDiv({cls:"weread-stats-tag-cloud"});t.forEach(e=>{const t=e.count/r,o=Math.round(11+10*t),i=.5+.5*t,a=n.createSpan({cls:"weread-stats-cloud-tag",text:e.name});a.style.fontSize=`${o}px`,a.style.opacity=String(i),a.title=`${e.name}: ${e.count}本`})}renderLoading(){this.statsEl.empty();const e=this.statsEl.createDiv({cls:"weread-stats-empty"});e.createDiv({cls:"weread-stats-spinner"}),e.createDiv({text:"正在加载数据…",cls:"weread-stats-empty-text"})}renderNoApiKey(){this.statsEl.empty();const e=this.statsEl.createDiv({cls:"weread-stats-empty"});(0,t.setIcon)(e.createDiv({cls:"weread-stats-empty-icon"}),"key"),e.createDiv({text:"请先在设置中填写微信读书 API Key",cls:"weread-stats-empty-text"}),e.createDiv({text:"设置 → 微信读书 → 阅读统计 → API Key",cls:"weread-stats-empty-hint"})}renderError(){this.statsEl.empty();const e=this.statsEl.createDiv({cls:"weread-stats-empty"});(0,t.setIcon)(e.createDiv({cls:"weread-stats-empty-icon"}),"alert-circle"),e.createDiv({text:"数据加载失败,请检查 API Key 或网络",cls:"weread-stats-empty-text"}),e.createEl("button",{text:"重试",cls:"weread-stats-btn"}).addEventListener("click",()=>this.loadData())}}const Me="weread-book-detail-view",Pe={1:{label:"黄色",cssClass:"hl-color-yellow"},2:{label:"蓝色",cssClass:"hl-color-blue"},3:{label:"绿色",cssClass:"hl-color-green"},4:{label:"红色",cssClass:"hl-color-red"},5:{label:"紫色",cssClass:"hl-color-purple"}},Re=[{id:"highlights",label:"划线",icon:"highlighter"},{id:"notes",label:"笔记",icon:"pencil"},{id:"popular",label:"热门划线",icon:"flame"},{id:"reviews",label:"书评",icon:"message-square"}];class qe extends t.ItemView{constructor(e,t,r){super(e),this.bookId="",this.bookTitle="",this.bookCover="",this.localFilePath="",this.currentTab="highlights",this.loading=!1,this.error=null,this.requestBookId="",this.apiRouter=t,this.plugin=r}getViewType(){return Me}getDisplayText(){return this.bookTitle||"书籍详情"}getIcon(){return"book-open"}updateTabTitle(){var e,t;if(!this.containerEl||!this.bookTitle)return;let r=null===(e=this.containerEl.parentElement)||void 0===e?void 0:e.querySelector(".tab-title");r||(r=null===(t=this.containerEl.closest(".workspace-leaf"))||void 0===t?void 0:t.querySelector(".tab-title")),r&&(r.textContent=this.bookTitle)}onOpen(){return e(this,void 0,void 0,function*(){this.contentEl.empty(),this.contentEl.addClass("weread-book-detail-view"),this.headerEl=this.contentEl.createDiv({cls:"weread-book-detail-header"}),this.tabBarEl=this.contentEl.createDiv({cls:"weread-book-detail-tabbar"}),this.contentChildEl=this.contentEl.createDiv({cls:"weread-book-detail-content"})})}onClose(){return e(this,void 0,void 0,function*(){this.contentEl.empty()})}getState(){return{bookId:this.bookId,bookTitle:this.bookTitle,bookCover:this.bookCover,localFilePath:this.localFilePath,currentTab:this.currentTab}}setState(t,r){const n=Object.create(null,{setState:{get:()=>super.setState}});return e(this,void 0,void 0,function*(){const e=t.bookId||"",o=t.bookTitle||"",i=t.bookCover||"",a=t.localFilePath||"",s=t.currentTab||"highlights";e!==this.bookId?(this.bookId=e,this.bookTitle=o,this.bookCover=i,this.localFilePath=a,this.currentTab=s,this.detail=void 0,this.progress=void 0,this.highlightResp=void 0,this.reviewResp=void 0,this.popularResp=void 0,this.publicReviewResp=void 0,this.error=null,this.bookId&&(yield this.loadAllData()),this.render()):s!==this.currentTab&&(this.currentTab=s,this.renderContent()),n.setState.call(this,t,r)})}loadAllData(){return e(this,void 0,void 0,function*(){this.loading=!0,this.error=null,this.requestBookId=this.bookId,this.renderLoadingState();const[e,t,r,n,o,i]=yield Promise.allSettled([this.apiRouter.getBook(this.bookId),this.apiRouter.getProgress(this.bookId),this.apiRouter.getNotebookHighlights(this.bookId),this.apiRouter.getNotebookReviews(this.bookId),this.apiRouter.getBestBookmarks(this.bookId),this.apiRouter.getPublicReviews(this.bookId)]);this.requestBookId===this.bookId&&(this.detail="fulfilled"===e.status?e.value:void 0,this.progress="fulfilled"===t.status?t.value:void 0,this.highlightResp="fulfilled"===r.status?r.value:void 0,this.reviewResp="fulfilled"===n.status?n.value:void 0,this.popularResp="fulfilled"===o.status?o.value:void 0,this.publicReviewResp="fulfilled"===i.status?i.value:void 0,this.detail||this.highlightResp||this.reviewResp||(this.error="加载失败,请检查网络或 API Key"),this.loading=!1)})}render(){this.updateTabTitle(),this.loading?this.renderLoadingState():(this.headerEl.empty(),this.tabBarEl.empty(),this.contentChildEl.empty(),this.bookId?!this.error||this.detail||this.highlightResp||this.reviewResp?(this.renderHeader(),this.renderTabBar(),this.renderContent(),this.renderFloatingButton()):this.renderErrorState():this.renderEmptyState("点击书籍查看详情"))}renderLoadingState(){this.headerEl.empty(),this.tabBarEl.empty(),this.contentChildEl.empty(),this.contentChildEl.createDiv({cls:"weread-book-detail-status"}).createDiv({cls:"weread-book-detail-loading",text:"正在加载..."}),this.renderFloatingButton()}renderEmptyState(e){this.headerEl.empty(),this.tabBarEl.empty(),this.contentChildEl.empty(),this.contentChildEl.createDiv({cls:"weread-book-detail-status"}).createDiv({cls:"weread-book-detail-empty",text:e}),this.renderFloatingButton()}renderErrorState(){const t=this.contentChildEl.createDiv({cls:"weread-book-detail-status"});t.createDiv({cls:"weread-book-detail-error",text:this.error||"加载失败"}),t.createEl("button",{text:"重试",cls:"weread-book-detail-retry-btn"}).addEventListener("click",()=>e(this,void 0,void 0,function*(){yield this.loadAllData(),this.render()}))}openLocalFileIfExists(){return e(this,void 0,void 0,function*(){if(!this.localFilePath)return;const e=this.app.vault.getAbstractFileByPath(this.localFilePath);if(e instanceof t.TFile){const t=this.app.workspace.getLeaf(!0);yield t.openFile(e),this.app.workspace.revealLeaf(t)}else new t.Notice("本地文件不存在")})}openLocalFileInCurrentLeaf(){return e(this,void 0,void 0,function*(){if(!this.localFilePath)return;const e=this.app.vault.getAbstractFileByPath(this.localFilePath);e instanceof t.TFile?yield this.leaf.openFile(e):new t.Notice("本地文件不存在")})}renderFloatingButton(){if(!this.localFilePath)return;const e=this.containerEl.querySelector(".weread-floating-btn");e&&e.remove();const r=this.containerEl.createDiv({cls:"weread-floating-btn"});(0,t.setIcon)(r,"file-text"),r.setAttr("aria-label","查看本地笔记"),r.addEventListener("click",()=>this.openLocalFileInCurrentLeaf())}renderHeader(){var e,t,r,n,o,i,a,s,l,c,d;const u=this.headerEl,p=!!this.localFilePath,h=u.createDiv({cls:"weread-book-detail-header-top"}),f=(null===(e=this.detail)||void 0===e?void 0:e.cover)||this.bookCover;if(f){const e=h.createEl("img",{cls:"weread-book-detail-cover"});e.src=f,e.alt=(null===(t=this.detail)||void 0===t?void 0:t.title)||this.bookTitle}const g=h.createDiv({cls:"weread-book-detail-info"}),m=g.createDiv({cls:"weread-book-detail-info-main"}),v=m.createDiv({cls:"weread-book-detail-title-row"}).createEl("h2",{text:(null===(r=this.detail)||void 0===r?void 0:r.title)||this.bookTitle,cls:"weread-book-detail-title"});p&&(v.addClass("is-clickable"),v.setAttr("title","打开本地笔记"),v.addEventListener("click",()=>this.openLocalFileIfExists()));const b=(null===(n=this.detail)||void 0===n?void 0:n.author)||"";b&&m.createDiv({cls:"weread-book-detail-author"}).createSpan({text:b});const w=null===(i=null===(o=this.detail)||void 0===o?void 0:o.intro)||void 0===i?void 0:i.trim();if(w){const e=m.createDiv({cls:"weread-book-detail-intro-text",text:w});w.length>200&&e.addClass("is-collapsed")}const y=g.createDiv({cls:"weread-book-detail-info-expand"}),x=y.createDiv({cls:"weread-book-detail-metadata"});this.renderMetadataRowContent(x)||x.remove();const k=y.createDiv({cls:"weread-book-detail-stats-row"}),E=(null===(s=null===(a=this.highlightResp)||void 0===a?void 0:a.updated)||void 0===s?void 0:s.length)||0,T=(null===(l=this.reviewResp)||void 0===l?void 0:l.totalCount)||0,S=(null===(d=null===(c=this.popularResp)||void 0===c?void 0:c.items)||void 0===d?void 0:d.length)||0;E>0||T>0||S>0?(this.createStatBadge(k,"highlighter",`划线 ${E}`),this.createStatBadge(k,"pencil",`笔记 ${T}`),S>0&&this.createStatBadge(k,"flame",`热门 ${S}`)):k.remove()}renderMetadataRowContent(e){var t,r,n,o,i,a,s,l,c;const d=(null===(r=null===(t=this.progress)||void 0===t?void 0:t.book)||void 0===r?void 0:r.finishTime)||(null===(n=this.detail)||void 0===n?void 0:n.finishReading),u=(null===(i=null===(o=this.progress)||void 0===o?void 0:o.book)||void 0===i?void 0:i.progress)&&this.progress.book.progress>0;d?this.createMetaItem(e,"check-circle","已读完","weread-book-detail-status-finished"):u&&this.createMetaItem(e,"book-open","阅读中","weread-book-detail-status-reading");const p=null===(s=null===(a=this.progress)||void 0===a?void 0:a.book)||void 0===s?void 0:s.readingTime,h=this.getProgressPercent();if(p&&p>0){const t=Math.floor(p/3600),r=Math.floor(p%3600/60),n=t>0?`${t}小时${r}分`:`${r}分钟`;this.createMetaItem(e,"clock",`阅读 ${n}`)}null!==h&&this.createMetaItem(e,"trending-up",`读到 ${h}%`);const f=null===(c=null===(l=this.progress)||void 0===l?void 0:l.book)||void 0===c?void 0:c.finishTime;if(f&&f>0){const t=new Date(1e3*f).toISOString().slice(0,10);this.createMetaItem(e,"flag",`读完 ${t}`)}return e.children.length>0}createStatBadge(e,r,n,o=!1){const i=e.createDiv({cls:"weread-book-detail-stat"+(o?" is-clickable":"")});(0,t.setIcon)(i.createSpan(),r),i.createSpan({text:` ${n}`}),o&&(i.setAttr("title","打开本地笔记"),i.addEventListener("click",()=>this.openLocalFileIfExists()))}renderTabBar(){const r=this.tabBarEl;for(const e of Re){const n=r.createEl("button",{cls:"weread-book-detail-tab"+(this.currentTab===e.id?" is-active":"")});(0,t.setIcon)(n,e.icon),n.createSpan({text:` ${e.label}`}).addClass("weread-book-detail-tab-label"),n.addEventListener("click",()=>{this.currentTab!==e.id&&(this.currentTab=e.id,r.querySelectorAll(".weread-book-detail-tab").forEach(e=>e.removeClass("is-active")),n.addClass("is-active"),this.renderContent())})}r.createDiv({cls:"weread-book-detail-tabbar-spacer"});const n=r.createEl("button",{cls:"weread-book-detail-tab-action"});(0,t.setIcon)(n,"book-open"),n.setAttr("title","在微信读书中打开"),n.addEventListener("click",()=>{const e="app"===l(f).bookOpenMode?`weread://reading?bId=${this.bookId}`:B(this.bookId);window.open(e)});const o=r.createEl("button",{cls:"weread-book-detail-tab-action"});o.style.marginLeft="4px",(0,t.setIcon)(o,"refresh-ccw"),o.setAttr("title","刷新数据并同步本地笔记"),o.addEventListener("click",()=>e(this,void 0,void 0,function*(){o.addClass("is-spinning"),yield Promise.all([this.loadAllData(),this.plugin.syncBookById(this.bookId)]),o.removeClass("is-spinning"),this.render()}))}renderContent(){switch(this.contentChildEl.empty(),this.currentTab){case"highlights":this.renderHighlightsTab();break;case"notes":this.renderNotesTab();break;case"popular":this.renderPopularTab();break;case"reviews":this.renderReviewsTab()}}renderHighlightsTab(){var e,r;const n=this.contentChildEl,o=(null===(e=this.highlightResp)||void 0===e?void 0:e.updated)||[],i=(null===(r=this.highlightResp)||void 0===r?void 0:r.chapters)||[];if(0===o.length)return void n.createDiv({text:"暂无划线",cls:"weread-book-detail-empty"});const a=new Map;for(const e of i)void 0!==e.chapterUid&&a.set(e.chapterUid,{title:e.title,chapterIdx:e.chapterIdx});const s=new Map;for(const e of o)s.has(e.chapterUid)||s.set(e.chapterUid,[]),s.get(e.chapterUid).push(e);for(const[,e]of s)e.sort((e,t)=>{var r,n;return parseInt((null===(r=e.range)||void 0===r?void 0:r.split("-")[0])||"0",10)-parseInt((null===(n=t.range)||void 0===n?void 0:n.split("-")[0])||"0",10)});const l=[...s.entries()].sort((e,t)=>{var r,n,o,i;return(null!==(n=null===(r=a.get(e[0]))||void 0===r?void 0:r.chapterIdx)&&void 0!==n?n:Number.MAX_SAFE_INTEGER)-(null!==(i=null===(o=a.get(t[0]))||void 0===o?void 0:o.chapterIdx)&&void 0!==i?i:Number.MAX_SAFE_INTEGER)});for(const[e,r]of l){const o=a.get(e),i=(null==o?void 0:o.title)||"未知章节",s=n.createDiv({cls:"weread-book-detail-section"});s.createEl("h3",{text:i,cls:"weread-book-detail-section-title"});for(const e of r){const r=Pe[e.colorStyle]||Pe[1],n=s.createDiv({cls:`weread-book-detail-hl-card ${r.cssClass}`});n.createDiv({cls:"weread-book-detail-hl-quote"}).createDiv({text:e.markText,cls:"weread-book-detail-hl-text"});const o=n.createDiv({cls:"weread-book-detail-hl-meta"}),i=e.range?e.range.split("-")[0]:"";if(i&&o.createSpan({text:`位置 ${i}`,cls:"weread-book-detail-hl-meta-item"}),e.createTime&&o.createSpan({text:this.formatDateTime(e.createTime),cls:"weread-book-detail-hl-meta-item"}),e.contextAbstract){const r=o.createSpan({cls:"weread-book-detail-hl-note"});(0,t.setIcon)(r,"pencil"),r.setAttr("title",e.contextAbstract)}const a=o.createDiv({cls:"weread-book-detail-hl-actions"});this.createDeepLinkButton(a,this.buildDeepLink(e.chapterUid,e.range)),this.createCopyButton(a,e.markText)}}}renderNotesTab(){var e,r,n,o,i,a,s,l,c;const d=this.contentChildEl,u=(null===(e=this.reviewResp)||void 0===e?void 0:e.reviews)||[];if(0===u.length)return void d.createDiv({text:"暂无笔记",cls:"weread-book-detail-empty"});const p=(null===(r=this.highlightResp)||void 0===r?void 0:r.chapters)||[],h=new Map;for(const e of p)void 0!==e.chapterUid&&h.set(e.chapterUid,{title:e.title,chapterIdx:e.chapterIdx});const f=[...u].sort((e,t)=>{var r,n;return((null===(r=t.review)||void 0===r?void 0:r.createTime)||0)-((null===(n=e.review)||void 0===n?void 0:n.createTime)||0)});for(const e of f){const r=d.createDiv({cls:"weread-book-detail-note-card"}),u=null===(n=e.review)||void 0===n?void 0:n.abstract;if(u){const e=r.createDiv({cls:"weread-book-detail-note-ref"});(0,t.setIcon)(e.createSpan({cls:"weread-book-detail-note-ref-icon"}),"quote"),e.createSpan({text:u,cls:"weread-book-detail-note-ref-text"})}const p=null===(o=e.review)||void 0===o?void 0:o.content;p&&this.renderTextWithBreaks(r,p,"weread-book-detail-note-content");const f=r.createDiv({cls:"weread-book-detail-note-meta"}),g=(null===(i=e.review)||void 0===i?void 0:i.chapterName)||((null===(a=e.review)||void 0===a?void 0:a.chapterUid)?null===(s=h.get(e.review.chapterUid))||void 0===s?void 0:s.title:void 0);if(g&&f.createSpan({text:g,cls:"weread-book-detail-hl-meta-item"}),(null===(l=e.review)||void 0===l?void 0:l.createTime)&&f.createSpan({text:this.formatDateTime(e.review.createTime),cls:"weread-book-detail-hl-meta-item"}),null===(c=e.review)||void 0===c?void 0:c.range){const t=e.review.range.split("-")[0];f.createSpan({text:`位置 ${t}`,cls:"weread-book-detail-hl-meta-item"})}}}renderPopularTab(){var e,r;const n=this.contentChildEl,o=(null===(e=this.popularResp)||void 0===e?void 0:e.items)||[],i=(null===(r=this.popularResp)||void 0===r?void 0:r.chapters)||[];if(0===o.length)return void n.createDiv({text:"暂无热门划线",cls:"weread-book-detail-empty"});const a=new Map;for(const e of i)void 0!==e.chapterUid&&a.set(e.chapterUid,{title:e.title,chapterIdx:e.chapterIdx});const s=new Map;for(const e of o)s.has(e.chapterUid)||s.set(e.chapterUid,[]),s.get(e.chapterUid).push(e);for(const[,e]of s)e.sort((e,t)=>{var r,n;return parseInt((null===(r=e.range)||void 0===r?void 0:r.split("-")[0])||"0",10)-parseInt((null===(n=t.range)||void 0===n?void 0:n.split("-")[0])||"0",10)});const l=[...s.entries()].sort((e,t)=>{var r,n,o,i;return(null!==(n=null===(r=a.get(e[0]))||void 0===r?void 0:r.chapterIdx)&&void 0!==n?n:Number.MAX_SAFE_INTEGER)-(null!==(i=null===(o=a.get(t[0]))||void 0===o?void 0:o.chapterIdx)&&void 0!==i?i:Number.MAX_SAFE_INTEGER)});for(const[e,r]of l){const o=a.get(e),i=(null==o?void 0:o.title)||"未知章节",s=n.createDiv({cls:"weread-book-detail-section"});s.createEl("h3",{text:i,cls:"weread-book-detail-section-title"});for(const e of r){const r=s.createDiv({cls:"weread-book-detail-popular-card"});r.createDiv({text:e.markText,cls:"weread-book-detail-popular-text"});const n=r.createDiv({cls:"weread-book-detail-popular-meta"});if(e.totalCount>0){const r=n.createSpan({cls:"weread-book-detail-popular-count"});(0,t.setIcon)(r,"flame"),r.createSpan({text:` ${e.totalCount}人划线`})}const o=e.range?e.range.split("-")[0]:"";o&&n.createSpan({text:`位置 ${o}`,cls:"weread-book-detail-hl-meta-item"});const i=n.createDiv({cls:"weread-book-detail-hl-actions"});this.createDeepLinkButton(i,this.buildDeepLink(e.chapterUid,e.range)),this.createCopyButton(i,e.markText)}}}renderReviewsTab(){var e,t,r;const n=this.contentChildEl,o=(null===(t=null===(e=this.reviewResp)||void 0===e?void 0:e.reviews)||void 0===t?void 0:t.filter(e=>{var t;return 4===(null===(t=e.review)||void 0===t?void 0:t.type)}))||[],i=(null===(r=this.publicReviewResp)||void 0===r?void 0:r.reviews)||[];if(0!==o.length||0!==i.length){if(o.length>0){const e=n.createDiv({cls:"weread-book-detail-section"});e.createEl("h3",{text:"我的书评",cls:"weread-book-detail-section-title"});for(const t of o)this.renderSingleReviewCard(e,t)}if(i.length>0){const e=n.createDiv({cls:"weread-book-detail-section"}),t=e.createEl("h3",{cls:"weread-book-detail-section-title"}),r=i.slice(0,qe.MAX_PUBLIC_REVIEWS),o=i.length-r.length;t.setText(o>0?`社区书评(显示前 ${r.length} 条,共 ${i.length} 条)`:`社区书评(${i.length} 条)`),i.length>0&&console.log("[weread plugin] 公共书评第一条原始结构:",JSON.stringify(i[0],null,2));for(const t of r)this.renderSingleReviewCard(e,t)}}else n.createDiv({text:"暂无书评",cls:"weread-book-detail-empty"})}renderSingleReviewCard(e,t){var r,n,o;const i=e.createDiv({cls:"weread-book-detail-review-card"}),a=(null===(r=t.review)||void 0===r?void 0:r.review)||t.review||t,s=(null===(n=null==a?void 0:a.author)||void 0===n?void 0:n.name)||"匿名用户",l=null===(o=null==a?void 0:a.author)||void 0===o?void 0:o.avatar,c=null==a?void 0:a.createTime,d=null==a?void 0:a.title,u=null==a?void 0:a.content,p=i.createDiv({cls:"weread-book-detail-review-author"});l&&(p.createEl("img",{cls:"weread-book-detail-review-avatar"}).src=l);const h=p.createDiv({cls:"weread-book-detail-review-author-info"});if(h.createSpan({text:s,cls:"weread-book-detail-review-author-name"}),c&&h.createSpan({text:this.formatDateTime(c),cls:"weread-book-detail-review-time"}),d&&i.createDiv({text:d,cls:"weread-book-detail-review-title"}),u&&this.renderTextWithBreaks(i,u,"weread-book-detail-review-content"),u){const e=i.createDiv({cls:"weread-book-detail-actions"});this.createCopyButton(e,u)}}buildDeepLink(e,t){const[r,n]=t.split("-");return`weread://bestbookmark?bookId=${this.bookId}&chapterUid=${e}&rangeStart=${r}&rangeEnd=${n||r}`}renderTextWithBreaks(e,t,r){const n=e.createDiv({cls:r}),o=t.split("\n");for(let e=0;e<o.length;e++)e>0&&n.createEl("br"),n.createSpan({text:o[e]})}createCopyButton(e,r){const n=e.createEl("button",{cls:"weread-book-detail-action-btn"});(0,t.setIcon)(n,"copy"),n.setAttr("title","复制"),n.addEventListener("click",e=>{e.stopPropagation(),navigator.clipboard.writeText(r).then(()=>{new t.Notice("已复制")})})}createDeepLinkButton(e,r){const n=e.createEl("button",{cls:"weread-book-detail-action-btn"});(0,t.setIcon)(n,"external-link"),n.setAttr("title","跳转到微信读书"),n.addEventListener("click",e=>{e.stopPropagation(),window.open(r,"_blank")})}formatDateTime(e){return e?window.moment(1e3*e).format("YYYY-MM-DD HH:mm"):""}createMetaItem(e,r,n,o=""){const i=e.createDiv({cls:`weread-book-detail-meta-item ${o}`.trim()});(0,t.setIcon)(i.createSpan(),r),i.createSpan({text:` ${n}`}),i.setAttr("title",n)}getProgressPercent(){var e,t;return void 0!==(null===(t=null===(e=this.progress)||void 0===e?void 0:e.book)||void 0===t?void 0:t.progress)?this.progress.book.progress:null}}qe.MAX_PUBLIC_REVIEWS=20;var Fe=r(5072),je=r.n(Fe),$e=r(7825),Ue=r.n($e),He=r(7659),Ve=r.n(He),ze=r(5056),Ke=r.n(ze),Ye=r(540),Ge=r.n(Ye),We=r(1113),Je=r.n(We),Xe=r(1083),Ze={};Ze.styleTagTransform=Je(),Ze.setAttributes=Ke(),Ze.insert=Ve().bind(null,"head"),Ze.domAPI=Ue(),Ze.insertStyleElement=Ge(),je()(Xe.A,Ze),Xe.A&&Xe.A.locals&&Xe.A.locals;class Qe extends t.Plugin{constructor(){super(...arguments),this.syncing=!1,this.scheduledSyncTimer=null}onload(){console.log("load weread plugin"),f.initialise(this).then(()=>{this.initializePlugin()})}initializePlugin(){const e=new T(this.app.vault,this.app.metadataCache,this.app);this.fileManager=e;const r=new H;this.syncNotebooks=new R(e,r,this.app.vault),this.bookshelfService=new K(e,r),this.syncReadingStats=new J(this.app.vault,r);const n=l(f);n.cookies&&n.cookies.length>0&&(console.log("[weread plugin] 初始化时检验 Cookie 有效性"),r.verifyCookieValidity().catch(e=>{console.error("[weread plugin] 初始化 Cookie 验证失败",e)})),this.syncCookiesToPartition(),this.addRibbonIcon("book-open","打开微信读书书架",e=>{0===e.button&&this.activateBookshelfView()}).addEventListener("contextmenu",e=>{e.preventDefault(),e.stopPropagation();const r=e=>{e.preventDefault()};window.addEventListener("mousedown",r);const n=new t.Menu;n.addItem(e=>e.setTitle("同步微信读书笔记").setIcon("refresh-ccw").onClick(()=>{this.startSync()})),n.addItem(e=>e.setTitle("强制同步微信读书笔记").setIcon("refresh-ccw-dot").onClick(()=>{this.startSync(!0)})),n.addItem(e=>e.setTitle("打开微信读书书架").setIcon("library").onClick(()=>{this.activateBookshelfView()})),n.showAtMouseEvent(e),n.onHide(()=>{window.removeEventListener("mousedown",r)})}),this.addCommand({id:"sync-weread-notes-command",name:"同步微信读书笔记",callback:()=>{this.startSync()}}),this.addCommand({id:"Force-sync-weread-notes-command",name:"强制同步微信读书笔记",callback:()=>{this.startSync(!0)}}),this.registerView(de,e=>new pe(e)),this.registerView(ge,e=>new be(e,this,this.bookshelfService)),this.registerView(we,t=>new Ie(t,r,e)),this.registerView(Me,e=>new qe(e,r,this)),this.addCommand({id:"open-weread-reading-view-tab",name:"在新标签页打开微信读书",callback:()=>{this.activateReadingView("TAB")}}),this.addCommand({id:"open-weread-reading-view-window",name:"在新窗口打开微信读书",callback:()=>{this.activateReadingView("WINDOW")}}),this.addCommand({id:"open-weread-bookshelf-view",name:"打开微信读书书架",callback:()=>{this.activateBookshelfView()}}),this.addCommand({id:"sync-weread-reading-stats",name:"同步阅读统计数据",callback:()=>{this.syncReadingStats.sync()}}),this.registerEvent(this.app.workspace.on("editor-menu",(t,r,n)=>{const o=e.getWereadNoteAnnotationFile(n.file);null!=o&&(t.addSeparator(),t.addItem(e=>e.setIcon("refresh-ccw").setTitle("同步当前读书笔记").onClick(()=>{this.syncNotebooks.syncNotebook(o)})))})),this.wereadSettingsTab=new ae(this.app,this),this.addSettingTab(this.wereadSettingsTab),this.setupFloatingPanel(),this.setupScheduledSync()}openWereadSettingsTab(e){var t;const r=this.app.setting;null==r||r.open(),null===(t=null==r?void 0:r.openTabById)||void 0===t||t.call(r,this.manifest.id),this.wereadSettingsTab.display(),e&&window.setTimeout(()=>{this.wereadSettingsTab.scrollToSection(e)},50)}getPreferredReadingOpenMode(){var e;return null!==(e=l(f).readingOpenMode)&&void 0!==e?e:"TAB"}openPreferredReadingView(t){return e(this,void 0,void 0,function*(){yield this.activateReadingView(this.getPreferredReadingOpenMode(),t)})}startSync(){return e(this,arguments,void 0,function*(e=!1,r){if(this.syncing)new t.Notice("正在同步微信读书笔记,请勿重复点击");else{this.syncing=!0;try{const t=yield this.syncNotebooks.syncNotebooks(e,window.moment().format("YYYY-MM-DD"),r),n=l(f).lastSyncBookTitles||[];return f.actions.updateLastSyncInfo(t||0,n),console.log("syncing Weread note finish"),t}catch(e){t.Platform.isDesktopApp?new t.Notice("同步微信读书笔记异常,请打开控制台查看详情"):new t.Notice("同步微信读书笔记异常,请使用电脑端打开控制台查看详情"+e),console.error("同步微信读书笔记异常",e)}finally{this.syncing=!1}}})}syncBookById(r){return e(this,void 0,void 0,function*(){if(this.syncing)new t.Notice("正在同步微信读书笔记,请稍后再试");else{this.syncing=!0;try{yield this.syncNotebooks.syncBookById(r)}catch(e){new t.Notice("同步当前书籍异常,请打开控制台查看详情"),console.error("同步当前书籍异常",e)}finally{this.syncing=!1}}})}deleteLocalBookByPath(r){return e(this,void 0,void 0,function*(){const e=this.app.vault.getAbstractFileByPath(r);e instanceof t.TFile?(yield this.fileManager.deleteNotebookFile(e),new t.Notice("本地文件已删除")):new t.Notice("未找到本地文件")})}activateReadingView(t,r){return e(this,void 0,void 0,function*(){var e;const{workspace:n}=this.app,o=null!=r?r:"https://weread.qq.com/web/shelf";if("WINDOW"===t){const e=new ce;return void(yield e.open(o))}let i=null;i=null!==(e=n.getLeavesOfType(de)[0])&&void 0!==e?e:n.getLeaf("split","vertical"),i&&(yield i.setViewState({type:de,active:!0,state:{url:o}}),n.revealLeaf(i))})}activateBookshelfView(){return e(this,void 0,void 0,function*(){const{workspace:e}=this.app;let t=null;const r=e.getLeavesOfType(ge);r.length>0?t=r[0]:(t=e.getLeaf("tab"),yield t.setViewState({type:ge,active:!0})),e.revealLeaf(t)})}activateReadingStatsView(){return e(this,void 0,void 0,function*(){const{workspace:e}=this.app,t=e.getLeavesOfType(we);let r;t.length>0?r=t[0]:(r=e.getLeaf("tab"),yield r.setViewState({type:we,active:!0})),e.revealLeaf(r)})}activateBookDetailView(t,r,n,o){return e(this,arguments,void 0,function*(e,t,r,n,o=!1){const{workspace:i}=this.app;let a=null;if(o)a=i.getLeaf(!1);else{const e=i.getLeavesOfType(Me);a=e.length>0?e[0]:i.getLeaf("tab")}a&&(yield a.setViewState({type:Me,active:!0,state:{bookId:e,bookTitle:t,bookCover:r,localFilePath:n}}),i.revealLeaf(a))})}syncCookiesToPartition(){return e(this,void 0,void 0,function*(){var e;if(!t.Platform.isDesktopApp)return;const r=null!==(e=l(f).cookies)&&void 0!==e?e:[];if(0!==r.length)try{const{remote:e}=window.require("electron"),{BrowserWindow:t}=e,n=new t({width:1,height:1,show:!1,webPreferences:{partition:"persist:weread-plugin-browser"}}),o=n.webContents.session;for(const e of r)try{yield o.cookies.set({url:"https://weread.qq.com",name:e.name,value:e.value,domain:".weread.qq.com",path:"/",secure:!0,httpOnly:!1})}catch(t){console.debug("[weread plugin] cookie set failed:",e.name,t)}n.close(),console.log("[weread plugin] startup cookie sync complete")}catch(e){console.error("[weread plugin] startup cookie sync failed",e)}})}setupFloatingPanel(){const e=this.fileManager;let r=null,n=null;const o=()=>{null==r||r.remove(),r=null,n=null};this.registerEvent(this.app.workspace.on("active-leaf-change",i=>{const a=null==i?void 0:i.view,s=null==a?void 0:a.file;if(!(s instanceof t.TFile))return void o();const l=e.getWereadNoteAnnotationFile(s);if(!(null==l?void 0:l.bookId))return void o();if(n===l.bookId)return;o(),n=l.bookId;const c=a.contentEl;if(!c)return;c.style.position="relative";const d=c.createDiv({cls:"weread-floating-btn"});(0,t.setIcon)(d,"book-open"),d.setAttr("aria-label","查看微信读书详情"),d.addEventListener("click",()=>{this.activateBookDetailView(l.bookId,l.title||"",l.cover||"",s.path,!0)}),r=d}))}onunload(){console.log("unloading weread plugin",(new Date).toLocaleString()),this.clearScheduledSyncTimer()}setupScheduledSync(){this.clearScheduledSyncTimer();const{scheduledSyncToggle:r,scheduledSyncInterval:n}=l(f);if(!r)return;const o=60*Math.max(1,n)*1e3;console.log(`[weread plugin] 设置定时同步,间隔 ${n} 分钟`),this.scheduledSyncTimer=window.setInterval(()=>e(this,void 0,void 0,function*(){console.log("[weread plugin] 执行定时同步");try{const e=yield this.syncNotebooks.syncNotebooks(!1,window.moment().format("YYYY-MM-DD")),r=l(f).lastSyncBookTitles||[];f.actions.updateLastSyncInfo(e||0,r),new t.Notice(`定时同步完成,共同步 ${e||0} 本书`)}catch(e){console.error("[weread plugin] 定时同步失败",e),new t.Notice("定时同步失败,请查看控制台")}}),o)}clearScheduledSyncTimer(){null!==this.scheduledSyncTimer&&(window.clearInterval(this.scheduledSyncTimer),this.scheduledSyncTimer=null)}}})();var o=exports;for(var i in n)o[i]=n[i];n.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
|
||
/* nosourcemap */ |