From d53d7fccf3a86bf1f797dc04c5f7c057dfea65bb Mon Sep 17 00:00:00 2001 From: unlishema Date: Thu, 24 Oct 2024 03:45:48 -0400 Subject: [PATCH] Fixed Search Freezing Fixed the search freezing on Reaper tasks. Fixed the search algo to be a little better but it still needs a lot of work. --- UI-Desgin.png | Bin 0 -> 217817 bytes UI-Desgin.xcf | Bin 1144118 -> 1284796 bytes dist/main.js | 253 ++++++++++++++++++++------------- dist/main.js.map | 2 +- src/modules/SearchAlgorithm.ts | 151 ++++++++++++-------- src/modules/dochandler/main.ts | 6 +- src/modules/slayer.ts | 3 +- 7 files changed, 253 insertions(+), 162 deletions(-) create mode 100644 UI-Desgin.png diff --git a/UI-Desgin.png b/UI-Desgin.png new file mode 100644 index 0000000000000000000000000000000000000000..09604cf019ec40cf222807c7c9dabb39026ed76f GIT binary patch literal 217817 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�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�W}ZEs1=p@zrfp|5jl}P)H-i{*#>>)< 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 FV1f~Z--iGI literal 0 HcmV?d00001 diff --git a/UI-Desgin.xcf b/UI-Desgin.xcf index 5b73b87c475b56cfcbcda0a80832fe7521882ba0..645c5717982431c2f9cf53729dca68d67d9ff727 100644 GIT binary patch delta 154714 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

|06laizy8R_$i<&$TGQ3NxQIENVn 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℘_=(8OC`W}NwA6w%$&kp?K(X($}|J3B} zZ;5x9-1Ci-r=I!Ai{E_r%p(uaoN$a2X0~$!d*ipix_wFc`ftA5IC$&a>qx01pWm?L zwl@#lzGBJePyE3tGusTKFk790DzI+}-zxz!&%oL3R2oSx!oID~JL4t@-c(;Qx#zUCiZ zo+Bp2f#ko~Iemw7$N#&B^L#x2zkB$Uj?~pn&c-iwavnc5d9!#*k}AYE+Udz4KjK-> zeGl;2Oe#;Zb^5o$J4_!-(PKNmN#z!{nfOr}?}~?=NfmSR$aAUQ++h<3)tY0V=F5sq z;+@3_&7-Gg(!06E-aNngQ71+}`l&PGB9r8Ucm$DG44JsX9~>wO%#^qoqps=G#VO(h zk^ZDIUu)cQy7ZXdJ8b&9IE92HP0qdViRl~^zkmPY=d!h?Q{F4ZQwPq_; zC+p7~7;iM*+ji>UJMT6cCl8I&;vcM?IyluhcuMR)+ZaFb&iGN@Uwk}%X#Cjecg7F% z_1J*}hfX&d{#Ou&Nx1O z#<>$t9BnjC9X>cdbIz$lw8aO{(B%J{r<@r-H90kN%84V6M(sav&gp}bQ>PB_Xs4#m z9ymR7n-~Ah+cb`iA2=><^UnCe6EykbXKC`s&o-OEU&mN?} z9OK(*F4Z`wAD=kb5ZlfkJ3;2q;&Ttm?%@-s4pHIWJ$6bze)@Rh#KGSko|w7G1eav% z#PR9ld5h-pGuJ}AwkIw8Cf0(dJTlkq7X-+;THcIBz>E_?*U+0ctq{)O({AaGdF#UHxEJ^bH z9NQsDr&PE0$|@zMZGX;Dskag4L9soeJ^8$`vwpSS z&TjcuW4wN^J|*k5`9C!#>%Y_|WUJ)LJUHi@p#*X?fqg^&=A60d+`d!Af_8nE1uD@iA z-{awL&?FxDJ3lja)pwbke3W10<0B?J*IDqQvAcf2WYHOHC-3=;$y;}tiyZOf-|FJp zuU|BJ>$}Z%amL^2Fw%dm~`U0>A&>$h79Jj2?rvg@Lk*!5;}*GFFB@d{S) zLf;f0ckt1sxgOI6>bF@7B+295reysEYl37v(rpUXZ7q3i!69t^zxZdP*RgKxmW$t~ zZ2a2r`ir)#3TUt1Yl&;&U$A5K+VkIk$(HpS)^5IV__I1*M4Q}B4kN!>8kTqtz5Zkc>Tt;+HtXM zQ6}8GW8>z{>sKuw-mqTl`8C@XE?;=n_1A1zGra1&)f+e0k2z~R{(aAzx*QK`58tsh zU#bwnx_90Z?N?&k7azK3-y$$FoL>fqR@RTX7Ral#tv@x9(r&xFR=Zz(e3*~xwU@=m zH{HWL;MNz!0Z2qFqJ%zOzeycb_MOt6blMWyS6`w2?0c2+j?G<@UA833RA9uAp%^KI zQCwKrAWnp>9>P?Z$hGTcn^IcGt48-d_Yzou0G(m&ak1%IHfi(kwG-JTEr;K&|E*`P zoYr0)GbK~6&qo55TZGeoBy_REV>cA`{-%8~se~WVuA5^@XqDHD82Yh;a42r%co}p4 zg_O%Xy(wAMQt#vAbA0q^uWodt>Y(w~vm72)b>TN0+LN#A6ZMTgj5FGTQ}(2G=ftRLZbxZdfXOU>?lT8Y(f^QX1Wf1t)a>yK;Ki4U$ooI~0J z3$$1NQJ1KHHjt8I^~VEqbcXQB`mw+qIjlYSv@Tv>9Zd1@)u*XtTi-Ay9F=Yqcu?+~ zel;!iU7bh%nfAaN#<;z|$5!k?+KdBrPwhzZ3Z=zpsnVlNZ(>iw?<)>xZKYlohJhc*GK_uZrd5HQKs| zOyT-%eB7Yj`4F|?2eAS*?74?b0qvD>O8?NBp>)1fo;z>Zn$;_pYVJQ{N8$iGP`4}< zO688;*~?Zho?qV+Um!2ghTe7hwEGTFE#8O^%fp)KAjRG4NDM92FW#p!EIDu0a!4|^ z%}E41FImkcmn>Ma@;vQR&20+?w_mYi)v_gv7cE(}TKlfpR+_)_V;`E;GcY)3{=#Jo zwZdyuh)X|m=cli#R=fIU_4W-8YTLv%?e@=q@&dw4mkUK)nzb*9ZS}F+MuvjnIR1x~ z&Q9&OV%uGR^5G2`l+f~oPVDZ{3a_(m|F!2=?4EEkUuo-P+YYg9+r};zR7fIQYU}Eo ztvxKZomW*`+(h)vS2}uT&C}i#+Y;z5IK1$`#n!HYA+7KmQ^H!jetNuv+5dkFp7!9DQ4Re2XPgx8{PDvrVu?mk}MC zlB}=FMdhe==TZ8_dvkVb_obb>Wc~ZOgj~`d?9`>|mV8`0@(6IjHOGvu`j)(%!=Ecr z3_q4nYp$|BtsNFSUd%h>jJB?dc=TPP zH$8hvUwL04)<)zw#kK1GQCn{};?b_z zYO&P6-kOnD*8in-fwDGIm%kRS4^*>sG0)v$4cAAiIr)9{eP0V|zdpmMKdI6K)PGgw z+IN53<=5VK))=j?X|q$+FK%1F6Fm737N7Quv&NXCbNRvreRCGA-LP(Tamji0m)X6c zo@yVGSJyA)_nP{H{N7l9mEX(jsgC*bJgxgECH&?+`>tM=DOTDl)wa$q?Rv58rjJ~I zX%_;!*+Qkgx2OJE$B^7#Pj?QxB{iG(fG;HW9vGP_lG&!rbl=-}Ma-+$Vg^gxhKjDb}+>SH)^zlgTy-jH}}W-1jVJ z1h1wi+^Nj5XZUC{x`^w?pBA?jYS*LKUhvpz*zko)j)x%>o?|YQo6z0~wGd5^V4V1o z;T%ZlF4e-x`WJDg(-TA$pEoC14gp5pa003jmvMP42;~UJMF2S)LNB(T3NViVd0dG% zf!Gr$u)y{J3j|Q-2GaAmYdF)n0Sr7k_lx3q*gJ8Ii1PU>+$9u#FYd|2(Dl|#$ENO2sIfkqhdRWbEB1DUwRQ2 z_Jj~T!a1<{lK!wUxryc=QpRJ~#C%0+W> zP4T1_)n;8iyrjRxEnTr>u#0l4{~iIS zS{N|S?+@^xEgswpw`^L!d|u8*Gz8%ZdD#VP7tL)Y*d%ejc$bS;uURxuwxmmbGV9Cl z+jz;MzPxGkwe8~R*KOImbEs&!Z0}+b!S1|`d(YpP^;~UDZaCebX1=%d01FioF2Mo{Qp%;z_hj0ozRMraXFqR0ot&9-&dj;Zobx-s%lB6WTp#MS zCD{YK6c{_%;sHAk^vKvm*8E)paADxX$^u76)Ng~??E>8jw?$^a``TbpMv+b7yaPII ztmB^`9C3ky+*ZVyy;Q9`QlJ^-;&y17dZB}g99FYeneZLW?u7;_%>ykqm@ZPaRjPdr zV>+5fHRTW$X>ub9q8eYY`a&9h;J86P0|kt`mDU@P6gQlyAQzN;904zCVF6eS?JU~8 z@m84s$&@f055aPgmIY@QD#tf$L zE>+?aViT?Xd-sHPFYP?o8(RAGF7BKFRbN|GvGl0q=_)h6jK$Kz7RUj7nU!o z80B&Pu5t{zC%*e*l{3b9^4~r*42^IMtX?*{JbT65;r#$cJz<-pMGj+Z+vEe zxNCu@7a-=e>&Lf3-|IRsBY^th2GBCqQWu~BPPMwyk;DkC=}NH`_c6}aPOS3|%xwgx z5*o#n*mJ4HRzc}xpi0QNTd3BskWO=|#OstEbf+Q<0@$Ll;y39)Afd|4Ky(m=96xXz zfZ`y++{}}j;}f&f+yMFjpaZ~vs{|mwCV+7I0VYTA_=KX8e4wt9fZG6ctTfDtaukiKr`(g6w*}U<@6Llp+aq%YS=}JgDNxC`n!`#wb-EN=oCQH-oWFa{Y*0m zs2l^L>@uoMO}x;4q*2XC=vqe_+X#C&s-YLrk*7aiP6FRY+|>_xlR4uv_^EqH)2%6c!SQO)l(ArZ9&pat564isp^ll+m&r~evhNGH@8ZMp9R9do}IKsT%BzY2?SXvgNKqVCRze$x z`(f)Q3>{no7-9+=?02O&hYakUja(=NP8Ec~1Ns*F1wVjA070A5fAEkV7<{0pB%%5P z$_9W$c8aNKFgr^qd!)Eah6^t41t*|~fSFmCMvE4`X=37#NBUG1q^J5ZIB9@mD}AI# zK^D#hHvnhdgNl1}$#SNlT0%y;*t2`rf}CVGD;$7HnKwTtziVgovFOe4B;n?qLYUJ5 z87L9jm1(}5!tPlp1J-JSkmk?pR*>dQ@+T*;!q%*uqHb^t(5*kzL`7#|m(r4|f>dXp zvP^1sR@`Gq=k7^KrGtIwA8&E-;Joyt%&CigFwgY%9Wl%=W{l_u%#|e3KX806F*&y| z%S%Cip+7|9`l*-+x^54u$U_4d4nHV&SzICeYw0`7`=f64wb$z9HVE zHOIS>K;~y<51v3Ko&fh~`6GH}64^vg58|{hIeS8rCq)mTr=IU{I(P`r3?P%fLxvTI z9Vw9^#mqSA`yoZlXvtn$#7vY%Mt;|q_F~47#(HFoF4Hp;iRXKq4#H^{GKrq9z-cbo zOivHt)I}QUX>_@sF%nMzth?;;WGKE*3}|wsWr#JAjR8%X^l3Q&3dos&MkI$vYOI>S z!xt+Tr6;bFnp|QZr7=h+9!+ERkoU1IhtFnE^sy8ME6LY;F$tYVv*X}98{U^hFf!5x z&ybj*Ma&eb1iu5NB|}TVQM(+(okhJ%dX@|>FE8oaudsX^Nedw^Kfi02-u(v-?$f_t zub~sj3>r7?sVUQ@PMtL3(EcFk!6!f+68QWlxjVY34j)!oSOaE6wpvFkctbMP6nk04sGauE7g}f zd@A`X^3ph9y@BPCkzFuqD!D}C0GYyriG^{bZqbSVBI1B^0?*WXEbYF`tWIP)jiX-T zfz}#B*KlV7`74bB8ZAIPj7Bp&%-Ai`-eJ8Mo5T$7#aN}{;YDCdRpZz6*jZ-LZ=-)>UoNP1p@U*yMc52jV@yB(levunIFhk&6+rA(`az?g`cGDqkCfSo^xB1F4@Oea60EU zxbdZ9uqKdgw>3F2tcb-T$rpiOf^o9s8=GEL-CCr$Fn(}Jamj0|#&u1?#!dHhadCd< z0mFJ^(yhv=L4A4^4xU!t)2jvms&+u1NzY3!l@+__Zcf#!xP11&L67%xvHZ7MzW0DG z?(9cK^^cG2M9Ru~cyb1g7)W;}I)3Pg{%M8fV}<}gh2youN3wI@oG@yTD!K|=9M#wf z?=4t3YeWwU`^xi=jqlw#cSfEO5U^1u^%G86D7tAPmdooy7wQ~OzhbObVhu|fW9M(2aV|6GaeM?sj|}EC8aZmjw}GS zhr>E-?Bwco%Z5JP$?B*AIXHF9WAld&89Tv8+0pB)jxkS`@dbn>!02A zk~Ql z8<3KAYeKA(U497&WQY|2D;T>xBi7}N1?~#45!vNc*D^s3Ct&knk3s74T-Sx}>As|t zvD1rz%O|FLi&A_}S9%^rHDkqJGg6bqtiIWRC1Ayi&a~8?k3Ky<8<3w^J_T=b&fwfm zxn3l#bc!kdWQV&`mvjKAfPBczf(O#{0{DVLK9IVd62$CoonT`C<9<(G=fR}|3%hgz zX#uFmu7y>lL;3wmZ0YoI@?X|+&EB{hafrziM(SMpE!Z?$3=PWwev^4d)> zBB=_loa*(p|GkToI2^K|lq;VYN#GVPZ3|aLLiwjXF9f6I%jNX(@Rf@{uHtGW#E(r; zPo0#j@KqXAaG-&{-$6^*^`{t zc#nZejG_gM1I%VDf0i6QqfMmgS4iVWych$UHI+)iqV-Ww3vQ9FJ?+YDj2p{k?^uTrMVw%{6`pB?;+vZ26K3X@_ryvwstbyc=Tj5_XX6lcj>J9vMLNaECnYJaUk-#c05@9FraQ^&9U`Bl&q)*;kKP%XtM}vCRlQBDa zzqvh%T92H^tb0_bLZ>h%};HmwqIHlq=s*L3NoxEtjgH&`>htzN7)VN(89?C}4 zqL0&ujzD~Ddw!~H4MiYY(H26GVn9=)a7DFxl!|(3;|xDWq+U8R!xyE(D4Zoj-_pgC z#R)OGC?$IOIyp8{Yk{3Vn0`iJWJgiVerANz%xu&wO-R* zm?7b+Mc(DJjup-QX z5I7EXp|ufy2)q-M>(+<70k^*3{igO#l-~f_j;{N7-@jgrw(*yiRCuhn@w`x7ZK(Yg zI_{^X&ni-^_v;+(kq<^*YOTP)f0z)eaacR1$^$PIK7(<0glet7xm6x_Y0)ze-lYe_ zE`9RM!$)1Z_e`?+e%*fhj&~S%l6`=Wj69ihfcHg#{iHZWHb1IMj-ow$UAjI8gHCx* z07$l3z{CQ`E|xnwBE&sZ=O&u~afl&h$i$(#BN$?QE zCSDOClJa5WkDWX?AXtGhKy(r?{N5J@D@nWwjW$zq1|5a#$bh{u@Gp@Kd;+!j6WAo+ zz5oTtEBImS2WVb8S{u(8Qk8UAJ$`L0IaALYtL`ERxLv8O4?EE49<6q$sXL|9%{P54 zvayOgnv4UjcFfsbudNmV97f|>k3-GKj>(xnw_1Z3+&C?AJ>xcDEFWAqe^~$Wsat24 zMbSsmOjR^j^U2`YINgXF@3hC#$om)nTdBD7Vyg@4ME`o;{WEolEN_LmV28-v#}PTU zwO7Z;dvormqpojU*LI9;)*k;Z&+t^sRJkdw$5Wx`xDfNMac%ha(Z`i|>cjd0YZ#fk znk!_ZRpcLeoP#+>++I@xlz?uNONduN8lfV-HC%V45>ZpuaNVL9{w8opHm~7&L4Lu2 z#BKd7DtMoCJI5z?`eha52@s6H_7iI>%ltGwSi$oZK`bI$gY{VVOuUK8S6Ug!F38L0 zcrb;uKT%;t1PZw~_XKX?ulIwV(Egt4-#_6BFG_SWy+ z7KG%;qUUF-$h`A>f%NM1IP&Rv-Y?_87!l zXYh)#?m5f`_<46g z9B@uDUBZw%Zj;HIxI(G-zBtmO#o$va5p#AE*Ubc-7VMlIW;pA>6wEpfkeU`lt`<+Q zVymnUHItJ+^U1zn=)Qxxk2kjR1*M`zAjW}bp%3nC=+~W*4!Zdb+MOMT3hfe zYi)paEGNT%;q%}*9(MzyqAoyt!9+Y6E!6TDmkj0(Fk~ zS~m2pG^Hxp8rTm9vvBfTs|tOKO_IYKs4>o$HdguKZ^j?kkG6ZQ<~kJh&e{;3YYx=J z#!6?Z{BZ~NLn48KYXVkmpa!Q{uf zkD8#h>q51*_&}{?y)>cPAGaU1pzW^3jq@jB!oXy_3uiTU1`Z(toa;Exq_19}cQhkkF&GPJr_ z$3FN*rwgLhK{h_F&xI0Gt5*eS(hBVLNW$w;A&+Wj_OFqnUio=<~_q8m@ahG%T=5!9-1M zud$1|gY6K^ti`WM@dSOEmL}M2Z>Yn~ghARa@`s~HT z^j~&`-=s6U*Z{^kDtWD87oK(~Tb>E&AbzwLukT zAQ3pYG+b%hB^AHqk3$L=xK1Hb@S*S#xfHN+Uh*5l8^A$FH5zuHjh9G&l|Ek=-T=Nc zmMs)WUQ+2h^YqcQjSV~8BH6FfyHi4r6nE0$BS6r9D;!4RhHzzKIJ^U_XmripBch0E zF&m`n|H9BOayrT2C%7agNQ(NIY&vu(c=Tw|5hvMxfeyadl1};0=qd;~$n^`xtfk-r!?@Z!^akot1g3$R0;^Zbw zIylALu417mfQbr92B#vkvn3+Ur?@#35C=kO2D}iR3i9;!{nIsi3N{h$Ghqdwvi3{l zdVEZ*^y9)<;`_u9ql7e@$z98C8%OCH`B8D=!)Q8OK_E{ zA~-#I@8{ZS!POAUe_pTpTTrK*8JwnvA0M+SxQfT2V)h1!F;*Y1)djajtwO|>Eu<9J znFj4=C^i_}wn`PeyOp5}%)MEr57=PqY&Ljel~TpPcMd!=!PC&zS!(iitlkdw1ddfT z>Y`@_r$><(tKJSwX}(bf;A>KbE44*uRPm?DkO`bKiK?g4uB8j$Z$M41w1b*p&i_Lc zlW4t5$Lc0>NZlcIL0bvU2>6)sWED*VmFr)qHj?^PO}?mCTHey@w!uy zi5A{i91h8}*hap3N2iI!QelRC8`B!3h1mRnNqdnj8Evwr00EQr-ZOhKc{2%jt>FBy z*5k+)VL{P{fH{Pj=-5Hd&Vvnw8IDSPtx6(1%ekUhYrx?pqn_nFRp!uqOxbs9FdM5v zclTM%0X76r;pPNOVBh*sXdQ%~nAYZm=3vqA+5`J>y4_|AY!@tnkO{Nq0n5HX92`wp z;b6qEKNRvBLTe4?z!#oBg*;}@{Lp%HV81yA)34bMrfzIqX#JZZo3ZYDvn}+db$f^` z5cOugXKl#rz=0iF=yOsd>f?0I^`ZHeeTWLoAx$C%IU$Y>-PsokJ-bg8`gxuq9%Tot z?vtoN9UHo3G?`<7cp7hGEseH)RtuS%gh7U^oHaMb$JPcg2iGEoGpikq=np7~jy2iU z-gu|VahhDKz#uz3k!1&KFJt}8277A@&E#aI@ zv()s0y?_;N$PzWo5s`Tv6HNL&EC5tkc-IMR4c2)aDG^2){!|(ms8Qw)fqaw3?ID9yLeHa)jXL8Zkn1sXP zmtVSV4Ic@_m8ZAs(+(XG#6yP#VLcoEoQ%uEsHPrn5S`(}LS=(M-ptd-dsE&*We$fM zJTRhYaM~~z-`kN`&4$1Eb3-_M2Pc0d)()maIQTewd} z+C9KEQ9Oo2*T%Z?BaD)2-rAz395E&iyt6?{uJTRk*anNVXMvVt!vKyfY}`?jy6skd5cCWxE+%sq5RXH2k~Tg zB#Nt>@!`>rC%dAGaG6Efd7X?MZa~JJb30tyaZZo6LUz6?Z9HjJay#GqaMwv|l+^e3 zX0>7u(q~8PCQ@1qUAWyH?IyY+t;>V^cOSxe`(Jw+%G}-f;mnqPNovJGB#xoa>W8Lx z_~RNEcDSO(8?@GKwQBs+L(=fn#;v;w5}7A7vTDyQH*?i5Ixb zv~}%&**J-?KNZ~N>|IOBm|UGY0y49kR%v*Ad%j4>-TbJ-bso;C0Z3bwZhjw0ix$6n zNFG$}X0x0wRPP!znhAH3zI^$8wSo>^U8E>%2|N5nC!OkWH4*0q9CA_7N%Xw~E>8Zg zNGShIL_qT(J~>eivtIa+dv$wE936NQ4hDy=-@-ZW$7fBdoHDNsOmsS8SJNt#(L4|S zqC4+@aG_{_Mq3p+|M-wJ6y3R{J^mC78Vo+>G?_D*izC~o8-2`Iq-HW_BTdtd9w~fY zU{6GoPBV-d?hw!|DIlNOB8zgMN2bHh>x zq-lmRQ)vQGBtvtN6K}@v3?imSS>^ z=DHg)Vz2xS$(d!$ka}D&M$ygf3)0XFg=G6Iq3Eme>paVi7 zGuGNUSnom>prYGCp&FZOU#JeEnK&ES@SHId-r`KPc1LL5`u)x?=0Gbek^Jx+dgqk% z{!fV{@ei~{KcPnSB)GJ@HW!dIEY~FOXIHv}xp&3Bu|L&m-54 z)kY2WGtfcWL5%y+AH|5EP*)#$Z~GEM|dT20ZIx_I7)yldYo(g@uAKfqa&&bCN?Z0wy(PCF=d|4HGG+ zC+BhU+Dc<0^O|J4nMjV(xXCw7#PG5)j;SMSj%%&bJGd@=*_amhlK_(6E2K9pTL1e) zZwU?XL4%e07{u2km0$@?tljhUPM7Aem z@m?n;kNs0L>3fpP;eu-@Q;FA-mrin-(JIJxVBVzogiOq2x{|junOs(@C8si(0%FZ# z@|~^FUcTa)`Ny|+ANlc%FF)Em!>*>hk?1vS@DO<>3*v9(X)cjDv2LZ_M!wBrvbfC@ zXc5x|F=j)7d+%v3+442CkTIbkmI4t&pBS95RoP577+{R!D4F=BHkV;Z<3-F&34b%7 z=H{csbBW6!tJ8GwR%$*;CSKxF`QspIK~&q}2+mCYe2EidKduGiWDdSV$L~X-2*bo- zB|lt3!{+RR%R~rzmy_DAPz(9FE4l#t{)}#n%f4&A)w+Hj2yHKzAOU;8>{CyxMTU|s5bMed}vZou`I3`TnNai-GY$UlmlNDX9cpY2=ke=jJn9G6@lZFUa zxGVzGC5|+9XL6$$2LnrkO{FHCusLx250eYdM3DTwMQ+5CY8#o_7mcW=;GdMjB87K2(HH<2DEJZ} zCBe9WVi#%bi$?4rbKh4xh^rry3l+L5JnY{EiT&s+HY%n#mk!76A-qi;T11elUg6sg*ys1A(jjs8EVyahPmJ73S(#HJY-cm z7xN>zX4TmVcKdnkEfx7SmFa@XDyKn{Nxm7V*Dzm`ISraDO;BR_@3j`Py+MwnbaU`%7W*r-lA_=YjPH@-UD=b-ysXpSEtucR>^^1&I6 zjeMELxY)l~$kj8N98GWy{StVReO8l!h35G6nVG?Kg%Ur$W2$J6U27}C9i-;*7?CW=G^O!B zKlsdH(3xqB@Yyt_fY^ zeo?1k-X%p%=o;(`u}Ach#Z8)2Q?;TxFn``Yb70=Q{ZyD|BmZd9Wb3Q}n>(U-j2E4` zs>x7O{bHMq^th^VFyD}~`S>=TzpAm5gwBkU{fn1;auq!jqFyTSIo-z{8l~e5xQ4J* z>x^2QBvscmsr-+W6^CN5uqKe=0@@{RXckjFVQ5&8=L;~Hd&%ws%t+5&*K{JKUureP zG)CWzqCcWOGC{qbiF}j(&O4bxJ$^04E1yK0OC9>ByWMUVe`hfhSr zc^geRUbcTmM3`JFW8!w5AHY;Z85!sZFqAl_i;%MSfXD(wPAzB3mC;ikC6iXbSh08o z12f-jvVgJQ)_(Xp>d~v%Rev~VRKSqf9Sqk1vX9W1{E$JtRL(Ouy zn6?k`TMx?N$xV?^A6+bmT|3L+0D0!oPkBii-yXE`&Alz*x#HpyF($nE&i2b0OBPj&HC`rxQYoaK%6ZQ;9ZVNE2A{4mon z8cQRm`j9-D27|nDF{I0VXXr1}0fwjKzB0U48p&_iQYnXlVUaLK9W94>goag$m?xi+ zBi4lE@B>O}C=@Y2d=Uwa{6#tJF7FSF)8$=}as3QAe#al>@SGf)jAfB)Q?IAxaOQD2 zeEn-V+$j&f=`7@EC|_ZYS`bMv`)A8x=@mJgb5ssjw#EOQt_jG0(H;pcwy+%b`%Vt$ xSIePX4~0cqCSR|W-*?Npwet0PryRcijzY0)y;hAwgM-5njYGR@J)E3>^gn2CR80T? delta 17788 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 T1L_VAA08i9v${iAdF1~C4g00o diff --git a/dist/main.js b/dist/main.js index 4f747a3..8a5df86 100644 --- a/dist/main.js +++ b/dist/main.js @@ -150,109 +150,146 @@ var SearchData = /** @class */ (function () { var SearchAlgorithm = /** @class */ (function () { function SearchAlgorithm() { + this.assignmentsCache = {}; + this.reapersCache = {}; this.data = new SearchData(); } - // Lookup best possible assignment based on input string SearchAlgorithm.prototype.lookup = function (lookup_1) { return __awaiter(this, arguments, void 0, function (lookup, skipReaper) { - var probabilities, reapersResponse, reapers, _i, reapers_1, a, _a, _b, b, assignmentsResponse, assignments, _c, assignments_1, a, _d, _e, b, _f, _g, b, key, aliasKeys, _h, aliasKeys_1, aliasKey, creatureKeys, _j, creatureKeys_1, creatureKey; + var probabilities, reapers, assignments; if (skipReaper === void 0) { skipReaper = false; } - return __generator(this, function (_k) { - switch (_k.label) { + return __generator(this, function (_a) { + switch (_a.label) { case 0: probabilities = {}; - if (!!skipReaper) return [3 /*break*/, 3]; - return [4 /*yield*/, fetch("./data/reapers.json")]; + this.data = new SearchData(); + if (!!skipReaper) return [3 /*break*/, 2]; + return [4 /*yield*/, this.fetchData("reapers")]; case 1: - reapersResponse = _k.sent(); - return [4 /*yield*/, reapersResponse.json()]; + reapers = _a.sent(); + this.calculateProbabilities(reapers, lookup, probabilities, true); + _a.label = 2; + case 2: return [4 /*yield*/, this.fetchData("assignments")]; + case 3: + assignments = _a.sent(); + this.calculateProbabilities(assignments, lookup, probabilities, false); + // Find the best match + return [2 /*return*/, this.findBestMatch(probabilities)]; + } + }); + }); + }; + SearchAlgorithm.prototype.fetchData = function (type) { + return __awaiter(this, void 0, void 0, function () { + var cacheKey, data, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + cacheKey = type === "reapers" ? "reapersList" : "assignmentsList"; + if (!(cacheKey in this["".concat(type, "Cache")])) return [3 /*break*/, 1]; + data = this["".concat(type, "Cache")][cacheKey]; + return [3 /*break*/, 4]; + case 1: return [4 /*yield*/, fetch("./data/".concat(type, ".json"))]; case 2: - reapers = _k.sent(); - for (_i = 0, reapers_1 = reapers; _i < reapers_1.length; _i++) { - a = reapers_1[_i]; - probabilities[a["index"]] = { - reaper: true, - index: Math.round(this.similarity(a["index"], lookup) * 10000) / 100, - creatures: {} - }; - for (_a = 0, _b = a["creatures"]; _a < _b.length; _a++) { - b = _b[_a]; - probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175; - } - } - _k.label = 3; - case 3: return [4 /*yield*/, fetch("./data/assignments.json?list")]; - case 4: - assignmentsResponse = _k.sent(); - return [4 /*yield*/, assignmentsResponse.json()]; - case 5: - assignments = _k.sent(); - for (_c = 0, assignments_1 = assignments; _c < assignments_1.length; _c++) { - a = assignments_1[_c]; - probabilities[a["index"]] = { - reaper: false, - index: Math.round(this.similarity(a["index"], lookup) * 10000) / 125, - alias: {}, - creatures: {} - }; - for (_d = 0, _e = a["alias"]; _d < _e.length; _d++) { - b = _e[_d]; - probabilities[a["index"]].alias[b] = Math.round(this.similarity(b, lookup) * 10000) / 150; - } - for (_f = 0, _g = a["creatures"]; _f < _g.length; _f++) { - b = _g[_f]; - probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175; - } - } - // Find highest likelihood of the search - for (key in probabilities) { - if (probabilities[key].index > this.data.probability) { - this.data.task = key; - this.data.reaper = probabilities[key].reaper; - this.data.probability = probabilities[key].index; - } - if (probabilities[key].alias) { - aliasKeys = Object.keys(probabilities[key].alias); - for (_h = 0, aliasKeys_1 = aliasKeys; _h < aliasKeys_1.length; _h++) { - aliasKey = aliasKeys_1[_h]; - if (probabilities[key].alias[aliasKey] > this.data.probability) { - this.data.task = key; - this.data.reaper = probabilities[key].reaper; - this.data.probability = probabilities[key].alias[aliasKey]; - } - } - } - if (probabilities[key].creatures) { - creatureKeys = Object.keys(probabilities[key].creatures); - for (_j = 0, creatureKeys_1 = creatureKeys; _j < creatureKeys_1.length; _j++) { - creatureKey = creatureKeys_1[_j]; - if (probabilities[key].creatures[creatureKey] > this.data.probability) { - this.data.task = key; - this.data.reaper = probabilities[key].reaper; - this.data.probability = probabilities[key].creatures[creatureKey]; - } - } - } - } - return [2 /*return*/, this.data]; + response = _a.sent(); + return [4 /*yield*/, response.json()]; + case 3: + data = _a.sent(); + this["".concat(type, "Cache")][cacheKey] = data; + _a.label = 4; + case 4: return [2 /*return*/, data]; } }); }); }; - // Check the similarity of 2 strings - SearchAlgorithm.prototype.similarity = function (s1, s2) { - var longer = s1; - var shorter = s2; - if (s1.length < s2.length) { - longer = s2; - shorter = s1; - } - var longerLength = longer.length; - if (longerLength === 0) - return 1.0; - return (longerLength - this.editDistance(longer, shorter)) / parseFloat('' + longerLength); + SearchAlgorithm.prototype.calculateProbabilities = function (data, lookup, probabilities, isReaper) { + for (var _i = 0, data_1 = data; _i < data_1.length; _i++) { + var a = data_1[_i]; + var indexScore = this.calculateIndexScore(a["index"], lookup); + probabilities[a["index"]] = { + reaper: isReaper, + index: indexScore, + alias: {}, + creatures: {} + }; + for (var _a = 0, _b = a["alias"]; _a < _b.length; _a++) { + var b = _b[_a]; + probabilities[a["index"]].alias[b] = this.calculateIndexScore(b, lookup); + } + for (var _c = 0, _d = a["creatures"]; _c < _d.length; _c++) { + var b = _d[_c]; + probabilities[a["index"]].creatures[b] = this.calculateIndexScore(b, lookup); + } + } + }; + // Calculate index score based on matching logic + SearchAlgorithm.prototype.calculateIndexScore = function (index, lookup) { + var score = 0; + // Normalize input for comparison + var normalizedIndex = index.toLowerCase(); + var normalizedLookup = lookup.toLowerCase(); + // Exact matches + if (normalizedIndex === normalizedLookup) { + score += 100; // Highest score for exact matches + } + else if (normalizedIndex === normalizedLookup + 's') { + score += 90; // High score for plural matches + } + else if (normalizedLookup === normalizedIndex.slice(0, -1) && normalizedIndex.endsWith('s')) { + score += 80; // High score for singular form matches + } + else { + // Calculate the edit distance + var editDist = this.editDistance(normalizedIndex, normalizedLookup); + // Close matches within 3 characters + if (editDist <= 3) { + score += 40; // Boost for close matches + } + // Starts with lookup + if (normalizedIndex.startsWith(normalizedLookup)) { + score += 30; // Boost for prefix matches + } + } + return score; + }; + SearchAlgorithm.prototype.findBestMatch = function (probabilities) { + for (var key in probabilities) { + if (probabilities[key].index > this.data.probability) { + this.data.task = key; + this.data.reaper = probabilities[key].reaper; + this.data.probability = probabilities[key].index; + } + this.checkAliasMatches(probabilities, key); + this.checkCreatureMatches(probabilities, key); + } + return this.data; + }; + SearchAlgorithm.prototype.checkAliasMatches = function (probabilities, key) { + if (probabilities[key].alias) { + for (var _i = 0, _a = Object.keys(probabilities[key].alias); _i < _a.length; _i++) { + var aliasKey = _a[_i]; + if (probabilities[key].alias[aliasKey] > this.data.probability) { + this.data.task = key; + this.data.reaper = probabilities[key].reaper; + this.data.probability = probabilities[key].alias[aliasKey]; + } + } + } + }; + SearchAlgorithm.prototype.checkCreatureMatches = function (probabilities, key) { + if (probabilities[key].creatures) { + for (var _i = 0, _a = Object.keys(probabilities[key].creatures); _i < _a.length; _i++) { + var creatureKey = _a[_i]; + var creatureScore = probabilities[key].creatures[creatureKey]; + // Increase the visibility of creatures but keep them as a lower priority + if (this.data.probability < 10) { // Allow creatures to show up if current probability is low + this.data.task = key; + this.data.reaper = probabilities[key].reaper; + this.data.probability = Math.max(this.data.probability, creatureScore + 20); // Add a base boost for creatures + } + } + } }; - // Calculate the edit distance between 2 strings SearchAlgorithm.prototype.editDistance = function (s1, s2) { s1 = s1.toLowerCase(); s2 = s2.toLowerCase(); @@ -1793,7 +1830,11 @@ var get; } get.elid = elid; function searchInput() { - return document.querySelector("input[name='search-info']").value; + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, document.querySelector("input[name='search-info']").value]; + }); + }); } get.searchInput = searchInput; })(get || (get = {})); @@ -2308,15 +2349,26 @@ var toggle; (function (toggle) { // Toggle if we are capturing screen or searching text function searchText() { - var searchResult = _slayer__WEBPACK_IMPORTED_MODULE_4__.searchResult; - var autoCaptureEnabled = _settings__WEBPACK_IMPORTED_MODULE_3__.controller.autoCapture.enabled; - var searchInput = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.searchInput(); - if (searchResult || (!autoCaptureEnabled && searchInput === "")) { - _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Capture"); - } - else { - _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Search"); - } + return __awaiter(this, void 0, void 0, function () { + var searchResult, autoCaptureEnabled, searchInput; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + searchResult = _slayer__WEBPACK_IMPORTED_MODULE_4__.searchResult; + autoCaptureEnabled = _settings__WEBPACK_IMPORTED_MODULE_3__.controller.autoCapture.enabled; + return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.searchInput()]; + case 1: + searchInput = _a.sent(); + if (searchResult || (!autoCaptureEnabled && searchInput === "")) { + _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Capture"); + } + else { + _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Search"); + } + return [2 /*return*/]; + } + }); + }); } toggle.searchText = searchText; })(toggle || (toggle = {})); @@ -3281,7 +3333,7 @@ function searchTasks(value) { _a.sent(); return [2 /*return*/]; case 4: - if (value.startsWith("devTools")) { + if (value.startsWith("devTools ")) { tool = value.includes(" ") ? value.substring(value.indexOf(" ") + 1) : value; _settings__WEBPACK_IMPORTED_MODULE_3__.executeDevTools(tool); return [2 /*return*/]; @@ -3294,6 +3346,7 @@ function searchTasks(value) { case 5: searchResult = true; _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.toggle.searchText(); + _logger__WEBPACK_IMPORTED_MODULE_5__.log("Searching for: " + value); lookup = value.includes("|") ? [value.substring(0, value.indexOf("|")), value.substring(value.indexOf("|") + 1)] : [value]; diff --git a/dist/main.js.map b/dist/main.js.map index cd090cc..7e48f38 100644 --- a/dist/main.js.map +++ b/dist/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"AAAA;AACA;AACA,2EAA2E,MAAM,2BAA2B,aAAa,qDAAqD,MAAM,4BAA4B,aAAa,qDAAqD,MAAM,qCAAqC,aAAa;AAC1U;AACA;AACA;AACA,uFAAuF,MAAM,2BAA2B,aAAa,qDAAqD,MAAM,4BAA4B,aAAa,qDAAqD,MAAM,qCAAqC,aAAa;AACtV;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;;;;;;;ACA/C,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,uBAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,2BAA2B;AAC7F;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,yBAAyB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,4BAA4B;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;;;;;;;;;;;;;;;;;;;ACjL3B,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD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CA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA,4BAA4B,uDAAU;AACtC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;AC3FA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACoC;AACpC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA;AACA;AACA,oBAAoB,0CAAY;AAChC,4CAA4C;AAC5C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wDAAwD;AAC1H;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;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A;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC4C;AACD;AACS;AACZ;AACJ;AACA;AACpC;AACO;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;AACZ;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC,sBAAsB;AAChB;AACP;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0DAA4B;AAC7E;AACA;AACA,6CAA6C,0DAA4B;AACzE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,uCAAuC;AAChG;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0DAA4B;AAC7E;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,+BAA+B;AACxF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAwB;AACrE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,+BAA+B;AACxF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAqB;AAClE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,iCAAiC;AAC1F;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,iDAAmB,kFAAkF;AAC7G;AACA;AACA;AACA;AAC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,QAAQ,oDAAsB;AAC9B,QAAQ,yCAAW;AACnB;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,mBAAmB,iDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,uBAAuB,iDAAmB;AAC1C,sBAAsB,iDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,qBAAqB,iDAAmB;AACxC;AACA;AACA;AACA;AACA,CAAC,oBAAoB;;;;;;;;;;;;;;;;;;;;;ACnEuB;AACJ;AACxC;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACA;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACA;AACO;AACP;AACA,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,6BAA6B,iDAAmB;AAChD;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,gCAAgC,iDAAmB;AACnD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrCA;AACO;AACP;AACA,yCAAyC;AACzC;AACA,yCAAyC;AACzC,0CAA0C,EAAE;AAC5C;AACA;AACO;AACP,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC;AACA;AACO;AACP;AACA;AACA,4CAA4C;AAC5C;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AClFA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC2C;AACR;AACO;AACP;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,kBAAkB;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC;AACA;AACA,4BAA4B,iDAAmB;AAC/C;AACA,6CAA6C,iDAAQ,UAAU,8DAA8D,IAAI,8DAA8D;AAC/L;AACA;AACA;AACA;AACA;AACA,6CAA6C,iDAAQ,UAAU,8DAA8D;AAC7H;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wCAAU;AAC1B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiC;AAC3B;AACP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA,CAAC,wBAAwB;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wBAAwB;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA;AACA,oBAAoB,6CAAe;AACnC;AACA;AACA;AACA,oBAAoB,+CAAiB;AACrC;AACA;AACA;AACA,yCAAyC,kDAAoB;AAC7D;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB;AAC5D;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC;AACA,4BAA4B,wCAAU,0BAA0B,eAAe;AAC/E;AACA;AACA,4BAA4B,wCAAU,yBAAyB,eAAe;AAC9E;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,8BAA8B,iDAAmB;AACjD;AACA,4BAA4B,wCAAU;AACtC;AACA;AACA,8BAA8B,iDAAmB;AACjD;AACA,4BAA4B,wCAAU;AACtC;AACA;AACA;AACA,4BAA4B,wCAAU;AACtC;AACA,4BAA4B,wCAAU;AACtC;AACA,4BAA4B,wCAAU;AACtC,kEAAkE,gBAAgB;AAClF;AACA,gCAAgC,wCAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAY;AAChC;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5aA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC8B;AACsB;AACM;AACN;AACb;AACI;AACR;AACnC;AACO,qBAAqB,6DAAe;AACpC,uBAAuB,mEAAkB;AACzC,wBAAwB,6DAAe;AACvC;AACP;AACA,4BAA4B,oCAAoC,6BAA6B;AAC7F;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,mDAAuB;AACtC;AACA;AACA;AACA,YAAY,yCAAW;AACvB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C;AACA,oBAAoB,iDAAmB;AACvC,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,sDAAsD;AAC5H;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,sDAAsD,IAAI,sDAAsD;AACtL;AACA;AACA;AACA,6CAA6C,iDAAmB,UAAU,sDAAsD;AAChI;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAmB;AAC5C;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C,iDAAiD,0DAA4B;AAC7E,yCAAyC,iDAAmB,UAAU,kDAAkD;AACxH;AACA;AACA;AACA;AACA,kDAAkD,0DAA4B;AAC9E,yCAAyC,iDAAmB,UAAU,kDAAkD;AACxH;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB;AAC5D;AACA;AACA;AACA;AACA,oBAAoB,mDAAqB;AACzC,oBAAoB,6CAAe;AACnC,iEAAiE,iDAAmB;AACpF;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAwB;AAChD;AACA;AACA;AACA,wBAAwB,iDAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,qCAAqC,sCAAsC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,+BAA+B,IAAI,+BAA+B;AACxI;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,+BAA+B;AACrG;AACA;AACA;AACA,8CAA8C,iDAAmB,UAAU,+BAA+B;AAC1G;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,yBAAyB,iDAAmB;AAC5C,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpPA,gEAAgE,kDAAkD,6BAA6B;;AAE/I;;;;;;;;;;;ACFA,yEAAyE,2DAA2D,6BAA6B;;AAEjK;;;;;;;;;;;ACFA,+DAA+D,iDAAiD,6BAA6B;;AAE7I;;;;;;;;;;ACFA;AACA,IAAI,IAAyD;AAC7D,2EAA2E,MAAM,OAAO,mBAAO,CAAC,oBAAO,KAAK,aAAa,qDAAqD,MAAM,OAAO,mBAAO,CAAC,sBAAQ,KAAK,aAAa,qDAAqD,MAAM,OAAO,mBAAO,CAAC,wCAAiB,KAAK,aAAa;AAC1U,MAAM,EAK4E;AAClF,CAAC;AACD,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,gDAAgD,aAAa;;;AAG7D,OAAO;;AAEP;AACA;AACA;AACA;AACA;;;AAGA,gDAAgD,aAAa;;;AAG7D,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,+BAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,2BAA2B,+BAAmB;AAC9C,iCAAiC,+BAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,IAAI;AACJ;AACA,iEAAiE,+BAAmB,oBAAoB,+BAAmB;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,iBAAiB,gCAAmB;AACpC,4BAA4B,gCAAmB;AAC/C,iCAAiC,gCAAmB;AACpD,WAAW,gCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,qBAAqB;AACrB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,wBAAwB,kBAAkB;AAC1C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,gCAAgC,SAAS;AACzC,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC,yBAAyB,qBAAqB;AAC9C,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY,WAAW;AACjF;AACA;AACA;AACA,qDAAqD,iBAAiB,WAAW;AACjF,yCAAyC,iDAAiD;AAC1F,0CAA0C,mCAAmC;AAC7E,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;;AAG7D,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,gDAAgD,aAAa;AAC7D;AACA,gCAAmB;AACnB,mCAAmC,gCAAmB;AACtD,kCAAkC,gCAAmB;AACrD,aAAa,gCAAmB;AAChC,0CAA0C,qCAAqC,2CAA2C;AAC1H,6BAA6B,gCAAmB;AAChD,+CAA+C,qCAAqC,4CAA4C;AAChI,oCAAoC,gCAAmB;AACvD,aAAa,gCAAmB;AAChC,aAAa,gCAAmB;AAChC,oBAAoB,gCAAmB;AACvC,mDAAmD,qCAAqC,uCAAuC;AAC/H,kDAAkD,qCAAqC,sCAAsC;AAC7H,mDAAmD,qCAAqC,uCAAuC;AAC/H,mDAAmD,qCAAqC,uCAAuC;AAC/H,kDAAkD,qCAAqC,sCAAsC;;;AAG7H,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;;AAG7D;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC,sBAAsB,gCAAmB;AACzC;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB,kDAAkD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB,oDAAoD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sCAAsC;AACrG;AACA;AACA;AACA,wDAAwD,OAAO,qDAAqD;AACpH;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC,iCAAiC,gCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAA0B;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC,OAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA,6CAA6C;AAC7C;AACA,gDAAgD,aAAa;AAC7D;AACA,+BAA+B,gCAAmB;AAClD,iBAAiB,gCAAmB;AACpC,+BAA+B,gCAAmB;AAClD,gCAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,wBAAwB,OAAO;AAC/B;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,WAAW,2BAA2B;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,4GAA4G,yCAAyC;AACrJ;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,yCAAyC;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,kDAAkD,6BAA6B;;AAE/I;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,yEAAyE,2DAA2D,6BAA6B;;AAEjK;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,+DAA+D,iDAAiD,6BAA6B;;AAE7I;;AAEA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,gCAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAmB;AAC9B;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;;;;AClmED;AACA,IAAI,IAAyD;AAC7D,2BAA2B,mBAAO,CAAC,0DAAW,GAAG,mBAAO,CAAC,wDAAU;AACnE,MAAM,EAKiD;AACvD,CAAC;AACD,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,8BAAmB;;AAE7D,gBAAgB,8BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,gBAAgB,gCAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,gBAAgB,gCAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,gBAAgB,gCAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;AAErE;;AAEA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D,2BAA2B,gCAAmB;AAC9C,yBAAyB,gCAAmB;AAC5C,eAAe,gCAAmB;AAClC;AACA,aAAa,gCAAmB;AAChC,kBAAkB,gCAAmB;AACrC,mBAAmB,gCAAmB;AACtC,iBAAiB,gCAAmB;AACpC,qBAAqB,gCAAmB;AACxC,WAAW,gCAAmB;AAC9B,WAAW,gCAAmB;AAC9B,CAAC;AACD;AACA,aAAa,gCAAmB;AAChC,kBAAkB,gCAAmB;AACrC,mBAAmB,gCAAmB;AACtC,iBAAiB,gCAAmB;AACpC,qBAAqB,gCAAmB;AACxC,WAAW,gCAAmB;AAC9B,WAAW,gCAAmB;AAC9B,CAAC;AACD,eAAe,gCAAmB;AAClC,gBAAgB,gCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,QAAQ,0BAA0B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA,iBAAiB,iFAAiF;AAClG;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA,iBAAiB,4EAA4E;AAC7F;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,UAAU,oLAAoL,EAAE,qOAAqO,EAAE,4IAA4I,EAAE,qOAAqO,EAAE,oLAAoL,EAAE,4IAA4I,EAAE,yPAAyP,EAAE,4MAA4M,EAAE,oHAAoH,EAAE,8IAA8I,EAAE,4KAA4K,EAAE,4HAA4H,EAAE,sPAAsP,EAAE,oLAAoL,EAAE,4KAA4K,EAAE,6MAA6M,EAAE,6MAA6M,EAAE,oIAAoI,EAAE,4IAA4I,EAAE,oIAAoI,EAAE,4KAA4K,EAAE,4IAA4I,EAAE,qNAAqN,EAAE,oJAAoJ,EAAE,sKAAsK,EAAE,4KAA4K,EAAE,oMAAoM,EAAE,qQAAqQ,EAAE,4LAA4L,EAAE,6NAA6N,EAAE,oNAAoN,EAAE,4KAA4K,EAAE,qOAAqO,EAAE,qOAAqO,EAAE,4JAA4J,EAAE,4KAA4K,EAAE,oMAAoM,EAAE,4JAA4J,EAAE,6QAA6Q,EAAE,6OAA6O,EAAE,8OAA8O,EAAE,oMAAoM,EAAE,6NAA6N,EAAE,6NAA6N,EAAE,4KAA4K,EAAE,oKAAoK,EAAE,oMAAoM,EAAE,4KAA4K,EAAE,sQAAsQ,EAAE,oLAAoL,EAAE,oJAAoJ,EAAE,oLAAoL,EAAE,4MAA4M,EAAE,4IAA4I,EAAE,oJAAoJ,EAAE,4IAA4I,EAAE,4LAA4L,EAAE,4KAA4K,EAAE,4LAA4L,EAAE,oJAAoJ,EAAE,oNAAoN,EAAE,oMAAoM,EAAE,oLAAoL,EAAE,4HAA4H,EAAE,4JAA4J,EAAE,4HAA4H,EAAE,oHAAoH,EAAE,+QAA+Q,EAAE,6PAA6P,EAAE,4KAA4K,EAAE,4HAA4H,EAAE,4FAA4F,EAAE,oNAAoN,EAAE,oIAAoI,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,4GAA4G,EAAE,mFAAmF,EAAE,4IAA4I,EAAE,oJAAoJ,EAAE,oJAAoJ,EAAE,6BAA6B,+GAA+G,EAAE,6BAA6B,+GAA+G,EAAE,2EAA2E,EAAE,6BAA6B,8DAA8D,EAAE,6FAA6F,EAAE,4EAA4E,EAAE,4HAA4H,EAAE,oIAAoI,EAAE,uHAAuH,EAAE,kEAAkE,EAAE,mFAAmF,EAAE,6IAA6I,iEAAiE;;AAEtlf,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,UAAU,oHAAoH,EAAE,6FAA6F,EAAE,uQAAuQ,EAAE,sPAAsP,EAAE,sRAAsR,EAAE,8WAA8W,EAAE,4EAA4E,EAAE,4IAA4I,EAAE,4HAA4H,EAAE,oGAAoG,EAAE,oIAAoI,EAAE,2EAA2E,EAAE,2FAA2F,EAAE,kEAAkE,EAAE,4HAA4H,EAAE,qOAAqO,EAAE,oMAAoM,EAAE,6NAA6N,EAAE,6NAA6N,EAAE,oMAAoM,EAAE,oNAAoN,EAAE,qOAAqO,EAAE,oLAAoL,EAAE,6PAA6P,EAAE,oNAAoN,EAAE,2EAA2E,EAAE,6BAA6B,8DAA8D,EAAE,oJAAoJ,EAAE,4JAA4J,EAAE,4IAA4I,EAAE,qKAAqK,EAAE,8VAA8V,EAAE,6OAA6O,EAAE,6SAA6S,EAAE,6PAA6P,EAAE,sUAAsU,EAAE,6OAA6O,EAAE,6NAA6N,EAAE,qRAAqR,EAAE,sVAAsV,EAAE,4LAA4L,EAAE,8MAA8M,EAAE,8RAA8R,EAAE,oNAAoN,EAAE,8SAA8S,EAAE,8QAA8Q,EAAE,sTAAsT,EAAE,6QAA6Q,EAAE,iWAAiW,EAAE,6RAA6R,EAAE,qPAAqP,EAAE,qOAAqO,EAAE,8PAA8P,EAAE,6MAA6M,EAAE,0UAA0U,EAAE,qPAAqP,EAAE,oNAAoN,EAAE,qOAAqO,EAAE,sKAAsK,EAAE,+HAA+H,EAAE,sKAAsK,EAAE,4HAA4H,EAAE,kHAAkH,EAAE,6OAA6O,EAAE,6SAA6S,EAAE,6PAA6P,EAAE,sUAAsU,EAAE,6OAA6O,EAAE,6NAA6N,EAAE,sRAAsR,EAAE,sVAAsV,EAAE,4LAA4L,EAAE,8MAA8M,EAAE,6RAA6R,EAAE,oNAAoN,EAAE,8SAA8S,EAAE,8QAA8Q,EAAE,sTAAsT,EAAE,qPAAqP,EAAE,iWAAiW,EAAE,qSAAqS,EAAE,qPAAqP,EAAE,qOAAqO,EAAE,8PAA8P,EAAE,6MAA6M,EAAE,0UAA0U,EAAE,qPAAqP,EAAE,oNAAoN,EAAE,qOAAqO,EAAE,6BAA6B,uGAAuG,EAAE,6JAA6J,EAAE,6BAA6B,uGAAuG,EAAE,4GAA4G,iEAAiE;;AAEvuoB,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,gCAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;;;;AC7eD;AACA,IAAI,IAAyD;AAC7D,2BAA2B,mBAAO,CAAC,0DAAW;AAC9C,MAAM,EAKiC;AACvC,CAAC;AACD,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,8BAAmB;;;AAG7D,gDAAgD,aAAa;AAC7D;AACA,eAAe,8BAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB,YAAY;AACjC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6CAA6C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA,oBAAoB,mDAAmD;AACvE,iCAAiC,SAAS;AAC1C,6BAA6B;AAC7B;AACA,6BAA6B,YAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2FAA2F;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gGAAgG;AAC1H;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA,iBAAiB,iFAAiF;AAClG;AACA;;AAEA;;AAEA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gCAAmB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;UCrsBD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;AClBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACmD;AACJ;AACJ;AACA;AACrB;AACI;AAC1B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2DAAqB;AAC1D;AACA;AACA;AACA;AACA,qCAAqC,yDAAmB;AACxD;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAe;AACnC,iBAAiB,EAAE,yDAAmB;AACtC;AACA;AACA;AACA,gBAAgB,kDAAY;AAC5B;AACA;AACA;AACA,KAAK;AACL,CAAC,IAAI;AACL;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,qCAAqC,yDAAmB;AACxD;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAY;AAC5B;AACA;AACA;AACA,KAAK;AACL,CAAC,IAAI","sources":["webpack://SlayerAssistant/webpack/universalModuleDefinition","webpack://SlayerAssistant/./images/data/reaper_collapsed_OSL.data.png","webpack://SlayerAssistant/./images/data/reaper_collapsed_RS3.data.png","webpack://SlayerAssistant/./images/data/reaper_expanded_OSL.data.png","webpack://SlayerAssistant/./images/data/reaper_expanded_RS3.data.png","webpack://SlayerAssistant/./images/data/slayer_collapsed_OSL.data.png","webpack://SlayerAssistant/./images/data/slayer_collapsed_RS3.data.png","webpack://SlayerAssistant/./images/data/slayer_expanded_OSL.data.png","webpack://SlayerAssistant/./images/data/slayer_expanded_RS3.data.png","webpack://SlayerAssistant/./modules/SearchAlgorithm.ts","webpack://SlayerAssistant/./modules/SlayerDialogReader.ts","webpack://SlayerAssistant/./modules/UICounterReader.ts","webpack://SlayerAssistant/./modules/data/assignnments.ts","webpack://SlayerAssistant/./modules/data/creatures.ts","webpack://SlayerAssistant/./modules/data/masters.ts","webpack://SlayerAssistant/./modules/data/reapers.ts","webpack://SlayerAssistant/./modules/data/variants.ts","webpack://SlayerAssistant/./modules/dochandler.ts","webpack://SlayerAssistant/./modules/dochandler/animate.ts","webpack://SlayerAssistant/./modules/dochandler/change.ts","webpack://SlayerAssistant/./modules/dochandler/hide.ts","webpack://SlayerAssistant/./modules/dochandler/hover.ts","webpack://SlayerAssistant/./modules/dochandler/main.ts","webpack://SlayerAssistant/./modules/dochandler/open.ts","webpack://SlayerAssistant/./modules/dochandler/show.ts","webpack://SlayerAssistant/./modules/extrafuncs.ts","webpack://SlayerAssistant/./modules/logger.ts","webpack://SlayerAssistant/./modules/settings.ts","webpack://SlayerAssistant/./modules/slayer.ts","webpack://SlayerAssistant/external umd \"canvas\"","webpack://SlayerAssistant/external umd \"electron/common\"","webpack://SlayerAssistant/external umd \"sharp\"","webpack://SlayerAssistant/../node_modules/alt1/dist/base/index.js","webpack://SlayerAssistant/../node_modules/alt1/dist/dialog/index.js","webpack://SlayerAssistant/../node_modules/alt1/dist/ocr/index.js","webpack://SlayerAssistant/webpack/bootstrap","webpack://SlayerAssistant/webpack/runtime/compat get default export","webpack://SlayerAssistant/webpack/runtime/define property getters","webpack://SlayerAssistant/webpack/runtime/global","webpack://SlayerAssistant/webpack/runtime/hasOwnProperty shorthand","webpack://SlayerAssistant/webpack/runtime/make namespace object","webpack://SlayerAssistant/webpack/runtime/publicPath","webpack://SlayerAssistant/./index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sharp\", \"canvas\", \"electron/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SlayerAssistant\"] = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse\n\t\troot[\"SlayerAssistant\"] = factory(root[\"sharp\"], root[\"canvas\"], root[\"electron/common\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {\nreturn ","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAVXG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKrnKwAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXKm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQRroAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAa4G5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3ePXqQAAAYVub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqIw0NAAANGG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAe825vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2Q1aAAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXWm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALW4o8EAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAYyG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgO3bMAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAafG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejEs8AAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAehm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYX5ysAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAQyklEQVR42u1da4wlx1X+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\")","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar SearchData = /** @class */ (function () {\n function SearchData() {\n this.reaper = false;\n this.task = 'Dragons';\n this.probability = 0;\n }\n return SearchData;\n}());\nexport { SearchData };\nvar SearchAlgorithm = /** @class */ (function () {\n function SearchAlgorithm() {\n this.data = new SearchData();\n }\n // Lookup best possible assignment based on input string\n SearchAlgorithm.prototype.lookup = function (lookup_1) {\n return __awaiter(this, arguments, void 0, function (lookup, skipReaper) {\n var probabilities, reapersResponse, reapers, _i, reapers_1, a, _a, _b, b, assignmentsResponse, assignments, _c, assignments_1, a, _d, _e, b, _f, _g, b, key, aliasKeys, _h, aliasKeys_1, aliasKey, creatureKeys, _j, creatureKeys_1, creatureKey;\n if (skipReaper === void 0) { skipReaper = false; }\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n probabilities = {};\n if (!!skipReaper) return [3 /*break*/, 3];\n return [4 /*yield*/, fetch(\"./data/reapers.json\")];\n case 1:\n reapersResponse = _k.sent();\n return [4 /*yield*/, reapersResponse.json()];\n case 2:\n reapers = _k.sent();\n for (_i = 0, reapers_1 = reapers; _i < reapers_1.length; _i++) {\n a = reapers_1[_i];\n probabilities[a[\"index\"]] = {\n reaper: true,\n index: Math.round(this.similarity(a[\"index\"], lookup) * 10000) / 100,\n creatures: {}\n };\n for (_a = 0, _b = a[\"creatures\"]; _a < _b.length; _a++) {\n b = _b[_a];\n probabilities[a[\"index\"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;\n }\n }\n _k.label = 3;\n case 3: return [4 /*yield*/, fetch(\"./data/assignments.json?list\")];\n case 4:\n assignmentsResponse = _k.sent();\n return [4 /*yield*/, assignmentsResponse.json()];\n case 5:\n assignments = _k.sent();\n for (_c = 0, assignments_1 = assignments; _c < assignments_1.length; _c++) {\n a = assignments_1[_c];\n probabilities[a[\"index\"]] = {\n reaper: false,\n index: Math.round(this.similarity(a[\"index\"], lookup) * 10000) / 125,\n alias: {},\n creatures: {}\n };\n for (_d = 0, _e = a[\"alias\"]; _d < _e.length; _d++) {\n b = _e[_d];\n probabilities[a[\"index\"]].alias[b] = Math.round(this.similarity(b, lookup) * 10000) / 150;\n }\n for (_f = 0, _g = a[\"creatures\"]; _f < _g.length; _f++) {\n b = _g[_f];\n probabilities[a[\"index\"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;\n }\n }\n // Find highest likelihood of the search\n for (key in probabilities) {\n if (probabilities[key].index > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].index;\n }\n if (probabilities[key].alias) {\n aliasKeys = Object.keys(probabilities[key].alias);\n for (_h = 0, aliasKeys_1 = aliasKeys; _h < aliasKeys_1.length; _h++) {\n aliasKey = aliasKeys_1[_h];\n if (probabilities[key].alias[aliasKey] > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].alias[aliasKey];\n }\n }\n }\n if (probabilities[key].creatures) {\n creatureKeys = Object.keys(probabilities[key].creatures);\n for (_j = 0, creatureKeys_1 = creatureKeys; _j < creatureKeys_1.length; _j++) {\n creatureKey = creatureKeys_1[_j];\n if (probabilities[key].creatures[creatureKey] > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].creatures[creatureKey];\n }\n }\n }\n }\n return [2 /*return*/, this.data];\n }\n });\n });\n };\n // Check the similarity of 2 strings\n SearchAlgorithm.prototype.similarity = function (s1, s2) {\n var longer = s1;\n var shorter = s2;\n if (s1.length < s2.length) {\n longer = s2;\n shorter = s1;\n }\n var longerLength = longer.length;\n if (longerLength === 0)\n return 1.0;\n return (longerLength - this.editDistance(longer, shorter)) / parseFloat('' + longerLength);\n };\n // Calculate the edit distance between 2 strings\n SearchAlgorithm.prototype.editDistance = function (s1, s2) {\n s1 = s1.toLowerCase();\n s2 = s2.toLowerCase();\n var costs = [];\n for (var i = 0; i <= s1.length; i++) {\n var lastValue = i;\n for (var j = 0; j <= s2.length; j++) {\n if (i === 0) {\n costs[j] = j;\n }\n else if (j > 0) {\n var newValue = costs[j - 1];\n if (s1.charAt(i - 1) !== s2.charAt(j - 1)) {\n newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\n }\n costs[j - 1] = lastValue;\n lastValue = newValue;\n }\n }\n if (i > 0) {\n costs[s2.length] = lastValue;\n }\n }\n return costs[s2.length];\n };\n return SearchAlgorithm;\n}());\nexport { SearchAlgorithm };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport DialogReader from 'alt1/dialog';\nvar SlayerData = /** @class */ (function () {\n function SlayerData() {\n this.selectYourOwn = false;\n this.ticket = false;\n this.reaper = false;\n this.count = [];\n this.task = [];\n }\n return SlayerData;\n}());\nexport { SlayerData };\nvar SlayerDialogReader = /** @class */ (function () {\n function SlayerDialogReader() {\n }\n SlayerDialogReader.prototype.read = function () {\n return __awaiter(this, arguments, void 0, function (buffer) {\n var data, box, msg, countText, e, countText, e, i, msg, countText;\n if (buffer === void 0) { buffer = null; }\n return __generator(this, function (_a) {\n if (!buffer) {\n buffer = a1lib.captureHoldFullRs();\n }\n if (!this.dialogReader) {\n this.dialogReader = new DialogReader();\n }\n this.data = new SlayerData();\n data = this.dialogReader.find(buffer);\n if (!data)\n return [2 /*return*/, null];\n box = this.dialogReader.read(buffer);\n if (!box)\n return [2 /*return*/, null];\n if (box.text && (!box.opts || box.opts.length !== 2)) {\n msg = box.text.toString();\n // Parsing logic for various types of dialogs\n if (msg.toLowerCase().includes(\"select your own task\")) {\n this.data.selectYourOwn = true;\n }\n if (msg.toLowerCase().includes(\"require you to collect\")) {\n this.data.reaper = true;\n countText = msg.substring(msg.indexOf(\"collect \") + 8, msg.indexOf(\" souls\"));\n this.data.count[0] = parseInt(countText);\n this.data.task[0] = msg.substring(msg.indexOf(\"battle: \") + 8, msg.indexOf(\". Can\"));\n }\n if (msg.toLowerCase().includes(\"new task is to kill\")) {\n e = msg.substring(msg.indexOf(\"kill \") + 5, msg.length - 1);\n countText = e.substring(0, e.includes(\",\") ? e.indexOf(\",\") : e.indexOf(\" \"));\n this.data.count[0] = parseInt(countText);\n this.data.task[0] = e.substring((e.includes(\",\") ? e.indexOf(\",\") : e.indexOf(\" \")) + 1);\n }\n if (msg.toLowerCase().includes(\"still need to kill\")) {\n e = msg.substring(msg.indexOf(\"kill \") + 5);\n this.data.count[0] = parseInt(e.substring(0, e.indexOf(\" \")));\n this.data.task[0] = e.substring(e.indexOf(\" \") + 1, e.includes(\".\") ? e.indexOf(\".\") : e.length - 1);\n }\n if (msg.toLowerCase().includes(\"still hunting\")) {\n this.data.task[0] = msg.substring(msg.indexOf(\"hunting \") + 8, msg.indexOf(\";\"));\n }\n }\n if (box.opts && box.opts.length === 2 && (box.title && box.title.toLowerCase().includes(\"change your assigned slayer task\"))) {\n this.data.ticket = true;\n for (i = 0; i < box.opts.length; i++) {\n msg = box.opts[i].text;\n countText = msg.substring(0, msg.indexOf(' '));\n this.data.count[i] = parseInt(countText);\n this.data.task[i] = msg.substring(msg.indexOf(' ') + 1, msg.includes('(') ? msg.indexOf('(') - 1 : msg.length);\n }\n }\n return [2 /*return*/, this.data];\n });\n });\n };\n return SlayerDialogReader;\n}());\nexport { SlayerDialogReader };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport * as OCR from \"alt1/ocr\";\nimport * as settings from \"./settings\";\nvar imgs = a1lib.webpackImages({\n slayer_expanded_RS3: require(\"../images/data/slayer_expanded_RS3.data.png\"),\n slayer_expanded_OSL: require(\"../images/data/slayer_expanded_OSL.data.png\"),\n reaper_expanded_RS3: require(\"../images/data/reaper_expanded_RS3.data.png\"),\n reaper_expanded_OSL: require(\"../images/data/reaper_expanded_OSL.data.png\"),\n slayer_collapsed_RS3: require(\"../images/data/slayer_collapsed_RS3.data.png\"),\n slayer_collapsed_OSL: require(\"../images/data/slayer_collapsed_OSL.data.png\"),\n reaper_collapsed_RS3: require(\"../images/data/reaper_collapsed_RS3.data.png\"),\n reaper_collapsed_OSL: require(\"../images/data/reaper_collapsed_OSL.data.png\"),\n});\nvar UICounterData = /** @class */ (function () {\n function UICounterData() {\n }\n return UICounterData;\n}());\nexport { UICounterData };\nvar UICounterReader = /** @class */ (function () {\n function UICounterReader() {\n this.countFont = null;\n this.taskFont = null;\n this.data = null;\n }\n UICounterReader.prototype.read = function (buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, width, height, _i, _c, match, countText;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!buffer)\n buffer = a1lib.captureHoldFullRs();\n if (!!this.countFont) return [3 /*break*/, 2];\n _a = this;\n return [4 /*yield*/, fetch(require(\"../fonts/aa_10px_mono.fontmeta.json\")).then(function (r) { return r.json(); })];\n case 1:\n _a.countFont = _d.sent();\n _d.label = 2;\n case 2:\n if (!!this.taskFont) return [3 /*break*/, 4];\n _b = this;\n return [4 /*yield*/, fetch(require(\"../fonts/aa_8px_mono.fontmeta.json\")).then(function (r) { return r.json(); })];\n case 3:\n _b.taskFont = _d.sent();\n _d.label = 4;\n case 4:\n // Reset data for next search\n this.pos = [];\n this.data = null;\n // Look for all UI Elements until we find one, then the rest will get skipped\n this.findUIElement(buffer, imgs.slayer_collapsed_OSL, { reaper: false, collapsed: true, OS: true });\n this.findUIElement(buffer, imgs.slayer_expanded_OSL, { reaper: false, collapsed: false, OS: true });\n this.findUIElement(buffer, imgs.slayer_collapsed_RS3, { reaper: false, collapsed: true, OS: false });\n this.findUIElement(buffer, imgs.slayer_expanded_RS3, { reaper: false, collapsed: false, OS: false });\n this.findUIElement(buffer, imgs.reaper_collapsed_OSL, { reaper: true, collapsed: true, OS: true });\n this.findUIElement(buffer, imgs.reaper_expanded_OSL, { reaper: true, collapsed: false, OS: true });\n this.findUIElement(buffer, imgs.reaper_collapsed_RS3, { reaper: true, collapsed: true, OS: false });\n this.findUIElement(buffer, imgs.reaper_expanded_RS3, { reaper: true, collapsed: false, OS: false });\n // If we don't find any data or we found too many matches then return\n if (!this.data && this.pos.length == 0)\n return [2 /*return*/, null];\n width = this.data.collapsed ? imgs.slayer_collapsed_OSL.width : imgs.slayer_expanded_OSL.width;\n height = this.data.collapsed ? imgs.slayer_collapsed_OSL.height : imgs.slayer_expanded_OSL.height;\n // Loop the results and return the data we find\n for (_i = 0, _c = this.pos; _i < _c.length; _i++) {\n match = _c[_i];\n // Overlay a rectangle around the matched area on screen if we're running in alt1\n if (window.alt1 && alt1.permissionOverlay && settings.controller.ui.overlay)\n alt1.overLayRect(a1lib.mixColor(255, 255, 255), match.x, match.y, width, height, 500, 3);\n // Get the pixel data for the matched area\n this.data.img = buffer.toData(match.x, match.y, width, height);\n countText = OCR.findReadLine(this.data.img, this.countFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], this.data.collapsed ? 10 : 72, 15, 30, 3);\n this.data.count = parseInt(countText.text);\n if (!this.data.collapsed)\n this.data.task = OCR.findReadLine(this.data.img, this.taskFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], 9, 28, 156, 3).text;\n }\n return [2 /*return*/, (!this.pos || this.pos.length == 0) ? null : this.data];\n }\n });\n });\n };\n UICounterReader.prototype.findUIElement = function (buffer, img, mode) {\n if (!this.data && this.pos.length == 0)\n this.pos = buffer.findSubimage(img);\n if (!this.data && this.pos.length > 0)\n this.data = { reaper: mode.reaper, collapsed: mode.collapsed, OS: mode.OS, img: null, count: -1, task: null };\n };\n return UICounterReader;\n}());\nexport { UICounterReader };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as logger from \"../logger\";\nvar cachedData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar cacheTimestamp = Date.now();\n// Fetch and cache the assignments data\nfunction fetchAssignments() {\n return __awaiter(this, arguments, void 0, function (index) {\n var response, error_1;\n if (index === void 0) { index = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(index != \"all\" || (!cachedData || (Date.now() - cacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/assignments.json?q=\".concat(index))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedData = _a.sent();\n cacheTimestamp = Date.now() + (index == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedData];\n }\n });\n });\n}\n// Fetch a single assignment based on the index or alias\nexport function get(assignment) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedAssignment, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchAssignments(assignment)];\n case 1:\n data = _a.sent();\n lowerCasedAssignment = assignment.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (a[\"index\"].toLowerCase() === lowerCasedAssignment) {\n return [2 /*return*/, a];\n }\n if (a[\"alias\"].some(function (alias) { return alias.toLowerCase() === lowerCasedAssignment; })) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n// Get an array of the index\nexport function getIndexList() {\n return __awaiter(this, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchAssignments()];\n case 1:\n data = _a.sent();\n return [2 /*return*/, data.map(function (a) { return \"\\n\\r\"); }).join('')];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { decodeHtml } from '../extrafuncs';\nimport * as logger from \"../logger\";\nvar cachedCreaturesData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar creaturesCacheTimestamp = Date.now();\n// Fetch and cache the creatures data\nfunction fetchCreatures() {\n return __awaiter(this, arguments, void 0, function (name) {\n var response, error_1;\n if (name === void 0) { name = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(name != \"all\" || (!cachedCreaturesData || (Date.now() - creaturesCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/creatures.json?q=\".concat(name))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedCreaturesData = _a.sent();\n creaturesCacheTimestamp = Date.now() + (name == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedCreaturesData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedCreaturesData];\n }\n });\n });\n}\n// Fetch a single creature based on the name\nexport function get(creature) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedCreature, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchCreatures(creature)];\n case 1:\n data = _a.sent();\n lowerCasedCreature = creature.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === lowerCasedCreature) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { decodeHtml } from '../extrafuncs';\nimport * as logger from \"../logger\";\nvar cachedMastersData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar mastersCacheTimestamp = Date.now();\n// Fetch and cache the masters data\nfunction fetchMasters() {\n return __awaiter(this, arguments, void 0, function (name) {\n var response, error_1;\n if (name === void 0) { name = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(name != \"all\" || (!cachedMastersData || (Date.now() - mastersCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/masters.json?q=\".concat(name))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedMastersData = _a.sent();\n mastersCacheTimestamp = Date.now() + (name == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedMastersData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedMastersData];\n }\n });\n });\n}\n// Fetch a single master based on the name\nexport function get(master) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedMaster, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchMasters(master)];\n case 1:\n data = _a.sent();\n lowerCasedMaster = master.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === lowerCasedMaster) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as logger from \"../logger\";\nvar cachedReapersData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar reapersCacheTimestamp = Date.now();\n// Fetch and cache the reapers data\nfunction fetchReapers() {\n return __awaiter(this, arguments, void 0, function (index) {\n var response, error_1;\n if (index === void 0) { index = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(index != \"all\" || (!cachedReapersData || (Date.now() - reapersCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/reapers.json\")];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedReapersData = _a.sent();\n reapersCacheTimestamp = Date.now() + (index == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedReapersData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedReapersData];\n }\n });\n });\n}\n// Fetch a single reaper based on the index or alias\nexport function get(reaper) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedReaper, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchReapers(reaper)];\n case 1:\n data = _a.sent();\n lowerCasedReaper = reaper.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (a[\"index\"].toLowerCase() === lowerCasedReaper) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n// Get an array of the index as HTML option elements\nexport function getIndexList() {\n return __awaiter(this, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchReapers()];\n case 1:\n data = _a.sent();\n return [2 /*return*/, data.map(function (a) { return \"\\n\\r\"); }).join('')];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { decodeHtml } from '../extrafuncs';\nimport * as logger from \"../logger\";\nvar cachedCreaturesData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar creaturesCacheTimestamp = Date.now();\n// Fetch and cache the creatures data\nfunction fetchCreatures() {\n return __awaiter(this, arguments, void 0, function (name) {\n var response, error_1;\n if (name === void 0) { name = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(name != \"all\" || (!cachedCreaturesData || (Date.now() - creaturesCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/creatures.json?q=\".concat(name))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedCreaturesData = _a.sent();\n creaturesCacheTimestamp = Date.now() + (name == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedCreaturesData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedCreaturesData];\n }\n });\n });\n}\n// Fetch a single variant based on the creature name and variant name\nexport function get(creature, variant) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedCreature, lowerCasedVariant, _i, data_1, a, _a, _b, b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, fetchCreatures(creature)];\n case 1:\n data = _c.sent();\n lowerCasedCreature = decodeHtml(creature.toLowerCase());\n lowerCasedVariant = variant.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === lowerCasedCreature) {\n for (_a = 0, _b = a[\"variants\"]; _a < _b.length; _a++) {\n b = _b[_a];\n if (b[\"name\"].toLowerCase() === lowerCasedVariant) {\n return [2 /*return*/, b];\n }\n }\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n","// Import required modules\nimport * as main from './dochandler/main';\n// Export required modules\nexport * as animate from './dochandler/animate';\nexport * as change from './dochandler/change';\nexport * as hide from './dochandler/hide';\nexport * as hover from './dochandler/hover';\nexport * as main from './dochandler/main';\nexport * as show from './dochandler/show';\nexport * as open from './dochandler/open';\n// Function to get the side element based on the index\nexport function getSide(i) {\n var base = main.get.elid(\"base\");\n var side = main.get.elc(i === 0 ? \"left\" : \"right\", base);\n if (!side) {\n side = main.get.elc(\"single\", base);\n }\n return side;\n}\n","// Import required modules\nimport * as dochandler from '../dochandler';\n// Function to show the loading bar\nexport function loading() {\n var loadingBar = dochandler.main.get.elid(\"loading-bar\");\n if (loadingBar) {\n loadingBar.style.visibility = \"visible\";\n }\n}\n// Function to hide the loading bar\nexport function loadingStop() {\n var loadingBar = dochandler.main.get.elid(\"loading-bar\");\n if (loadingBar) {\n loadingBar.style.visibility = \"hidden\";\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Import all modules as namespaces\nimport * as settings from '../settings';\nimport * as dochandler from '../dochandler';\nimport * as extrafuncs from '../extrafuncs';\nimport * as masters from '../data/masters';\nimport * as reapers from '../data/reapers';\nimport * as assignments from '../data/assignnments';\nimport * as creatures from '../data/creatures';\nimport * as variants from '../data/variants';\nimport * as logger from \"../logger\";\n// Update the Creature variant shown\nexport function variant(i_1) {\n return __awaiter(this, arguments, void 0, function (i, creature, variant) {\n var side, data, imageContainer, imageElement, newSize, kills, slayerExp, totalSlayerExp;\n if (creature === void 0) { creature = null; }\n if (variant === void 0) { variant = null; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Start loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n // Return early if UI is limited or data is not available\n if ((settings.controller.ui.limited || dochandler.main.limitedLoaded) && (!creature || !variant)) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Fetch creature and variant from UI elements if not provided\n if (!creature) {\n creature = dochandler.main.get.elc(\"creatures\", side).value;\n }\n if (!variant) {\n variant = dochandler.main.get.elc(\"variants\", side).value;\n }\n logger.log(\"Change variant to: \".concat(creature, \"#\").concat(variant));\n return [4 /*yield*/, variants.get(creature, variant)];\n case 1:\n data = _a.sent();\n if (data) {\n // Update UI if not limited\n if (!settings.controller.ui.limited && !dochandler.main.limitedLoaded) {\n imageContainer = dochandler.main.get.elc(\"image-container\", side);\n imageContainer.innerHTML = data[\"image\"].replace(\"#\", \"%23\");\n imageElement = imageContainer.firstElementChild;\n newSize = extrafuncs.calculateAspectRatioFit(parseInt(imageElement.getAttribute(\"width\")), parseInt(imageElement.getAttribute(\"height\")), imageContainer.offsetWidth, imageContainer.offsetHeight);\n imageElement.style.maxWidth = \"\".concat(newSize.width, \"px\");\n imageElement.style.maxHeight = \"\".concat(newSize.height, \"px\");\n // Update stats\n updateStats(side, data);\n }\n kills = parseInt(dochandler.main.get.elc(\"kills\", side).innerHTML, 10);\n slayerExp = parseFloat(data[\"slayer-exp\"]);\n if (!isNaN(slayerExp) && !isNaN(kills)) {\n totalSlayerExp = (slayerExp * kills).toFixed(2);\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(totalSlayerExp);\n }\n else {\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid data\n }\n }\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n// Helper function to update stats\nfunction updateStats(side, data) {\n dochandler.main.get.elc(\"level\", side).innerHTML = data[\"level\"];\n dochandler.main.get.elc(\"slayer-level\", side).innerHTML = data[\"slayer-level\"];\n dochandler.main.get.elc(\"lifepoints\", side).innerHTML = data[\"lifepoints\"];\n dochandler.main.get.elc(\"defence\", side).innerHTML = data[\"defence\"];\n dochandler.main.get.elc(\"max-melee\", side).innerHTML = data[\"max-melee\"];\n dochandler.main.get.elc(\"max-ranged\", side).innerHTML = data[\"max-ranged\"];\n dochandler.main.get.elc(\"max-magic\", side).innerHTML = data[\"max-magic\"];\n dochandler.main.get.elc(\"max-necromancy\", side).innerHTML = data[\"max-necromancy\"];\n dochandler.main.get.elc(\"max-spec\", side).innerHTML = data[\"max-spec\"];\n // Update weakness and susceptibility\n var weaknessElem = dochandler.main.get.elc(\"weaknessBox\", side);\n weaknessElem.innerHTML = \"

Weakness

\" + data[\"weakness\"].join(\"\");\n var susceptibleElem = dochandler.main.get.elc(\"susceptibleBox\", side);\n susceptibleElem.innerHTML = \"

Susceptible

\" + data[\"susceptible\"].join(\"\");\n // Update experience values\n var experience = parseFloat(data[\"experience\"]);\n if (!isNaN(experience)) {\n dochandler.main.get.elc(\"combat-exp\", side).innerHTML = extrafuncs.numberWithCommas(experience.toFixed(2));\n }\n else {\n dochandler.main.get.elc(\"combat-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid experience\n }\n // Handle lifepoints-exp\n var lifepointsExp = parseFloat(data[\"lifepoint-exp\"]);\n if (!isNaN(lifepointsExp)) {\n dochandler.main.get.elc(\"lifepoints-exp\", side).innerHTML = extrafuncs.numberWithCommas(lifepointsExp.toFixed(2));\n }\n else {\n dochandler.main.get.elc(\"lifepoints-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid lifepoints-exp\n }\n // Handle slayer-exp\n var slayerExp = parseFloat(data[\"slayer-exp\"]);\n if (!isNaN(slayerExp)) {\n dochandler.main.get.elc(\"slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(slayerExp.toFixed(2));\n }\n else {\n dochandler.main.get.elc(\"slayer-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid slayer-exp\n }\n}\n// Update the Creature shown\nexport function creature(i_1) {\n return __awaiter(this, arguments, void 0, function (i, creature, variant) {\n var side, data, variantsElem_1;\n if (creature === void 0) { creature = null; }\n if (variant === void 0) { variant = null; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Start loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n // Return early if UI is limited and no creature is provided\n if ((settings.controller.ui.limited || dochandler.main.limitedLoaded) && !creature) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Fetch creature from UI elements if not provided\n if (!creature) {\n creature = dochandler.main.get.elc(\"creatures\", side).value;\n }\n logger.log(\"Change Creature to: \".concat(creature).concat(variant ? \"#\".concat(variant) : ''));\n return [4 /*yield*/, creatures.get(creature)];\n case 1:\n data = _a.sent();\n if (data) {\n // Update variants if available\n if (data[\"variants\"] && !settings.controller.ui.limited && !dochandler.main.limitedLoaded) {\n variantsElem_1 = dochandler.main.get.elc(\"variants\", side);\n variantsElem_1.innerHTML = \"\";\n data[\"variants\"].forEach(function (a) {\n variantsElem_1.innerHTML += \"\");\n });\n if (!variant) {\n variant = data[\"variants\"][0][\"name\"];\n }\n }\n // Update the variant to reflect changes\n dochandler.change.variant(i, creature, variant);\n }\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n// Update the reaper assignment data\nexport function reaper(task, count) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, assignment(2, task, count)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\n// Update the entire Assignment data\nexport function assignment(i, task, count) {\n return __awaiter(this, void 0, void 0, function () {\n var side, nameElement, slayer_exp, slayxp, data, total_exp, j, img, masterData, kills, _loop_1, j, j, j, j, j, _i, _a, a, defaultCreature, _b, creature_1, variant_1;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Ensure correct task loading conditions\n if (i === 1 && !dochandler.main.doubleLoaded) {\n logger.error(\"Cannot load double slayer task if only 1 is displayed!\");\n return [2 /*return*/];\n }\n if (i === 2 && !dochandler.main.reaperLoaded) {\n logger.error(\"Cannot load reaper task if 2 are displayed!\");\n return [2 /*return*/];\n }\n // Show loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n nameElement = dochandler.main.get.elc(\"name\", side);\n if (!nameElement)\n return [2 /*return*/];\n // Check if the current task is the same as the new one\n if ((task == null && nameElement.innerHTML !== \"???\") || nameElement.innerHTML.toLowerCase() === task.toLowerCase()) {\n logger.log(\"Update task: [\".concat(count, \"] \").concat(task, \" \").concat(i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\")));\n dochandler.main.get.elc(\"kills\", side).innerHTML = extrafuncs.numberWithCommas(count);\n slayer_exp = dochandler.main.get.elc(\"slayer-exp\", side);\n if (slayer_exp && slayer_exp.innerHTML !== \"\") {\n slayxp = parseInt(slayer_exp.innerHTML);\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas((slayxp * count).toFixed(2));\n }\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Load new task data\n logger.log(\"Load task: [\".concat(count, \"] \").concat(task, \" \").concat(i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\")));\n dochandler.main.get.elc(\"type\", side).innerHTML = i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\");\n if (i === 2)\n dochandler.main.get.elc(\"type\", side).id = \"type-reaper\";\n return [4 /*yield*/, (i === 2 ? reapers.get(task) : assignments.get(task))];\n case 1:\n data = _d.sent();\n if (!data) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Update UI elements with the new data\n dochandler.main.get.elc(\"name\", side).innerHTML = data[\"index\"];\n dochandler.main.get.elc(\"name\", side).title = data[\"index\"];\n dochandler.main.get.elc(\"kills\", side).innerHTML = extrafuncs.numberWithCommas(count);\n if (dochandler.main.limitedLoaded) {\n total_exp = 0;\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(total_exp);\n }\n if (!(!settings.controller.ui.limited && !dochandler.main.limitedLoaded)) return [3 /*break*/, 6];\n dochandler.main.get.elc(\"masters\", side).innerHTML = \"
Assignment Range
\";\n j = 0;\n _d.label = 2;\n case 2:\n if (!(j < data[\"masters\"].length)) return [3 /*break*/, 5];\n img = \"\\\"\").concat(data[\"masters\"][j],\");\n return [4 /*yield*/, masters.get(data[\"masters\"][j])];\n case 3:\n masterData = _d.sent();\n kills = masterData[\"task-counts\"][data[\"index\"]];\n dochandler.main.get.elc(\"masters\", side).innerHTML += \"
\").concat(img, \" Kills: \").concat(kills, \"
\");\n _d.label = 4;\n case 4:\n j++;\n return [3 /*break*/, 2];\n case 5:\n _loop_1 = function (j) {\n dochandler.main.get.elc(\"masterInfo\".concat(j), side).addEventListener('click', function () { return dochandler.open.wiki.master(i, j); });\n };\n for (j = 0; j < data[\"masters\"].length; j++) {\n _loop_1(j);\n }\n // Update equipment data\n if (data[\"equipment\"]) {\n for (j = 0; j < 3; j++) {\n dochandler.main.get.elc(\"equipInfo\".concat(j + 1), side).innerHTML = j === 0 ? \"None\" : \"\";\n }\n for (j = 0; j < data[\"equipment\"].length; j++) {\n dochandler.main.get.elc(\"equipInfo\".concat(j + 1), side).innerHTML = data[\"equipment\"][j] || \"Database Empty\";\n }\n dochandler.main.get.elc(\"equipMore\", side).style.visibility = data[\"equipment\"].length < 3 ? \"hidden\" : \"visible\";\n }\n else {\n dochandler.main.get.elc(\"equipMore\", side).style.visibility = \"hidden\";\n dochandler.main.get.elc(\"equipInfo1\", side).innerHTML = \"Database Missing\";\n }\n // Update locations data\n if (data[\"locations\"]) {\n for (j = 0; j < 3; j++) {\n dochandler.main.get.elc(\"locationInfo\".concat(j + 1), side).innerHTML = j === 0 ? \"None\" : \"\";\n }\n for (j = 0; j < data[\"locations\"].length; j++) {\n dochandler.main.get.elc(\"locationInfo\".concat(j + 1), side).innerHTML = data[\"locations\"][j] || \"Database Empty\";\n }\n dochandler.main.get.elc(\"locationMore\", side).style.visibility = data[\"locations\"].length < 3 ? \"hidden\" : \"visible\";\n }\n else {\n dochandler.main.get.elc(\"locationMore\", side).style.visibility = \"hidden\";\n dochandler.main.get.elc(\"locationInfo1\", side).innerHTML = \"Database Missing\";\n }\n // Update creatures data\n if (data[\"creatures\"]) {\n dochandler.main.get.elc(\"creatures\", side).innerHTML = \"\";\n for (_i = 0, _a = data[\"creatures\"]; _i < _a.length; _i++) {\n a = _a[_i];\n if (!extrafuncs.listContains(data[\"hidden-creatures\"], a)) {\n defaultCreature = ((_c = data[\"default-creature\"]) === null || _c === void 0 ? void 0 : _c.split(\"#\")[0]) || \"\";\n dochandler.main.get.elc(\"creatures\", side).innerHTML += \"\");\n }\n }\n }\n // Set default creature and variant\n if (data[\"default-creature\"]) {\n _b = data[\"default-creature\"].split(\"#\"), creature_1 = _b[0], variant_1 = _b[1];\n dochandler.change.creature(i, creature_1, variant_1);\n }\n else {\n dochandler.change.creature(i);\n }\n _d.label = 6;\n case 6:\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n","import * as dochandler from \"../dochandler\";\nimport * as settings from \"../settings\";\nexport function assignmentWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-task-wiki\", side).style.visibility = \"hidden\";\n}\nexport function creatureWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-creature-wiki\", side).style.visibility = \"hidden\";\n}\nexport function moreEquip(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"equipHidden\", side).style.visibility = \"hidden\";\n}\nexport function moreLocations(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"locationHidden\", side).style.visibility = \"hidden\";\n}\n","import * as dochandler from \"../dochandler\";\nimport * as settings from \"../settings\";\nexport function assignmentWiki(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer;\n var hideTimer = null;\n showTimer = setTimeout(function () { return dochandler.show.assignmentWikiPreview(i); }, 500);\n dochandler.main.get.elc(\"task-wiki\", side).onmouseleave = function () {\n hideTimer = setTimeout(function () { return dochandler.hide.assignmentWikiPreview(i); }, 200);\n clearTimeout(showTimer);\n };\n dochandler.main.get.elc(\"preview-task-wiki\", side).onmouseenter = function () {\n if (hideTimer !== null)\n clearTimeout(hideTimer);\n };\n}\nexport function creatureWiki(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer;\n var hideTimer = null;\n showTimer = setTimeout(function () { return dochandler.show.creatureWikiPreview(i); }, 500);\n dochandler.main.get.elc(\"creature-wiki\", side).onmouseleave = function () {\n hideTimer = setTimeout(function () { return dochandler.hide.creatureWikiPreview(i); }, 200);\n clearTimeout(showTimer);\n };\n dochandler.main.get.elc(\"preview-creature-wiki\", side).onmouseenter = function () {\n if (hideTimer !== null)\n clearTimeout(hideTimer);\n };\n}\nexport function moreEquip(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer = setTimeout(function () { return dochandler.show.moreEquip(i); }, 500);\n dochandler.main.get.elc(\"equipMore\", side).onmouseleave = function () {\n clearTimeout(showTimer);\n };\n}\nexport function moreLocations(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer = setTimeout(function () { return dochandler.show.moreLocations(i); }, 500);\n dochandler.main.get.elc(\"locationMore\", side).onmouseleave = function () {\n clearTimeout(showTimer);\n };\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from '../dochandler';\nimport * as reapers from '../data/reapers';\nimport * as assignments from '../data/assignnments';\nimport * as settings from '../settings';\nimport * as slayer from '../slayer';\nimport * as logger from \"../logger\";\n// Define variables\nexport var doubleLoaded = false;\nexport var singleLoaded = false;\nexport var reaperLoaded = false;\nexport var suggestedLoaded = false;\nexport var limitedLoaded = false;\nexport var get;\n(function (get) {\n function elc(id, base) {\n return base.getElementsByClassName(id)[0];\n }\n get.elc = elc;\n function elid(id) {\n return document.getElementById(id);\n }\n get.elid = elid;\n function searchInput() {\n return document.querySelector(\"input[name='search-info']\").value;\n }\n get.searchInput = searchInput;\n})(get || (get = {}));\nexport var reset;\n(function (reset) {\n function single() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!singleLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n singleLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.single = single;\n function double() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!doubleLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n doubleLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.double = double;\n function reaper() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!reaperLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n reaperLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.reaper = reaper;\n function suggested() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!suggestedLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n suggestedLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.suggested = suggested;\n function searchBox() {\n return __awaiter(this, void 0, void 0, function () {\n var searchInfo;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, get.elid(\"search-info\")];\n case 1:\n searchInfo = _a.sent();\n searchInfo.value = \"\";\n toggle.searchText();\n return [2 /*return*/];\n }\n });\n });\n }\n reset.searchBox = searchBox;\n})(reset || (reset = {}));\nexport var set;\n(function (set) {\n // Set to use a double document\n function double(task0_1, task1_1) {\n return __awaiter(this, arguments, void 0, function (task0, task1, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if ((task0 == null || task1 == null) && !doubleLoaded)\n return [2 /*return*/];\n logger.log(\"Load Double: [\".concat(task0.count, \"] \").concat(task0.name, \" | [\").concat(task1.count, \"] \").concat(task1.name));\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n if (!!doubleLoaded) return [3 /*break*/, 5];\n return [4 /*yield*/, setup.doubleAssignment()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, dochandler.change.assignment(0, task0.name, task0.count)];\n case 6:\n _a.sent();\n return [4 /*yield*/, dochandler.change.assignment(1, task1.name, task1.count)];\n case 7:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task0.name && task1.name) {\n settings.change.addHistory({ type: 'double', tasks: [task0, task1] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.double = double;\n // Set to use a single document\n function single(task_1) {\n return __awaiter(this, arguments, void 0, function (task, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (task == null && !singleLoaded)\n return [2 /*return*/];\n logger.log(\"Load Single: [\".concat(task.count, \"] \").concat(task.name));\n // Reset all others\n return [4 /*yield*/, reset.double()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n if (!!singleLoaded) return [3 /*break*/, 5];\n return [4 /*yield*/, setup.singleAssignment(0)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, dochandler.change.assignment(0, task.name, task.count)];\n case 6:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task.name) {\n settings.change.addHistory({ type: 'single', tasks: [task] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.single = single;\n // Set to use reaper tasks doc\n function reaper(task_1) {\n return __awaiter(this, arguments, void 0, function (task, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (task == null && !reaperLoaded)\n return [2 /*return*/];\n logger.log(\"Load Reaper: [\".concat(task.count, \"] \").concat(task.name));\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.double()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n return [4 /*yield*/, setup.singleAssignment(2)];\n case 4:\n _a.sent();\n return [4 /*yield*/, dochandler.change.reaper(task.name, task.count)];\n case 5:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task.name) {\n settings.change.addHistory({ type: 'reaper', tasks: [task] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.reaper = reaper;\n // Set to use suggested tasks doc\n function suggested() {\n return __awaiter(this, arguments, void 0, function (bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (suggestedLoaded)\n return [2 /*return*/];\n logger.log(\"Load Suggested!\");\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.double()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 3:\n _a.sent();\n return [4 /*yield*/, dochandler.main.setup.suggested()];\n case 4:\n _a.sent();\n // Log history if not bypassed\n if (!bypass) {\n settings.change.addHistory({ type: 'suggestion', tasks: null });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.suggested = suggested;\n // Set search button\n function searchButtonText(s) {\n dochandler.main.get.elid(\"search-button\").innerHTML = \"\".concat(s, \". . .\");\n }\n set.searchButtonText = searchButtonText;\n // Set the search input\n function searchInput(s) {\n if (s == null)\n return;\n dochandler.main.get.elid(\"search-info\").value = s;\n dochandler.main.toggle.searchText();\n }\n set.searchInput = searchInput;\n})(set || (set = {}));\nexport var setup;\n(function (setup) {\n // Setup the main document\n function documentMain() {\n return __awaiter(this, void 0, void 0, function () {\n var nisElement, _a, reapersIndexList, assignmentsIndexList;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n nisElement = dochandler.main.get.elid(\"nis\");\n _a = nisElement;\n return [4 /*yield*/, fetch(\"./pages/doc/body.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n // Setup event listeners\n dochandler.main.get.elid(\"infobutton\").addEventListener('click', dochandler.open.aboutInfo);\n dochandler.main.get.elid(\"menubutton\").addEventListener('click', dochandler.open.settingsPage);\n dochandler.main.get.elid(\"donatebutton\").addEventListener('click', dochandler.open.donate);\n dochandler.main.get.elid(\"backbutton\").addEventListener('click', settings.change.goPreviousHistory);\n dochandler.main.get.elid(\"forwardbutton\").addEventListener('click', settings.change.goNextHistory);\n dochandler.main.get.elid(\"search-button\").addEventListener('click', function () { slayer.searchTasks(); });\n dochandler.main.get.elid(\"search-info\").addEventListener('input', dochandler.main.toggle.searchText);\n dochandler.main.get.elid(\"search-info\").addEventListener('change', function () { slayer.searchTasks(); });\n dochandler.main.get.elid(\"search-info\").addEventListener('keyup', function (event) {\n switch (event.key) {\n case \"ArrowUp\":\n dochandler.main.set.searchInput(settings.search.getPreviousHistory());\n break;\n case \"ArrowDown\":\n dochandler.main.set.searchInput(settings.search.getNextHistory());\n break;\n }\n });\n dochandler.main.get.elid(\"warning-link\").addEventListener('click', function (e) {\n dochandler.main.get.elid(\"warning-ui\").style.visibility = \"hidden\";\n });\n // Setup warnings based on the status\n if (window.alt1) {\n if (!alt1.permissionInstalled)\n dochandler.main.get.elid(\"warning-msg\").innerHTML = \"You should click
Add App at top right\";\n else if (!alt1.permissionOverlay || !alt1.permissionGameState || !alt1.permissionPixel)\n dochandler.main.get.elid(\"warning-msg\").innerHTML = \"This app is missing permissions\";\n else if (!alt1.rsLinked)\n dochandler.main.get.elid(\"warning-msg\").innerHTML = \"RuneScape not detected, troubleshoot\";\n else\n dochandler.main.get.elid(\"warning-ui\").style.visibility = \"hidden\";\n }\n return [4 /*yield*/, reapers.getIndexList()];\n case 2:\n reapersIndexList = _b.sent();\n dochandler.main.get.elid(\"search-info-list\").innerHTML = reapersIndexList;\n return [4 /*yield*/, assignments.getIndexList()];\n case 3:\n assignmentsIndexList = _b.sent();\n dochandler.main.get.elid(\"search-info-list\").innerHTML += assignmentsIndexList;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.documentMain = documentMain;\n // Setup the base for double assignment\n function doubleAssignment() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, _loop_1, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n limitedLoaded = true;\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/dual.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n _loop_1 = function (i) {\n var side, _c, extraInfo, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n side = dochandler.getSide(i);\n _c = side;\n return [4 /*yield*/, fetch(\"./pages/doc/example.html\").then(function (r) { return r.text(); })];\n case 1:\n _c.innerHTML = _e.sent();\n // Setup event listeners\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.assignment(i); });\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.assignmentWiki(i); });\n if (!!settings.controller.ui.limited) return [3 /*break*/, 3];\n extraInfo = dochandler.main.get.elc(\"extra-info\", side);\n _d = extraInfo;\n return [4 /*yield*/, fetch(\"./pages/doc/example-extra.html\").then(function (r) { return r.text(); })];\n case 2:\n _d.innerHTML = _e.sent();\n limitedLoaded = false;\n dochandler.main.get.elc(\"preview-task-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.assignmentWikiPreview(i); });\n dochandler.main.get.elc(\"preview-creature-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.creatureWikiPreview(i); });\n dochandler.main.get.elc(\"equipMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreEquip(i); });\n dochandler.main.get.elc(\"equipHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreEquip(i); });\n dochandler.main.get.elc(\"locationMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreLocations(i); });\n dochandler.main.get.elc(\"locationHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreLocations(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.creature(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.creatureWiki(i); });\n dochandler.main.get.elc(\"creatures\", side).addEventListener('change', function () { return dochandler.change.creature(i); });\n dochandler.main.get.elc(\"variants\", side).addEventListener('change', function () { return dochandler.change.variant(i); });\n _e.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n };\n i = 0;\n _b.label = 2;\n case 2:\n if (!(i < 2)) return [3 /*break*/, 5];\n return [5 /*yield**/, _loop_1(i)];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4:\n i++;\n return [3 /*break*/, 2];\n case 5:\n // Adjust the doc for limited and full\n adjustForSettings();\n doubleLoaded = true;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.doubleAssignment = doubleAssignment;\n // Setup the base for single assignment\n function singleAssignment(i) {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, side, _b, extraInfo, _c, statusElement;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n limitedLoaded = true;\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/single.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _d.sent();\n side = dochandler.getSide(i);\n _b = side;\n return [4 /*yield*/, fetch(\"./pages/doc/example.html\").then(function (r) { return r.text(); })];\n case 2:\n _b.innerHTML = _d.sent();\n // Setup event listeners\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.assignment(i); });\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.assignmentWiki(i); });\n if (!!settings.controller.ui.limited) return [3 /*break*/, 4];\n extraInfo = dochandler.main.get.elc(\"extra-info\", side);\n _c = extraInfo;\n return [4 /*yield*/, fetch(\"./pages/doc/example-extra.html\").then(function (r) { return r.text(); })];\n case 3:\n _c.innerHTML = _d.sent();\n limitedLoaded = false;\n dochandler.main.get.elc(\"preview-task-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.assignmentWikiPreview(i); });\n dochandler.main.get.elc(\"preview-creature-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.creatureWikiPreview(i); });\n dochandler.main.get.elc(\"equipMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreEquip(i); });\n dochandler.main.get.elc(\"equipHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreEquip(i); });\n dochandler.main.get.elc(\"locationMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreLocations(i); });\n dochandler.main.get.elc(\"locationHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreLocations(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.creature(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.creatureWiki(i); });\n dochandler.main.get.elc(\"creatures\", side).addEventListener('change', function () { return dochandler.change.creature(i); });\n dochandler.main.get.elc(\"variants\", side).addEventListener('change', function () { return dochandler.change.variant(i); });\n _d.label = 4;\n case 4:\n statusElement = dochandler.main.get.elc(\"status\", side);\n if (settings.controller.ui.status) {\n statusElement.style.visibility = \"visible\";\n }\n else {\n statusElement.style.visibility = \"hidden\";\n }\n // Adjust the doc for limited and full\n adjustForSettings();\n if (i === 2) {\n reaperLoaded = true;\n }\n else {\n singleLoaded = true;\n }\n return [2 /*return*/];\n }\n });\n });\n }\n setup.singleAssignment = singleAssignment;\n // Setup the base for suggested\n function suggested() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, suggestType, _loop_2, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/suggested.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n suggestType = dochandler.main.get.elid(\"type-suggest\");\n if (suggestType) {\n suggestType.addEventListener('click', function () { return window.open(\"https://runescape.wiki/w/Slayer_training/High-levelled\"); });\n }\n _loop_2 = function (i) {\n var element = dochandler.main.get.elid(\"suggestion-\".concat(i));\n if (element) {\n element.addEventListener('click', function () { return slayer.searchTasks(element.innerHTML); });\n }\n };\n for (i = 1; i <= 12; i++) {\n _loop_2(i);\n }\n suggestedLoaded = true;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.suggested = suggested;\n // If limited, set the size of the base\n function adjustForSettings() {\n var baseElement = dochandler.main.get.elid(\"base\");\n var divideElement = dochandler.main.get.elid(\"divide\");\n var copyrightElement = dochandler.main.get.elid(\"copyright\");\n if (settings.controller.ui.limited) {\n baseElement.classList.remove(\"base-full\");\n if (divideElement) {\n divideElement.classList.remove(\"divide-full\");\n }\n copyrightElement.classList.remove(\"copyright-full\");\n }\n else {\n baseElement.classList.add(\"base-full\");\n if (divideElement) {\n divideElement.classList.add(\"divide-full\");\n }\n copyrightElement.classList.add(\"copyright-full\");\n }\n }\n})(setup || (setup = {}));\nexport var toggle;\n(function (toggle) {\n // Toggle if we are capturing screen or searching text\n function searchText() {\n var searchResult = slayer.searchResult;\n var autoCaptureEnabled = settings.controller.autoCapture.enabled;\n var searchInput = dochandler.main.get.searchInput();\n if (searchResult || (!autoCaptureEnabled && searchInput === \"\")) {\n dochandler.main.set.searchButtonText(\"Capture\");\n }\n else {\n dochandler.main.set.searchButtonText(\"Search\");\n }\n }\n toggle.searchText = searchText;\n})(toggle || (toggle = {}));\n","import * as dochandler from '../dochandler';\nimport * as settings from '../settings';\nimport * as logger from \"../logger\";\n// Open the Donate Page (https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ)\nexport function donate() {\n window.open(\"https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ\");\n}\n// Open the about info page\nexport function aboutInfo() {\n var width = 680;\n var height = 550;\n var left = window.screenX + (window.innerWidth / 2) - (width / 2);\n var top = window.screenY + (window.innerHeight / 2) - (height / 2);\n window.open(\"./pages/about.html\", null, \"width=\".concat(width, \",height=\").concat(height, \",left=\").concat(left, \",top=\").concat(top));\n}\n// Open the settings page\nexport function settingsPage() {\n var width = 420;\n var height = 550;\n var left = window.screenX + (window.innerWidth / 2) - (width / 2);\n var top = window.screenY + (window.innerHeight / 2) - (height / 2);\n var settingsWindow = window.open(\"./pages/settings.html\", \"_blank\", \"width=\".concat(width, \",height=\").concat(height, \",left=\").concat(left, \",top=\").concat(top));\n logger.warn(\"Settings Opened!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn(\"Settings Loaded!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('keyup', function (e) {\n if ((e.which || e.keyCode) === 116) {\n // Prevent F5 key press from refreshing the page\n e.preventDefault();\n }\n });\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('beforeunload', function () {\n // Load the new settings and apply them\n settings.controller.load();\n dochandler.main.toggle.searchText();\n logger.warn(\"Settings Closed!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn(\"Settings Saved!\");\n });\n}\nexport var wiki;\n(function (wiki) {\n // Opens the wiki page for a specific task\n function assignment(i) {\n var side = dochandler.getSide(i);\n var task = dochandler.main.get.elc(\"name\", side).innerHTML;\n if (task)\n window.open(\"https://runescape.wiki/\".concat(task, \"_(Slayer_assignment)\"), \"_blank\");\n }\n wiki.assignment = assignment;\n // Opens the wiki page for a specific creature\n function creature(i) {\n var side = dochandler.getSide(i);\n var creature = dochandler.main.get.elc(\"creatures\", side).value;\n var variant = dochandler.main.get.elc(\"variants\", side).value;\n if (creature && variant)\n window.open(\"https://runescape.wiki/\".concat(creature, \"#\").concat(variant), \"_blank\");\n else if (creature)\n window.open(\"https://runescape.wiki/\".concat(creature), \"_blank\");\n }\n wiki.creature = creature;\n // Opens the wiki page for a specific master\n function master(i, j) {\n var side = dochandler.getSide(i);\n var master = dochandler.main.get.elc(\"masterImage\" + j, side).alt;\n if (master)\n window.open(\"https://runescape.wiki/\".concat(master), \"_blank\");\n }\n wiki.master = master;\n})(wiki || (wiki = {}));\n","import * as dochandler from '../dochandler';\nimport * as settings from '../settings';\n// Show the specific Creature's preview wiki page\nexport function assignmentWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-task-wiki\", side).style.visibility = \"visible\";\n}\n// Show the specific Creature's preview wiki page\nexport function creatureWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-creature-wiki\", side).style.visibility = \"visible\";\n}\n// Show more Equipment for task\nexport function moreEquip(i) {\n var _a;\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var equipHiddenElement = dochandler.main.get.elc(\"equipHidden\", side);\n if ((_a = equipHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {\n equipHiddenElement.style.visibility = \"visible\";\n }\n}\n// Show more Locations for task\nexport function moreLocations(i) {\n var _a;\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var locationHiddenElement = dochandler.main.get.elc(\"locationHidden\", side);\n if ((_a = locationHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {\n locationHiddenElement.style.visibility = \"visible\";\n }\n}\n","// Add commas into a number if its big enough\nexport function numberWithCommas(n) {\n if (n == null)\n return \"Empty\";\n if (n === -666)\n return \"Error\";\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n// Check if the list contains what you want to find\nexport function listContains(list, find) {\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\n var l = list_1[_i];\n if (decodeHtml(l).toLowerCase() === decodeHtml(find).toLowerCase())\n return true;\n }\n return false;\n}\n// Get new width and height for image based on aspect ratio\nexport function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) {\n var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);\n return { width: srcWidth * ratio, height: srcHeight * ratio };\n}\n// Decode the HTML chars that have been encoded during database downloading\nexport function decodeHtml(html) {\n var txt = document.createElement(\"textarea\");\n txt.innerHTML = html;\n return txt.value;\n}\n","// Private queues and settings\nvar debugQueue = [];\nvar verboseQueue = [];\nvar queueLimit = 50;\nvar debugEnabled = false;\nvar verboseEnabled = false;\n// Set the queue limit for debug and verbose\nexport function setLimit(limit) {\n queueLimit = limit;\n}\n// Enable or disable debug logging\nexport function setDebug(enabled) {\n debugEnabled = enabled;\n if (enabled)\n debug(\"Debug logging enabled\"); // Force Flush the Queue\n}\n// Enable or disable verbose logging\nexport function setVerbose(enabled) {\n verboseEnabled = enabled;\n if (enabled)\n verbose(\"Verbose logging enabled\"); // Force Flush the Queue\n}\n// Public: Log to the normal queue and flush the queue\nexport function log() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.log.apply(console, messages);\n}\n// Public: Log to the warn queue and flush the queue\nexport function warn() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.warn.apply(console, messages);\n}\n// Public: Log to the error queue and flush the queue\nexport function error() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.error.apply(console, messages);\n}\n// Public: Log to the debug queue only if debug is enabled and flush the queue\nexport function debug() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n debugQueue.push(messages.join(' '));\n trimQueue(debugQueue);\n if (debugEnabled)\n flushQueue(debugQueue, \"Debug\");\n}\n// Public: Log to the verbose queue only if verbose is enabled and flush the queue\nexport function verbose() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n verboseQueue.push(messages.join(' '));\n trimQueue(verboseQueue);\n if (verboseEnabled)\n flushQueue(verboseQueue, \"Verbose\");\n}\n// Private: Trim the queue if it exceeds the limit (FIFO: remove first entry)\nfunction trimQueue(queue) {\n if (queue.length > queueLimit)\n queue.shift();\n}\n// Private: Flush and output the entire queue, emptying it afterward\nfunction flushQueue(queue, label) {\n while (queue.length > 0) {\n var message = queue.shift();\n if (label === \"Debug\")\n console.log(\"[\".concat(label, \"] \").concat(message));\n if (label === \"Verbose\")\n console.warn(\"[\".concat(label, \"] \").concat(message));\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from \"./dochandler\";\nimport * as slayer from \"./slayer\";\nimport * as main from \"./dochandler/main\";\nimport * as logger from \"./logger\";\n// Controls all the settings data\nvar SettingsDataController = /** @class */ (function () {\n function SettingsDataController() {\n this.loaded = false;\n this.version = 1;\n this.searchAlgorithim = \"default\";\n this.autoCapture = {\n enabled: true,\n counter: true,\n search: true,\n loopTimer: 500,\n counterTimer: 500,\n searchTimer: 10000,\n dialogTimer: 5000,\n };\n this.ui = {\n style: \"default\",\n limited: false,\n status: false,\n overlay: false,\n overlayTimer: 500,\n historyRetentionCount: 10,\n lookupRetentionCount: 0,\n hideAlt1Warn: false,\n };\n this.showHidden = {\n creatures: false,\n eliteCreatures: false,\n dragonkinCreatures: false,\n godWarsCreatures: false,\n ghorrockCreatures: false,\n heartGielinorCreatures: false,\n monsterCreatures: false,\n newVarrockCreatures: false,\n shadowReefCreatures: false,\n strongholdSecurityCreatures: false,\n summonedCreatures: false,\n templeTrekkingCreatures: false,\n unchartedIslesCreatures: false\n };\n this.default = {\n taskName0: \"waterfiends\",\n taskName1: \"black demons\",\n taskCount0: 777,\n taskCount1: 666\n };\n }\n SettingsDataController.prototype.load = function () {\n return __awaiter(this, void 0, void 0, function () {\n var tempSearchBoolFlip, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // If versioning system exists the load it up so we can use it\n if (window.localStorage.getItem('version') != null)\n this.version = this.decodeVersion(window.localStorage.getItem('version'));\n // We only want to update the versioning system on the first load\n if (!this.loaded) {\n // If Versioning system is missing or outdated then update it\n if (this.version < this.decodeVersion(\"0.0.6\")) {\n logger.warn(\"[Versioning] Versioning System is missing, setting up versioning system.\");\n window.localStorage.removeItem('recent_task_0');\n window.localStorage.removeItem('recent_task_count_0');\n window.localStorage.removeItem('recent_task_1');\n window.localStorage.removeItem('recent_task_count_1');\n this.save();\n }\n // If the versioning system is updating to 0.0.22 then we need to flip the auto-capture-search value due to update\n if (this.version < this.decodeVersion(\"0.0.22\")) {\n logger.warn(\"[Versioning] Versioning System 0.0.22 flipped the auto-capture-search boolean, updating now!\");\n if (window.localStorage.getItem('auto-capture-search') != null) {\n tempSearchBoolFlip = window.localStorage.getItem(\"auto-capture-search\") === \"false\";\n window.localStorage.setItem(\"auto-capture-search\", \"\" + tempSearchBoolFlip);\n }\n // Remove mistake on creating the ui-counter and ui-counterTimer instead of ui-overlay etc...\n if (window.localStorage.getItem('ui-counter') != null)\n window.localStorage.removeItem(\"ui-counter\");\n if (window.localStorage.getItem('ui-counter-timer') != null)\n window.localStorage.removeItem(\"ui-counter-timer\");\n }\n }\n controller.autoCapture.enabled = window.localStorage.getItem(\"auto-capture-enabled\") === \"true\";\n controller.autoCapture.counter = window.localStorage.getItem(\"auto-capture-counter\") === \"true\";\n controller.autoCapture.search = window.localStorage.getItem(\"auto-capture-search\") === \"true\";\n controller.autoCapture.loopTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-loop\"));\n controller.autoCapture.dialogTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-dialog\"));\n controller.autoCapture.counterTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-counter\"));\n controller.autoCapture.searchTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-search\"));\n controller.ui.hideAlt1Warn = window.localStorage.getItem(\"ui-hideAlt1Warn\") === \"true\";\n controller.ui.limited = window.localStorage.getItem(\"ui-limited\") === \"true\";\n controller.ui.status = window.localStorage.getItem(\"ui-status\") === \"true\";\n controller.ui.overlay = window.localStorage.getItem(\"ui-overlay\") === \"true\";\n controller.ui.overlayTimer = parseInt(window.localStorage.getItem(\"ui-overlay-timer\"));\n return [4 /*yield*/, fetch(\"./pages/data/version.json\").then(function (r) { return r.json(); })];\n case 1:\n res = _a.sent();\n if (!this.loaded && this.version < this.decodeVersion(res['version'])) {\n this.version = this.decodeVersion(res['version']);\n this.save();\n }\n // TODO Load history here then reset the UI and load them\n main.reset.single();\n main.reset.double();\n main.reset.reaper();\n main.reset.suggested();\n // If we are hiding the warnings then lets apply that here\n if (controller.ui.hideAlt1Warn)\n dochandler.main.get.elid(\"warning-ui\").style.visibility = \"hidden\";\n if (!(this.default.taskName0 != null && this.default.taskName1 != null)) return [3 /*break*/, 3];\n return [4 /*yield*/, main.set.double({ name: this.default.taskName0, count: this.default.taskCount0 }, { name: this.default.taskName1, count: this.default.taskCount1 })];\n case 2:\n _a.sent();\n return [3 /*break*/, 5];\n case 3:\n if (!(this.default.taskName0 != null && this.default.taskName1 == null)) return [3 /*break*/, 5];\n return [4 /*yield*/, main.set.single({ name: this.default.taskName0, count: this.default.taskCount0 })];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5:\n // Settings Loaded\n logger.log(\"Settings Loaded\");\n this.loaded = true;\n return [2 /*return*/];\n }\n });\n });\n };\n SettingsDataController.prototype.save = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.version > this.decodeVersion(\"0.0.1\"))\n window.localStorage.setItem('version', this.encodeVersion(this.version));\n window.localStorage.setItem(\"auto-capture-enabled\", \"\" + controller.autoCapture.enabled);\n window.localStorage.setItem(\"auto-capture-counter\", \"\" + controller.autoCapture.counter);\n window.localStorage.setItem(\"auto-capture-search\", \"\" + controller.autoCapture.search);\n window.localStorage.setItem(\"auto-capture-timer-loop\", \"\" + controller.autoCapture.loopTimer);\n window.localStorage.setItem(\"auto-capture-timer-dialog\", \"\" + controller.autoCapture.dialogTimer);\n window.localStorage.setItem(\"auto-capture-timer-counter\", \"\" + controller.autoCapture.counterTimer);\n window.localStorage.setItem(\"auto-capture-timer-search\", \"\" + controller.autoCapture.searchTimer);\n window.localStorage.setItem(\"ui-hideAlt1Warn\", \"\" + controller.ui.hideAlt1Warn);\n window.localStorage.setItem(\"ui-limited\", \"\" + controller.ui.limited);\n window.localStorage.setItem(\"ui-status\", \"\" + controller.ui.status);\n window.localStorage.setItem(\"ui-overlay\", \"\" + controller.ui.overlay);\n window.localStorage.setItem(\"ui-overlay-timer\", \"\" + controller.ui.overlayTimer);\n logger.log(\"Settings Saved\");\n return [2 /*return*/];\n });\n });\n };\n SettingsDataController.prototype.decodeVersion = function (version) {\n var versionSplit = version.split(\".\");\n var versionUpper = versionSplit.length > 2 ? parseInt(versionSplit[0]) : 0;\n var versionLower = parseInt(versionSplit.length > 2 ? versionSplit[1] : versionSplit[0]);\n var versionPatch = parseInt(versionSplit.length > 2 ? versionSplit[2] : versionSplit[1]);\n return ((versionUpper * 256 * 256) + (versionLower * 256) + versionPatch);\n };\n SettingsDataController.prototype.encodeVersion = function (version) {\n var versionUpper = version > 256 * 256 ? version / (256 * 256) : 0;\n var versionLower = version > 256 ? (version - (versionUpper * 256 * 256)) / 256 : 0;\n var versionPatch = (version - (versionUpper * 256 * 256) - (versionLower * 256));\n return versionUpper + \".\" + versionLower + \".\" + versionPatch;\n };\n return SettingsDataController;\n}());\nexport { SettingsDataController };\nexport var controller = new SettingsDataController();\n// Change history functions\nexport var change;\n(function (change) {\n change.history = [];\n change.index = 0;\n function addHistory(history) {\n if (!history || !history.tasks || !change.history[change.index])\n return;\n if ((history.type === \"single\" || history.type === \"reaper\") &&\n history.tasks[0].name === change.history[change.index].tasks[0].name)\n return;\n if (history.type === \"double\" &&\n history.tasks[0].name === change.history[change.index].tasks[0].name &&\n history.tasks[1].name === change.history[change.index].tasks[1].name)\n return;\n if (history.type === \"suggestion\" && history.type === change.history[change.index].type)\n return;\n if (change.index + 1 != change.history.length)\n change.history = change.history.slice(0, change.index + 1);\n change.history.push(history);\n change.index = change.history.length - 1;\n controller.save();\n }\n change.addHistory = addHistory;\n function refreshCurrent() {\n if (change.index < 0 || change.index >= change.history.length)\n return;\n main.reset.single();\n main.reset.double();\n main.reset.reaper();\n main.reset.suggested();\n var currentChange = change.history[change.index];\n if (currentChange.type === 'double')\n main.set.double(currentChange.tasks[0], currentChange.tasks[1], true);\n if (currentChange.type === 'single')\n main.set.single(currentChange.tasks[0], true);\n if (currentChange.type === 'reaper')\n main.set.reaper(currentChange.tasks[0], true);\n if (currentChange.type === 'suggestion')\n main.set.suggested(true);\n controller.save();\n }\n change.refreshCurrent = refreshCurrent;\n function goPreviousHistory() {\n if (change.index - 1 < 0)\n return;\n var previousChange = change.history[--change.index];\n if (previousChange.type === 'double')\n main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);\n if (previousChange.type === 'single')\n main.set.single(previousChange.tasks[0], true);\n if (previousChange.type === 'reaper')\n main.set.reaper(previousChange.tasks[0], true);\n if (previousChange.type === 'suggestion')\n main.set.suggested(true);\n controller.save();\n }\n change.goPreviousHistory = goPreviousHistory;\n function goNextHistory() {\n if (change.index + 1 >= change.history.length)\n return;\n var nextChange = change.history[++change.index];\n if (nextChange.type === 'double')\n main.set.double(nextChange.tasks[0], nextChange.tasks[1], true);\n if (nextChange.type === 'single')\n main.set.single(nextChange.tasks[0], true);\n if (nextChange.type === 'reaper')\n main.set.reaper(nextChange.tasks[0], true);\n if (nextChange.type === 'suggestion')\n main.set.suggested(true);\n controller.save();\n }\n change.goNextHistory = goNextHistory;\n})(change || (change = {}));\nexport var search;\n(function (search) {\n var temp = null;\n var history = [];\n var index = 0;\n function addHistory(value) {\n if (!value)\n return;\n history.push(value);\n index = history.length;\n temp = null;\n controller.save();\n }\n search.addHistory = addHistory;\n function getPreviousHistory() {\n tempValue();\n controller.save();\n if (index - 1 < 0)\n return null;\n if (--index === history.length)\n return temp;\n return history[index];\n }\n search.getPreviousHistory = getPreviousHistory;\n function getNextHistory() {\n tempValue();\n controller.save();\n if (index + 1 > history.length + (temp === \"\" ? 0 : 1))\n return null;\n if (++index === history.length + (temp === \"\" ? 0 : 1))\n return \"\";\n if (temp !== \"\" && index === history.length)\n return temp;\n return history[index];\n }\n search.getNextHistory = getNextHistory;\n function tempValue() {\n var currentValue = dochandler.main.get.elid(\"search-info\").value;\n if (temp === null)\n temp = currentValue;\n if (index === history.length && temp !== currentValue)\n temp = currentValue;\n if (index === history.length + 1 && currentValue !== \"\") {\n temp = currentValue;\n --index;\n }\n }\n})(search || (search = {}));\nexport function executeDevTools(value) {\n return __awaiter(this, void 0, void 0, function () {\n var counterData, slayerData, a, a, pos, box, _i, _a, _b, index, option, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (value === \"devTools\") {\n logger.log(\" ~~~ Dev Tools ~ Information Opened ~~~ \");\n alt1.openBrowser(\"https://runeapps.org/forums/viewtopic.php?id=101\");\n return [2 /*return*/];\n }\n logger.log(\" ~~~ Dev Tools ~ Started ~~~ \");\n _c.label = 1;\n case 1:\n _c.trys.push([1, 10, , 11]);\n if (!(value === \"size\")) return [3 /*break*/, 2];\n logger.log(\"Current Size: \".concat(document.body.clientWidth, \", \").concat(document.body.clientHeight));\n return [3 /*break*/, 9];\n case 2:\n if (!(value === \"debug\")) return [3 /*break*/, 3];\n logger.setDebug(true);\n return [3 /*break*/, 9];\n case 3:\n if (!(value === \"verbose\")) return [3 /*break*/, 4];\n logger.setVerbose(true);\n return [3 /*break*/, 9];\n case 4:\n if (!(value === \"counterReader\")) return [3 /*break*/, 6];\n return [4 /*yield*/, slayer.counterReader.read()];\n case 5:\n counterData = _c.sent();\n if (counterData) {\n logger.log(\"The Counter UI Collapsed [\".concat(counterData.collapsed, \"]\"));\n logger.log(\"The Counter UI Old School [\".concat(counterData.OS, \"]\"));\n logger.log(\"The Counter UI Reaper [\".concat(counterData.reaper, \"]\"));\n logger.log(\"The Counter UI Count [\".concat(counterData.count, \"]\"));\n logger.log(\"The Counter UI Task [\".concat(counterData.task, \"]\"));\n }\n else {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read counter data! ~~~ \");\n }\n return [3 /*break*/, 9];\n case 6:\n if (!(value === \"slayerReader\")) return [3 /*break*/, 8];\n return [4 /*yield*/, slayer.slayerReader.read()];\n case 7:\n slayerData = _c.sent();\n if (slayerData) {\n logger.log(\"The Slayer Reader Select Your Own [\".concat(slayerData.selectYourOwn, \"]\"));\n logger.log(\"The Slayer Reader Reaper [\".concat(slayerData.reaper, \"]\"));\n logger.log(\"The Slayer Reader Ticket [\".concat(slayerData.ticket, \"]\"));\n for (a in slayerData.count) {\n logger.log(\"The Slayer Reader Count{\".concat(a, \"} [\").concat(slayerData.count[a], \"]\"));\n }\n for (a in slayerData.task) {\n logger.log(\"The Slayer Reader Task{\".concat(a, \"} [\").concat(slayerData.task[a], \"]\"));\n }\n }\n else {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read slayer data! ~~~ \");\n }\n return [3 /*break*/, 9];\n case 8:\n if (value === \"dialogReader\") {\n logger.log(\"Searching for Dialog...\");\n pos = slayer.slayerReader.dialogReader.find();\n if (!pos) {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot find the Dialog! ~~~ \");\n return [2 /*return*/];\n }\n box = slayer.slayerReader.dialogReader.read();\n if (!box) {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read the Dialog! ~~~ \");\n return [2 /*return*/];\n }\n if (box.title)\n logger.log(\"The Dialog Box Title [\".concat(box.title, \"]\"));\n if (box.text)\n logger.log(\"The Dialog Box Text [\".concat(box.text, \"]\"));\n if (box.opts) {\n logger.log(\"The Dialog Box Options (\".concat(box.opts.length, \") [\").concat(box.opts, \"]\"));\n for (_i = 0, _a = box.opts.entries(); _i < _a.length; _i++) {\n _b = _a[_i], index = _b[0], option = _b[1];\n logger.log(\"\\t\".concat(index + 1, \". \").concat(option.text));\n }\n }\n }\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n e_1 = _c.sent();\n logger.error(\"~~~ Dev Tools ~ Error: Issue Capturing Screen! ~~~ \");\n return [3 /*break*/, 11];\n case 11:\n logger.log(\" ~~~ Dev Tools ~ Finished ~~~ \");\n return [2 /*return*/];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport { SearchAlgorithm } from './SearchAlgorithm';\nimport { SlayerDialogReader } from './SlayerDialogReader';\nimport { UICounterReader } from './UICounterReader';\nimport * as settings from './settings';\nimport * as docHandler from './dochandler';\nimport * as logger from \"./logger\";\n// Setup the readers and search algo\nexport var searchAlgo = new SearchAlgorithm();\nexport var slayerReader = new SlayerDialogReader();\nexport var counterReader = new UICounterReader();\nexport var searchResult = false;\n// Get a timer and setup vars\nvar timer = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); };\nvar loopRunning = false;\n// Check if we can capture the screen\nexport function canCaptureRunescape() {\n return window.alt1 && alt1.rsLinked && alt1.permissionPixel;\n}\n// Capture the screen\nexport function captureRunescape() {\n if (!canCaptureRunescape())\n return null;\n try {\n return a1lib.captureHoldFullRs();\n }\n catch (ex) {\n if (ex.message === \"capturehold failed\")\n logger.warn(\"Capturing screen failed! Is runescape open?\");\n }\n return null;\n}\n// Find a task on the current screen\nexport function findTask(buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var slayerData, counterData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!settings.controller.autoCapture.enabled || loopRunning || searchResult)\n return [2 /*return*/];\n if (!buffer)\n buffer = captureRunescape();\n if (!buffer)\n return [2 /*return*/];\n loopRunning = true;\n docHandler.animate.loadingStop();\n return [4 /*yield*/, slayerReader.read(buffer)];\n case 1:\n slayerData = _a.sent();\n if (!(slayerData && slayerData[0])) return [3 /*break*/, 11];\n docHandler.animate.loading();\n if (!slayerData.selectYourOwn) return [3 /*break*/, 3];\n docHandler.main.set.suggested();\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.autoCapture.dialogTimer)];\n case 2:\n _a.sent();\n loopRunning = false;\n return [2 /*return*/];\n case 3:\n if (!(slayerData.reaper && !slayerData.ticket)) return [3 /*break*/, 5];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: slayerData[0].task, count: slayerData[0].count })];\n case 4:\n _a.sent();\n return [3 /*break*/, 9];\n case 5:\n if (!slayerData.ticket) return [3 /*break*/, 7];\n return [4 /*yield*/, docHandler.main.set.double({ name: slayerData[0].task, count: slayerData[0].count }, { name: slayerData[1].task, count: slayerData[1].count })];\n case 6:\n _a.sent();\n return [3 /*break*/, 9];\n case 7: return [4 /*yield*/, docHandler.main.set.single({ name: slayerData[0].task, count: slayerData[0].count })];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9:\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.autoCapture.dialogTimer)];\n case 10:\n _a.sent();\n loopRunning = false;\n return [3 /*break*/, 21];\n case 11:\n if (!settings.controller.autoCapture.counter) return [3 /*break*/, 20];\n return [4 /*yield*/, counterReader.read(buffer)];\n case 12:\n counterData = _a.sent();\n if (!counterData) return [3 /*break*/, 18];\n docHandler.animate.loading();\n if (!(counterData.reaper && (docHandler.main.reaperLoaded || counterData.task != null))) return [3 /*break*/, 14];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: counterData.task, count: counterData.count })];\n case 13:\n _a.sent();\n return [3 /*break*/, 16];\n case 14:\n if (!(!counterData.reaper && (docHandler.main.singleLoaded || counterData.task != null))) return [3 /*break*/, 16];\n return [4 /*yield*/, docHandler.main.set.single({ name: counterData.task, count: counterData.count })];\n case 15:\n _a.sent();\n _a.label = 16;\n case 16:\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.autoCapture.counterTimer)];\n case 17:\n _a.sent();\n loopRunning = false;\n return [3 /*break*/, 19];\n case 18:\n docHandler.animate.loadingStop();\n loopRunning = false;\n _a.label = 19;\n case 19: return [3 /*break*/, 21];\n case 20:\n docHandler.animate.loadingStop();\n loopRunning = false;\n _a.label = 21;\n case 21: return [2 /*return*/];\n }\n });\n });\n}\n// Search for tasks\nexport function searchTasks(value) {\n return __awaiter(this, void 0, void 0, function () {\n var tool, lookup, tasks, _i, lookup_1, term, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!value) return [3 /*break*/, 2];\n return [4 /*yield*/, docHandler.main.get.searchInput()];\n case 1:\n value = _a.sent();\n _a.label = 2;\n case 2:\n docHandler.main.reset.searchBox();\n settings.search.addHistory(value);\n if (!(value.length == 0 && (searchResult || !settings.controller.autoCapture.enabled))) return [3 /*break*/, 4];\n searchResult = false;\n docHandler.main.toggle.searchText();\n return [4 /*yield*/, findTask()];\n case 3:\n _a.sent();\n return [2 /*return*/];\n case 4:\n if (value.startsWith(\"devTools\")) {\n tool = value.includes(\" \") ? value.substring(value.indexOf(\" \") + 1) : value;\n settings.executeDevTools(tool);\n return [2 /*return*/];\n }\n else if (value.toLowerCase().includes(\"suggest\")) {\n docHandler.main.set.suggested();\n return [2 /*return*/];\n }\n _a.label = 5;\n case 5:\n searchResult = true;\n docHandler.main.toggle.searchText();\n lookup = value.includes(\"|\") ?\n [value.substring(0, value.indexOf(\"|\")), value.substring(value.indexOf(\"|\") + 1)] :\n [value];\n tasks = [];\n _i = 0, lookup_1 = lookup;\n _a.label = 6;\n case 6:\n if (!(_i < lookup_1.length)) return [3 /*break*/, 9];\n term = lookup_1[_i];\n return [4 /*yield*/, searchAlgo.lookup(term, lookup.length > 1)];\n case 7:\n data = _a.sent();\n if (data) {\n logger.log(\"Search for (Reaper/Slayer Assignment, Alias, or Creature): \" + data.task);\n tasks.push({ name: data.task, reaper: data.reaper });\n }\n _a.label = 8;\n case 8:\n _i++;\n return [3 /*break*/, 6];\n case 9:\n if (!(tasks.length > 1)) return [3 /*break*/, 11];\n return [4 /*yield*/, docHandler.main.set.double({ name: tasks[0].name, count: 1 }, { name: tasks[1].name, count: 1 })];\n case 10:\n _a.sent();\n return [3 /*break*/, 15];\n case 11:\n if (!(tasks.length == 1)) return [3 /*break*/, 15];\n if (!tasks[0].reaper) return [3 /*break*/, 13];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: tasks[0].name, count: 1 })];\n case 12:\n _a.sent();\n return [3 /*break*/, 15];\n case 13: return [4 /*yield*/, docHandler.main.set.single({ name: tasks[0].name, count: 1 })];\n case 14:\n _a.sent();\n _a.label = 15;\n case 15:\n docHandler.animate.loadingStop();\n if (!settings.controller.autoCapture.search) return [3 /*break*/, 17];\n return [4 /*yield*/, timer(settings.controller.autoCapture.searchTimer)];\n case 16:\n _a.sent();\n searchResult = false;\n docHandler.main.toggle.searchText();\n _a.label = 17;\n case 17: return [2 /*return*/];\n }\n });\n });\n}\n","if(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error(\"Cannot find module 'canvas'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;","if(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error(\"Cannot find module 'electron/common'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;","if(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error(\"Cannot find module 'sharp'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sharp\", \"canvas\", \"electron/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"base\"] = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse\n\t\troot[\"A1lib\"] = factory(root[\"sharp\"], root[\"canvas\"], root[\"electron/common\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/base/alt1api.ts\":\n/*!*****************************!*\\\n !*** ./src/base/alt1api.ts ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n/***/ }),\n\n/***/ \"./src/base/declarations.ts\":\n/*!**********************************!*\\\n !*** ./src/base/declarations.ts ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n/***/ }),\n\n/***/ \"./src/base/imagedata-extensions.ts\":\n/*!******************************************!*\\\n !*** ./src/base/imagedata-extensions.ts ***!\n \\******************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageData = void 0;\nconst a1lib = __importStar(__webpack_require__(/*! ./index */ \"./src/base/index.ts\"));\nconst nodeimports = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\n// //TODO revamp this madness a bit?\n// (function () {\n// \tvar globalvar = (typeof self != \"undefined\" ? self : (typeof (global as any) != \"undefined\" ? (global as any) : null)) as any;\n// \t//use the node-canvas version when on node\n// \tif (typeof globalvar.ImageData == \"undefined\") {\n// \t\tlet nodecnv = requireNodeCanvas();\n// \t\tglobalvar.ImageData = nodecnv.ImageData;\n// \t}\n// \tvar fill = typeof globalvar.ImageData == \"undefined\";\n// \t//should never be reach anymore\n// \tvar constr = function (this: any) {\n// \t\tvar i = 0;\n// \t\tvar data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);\n// \t\tvar width = arguments[i++];\n// \t\tvar height = arguments[i++];\n// \t\tif (fill) {\n// \t\t\tif (!data) { data = new Uint8ClampedArray(width * height * 4); }\n// \t\t\tthis.width = width;\n// \t\t\tthis.height = height;\n// \t\t\tthis.data = data;\n// \t\t}\n// \t\telse if (oldconstr) {\n// \t\t\treturn (data ? new oldconstr(data, width, height) : new oldconstr(width, height));\n// \t\t} else {\n// \t\t\tvar canvas = document.createElement('canvas');\n// \t\t\tcanvas.width = width;\n// \t\t\tcanvas.height = height;\n// \t\t\tvar ctx = canvas.getContext(\"2d\")!;\n// \t\t\tvar imageData = ctx.createImageData(width, height);\n// \t\t\tif (data) { imageData.data.set(data); }\n// \t\t\treturn imageData;\n// \t\t}\n// \t}\n// \tvar oldconstr = globalvar.ImageData;\n// \tif (typeof document != \"undefined\") {\n// \t\ttry {\n// \t\t\tnew oldconstr(1, 1);\n// \t\t} catch (e) {\n// \t\t\t//direct constructor call not allowed in ie\n// \t\t\toldconstr = null;\n// \t\t}\n// \t}\n// \tif (!fill) { constr.prototype = globalvar.ImageData.prototype; }\n// \tglobalvar.ImageData = constr;\n// \tImageData = constr as any;\n// })();\n(function () {\n var globalvar = (typeof self != \"undefined\" ? self : (typeof __webpack_require__.g != \"undefined\" ? __webpack_require__.g : null));\n var filltype = typeof globalvar.ImageData == \"undefined\" || typeof globalvar.document == \"undefined\";\n var fillconstr = filltype;\n if (!filltype) {\n var oldconstr = globalvar.ImageData;\n try {\n let data = new Uint8ClampedArray(4);\n data[0] = 1;\n let a = new globalvar.ImageData(data, 1, 1);\n fillconstr = a.data[0] != 1;\n }\n catch (e) {\n fillconstr = true;\n }\n }\n if (fillconstr) {\n var constr = function ImageDataShim() {\n var i = 0;\n var data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);\n var width = arguments[i++];\n var height = arguments[i++];\n if (filltype) {\n if (!data) {\n data = new Uint8ClampedArray(width * height * 4);\n }\n this.width = width;\n this.height = height;\n this.data = data;\n }\n else if (fillconstr) {\n //WARNING This branch of code does not use the same pixel data backing store\n //(problem with wasm, however all wasm browser have a native constructor (unless asm.js is used))\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n var ctx = canvas.getContext(\"2d\");\n var imageData = ctx.createImageData(width, height);\n if (data) {\n imageData.data.set(data);\n }\n return imageData;\n }\n // else {\n // \t//oh no...\n // \t//we need this monstrocity in order to call the native constructor with variable number of args\n // \t//when es5 transpile is enable (that strips the spread operator)\n // \treturn new (Function.prototype.bind.apply(oldconstr, [null,...arguments]));\n // }\n };\n if (!filltype) {\n constr.prototype = globalvar.ImageData.prototype;\n }\n globalvar.ImageData = constr;\n exports.ImageData = constr;\n }\n else {\n exports.ImageData = globalvar.ImageData;\n }\n})();\n//Recast into a drawable imagedata class on all platforms, into a normal browser ImageData on browsers or a node-canvas imagedata on nodejs\nexports.ImageData.prototype.toDrawableData = function () {\n if (typeof document == \"undefined\") {\n return nodeimports.imageDataToDrawable(this);\n }\n else {\n return this;\n }\n};\nexports.ImageData.prototype.putImageData = function (buf, cx, cy) {\n for (var dx = 0; dx < buf.width; dx++) {\n for (var dy = 0; dy < buf.height; dy++) {\n var i1 = (dx + cx) * 4 + (dy + cy) * 4 * this.width;\n var i2 = dx * 4 + dy * 4 * buf.width;\n this.data[i1] = buf.data[i2];\n this.data[i1 + 1] = buf.data[i2 + 1];\n this.data[i1 + 2] = buf.data[i2 + 2];\n this.data[i1 + 3] = buf.data[i2 + 3];\n }\n }\n};\nexports.ImageData.prototype.pixelOffset = function (x, y) {\n return x * 4 + y * this.width * 4;\n};\n//creates a hash of a portion of the buffer used to check for changes\nexports.ImageData.prototype.getPixelHash = function (rect) {\n if (!rect) {\n rect = new a1lib.Rect(0, 0, this.width, this.height);\n }\n var hash = 0;\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n var i = x * 4 + y * 4 * this.width;\n hash = (((hash << 5) - hash) + this.data[i]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 1]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 2]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 3]) | 0;\n }\n }\n return hash;\n};\nexports.ImageData.prototype.clone = function (rect) {\n return this.toImage(rect).getContext(\"2d\").getImageData(0, 0, rect.width, rect.height);\n};\nexports.ImageData.prototype.show = function (x = 5, y = 5, zoom = 1) {\n if (typeof document == \"undefined\") {\n console.error(\"need a document to show an imagedata object\");\n return;\n }\n var imgs = document.getElementsByClassName(\"debugimage\");\n while (imgs.length > exports.ImageData.prototype.show.maxImages) {\n imgs[0].remove();\n }\n var el = this.toImage();\n el.classList.add(\"debugimage\");\n el.style.position = \"absolute\";\n el.style.zIndex = \"1000\";\n el.style.left = x / zoom + \"px\";\n el.style.top = y / zoom + \"px\";\n el.style.background = \"purple\";\n el.style.cursor = \"pointer\";\n el.style.imageRendering = \"pixelated\";\n el.style.outline = \"1px solid #0f0\";\n el.style.width = (this.width == 1 ? 100 : this.width) * zoom + \"px\";\n el.style.height = (this.height == 1 ? 100 : this.height) * zoom + \"px\";\n el.onclick = function () { el.remove(); };\n document.body.appendChild(el);\n return el;\n};\nexports.ImageData.prototype.show.maxImages = 10;\nexports.ImageData.prototype.toImage = function (rect) {\n if (!rect) {\n rect = new a1lib.Rect(0, 0, this.width, this.height);\n }\n if (typeof document != \"undefined\") {\n var el = document.createElement(\"canvas\");\n el.width = rect.width;\n el.height = rect.height;\n }\n else {\n el = nodeimports.createCanvas(rect.width, rect.height);\n }\n var ctx = el.getContext(\"2d\");\n ctx.putImageData(this.toDrawableData(), -rect.x, -rect.y);\n return el;\n};\nexports.ImageData.prototype.getPixel = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return [this.data[i], this.data[i + 1], this.data[i + 2], this.data[i + 3]];\n};\nexports.ImageData.prototype.getPixelValueSum = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return this.data[i] + this.data[i + 1] + this.data[i + 2];\n};\nexports.ImageData.prototype.getPixelInt = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return (this.data[i + 3] << 24) + (this.data[i + 0] << 16) + (this.data[i + 1] << 8) + (this.data[i + 2] << 0);\n};\nexports.ImageData.prototype.getColorDifference = function (x, y, r, g, b, a = 255) {\n var i = x * 4 + y * 4 * this.width;\n return Math.abs(this.data[i] - r) + Math.abs(this.data[i + 1] - g) + Math.abs(this.data[i + 2] - b) * a / 255;\n};\nexports.ImageData.prototype.setPixel = function (x, y, ...color) {\n var r, g, b, a;\n var [r, g, b, a] = (Array.isArray(color[0]) ? color[0] : color);\n var i = x * 4 + y * 4 * this.width;\n this.data[i] = r;\n this.data[i + 1] = g;\n this.data[i + 2] = b;\n this.data[i + 3] = a == undefined ? 255 : a;\n};\nexports.ImageData.prototype.setPixelInt = function (x, y, color) {\n var i = x * 4 + y * 4 * this.width;\n this.data[i] = (color >> 24) & 0xff;\n this.data[i + 1] = (color >> 16) & 0xff;\n this.data[i + 2] = (color >> 8) & 0xff;\n this.data[i + 3] = (color >> 0) & 0xff;\n};\nexports.ImageData.prototype.toFileBytes = function (format, quality) {\n if (typeof HTMLCanvasElement != \"undefined\") {\n return new Promise(d => this.toImage().toBlob(b => {\n var r = new FileReader();\n r.readAsArrayBuffer(b);\n r.onload = () => d(new Uint8Array(r.result));\n }, format, quality));\n }\n else {\n return nodeimports.imageDataToFileBytes(this, format, quality);\n }\n};\nexports.ImageData.prototype.toPngBase64 = function () {\n if (typeof HTMLCanvasElement != \"undefined\") {\n var str = this.toImage().toDataURL(\"image/png\");\n return str.slice(str.indexOf(\",\") + 1);\n }\n else {\n throw new Error(\"synchronous image conversion not supported in nodejs, try using ImageData.prototype.toFileBytes\");\n }\n};\nexports.ImageData.prototype.pixelCompare = function (buf, x = 0, y = 0, max) {\n return a1lib.ImageDetect.simpleCompare(this, buf, x, y, max);\n};\nexports.ImageData.prototype.copyTo = function (target, sourcex, sourcey, width, height, targetx, targety) {\n //convince v8 that these are 31bit uints\n const targetwidth = target.width | 0;\n const thiswidth = this.width | 0;\n const copywidth = width | 0;\n const fastwidth = Math.floor(width / 4) * 4;\n const thisdata = new Int32Array(this.data.buffer, this.data.byteOffset, this.data.byteLength / 4);\n const targetdata = new Int32Array(target.data.buffer, target.data.byteOffset, target.data.byteLength / 4);\n for (let cy = 0; cy < height; cy++) {\n let cx = 0;\n let it = (cx + targetx) + (cy + targety) * targetwidth;\n let is = (cx + sourcex) + (cy + sourcey) * thiswidth;\n //copy 4 pixels per iter (xmm)\n for (; cx < fastwidth; cx += 4) {\n targetdata[it] = thisdata[is];\n targetdata[it + 1] = thisdata[is + 1];\n targetdata[it + 2] = thisdata[is + 2];\n targetdata[it + 3] = thisdata[is + 3];\n it += 4;\n is += 4;\n }\n //copy remainder per pixel\n for (; cx < copywidth; cx++) {\n targetdata[it] = thisdata[is];\n it += 1;\n is += 1;\n }\n }\n};\nif (typeof HTMLImageElement != \"undefined\") {\n HTMLImageElement.prototype.toBuffer = function (x = 0, y = 0, w = this.width, h = this.height) {\n var cnv = document.createElement(\"canvas\");\n cnv.width = w;\n cnv.height = h;\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(this, -x, -y);\n return ctx.getImageData(0, 0, w, h);\n };\n HTMLImageElement.prototype.toCanvas = function (x = 0, y = 0, w = this.width, h = this.height) {\n var cnv = document.createElement(\"canvas\");\n cnv.width = w;\n cnv.height = h;\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(this, -x, -y);\n return cnv;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./src/base/imagedetect.ts\":\n/*!*********************************!*\\\n !*** ./src/base/imagedetect.ts ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDataSet = exports.webpackImages = exports.asyncMap = exports.coldif = exports.simpleCompareRMSE = exports.simpleCompare = exports.findSubbuffer = exports.findSubimage = exports.clearPngColorspace = exports.isPngBuffer = exports.imageDataFromFileBuffer = exports.imageDataFromBase64 = exports.imageDataFromUrl = void 0;\nconst imgref_1 = __webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\");\nconst wapper = __importStar(__webpack_require__(/*! ./wrapper */ \"./src/base/wrapper.ts\"));\nconst nodeimports = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\nconst _1 = __webpack_require__(/*! . */ \"./src/base/index.ts\");\n/**\n* Downloads an image and returns the ImageData\n* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!\n* @param url http(s) or data url to the image\n*/\nasync function imageDataFromUrl(url) {\n if (typeof Image != \"undefined\") {\n var img = new Image();\n img.crossOrigin = \"crossorigin\";\n return await new Promise((done, fail) => {\n img.onload = function () { done(img.toBuffer()); };\n img.onerror = fail;\n img.src = url;\n });\n }\n else {\n var hdr = \"data:image/png;base64,\";\n if (url.startsWith(hdr)) {\n return imageDataFromBase64(url.slice(hdr.length));\n }\n throw new Error(\"loading remote images in nodejs has been disabled, load the raw bytes and use imageDataFromNodeBuffer instead\");\n }\n}\nexports.imageDataFromUrl = imageDataFromUrl;\n/**\n* Loads an ImageData object from a base64 encoded png image\n* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!\n* @param data a base64 encoded png image\n*/\nasync function imageDataFromBase64(data) {\n if (typeof Image != \"undefined\") {\n return imageDataFromUrl(\"data:image/png;base64,\" + data);\n }\n else {\n return nodeimports.imageDataFromBase64(data);\n }\n}\nexports.imageDataFromBase64 = imageDataFromBase64;\n/**\n * Loads an ImageData object directly from a png encoded file buffer\n * This method ensures that png color space headers are taken care off\n * @param data The bytes of a png file\n */\nasync function imageDataFromFileBuffer(data) {\n clearPngColorspace(data);\n if (typeof Image != \"undefined\") {\n let blob = new Blob([data], { type: \"image/png\" });\n let url = URL.createObjectURL(blob);\n let r = await imageDataFromUrl(url);\n URL.revokeObjectURL(url);\n return r;\n }\n else {\n return nodeimports.imageDataFromBuffer(data);\n }\n}\nexports.imageDataFromFileBuffer = imageDataFromFileBuffer;\n/**\n* Checks if a given byte array is a png file (by checking for ?PNG as first 4 bytes)\n* @param bytes Raw bytes of the png file\n*/\nfunction isPngBuffer(bytes) {\n return bytes[0] == 137 && bytes[1] == 80 && bytes[2] == 78 && bytes[3] == 71;\n}\nexports.isPngBuffer = isPngBuffer;\n/**\n* Resets the colorspace data in the png file.\n* This makes sure the browser renders the exact colors in the file instead of filtering it in order to obtain the best real life representation of\n* what it looked like on the authors screen. (this feature is often broken and not supported)\n* For example a round trip printscreen -> open in browser results in different colors than the original\n* @param data Raw bytes of the png file\n*/\nfunction clearPngColorspace(data) {\n if (!isPngBuffer(data)) {\n throw new Error(\"non-png image received\");\n }\n var i = 8;\n while (i < data.length) {\n var length = data[i++] * 0x1000000 + data[i++] * 0x10000 + data[i++] * 0x100 + data[i++];\n var ancillary = !!((data[i] >> 5) & 1);\n var chunkname = String.fromCharCode(data[i], data[i + 1], data[i + 2], data[i + 3]);\n var chunkid = chunkname.toLowerCase();\n if (chunkid != \"trns\" && ancillary) {\n data[i + 0] = \"n\".charCodeAt(0);\n data[i + 1] = \"o\".charCodeAt(0);\n data[i + 2] = \"P\".charCodeAt(0);\n data[i + 3] = \"E\".charCodeAt(0);\n //calculate new chunk checksum\n //http://www.libpng.org/pub/png/spec/1.2/PNG-CRCAppendix.html\n var end = i + 4 + length;\n var crc = 0xffffffff;\n //should be fast enough like this\n var bitcrc = function (bit) {\n for (var k = 0; k < 8; k++) {\n if (bit & 1) {\n bit = 0xedb88320 ^ (bit >>> 1);\n }\n else {\n bit = bit >>> 1;\n }\n }\n return bit;\n };\n for (var a = i; a < end; a++) {\n if (a >= i + 4) {\n data[a] = 0;\n }\n var bit = data[a];\n crc = bitcrc((crc ^ bit) & 0xff) ^ (crc >>> 8);\n }\n crc = crc ^ 0xffffffff;\n //new chunk checksum\n data[i + 4 + length + 0] = (crc >> 24) & 0xff;\n data[i + 4 + length + 1] = (crc >> 16) & 0xff;\n data[i + 4 + length + 2] = (crc >> 8) & 0xff;\n data[i + 4 + length + 3] = (crc >> 0) & 0xff;\n }\n if (chunkname == \"IEND\") {\n break;\n }\n i += 4; //type\n i += length; //data\n i += 4; //crc\n }\n}\nexports.clearPngColorspace = clearPngColorspace;\n/**\n* finds the given needle ImageBuffer in the given haystack ImgRef this function uses the best optimized available\n* code depending on the type of the haystack. It will use fast c# searching if the haystack is an ImgRefBind, js searching\n* is used otherwise.\n* the checklist argument is no longer used and should ignored or null/undefined\n* The optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search the needle. The rectangle should be bigger than the needle\n* @returns An array of points where the needle is found. The array is empty if none are found\n*/\nfunction findSubimage(haystackImgref, needleBuffer, sx = 0, sy = 0, sw = haystackImgref.width, sh = haystackImgref.height) {\n if (!haystackImgref) {\n throw new TypeError();\n }\n if (!needleBuffer) {\n throw new TypeError();\n }\n var max = 30;\n //check if we can do this in alt1\n if (haystackImgref instanceof imgref_1.ImgRefBind && wapper.hasAlt1 && alt1.bindFindSubImg) {\n var needlestr = wapper.encodeImageString(needleBuffer);\n var r = alt1.bindFindSubImg(haystackImgref.handle, needlestr, needleBuffer.width, sx, sy, sw, sh);\n if (!r) {\n throw new wapper.Alt1Error();\n }\n return JSON.parse(r);\n }\n return findSubbuffer(haystackImgref.read(), needleBuffer, sx, sy, sw, sh);\n}\nexports.findSubimage = findSubimage;\n/**\n* Uses js to find the given needle ImageBuffer in the given haystack ImageBuffer. It is better to use the alt1.bind- functions in\n* combination with a1nxt.findsubimg.\n* the optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search.\n* @returns An array of points where the needle is found. The array is empty if none are found\n*/\nfunction findSubbuffer(haystack, needle, sx = 0, sy = 0, sw = haystack.width, sh = haystack.height) {\n var r = [];\n var maxdif = 30;\n var maxresults = 50;\n var needlestride = needle.width * 4;\n var heystackstride = haystack.width * 4;\n //built list of non trans pixel to check\n var checkList = [];\n for (var y = 0; y < needle.height; y++) {\n for (var x = 0; x < needle.width; x++) {\n var i = x * 4 + y * needlestride;\n if (needle.data[i + 3] == 255) {\n checkList.push({ x: x, y: y });\n }\n if (checkList.length == 10) {\n break;\n }\n }\n if (checkList.length == 10) {\n break;\n }\n }\n var cw = (sx + sw) - needle.width;\n var ch = (sy + sh) - needle.height;\n var checklength = checkList.length;\n for (var y = sy; y <= ch; y++) {\n outer: for (var x = sx; x <= cw; x++) {\n for (var a = 0; a < checklength; a++) {\n var i1 = (x + checkList[a].x) * 4 + (y + checkList[a].y) * heystackstride;\n var i2 = checkList[a].x * 4 + checkList[a].y * needlestride;\n var d = 0;\n d = d + Math.abs(haystack.data[i1 + 0] - needle.data[i2 + 0]) | 0;\n d = d + Math.abs(haystack.data[i1 + 1] - needle.data[i2 + 1]) | 0;\n d = d + Math.abs(haystack.data[i1 + 2] - needle.data[i2 + 2]) | 0;\n d *= 255 / needle.data[i2 + 3];\n if (d > maxdif) {\n continue outer;\n }\n }\n if (simpleCompare(haystack, needle, x, y, maxdif) != Infinity) {\n r.push({ x, y });\n if (r.length > maxresults) {\n return r;\n }\n }\n }\n }\n return r;\n}\nexports.findSubbuffer = findSubbuffer;\n/**\n* Compares two images and returns the average color difference per pixel between them\n* @param max The max color difference at any point in the image before short circuiting the function and returning Infinity. set to -1 to always continue.\n* @returns The average color difference per pixel or Infinity if the difference is more than max at any point in the image\n*/\nfunction simpleCompare(bigbuf, checkbuf, x, y, max = 30) {\n if (x < 0 || y < 0) {\n throw new RangeError();\n }\n if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {\n throw new RangeError();\n }\n if (max == -1) {\n max = 255 * 4;\n }\n var dif = 0;\n for (var step = 8; step >= 1; step /= 2) {\n for (var cx = 0; cx < checkbuf.width; cx += step) {\n for (var cy = 0; cy < checkbuf.height; cy += step) {\n var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;\n var i2 = cx * 4 + cy * checkbuf.width * 4;\n var d = 0;\n d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;\n d *= checkbuf.data[i2 + 3] / 255;\n if (step == 1) {\n dif += d;\n }\n if (d > max) {\n return Infinity;\n }\n }\n }\n }\n return dif / checkbuf.width / checkbuf.height;\n}\nexports.simpleCompare = simpleCompare;\n/**\n* Calculates the root mean square error between the two buffers at the given coordinate, this method can be used in situations with significant blur or\n* transparency, it does not bail early on non-matching images like simpleCompare does so it can be expected to be much slower when called often.\n* @returns The root mean square error beteen the images, high single pixel errors are penalized more than consisten low errors. return of 0 means perfect match.\n*/\nfunction simpleCompareRMSE(bigbuf, checkbuf, x, y) {\n if (x < 0 || y < 0) {\n throw new RangeError();\n }\n if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {\n throw new RangeError();\n }\n var dif = 0;\n var numpix = 0;\n for (var cx = 0; cx < checkbuf.width; cx++) {\n for (var cy = 0; cy < checkbuf.height; cy++) {\n var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;\n var i2 = cx * 4 + cy * checkbuf.width * 4;\n var d = 0;\n d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;\n var weight = checkbuf.data[i2 + 3] / 255;\n numpix += weight;\n dif += d * d * weight;\n }\n }\n return Math.sqrt(dif / numpix);\n}\nexports.simpleCompareRMSE = simpleCompareRMSE;\n/**\n* Returns the difference between two colors (scaled to the alpha of the second color)\n*/\nfunction coldif(r1, g1, b1, r2, g2, b2, a2) {\n return (Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2)) * a2 / 255; //only applies alpha for 2nd buffer!\n}\nexports.coldif = coldif;\n/**\n * Turns map of promises into a map that contains the resolved values after loading.\n * @param input\n */\nfunction asyncMap(input) {\n var raw = {};\n var promises = [];\n for (var a in input) {\n if (input.hasOwnProperty(a)) {\n raw[a] = null;\n promises.push(input[a].then(function (a, i) { raw[a] = i; r[a] = i; }.bind(null, a)));\n }\n }\n var r = {};\n var promise = Promise.all(promises).then(() => { r.loaded = true; return r; });\n Object.defineProperty(r, \"loaded\", { enumerable: false, value: false, writable: true });\n Object.defineProperty(r, \"promise\", { enumerable: false, value: promise });\n Object.defineProperty(r, \"raw\", { enumerable: false, value: raw });\n return Object.assign(r, raw);\n}\nexports.asyncMap = asyncMap;\n/**\n* Same as asyncMap, but casts the properties to ImageData in typescript\n*/\nfunction webpackImages(input) {\n return asyncMap(input);\n}\nexports.webpackImages = webpackImages;\nclass ImageDataSet {\n constructor() {\n this.buffers = [];\n }\n matchBest(img, x, y, max) {\n let best = null;\n let bestscore = max;\n for (let a = 0; a < this.buffers.length; a++) {\n let score = img.pixelCompare(this.buffers[a], x, y, bestscore);\n if (isFinite(score) && (bestscore == undefined || score < bestscore)) {\n bestscore = score;\n best = a;\n }\n }\n if (best == null) {\n return null;\n }\n return { index: best, score: bestscore };\n }\n static fromFilmStrip(baseimg, width) {\n if ((baseimg.width % width) != 0) {\n throw new Error(\"slice size does not fit in base img\");\n }\n let r = new ImageDataSet();\n for (let x = 0; x < baseimg.width; x += width) {\n r.buffers.push(baseimg.clone(new _1.Rect(x, 0, width, baseimg.height)));\n }\n return r;\n }\n static fromFilmStripUneven(baseimg, widths) {\n let r = new ImageDataSet();\n let x = 0;\n for (let w of widths) {\n r.buffers.push(baseimg.clone(new _1.Rect(x, 0, w, baseimg.height)));\n x += w;\n if (x > baseimg.width) {\n throw new Error(\"sampling filmstrip outside bounds\");\n }\n }\n if (x != baseimg.width) {\n throw new Error(\"unconsumed pixels left in film strip imagedata\");\n }\n return r;\n }\n static fromAtlas(baseimg, slices) {\n let r = new ImageDataSet();\n for (let slice of slices) {\n r.buffers.push(baseimg.clone(slice));\n }\n return r;\n }\n}\nexports.ImageDataSet = ImageDataSet;\n\n\n/***/ }),\n\n/***/ \"./src/base/imgref.ts\":\n/*!****************************!*\\\n !*** ./src/base/imgref.ts ***!\n \\****************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImgRefData = exports.ImgRefBind = exports.ImgRefCtx = exports.ImgRef = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\n/**\n * Represents an image that might be in different types of memory\n * This is mostly used to represent images still in Alt1 memory that have\n * not been transfered to js yet. Various a1lib api's use this type and\n * choose the most efficient approach based on the memory type\n */\nclass ImgRef {\n constructor(x, y, w, h) {\n this.t = \"none\";\n this.x = x;\n this.y = y;\n this.width = w;\n this.height = h;\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n throw new Error(\"This imgref (\" + this.t + \") does not support toData\");\n }\n findSubimage(needle, sx = 0, sy = 0, w = this.width, h = this.height) {\n return index_1.ImageDetect.findSubimage(this, needle, sx, sy, w, h);\n }\n toData(x = this.x, y = this.y, w = this.width, h = this.height) {\n return this.read(x - this.x, y - this.y, w, h);\n }\n ;\n containsArea(rect) {\n return this.x <= rect.x && this.y <= rect.y && this.x + this.width >= rect.x + rect.width && this.y + this.height >= rect.y + rect.height;\n }\n}\nexports.ImgRef = ImgRef;\n/**\n * Represents an image in js render memory (canvas/image tag)\n */\nclass ImgRefCtx extends ImgRef {\n constructor(img, x = 0, y = 0) {\n if (img instanceof CanvasRenderingContext2D) {\n super(x, y, img.canvas.width, img.canvas.height);\n this.ctx = img;\n }\n else {\n super(x, y, img.width, img.height);\n var cnv = (img instanceof HTMLCanvasElement ? img : img.toCanvas());\n this.ctx = cnv.getContext(\"2d\");\n }\n this.t = \"ctx\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n return this.ctx.getImageData(x, y, w, h);\n }\n}\nexports.ImgRefCtx = ImgRefCtx;\n/**\n * Represents in image in Alt1 memory, This type of image can be searched for subimages\n * very efficiently and transfering the full image to js can be avoided this way\n */\nclass ImgRefBind extends ImgRef {\n constructor(handle, x = 0, y = 0, w = 0, h = 0) {\n super(x, y, w, h);\n this.handle = handle;\n this.t = \"bind\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n return (0, index_1.transferImageData)(this.handle, x, y, w, h);\n }\n}\nexports.ImgRefBind = ImgRefBind;\n/**\n * Represents an image in js memory\n */\nclass ImgRefData extends ImgRef {\n constructor(buf, x = 0, y = 0) {\n super(x, y, buf.width, buf.height);\n this.buf = buf;\n this.t = \"data\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n if (x == 0 && y == 0 && w == this.width && h == this.height) {\n return this.buf;\n }\n var r = new ImageData(w, h);\n for (var b = y; b < y + h; b++) {\n for (var a = x; a < x + w; a++) {\n var i1 = (a - x) * 4 + (b - y) * w * 4;\n var i2 = a * 4 + b * 4 * this.buf.width;\n r.data[i1] = this.buf.data[i2];\n r.data[i1 + 1] = this.buf.data[i2 + 1];\n r.data[i1 + 2] = this.buf.data[i2 + 2];\n r.data[i1 + 3] = this.buf.data[i2 + 3];\n }\n }\n return r;\n }\n}\nexports.ImgRefData = ImgRefData;\n\n\n/***/ }),\n\n/***/ \"./src/base/index.ts\":\n/*!***************************!*\\\n !*** ./src/base/index.ts ***!\n \\***************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDataSet = exports.findSubbuffer = exports.simpleCompare = exports.findSubimage = exports.webpackImages = exports.NodePolyfill = exports.ImageData = exports.Rect = exports.PasteInput = exports.ImageDetect = void 0;\n__webpack_require__(/*! ./declarations */ \"./src/base/declarations.ts\");\nexports.ImageDetect = __importStar(__webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\"));\nexports.PasteInput = __importStar(__webpack_require__(/*! ./pasteinput */ \"./src/base/pasteinput.ts\"));\nvar rect_1 = __webpack_require__(/*! ./rect */ \"./src/base/rect.ts\");\nObject.defineProperty(exports, \"Rect\", ({ enumerable: true, get: function () { return __importDefault(rect_1).default; } }));\nvar imagedata_extensions_1 = __webpack_require__(/*! ./imagedata-extensions */ \"./src/base/imagedata-extensions.ts\");\nObject.defineProperty(exports, \"ImageData\", ({ enumerable: true, get: function () { return imagedata_extensions_1.ImageData; } }));\nexports.NodePolyfill = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\n__exportStar(__webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\"), exports);\n__exportStar(__webpack_require__(/*! ./wrapper */ \"./src/base/wrapper.ts\"), exports);\nvar imagedetect_1 = __webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\");\nObject.defineProperty(exports, \"webpackImages\", ({ enumerable: true, get: function () { return imagedetect_1.webpackImages; } }));\nObject.defineProperty(exports, \"findSubimage\", ({ enumerable: true, get: function () { return imagedetect_1.findSubimage; } }));\nObject.defineProperty(exports, \"simpleCompare\", ({ enumerable: true, get: function () { return imagedetect_1.simpleCompare; } }));\nObject.defineProperty(exports, \"findSubbuffer\", ({ enumerable: true, get: function () { return imagedetect_1.findSubbuffer; } }));\nObject.defineProperty(exports, \"ImageDataSet\", ({ enumerable: true, get: function () { return imagedetect_1.ImageDataSet; } }));\n\n\n/***/ }),\n\n/***/ \"./src/base/nodepolyfill.ts\":\n/*!**********************************!*\\\n !*** ./src/base/nodepolyfill.ts ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n//nodejs and electron polyfills for web api's\n//commented out type info as that breaks webpack with optional dependencies\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.imageDataFromBuffer = exports.imageDataFromBase64 = exports.imageDataToFileBytes = exports.createCanvas = exports.imageDataToDrawable = exports.requireElectronCommon = exports.requireNodeCanvas = exports.requireSharp = exports.polyfillRequire = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\nconst imagedetect_1 = __webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\");\nvar requirefunction = null;\n/**\n * Call this function to let the libs require extra dependencies on nodejs in order\n * to polyfill some browser api's (mostly image compression/decompression)\n * `NodePolifill.polyfillRequire(require);` should solve most cases\n */\nfunction polyfillRequire(requirefn) {\n requirefunction = requirefn;\n}\nexports.polyfillRequire = polyfillRequire;\nfunction requireSharp() {\n try {\n if (requirefunction) {\n return requirefunction(\"sharp\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! sharp */ \"sharp\"); // as typeof import(\"sharp\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireSharp = requireSharp;\nfunction requireNodeCanvas() {\n //attempt to require sharp first, after loading canvas the module sharp fails to load\n requireSharp();\n try {\n if (requirefunction) {\n return requirefunction(\"canvas\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! canvas */ \"canvas\"); // as typeof import(\"sharp\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireNodeCanvas = requireNodeCanvas;\nfunction requireElectronCommon() {\n try {\n if (requirefunction) {\n return requirefunction(\"electron/common\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! electron/common */ \"electron/common\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireElectronCommon = requireElectronCommon;\nfunction imageDataToDrawable(buf) {\n let nodecnv = requireNodeCanvas();\n if (!nodecnv) {\n throw new Error(\"couldn't find built-in canvas or the module 'canvas'\");\n }\n return new nodecnv.ImageData(buf.data, buf.width, buf.height);\n}\nexports.imageDataToDrawable = imageDataToDrawable;\nfunction createCanvas(w, h) {\n let nodecnv = requireNodeCanvas();\n if (!nodecnv) {\n throw new Error(\"couldn't find built-in canvas or the module 'canvas'\");\n }\n return nodecnv.createCanvas(w, h);\n}\nexports.createCanvas = createCanvas;\nfunction flipBGRAtoRGBA(data) {\n for (let i = 0; i < data.length; i += 4) {\n let tmp = data[i + 2];\n data[i + 2] = data[i + 0];\n data[i + 0] = tmp;\n }\n}\nasync function imageDataToFileBytes(buf, format, quality) {\n //use the electron API if we're in electron\n var electronCommon;\n var sharp;\n if (electronCommon = requireElectronCommon()) {\n let nativeImage = electronCommon.nativeImage;\n //need to copy the buffer in order to flip it without destroying the original\n let bufcpy = Buffer.from(buf.data.slice(buf.data.byteOffset, buf.data.byteLength));\n flipBGRAtoRGBA(bufcpy);\n let nativeimg = nativeImage.createFromBitmap(bufcpy, { width: buf.width, height: buf.height });\n return nativeimg.toPNG();\n }\n else if (sharp = requireSharp()) {\n let img = sharp(Buffer.from(buf.data.buffer), { raw: { width: buf.width, height: buf.height, channels: 4 } });\n if (format == \"image/png\") {\n img.png();\n }\n else if (format == \"image/webp\") {\n var opts = { quality: 80 };\n if (typeof quality == \"number\") {\n opts.quality = quality * 100;\n }\n img.webp(opts);\n }\n else {\n throw new Error(\"unknown image format: \" + format);\n }\n return await img.toBuffer({ resolveWithObject: false }).buffer;\n }\n throw new Error(\"coulnd't find build-in image compression methods or the module 'electron/common' or 'sharp'\");\n}\nexports.imageDataToFileBytes = imageDataToFileBytes;\nfunction imageDataFromBase64(base64) {\n return imageDataFromBuffer(Buffer.from(base64, \"base64\"));\n}\nexports.imageDataFromBase64 = imageDataFromBase64;\nasync function imageDataFromBuffer(buffer) {\n (0, imagedetect_1.clearPngColorspace)(buffer);\n //use the electron API if we're in electron\n var electronCommon;\n var nodecnv;\n if (electronCommon = requireElectronCommon()) {\n let nativeImage = electronCommon.nativeImage;\n let img = nativeImage.createFromBuffer(buffer);\n let pixels = img.toBitmap();\n let size = img.getSize();\n let pixbuf = new Uint8ClampedArray(pixels.buffer, pixels.byteOffset, pixels.byteLength);\n flipBGRAtoRGBA(pixbuf);\n return new index_1.ImageData(pixbuf, size.width, size.height);\n }\n else if (nodecnv = requireNodeCanvas()) {\n return new Promise((done, err) => {\n let img = new nodecnv.Image();\n img.onerror = err;\n img.onload = () => {\n var cnv = nodecnv.createCanvas(img.naturalWidth, img.naturalHeight);\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, img.naturalWidth, img.naturalHeight);\n //use our own class\n done(new index_1.ImageData(data.data, data.width, data.height));\n };\n img.src = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n });\n }\n throw new Error(\"couldn't find built-in canvas, module 'electron/common' or the module 'canvas'\");\n}\nexports.imageDataFromBuffer = imageDataFromBuffer;\n\n\n/***/ }),\n\n/***/ \"./src/base/pasteinput.ts\":\n/*!********************************!*\\\n !*** ./src/base/pasteinput.ts ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.fileDialog = exports.start = exports.startDragNDrop = exports.triggerPaste = exports.unlisten = exports.listen = exports.lastref = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\nconst ImageDetect = __importStar(__webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\"));\nvar listeners = [];\nvar started = false;\nvar dndStarted = false;\nvar pasting = false;\nexports.lastref = null;\nfunction listen(func, errorfunc, dragndrop) {\n listeners.push({ cb: func, error: errorfunc });\n if (!started) {\n start();\n }\n if (dragndrop && !dndStarted) {\n startDragNDrop();\n }\n}\nexports.listen = listen;\nfunction unlisten(func) {\n let i = listeners.findIndex(c => c.cb == func);\n if (i != -1) {\n listeners.splice(i, 1);\n }\n}\nexports.unlisten = unlisten;\n/**\n * currently used in multiple document situations (iframe), might be removed in the future\n */\nfunction triggerPaste(img) {\n exports.lastref = img;\n for (var a in listeners) {\n listeners[a].cb(exports.lastref);\n }\n}\nexports.triggerPaste = triggerPaste;\nfunction pasted(img) {\n pasting = false;\n let cnv = img instanceof HTMLCanvasElement ? img : img.toCanvas();\n triggerPaste(new index_1.ImgRefCtx(cnv));\n}\nfunction error(error, mes) {\n var _a, _b;\n pasting = false;\n for (var a in listeners) {\n (_b = (_a = listeners[a]).error) === null || _b === void 0 ? void 0 : _b.call(_a, mes, error);\n }\n}\nfunction startDragNDrop() {\n var getitem = function (items) {\n var foundimage = \"\";\n for (var a = 0; a < items.length; a++) {\n var item = items[a];\n var m = item.type.match(/^image\\/(\\w+)$/);\n if (m) {\n if (m[1] == \"png\") {\n return item;\n }\n else {\n foundimage = m[1];\n }\n }\n }\n if (foundimage) {\n error(\"notpng\", \"The image you uploaded is not a .png image. Other image type have compression noise and can't be used for image detection.\");\n }\n return null;\n };\n window.addEventListener(\"dragover\", function (e) {\n e.preventDefault();\n });\n window.addEventListener(\"drop\", function (e) {\n if (!e.dataTransfer) {\n return;\n }\n var item = getitem(e.dataTransfer.items);\n e.preventDefault();\n if (!item) {\n return;\n }\n fromFile(item.getAsFile());\n });\n}\nexports.startDragNDrop = startDragNDrop;\nfunction start() {\n if (started) {\n return;\n }\n started = true;\n //determine if we have a clipboard api\n //try{a=new Event(\"clipboard\"); a=\"clipboardData\" in a;}\n //catch(e){a=false;}\n var ischrome = !!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edge/);\n //old method breaks after chrome 41, revert to good old user agent sniffing\n //nvm, internet explorer (edge) decided that it wants to be chrome, however fails at delivering\n //turns out this one is interesting, edge is a hybrid between the paste api's\n var apipasted = function (e) {\n if (!e.clipboardData) {\n return;\n }\n for (var a = 0; a < e.clipboardData.items.length; a++) { //loop all data types\n if (e.clipboardData.items[a].type.indexOf(\"image\") != -1) {\n var file = e.clipboardData.items[a].getAsFile();\n if (file) {\n var img = new Image();\n img.src = (window.URL || window.webkitURL).createObjectURL(file);\n if (img.width > 0) {\n pasted(img);\n }\n else {\n img.onload = function () { pasted(img); };\n }\n }\n }\n }\n };\n if (ischrome) {\n document.addEventListener(\"paste\", apipasted);\n }\n else {\n var catcher = document.createElement(\"div\");\n catcher.setAttribute(\"contenteditable\", \"\");\n catcher.className = \"forcehidden\"; //retarded ie safety/bug, cant apply styles using js//TODO i don't even know what's going on\n catcher.onpaste = function (e) {\n if (e.clipboardData && e.clipboardData.items) {\n apipasted(e);\n return;\n }\n setTimeout(function () {\n var b = catcher.children[0];\n if (!b || b.tagName != \"IMG\") {\n return;\n }\n var img = new Image();\n img.src = b.src;\n var a = img.src.match(/^data:([\\w\\/]+);/);\n if (img.width > 0) {\n pasted(img);\n }\n else {\n img.onload = function () { pasted(img); };\n }\n catcher.innerHTML = \"\";\n }, 1);\n };\n document.body.appendChild(catcher);\n }\n //detect if ctrl-v is pressed and focus catcher if needed\n document.addEventListener(\"keydown\", function (e) {\n if (e.target.tagName == \"INPUT\") {\n return;\n }\n if (e.keyCode != \"V\".charCodeAt(0) || !e.ctrlKey) {\n return;\n }\n pasting = true;\n setTimeout(function () {\n if (pasting) {\n error(\"noimg\", \"You pressed Ctrl+V, but no image was pasted by your browser, make sure your clipboard contains an image, and not a link to an image.\");\n }\n }, 1000);\n if (catcher) {\n catcher.focus();\n }\n });\n}\nexports.start = start;\nfunction fileDialog() {\n var fileinput = document.createElement(\"input\");\n fileinput.type = \"file\";\n fileinput.accept = \"image/png\";\n fileinput.onchange = function () { if (fileinput.files && fileinput.files[0]) {\n fromFile(fileinput.files[0]);\n } };\n fileinput.click();\n return fileinput;\n}\nexports.fileDialog = fileDialog;\nfunction fromFile(file) {\n if (!file) {\n return;\n }\n var reader = new FileReader();\n reader.onload = function () {\n var bytearray = new Uint8Array(reader.result);\n if (ImageDetect.isPngBuffer(bytearray)) {\n ImageDetect.clearPngColorspace(bytearray);\n }\n var blob = new Blob([bytearray], { type: \"image/png\" });\n var img = new Image();\n img.onerror = () => error(\"invalidfile\", \"The file you uploaded could not be opened as an image.\");\n var bloburl = URL.createObjectURL(blob);\n img.src = bloburl;\n if (img.width > 0) {\n pasted(img);\n URL.revokeObjectURL(bloburl);\n }\n else {\n img.onload = function () { pasted(img); URL.revokeObjectURL(bloburl); };\n }\n };\n reader.readAsArrayBuffer(file);\n}\n\n\n/***/ }),\n\n/***/ \"./src/base/rect.ts\":\n/*!**************************!*\\\n !*** ./src/base/rect.ts ***!\n \\**************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\n//util class for rectangle maths\n//TODO shit this sucks can we remove it again?\n//more of a shorthand to get {x,y,width,height} than a class\n//kinda starting to like it again\n//TODO remove rant\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n;\n/**\n * Simple rectangle class with some util functions\n */\nclass Rect {\n constructor(x, y, w, h) {\n this.x = x;\n this.y = y;\n this.width = w;\n this.height = h;\n }\n static fromArgs(...args) {\n if (typeof args[0] == \"object\") {\n return new Rect(args[0].x, args[0].y, args[0].width, args[0].height);\n }\n else if (typeof args[0] == \"number\" && args.length >= 4) {\n return new Rect(args[0], args[1], args[2], args[3]);\n }\n else {\n throw new Error(\"invalid rect args\");\n }\n }\n /**\n * Resizes this Rect to include the full size of a given second rectangle\n */\n union(r2) {\n var x = Math.min(this.x, r2.x);\n var y = Math.min(this.y, r2.y);\n this.width = Math.max(this.x + this.width, r2.x + r2.width) - x;\n this.height = Math.max(this.y + this.height, r2.y + r2.height) - y;\n this.x = x;\n this.y = y;\n return this;\n }\n /**\n * Resizes this Rect to include a given point\n */\n includePoint(x, y) {\n this.union(new Rect(x, y, 0, 0));\n }\n /**\n * Grows the rectangle with the given dimensions\n */\n inflate(w, h) {\n this.x -= w;\n this.y -= h;\n this.width += 2 * w;\n this.height += 2 * h;\n }\n /**\n * Resizes this Rect to the area that overlaps a given Rect\n * width and height will be set to 0 if the intersection does not exist\n */\n intersect(r2) {\n if (this.x < r2.x) {\n this.width -= r2.x - this.x;\n this.x = r2.x;\n }\n if (this.y < r2.y) {\n this.height -= r2.y - this.y;\n this.y = r2.y;\n }\n this.width = Math.min(this.x + this.width, r2.x + r2.width) - this.x;\n this.height = Math.min(this.y + this.height, r2.y + r2.height) - this.y;\n if (this.width <= 0 || this.height <= 0) {\n this.width = 0;\n this.height = 0;\n }\n }\n /**\n * Returns wether this Rect has at least one pixel overlap with a given Rect\n */\n overlaps(r2) {\n return this.x < r2.x + r2.width && this.x + this.width > r2.x && this.y < r2.y + r2.height && this.y + this.height > r2.y;\n }\n /**\n * Returns wether a given Rect fits completely inside this Rect\n * @param r2\n */\n contains(r2) {\n return this.x <= r2.x && this.x + this.width >= r2.x + r2.width && this.y <= r2.y && this.y + this.height >= r2.y + r2.height;\n }\n /**\n * Returns wether a given point lies inside this Rect\n */\n containsPoint(x, y) {\n return this.x <= x && this.x + this.width > x && this.y <= y && this.y + this.height > y;\n }\n}\nexports[\"default\"] = Rect;\n\n\n/***/ }),\n\n/***/ \"./src/base/wrapper.ts\":\n/*!*****************************!*\\\n !*** ./src/base/wrapper.ts ***!\n \\*****************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.captureStream = exports.captureMultiAsync = exports.captureAsync = exports.ImageStreamReader = exports.once = exports.removeListener = exports.on = exports.addResizeElement = exports.getMousePosition = exports.hasAlt1Version = exports.resetEnvironment = exports.identifyApp = exports.unmixColor = exports.mixColor = exports.encodeImageString = exports.decodeImageString = exports.transferImageData = exports.captureHoldFullRs = exports.captureHoldScreen = exports.captureHold = exports.capture = exports.getdisplaybounds = exports.requireAlt1 = exports.openbrowser = exports.skinName = exports.hasAlt1 = exports.newestversion = exports.Alt1Error = exports.NoAlt1Error = void 0;\nconst rect_1 = __importDefault(__webpack_require__(/*! ./rect */ \"./src/base/rect.ts\"));\nconst imgref_1 = __webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\");\nconst imagedata_extensions_1 = __webpack_require__(/*! ./imagedata-extensions */ \"./src/base/imagedata-extensions.ts\");\n__webpack_require__(/*! ./alt1api */ \"./src/base/alt1api.ts\");\n/**\n * Thrown when a method is called that can not be used outside of Alt1\n */\nclass NoAlt1Error extends Error {\n constructor() {\n super();\n this.message = \"This method can not be ran outside of Alt1\";\n }\n}\nexports.NoAlt1Error = NoAlt1Error;\n;\n/**\n * Thrown when the Alt1 API returns an invalid result\n * Errors of a different type are throw when internal Alt1 errors occur\n */\nclass Alt1Error extends Error {\n}\nexports.Alt1Error = Alt1Error;\n/**\n * The latest Alt1 version\n */\nexports.newestversion = \"1.5.5\";\n/**\n * Whether the Alt1 API is available\n */\nexports.hasAlt1 = (typeof alt1 != \"undefined\");\n/**\n * The name of the Alt1 interface skin. (Always \"default\" if running in a browser)\n */\nexports.skinName = exports.hasAlt1 ? alt1.skinName : \"default\";\n/**\n * Max number of bytes that can be sent by alt1 in one function\n * Not completely sure why this number is different than window.alt1.maxtranfer\n */\nvar maxtransfer = 4000000;\n/**\n * Open a link in the default browser\n * @deprecated use window.open instead\n */\nfunction openbrowser(url) {\n if (exports.hasAlt1) {\n alt1.openBrowser(url);\n }\n else {\n window.open(url, '_blank');\n }\n}\nexports.openbrowser = openbrowser;\n/**\n * Throw if Alt1 API is not available\n */\nfunction requireAlt1() {\n if (!exports.hasAlt1) {\n throw new NoAlt1Error();\n }\n}\nexports.requireAlt1 = requireAlt1;\n/**\n * Returns an object with a rectangle that spans all screens\n */\nfunction getdisplaybounds() {\n if (!exports.hasAlt1) {\n return false;\n }\n return new rect_1.default(alt1.screenX, alt1.screenY, alt1.screenWidth, alt1.screenHeight);\n}\nexports.getdisplaybounds = getdisplaybounds;\n/**\n * gets an imagebuffer with pixel data about the requested region\n */\nfunction capture(...args) {\n //TODO change null return on error into throw instead (x3)\n if (!exports.hasAlt1) {\n throw new NoAlt1Error();\n }\n var rect = rect_1.default.fromArgs(...args);\n if (alt1.capture) {\n return new imagedata_extensions_1.ImageData(alt1.capture(rect.x, rect.y, rect.width, rect.height), rect.width, rect.height);\n }\n var buf = new imagedata_extensions_1.ImageData(rect.width, rect.height);\n if (rect.width * rect.height * 4 <= maxtransfer) {\n var data = alt1.getRegion(rect.x, rect.y, rect.width, rect.height);\n if (!data) {\n return null;\n }\n decodeImageString(data, buf, 0, 0, rect.width, rect.height);\n }\n else {\n //split up the request to to exceed the single transfer limit (for now)\n var x1 = rect.x;\n var ref = alt1.bindRegion(rect.x, rect.y, rect.width, rect.height);\n if (ref <= 0) {\n return null;\n }\n while (x1 < rect.x + rect.width) {\n var x2 = Math.min(rect.x + rect.width, Math.floor(x1 + (maxtransfer / 4 / rect.height)));\n var data = alt1.bindGetRegion(ref, x1, rect.y, x2 - x1, rect.height);\n if (!data) {\n return null;\n }\n decodeImageString(data, buf, x1 - rect.x, 0, x2 - x1, rect.height);\n x1 = x2;\n }\n }\n return buf;\n}\nexports.capture = capture;\n/**\n * Makes alt1 bind an area of the rs client in memory without sending it to the js client\n * returns an imgref object which can be used to get pixel data using the imgreftobuf function\n * currently only one bind can exist per app and the ref in (v) will always be 1\n */\nfunction captureHold(x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n var r = alt1.bindRegion(x, y, w, h);\n if (r <= 0) {\n throw new Alt1Error(\"capturehold failed\");\n }\n return new imgref_1.ImgRefBind(r, x, y, w, h);\n}\nexports.captureHold = captureHold;\n/**\n * Same as captureHoldRegion, but captures the screen instead of the rs client. it also uses screen coordinates instead and can capture outside of the rs client\n */\nfunction captureHoldScreen(x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n var r = alt1.bindScreenRegion(x, y, w, h);\n if (r <= 0) {\n return false;\n }\n return new imgref_1.ImgRefBind(r, x, y, w, h);\n}\nexports.captureHoldScreen = captureHoldScreen;\n/**\n * bind the full rs window if the rs window can be detected by alt1, otherwise return the full screen\n */\nfunction captureHoldFullRs() {\n return captureHold(0, 0, alt1.rsWidth, alt1.rsHeight);\n}\nexports.captureHoldFullRs = captureHoldFullRs;\n/**\n * returns a subregion from a bound image\n * used internally in imgreftobuf if imgref is a bound image\n * @deprecated This should be handled internall by the imgrefbind.toData method\n */\nfunction transferImageData(handle, x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n if (alt1.bindGetRegionBuffer) {\n return new imagedata_extensions_1.ImageData(alt1.bindGetRegionBuffer(handle, x, y, w, h), w, h);\n }\n var r = new imagedata_extensions_1.ImageData(w, h);\n var x1 = x;\n while (true) { //split up the request to to exceed the single transfer limit (for now)\n var x2 = Math.min(x + w, Math.floor(x1 + (maxtransfer / 4 / h)));\n var a = alt1.bindGetRegion(handle, x1, y, x2 - x1, h);\n if (!a) {\n throw new Alt1Error();\n }\n decodeImageString(a, r, x1 - x, 0, x2 - x1, h);\n x1 = x2;\n if (x1 == x + w) {\n break;\n }\n ;\n }\n return r;\n}\nexports.transferImageData = transferImageData;\n/**\n * decodes a returned string from alt1 to an imagebuffer\n */\nfunction decodeImageString(imagestring, target, x, y, w, h) {\n var bin = atob(imagestring);\n var bytes = target.data;\n w |= 0;\n h |= 0;\n var offset = 4 * x + 4 * y * target.width;\n var target_width = target.width | 0;\n for (var a = 0; a < w; a++) {\n for (var b = 0; b < h; b++) {\n var i1 = (offset + (a * 4 | 0) + (b * target_width * 4 | 0)) | 0;\n var i2 = ((a * 4 | 0) + (b * 4 * w | 0)) | 0;\n bytes[i1 + 0 | 0] = bin.charCodeAt(i2 + 2 | 0); //fix weird red/blue swap in c#\n bytes[i1 + 1 | 0] = bin.charCodeAt(i2 + 1 | 0);\n bytes[i1 + 2 | 0] = bin.charCodeAt(i2 + 0 | 0);\n bytes[i1 + 3 | 0] = bin.charCodeAt(i2 + 3 | 0);\n }\n }\n return target;\n}\nexports.decodeImageString = decodeImageString;\n/**\n * encodes an imagebuffer to a string\n */\nfunction encodeImageString(buf, sx = 0, sy = 0, sw = buf.width, sh = buf.height) {\n var raw = \"\";\n for (var y = sy; y < sy + sh; y++) {\n for (var x = sx; x < sx + sw; x++) {\n var i = 4 * x + 4 * buf.width * y | 0;\n raw += String.fromCharCode(buf.data[i + 2 | 0]);\n raw += String.fromCharCode(buf.data[i + 1 | 0]);\n raw += String.fromCharCode(buf.data[i + 0 | 0]);\n raw += String.fromCharCode(buf.data[i + 3 | 0]);\n }\n }\n return btoa(raw);\n}\nexports.encodeImageString = encodeImageString;\n/**\n * mixes the given color into a single int. This format is used by alt1\n */\nfunction mixColor(r, g, b, a = 255) {\n return (b << 0) + (g << 8) + (r << 16) + (a << 24);\n}\nexports.mixColor = mixColor;\nfunction unmixColor(col) {\n var r = (col >> 16) & 0xff;\n var g = (col >> 8) & 0xff;\n var b = (col >> 0) & 0xff;\n return [r, g, b];\n}\nexports.unmixColor = unmixColor;\nfunction identifyApp(url) {\n if (exports.hasAlt1) {\n alt1.identifyAppUrl(url);\n }\n}\nexports.identifyApp = identifyApp;\nfunction resetEnvironment() {\n exports.hasAlt1 = (typeof alt1 != \"undefined\");\n exports.skinName = exports.hasAlt1 ? alt1.skinName : \"default\";\n}\nexports.resetEnvironment = resetEnvironment;\nfunction convertAlt1Version(str) {\n var a = str.match(/^(\\d+)\\.(\\d+)\\.(\\d+)$/);\n if (!a) {\n throw new RangeError(\"Invalid version string\");\n }\n return (+a[1]) * 1000 * 1000 + (+a[2]) * 1000 + (+a[3]) * 1;\n}\nvar cachedVersionInt = -1;\n/**\n * checks if alt1 is running and at least the given version. versionstr should be a string with the version eg: 1.3.2\n * @param versionstr\n */\nfunction hasAlt1Version(versionstr) {\n if (!exports.hasAlt1) {\n return false;\n }\n if (cachedVersionInt == -1) {\n cachedVersionInt = alt1.versionint;\n }\n return cachedVersionInt >= convertAlt1Version(versionstr);\n}\nexports.hasAlt1Version = hasAlt1Version;\n/**\n * Gets the current cursor position in the game, returns null if the rs window is not active (alt1.rsActive)\n */\nfunction getMousePosition() {\n var pos = alt1.mousePosition;\n if (pos == -1) {\n return null;\n }\n return { x: pos >>> 16, y: pos & 0xFFFF };\n}\nexports.getMousePosition = getMousePosition;\n/**\n * Registers a given HTML element as a frame border, when this element is dragged by the user the Alt1 frame will resize accordingly\n * Use the direction arguements to make a given direction stick to the mouse. eg. Only set left to true to make the element behave as the left border\n * Or set all to true to move the whole window. Not all combinations are permitted\n */\nfunction addResizeElement(el, left, top, right, bot) {\n if (!exports.hasAlt1 || !alt1.userResize) {\n return;\n }\n el.addEventListener(\"mousedown\", function (e) {\n alt1.userResize(left, top, right, bot);\n e.preventDefault();\n });\n}\nexports.addResizeElement = addResizeElement;\n/**\n * Add an event listener\n */\nfunction on(type, listener) {\n if (!exports.hasAlt1) {\n return;\n }\n if (!alt1.events) {\n alt1.events = {};\n }\n if (!alt1.events[type]) {\n alt1.events[type] = [];\n }\n alt1.events[type].push(listener);\n}\nexports.on = on;\n/**\n * Removes an event listener\n */\nfunction removeListener(type, listener) {\n var elist = exports.hasAlt1 && alt1.events && alt1.events[type];\n if (!elist) {\n return;\n }\n var i = elist.indexOf(listener);\n if (i == -1) {\n return;\n }\n elist.splice(i, 1);\n}\nexports.removeListener = removeListener;\n/**\n * Listens for the event to fire once and then stops listening\n * @param event\n * @param cb\n */\nfunction once(type, listener) {\n var fn = (e) => {\n removeListener(type, fn);\n listener(e);\n };\n on(type, fn);\n}\nexports.once = once;\n;\n/**\n * Used to read a set of images from a binary stream returned by the Alt1 API\n */\nclass ImageStreamReader {\n constructor(reader, ...args) {\n this.framebuffer = null;\n this.pos = 0;\n this.reading = false;\n this.closed = false;\n //paused state\n this.pausedindex = -1;\n this.pausedbuffer = null;\n this.streamreader = reader;\n if (args[0] instanceof imagedata_extensions_1.ImageData) {\n this.setFrameBuffer(args[0]);\n }\n else if (typeof args[0] == \"number\") {\n this.setFrameBuffer(new imagedata_extensions_1.ImageData(args[0], args[1]));\n }\n }\n /**\n *\n */\n setFrameBuffer(buffer) {\n if (this.reading) {\n throw new Error(\"can't change framebuffer while reading\");\n }\n this.framebuffer = buffer;\n }\n /**\n * Closes the underlying stream and ends reading\n */\n close() {\n this.streamreader.cancel();\n }\n /**\n * Reads a single image from the stream\n */\n async nextImage() {\n if (this.reading) {\n throw new Error(\"already reading from this stream\");\n }\n if (!this.framebuffer) {\n throw new Error(\"framebuffer not set\");\n }\n this.reading = true;\n var synctime = -Date.now();\n var starttime = Date.now();\n var r = false;\n while (!r) {\n if (this.pausedindex != -1 && this.pausedbuffer) {\n r = this.readChunk(this.pausedindex, this.framebuffer.data, this.pausedbuffer);\n }\n else {\n synctime += Date.now();\n var res = await this.streamreader.read();\n synctime -= Date.now();\n if (res.done) {\n throw new Error(\"Stream closed while reading\");\n }\n var data = res.value;\n r = this.readChunk(0, this.framebuffer.data, data);\n }\n }\n synctime += Date.now();\n //console.log(\"Decoded async image, \" + this.framebuffer.width + \"x\" + this.framebuffer.height + \" time: \" + (Date.now() - starttime) + \"ms (\" + synctime + \"ms main thread)\");\n this.reading = false;\n return this.framebuffer;\n }\n readChunk(i, framedata, buffer) {\n //very hot code, explicit int32 casting with |0 speeds it up by ~ x2\n i = i | 0;\n var framesize = framedata.length | 0;\n var pos = this.pos;\n var datalen = buffer.length | 0;\n //var data32 = new Float64Array(buffer.buffer);\n //var framedata32 = new Float64Array(framedata.buffer);\n //fix possible buffer misalignment\n //align to 16 for extra loop unrolling\n while (i < datalen) {\n //slow loop, fix alignment and other issues\n while (i < datalen && pos < framesize && (pos % 16 != 0 || !((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize))) {\n var rel = pos;\n if (pos % 4 == 0) {\n rel = rel + 2 | 0;\n }\n if (pos % 4 == 2) {\n rel = rel - 2 | 0;\n }\n framedata[rel | 0] = buffer[i | 0];\n i = i + 1 | 0;\n pos = pos + 1 | 0;\n }\n //fast unrolled loop for large chunks i wish js had some sort of memcpy\n if (pos % 16 == 0) {\n while ((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize) {\n framedata[pos + 0 | 0] = buffer[i + 2 | 0];\n framedata[pos + 1 | 0] = buffer[i + 1 | 0];\n framedata[pos + 2 | 0] = buffer[i + 0 | 0];\n framedata[pos + 3 | 0] = buffer[i + 3 | 0];\n framedata[pos + 4 | 0] = buffer[i + 6 | 0];\n framedata[pos + 5 | 0] = buffer[i + 5 | 0];\n framedata[pos + 6 | 0] = buffer[i + 4 | 0];\n framedata[pos + 7 | 0] = buffer[i + 7 | 0];\n framedata[pos + 8 | 0] = buffer[i + 10 | 0];\n framedata[pos + 9 | 0] = buffer[i + 9 | 0];\n framedata[pos + 10 | 0] = buffer[i + 8 | 0];\n framedata[pos + 11 | 0] = buffer[i + 11 | 0];\n framedata[pos + 12 | 0] = buffer[i + 14 | 0];\n framedata[pos + 13 | 0] = buffer[i + 13 | 0];\n framedata[pos + 14 | 0] = buffer[i + 12 | 0];\n framedata[pos + 15 | 0] = buffer[i + 15 | 0];\n //could speed it up another x2 but wouldn't be able to swap r/b swap and possible alignment issues\n //framedata32[pos / 8 + 0 | 0] = data32[i / 8 + 0 | 0];\n //framedata32[pos / 8 + 1 | 0] = data32[i / 8 + 1 | 0];\n //framedata32[pos / 4 + 2 | 0] = data32[i / 4 + 2 | 0];\n //framedata32[pos / 4 + 3 | 0] = data32[i / 4 + 3 | 0];\n pos = pos + 16 | 0;\n i = i + 16 | 0;\n }\n }\n if (pos >= framesize) {\n this.pausedbuffer = null;\n this.pausedindex = -1;\n this.pos = 0;\n if (i != buffer.length - 1) {\n this.pausedbuffer = buffer;\n this.pausedindex = i;\n }\n return true;\n }\n }\n this.pos = pos;\n this.pausedbuffer = null;\n this.pausedindex = -1;\n return false;\n }\n}\nexports.ImageStreamReader = ImageStreamReader;\n/**\n * Asynchronously captures a section of the game screen\n */\nasync function captureAsync(...args) {\n requireAlt1();\n var rect = rect_1.default.fromArgs(...args);\n if (alt1.captureAsync) {\n let img = await alt1.captureAsync(rect.x, rect.y, rect.width, rect.height);\n return new imagedata_extensions_1.ImageData(img, rect.width, rect.height);\n }\n if (!hasAlt1Version(\"1.4.6\")) {\n return capture(rect.x, rect.y, rect.width, rect.height);\n }\n var url = \"https://alt1api/pixel/getregion/\" + encodeURIComponent(JSON.stringify(Object.assign(Object.assign({}, rect), { format: \"raw\", quality: 1 })));\n var res = await fetch(url);\n var imgreader = new ImageStreamReader(res.body.getReader(), rect.width, rect.height);\n return imgreader.nextImage();\n}\nexports.captureAsync = captureAsync;\n/**\n * Asynchronously captures multple area's. This method captures the images in the same render frame if possible\n * @param areas\n */\nasync function captureMultiAsync(areas) {\n requireAlt1();\n var r = {};\n if (alt1.captureMultiAsync) {\n let bufs = await alt1.captureMultiAsync(areas);\n for (let a in areas) {\n if (!bufs[a]) {\n r[a] = null;\n }\n r[a] = new imagedata_extensions_1.ImageData(bufs[a], areas[a].width, areas[a].height);\n }\n return r;\n }\n var capts = [];\n var captids = [];\n for (var id in areas) {\n if (areas[id]) {\n capts.push(areas[id]);\n captids.push(id);\n }\n else {\n r[id] = null;\n }\n }\n if (capts.length == 0) {\n return r;\n }\n if (!hasAlt1Version(\"1.5.1\")) {\n var proms = [];\n for (var a = 0; a < capts.length; a++) {\n proms.push(captureAsync(capts[a]));\n }\n var results = await Promise.all(proms);\n for (var a = 0; a < capts.length; a++) {\n r[captids[a]] = results[a];\n }\n }\n else {\n var res = await fetch(\"https://alt1api/pixel/getregionmulti/\" + encodeURIComponent(JSON.stringify({ areas: capts, format: \"raw\", quality: 1 })));\n var imgreader = new ImageStreamReader(res.body.getReader());\n for (var a = 0; a < capts.length; a++) {\n var capt = capts[a];\n imgreader.setFrameBuffer(new imagedata_extensions_1.ImageData(capt.width, capt.height));\n r[captids[a]] = await imgreader.nextImage();\n }\n }\n return r;\n}\nexports.captureMultiAsync = captureMultiAsync;\n/**\n * Starts capturing a realtime stream of the game. Make sure you keep reading the stream and close it when you're done or Alt1 WILL crash\n * @param framecb Called whenever a new frame is decoded\n * @param errorcb Called whenever an error occurs, the error is rethrown if not defined\n * @param fps Maximum fps of the stream\n */\nfunction captureStream(x, y, width, height, fps, framecb, errorcb) {\n requireAlt1();\n if (!hasAlt1Version(\"1.4.6\")) {\n throw new Alt1Error(\"This function is not supported in this version of Alt1\");\n }\n var url = \"https://alt1api/pixel/streamregion/\" + encodeURIComponent(JSON.stringify({ x, y, width, height, fps, format: \"raw\" }));\n var res = fetch(url).then(async (res) => {\n var reader = new ImageStreamReader(res.body.getReader(), width, height);\n try {\n while (!reader.closed && !state.closed) {\n var img = await reader.nextImage();\n if (!state.closed) {\n framecb(img);\n state.framenr++;\n }\n }\n }\n catch (e) {\n if (!state.closed) {\n reader.close();\n if (errorcb) {\n errorcb(e);\n }\n else {\n throw e;\n }\n }\n }\n if (!reader.closed && state.closed) {\n reader.close();\n }\n });\n var state = {\n x, y, width, height,\n framenr: 0,\n close: () => { state.closed = true; },\n closed: false,\n };\n return state;\n}\nexports.captureStream = captureStream;\n\n\n/***/ }),\n\n/***/ \"canvas\":\n/*!*************************!*\\\n !*** external \"canvas\" ***!\n \\*************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error(\"Cannot find module 'canvas'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;\n\n/***/ }),\n\n/***/ \"electron/common\":\n/*!**********************************!*\\\n !*** external \"electron/common\" ***!\n \\**********************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error(\"Cannot find module 'electron/common'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;\n\n/***/ }),\n\n/***/ \"sharp\":\n/*!************************!*\\\n !*** external \"sharp\" ***!\n \\************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error(\"Cannot find module 'sharp'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/global */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/base/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"alt1/base\"), require(\"alt1/ocr\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"alt1/base\", \"alt1/ocr\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dialog\"] = factory(require(\"alt1/base\"), require(\"alt1/ocr\"));\n\telse\n\t\troot[\"Dialog\"] = factory(root[\"A1lib\"], root[\"OCR\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__, __WEBPACK_EXTERNAL_MODULE_alt1_ocr__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/dialog/imgs/boxtl.data.png\":\n/*!****************************************!*\\\n !*** ./src/dialog/imgs/boxtl.data.png ***!\n \\****************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAx0lEQVQ4T5VRywrCMBBMaytYyMFHDw16CNWDBg8WoWAFpTf//4ecsGENMQ0UhmVmO5PdNEKZru0GVCLEL/cnS/MYwU3/Jo+AFiKbgevrE7bSmArksgk6DumVsrIKOmJ/G8JWGrMvjUBkbgLBhFzufBkB7uBPQKDcKJYR4C39ALhUuqj15J7/KwHIVIfztjWoZXOkmYuVtB4OQAM4GAFUh+UabmelZ0GANXdh+mW83eyoUz/ykeQm0G4g/j+wnC9NNQAl+VNR6y/yyxm6AFlANgAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtl_leg.data.png\":\n/*!********************************************!*\\\n !*** ./src/dialog/imgs/boxtl_leg.data.png ***!\n \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAE0SURBVDhPjZFNTsMwEIVtJ45D05YmLVKBJRISsOIILNiw5QosOXpIKcpPHduFl0wINAHEJ+tpPB6/Gcv8+emRHZIX1TQ6QuBLbs37QNnVxQlj/P+L31yuH+7vZrNptt2QhxSy0vXe6SAMlYrQqshzyiPmt9fny2WslMqyrQr4+vQsTV8m0eTtdRNN582IjGmtob4nrNsLiqBJcjxfxKhGXBblIk6cNVL68AKwQDUCUVuHCsJZR8egrCpkdq0SSEIbb89vhoOZ53vNSYv0JeVpHni16fYCYYztsz10hzDWQEXQulI7Aq266BD0hHYdqC+BVl30CXlDUUZv+Bp9DIrIG4pBxE7XdPAb/bTkK0IVjN/6I1QmVquE9mMGo2KLJdI06xIjBOff72CLn/rr0YOfwVZr/QEeBH9rQlJ0YgAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtr.data.png\":\n/*!****************************************!*\\\n !*** ./src/dialog/imgs/boxtr.data.png ***!\n \\****************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA3UlEQVQ4T6WTwQrCMBBEk9oKigEVFSweLOLF6sFehOYgePP/P2jNrE1ZcJFUD68J2cwkO23NofF0vD0IY1k3VLfveXVu+jWMALVYxzowxtjw+A2YGVtM1WIKl/szjEohlb8NuAWtkMru6sMYJplbkR0vKF9XH5s0kBs0fYgxyJRAM7clV1YMGxB9R4pxAG6J04tlOdwAIm63uzVnoIkk2unRAF+kKpJEg9HEcdAwQA59iJpIEg2kEEa4QbIBNkMYM0Arg0NEC1KM14i/WBVJuPcutHy+YQMw259CiJ5egv+YzBEq3jQAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtr_leg.data.png\":\n/*!********************************************!*\\\n !*** ./src/dialog/imgs/boxtr_leg.data.png ***!\n \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAFgSURBVDhPnZO9TsMwFIWPHZuUpo2g6hswsbMzsbEgMfAKiIUnYOWNWBh4F1CFhFKKojatmx/jY+E2RRWK+KSrm9ycHF//iceHO7tal5hM3tGLDyAkIIVAY+0maxUBjYApDYSwOOgdulqMxXwOAbjKPzk9GUPc315bLTWWZo2mNs69hzhOvIAjKC3A72Q4HOAj+9zUnp5fIG6uzm2WTdFP+si/ZkgGqRcTY4zPKpKo6sbnfjJAsZj79+l0BsmfSbEocHQ8Ql2V0Fq5LmIfNKaYz8x5nvsckEHIKJZLX1z95AC/kTRNN1rpullXNdyab9FKI3JBQvu1EwVCjVBLdgwCwSRQumm1aRsJ6/b5Ly4vzvYKInc23l4n+zv4DTtoj0pUpHzuZMD5hoUMBMNOBmx3Hyt3+DoZhJ3g+Wib8e507oBRltXOto7Ho24GvJVcNHbACGTuXnQy4MhcNGbGdhrAN5b0ly21yuFfAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimg.data.png\":\n/*!******************************************!*\\\n !*** ./src/dialog/imgs/chatimg.data.png ***!\n \\******************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAwUlEQVQYV2OYPGlSV1dXcnJyRmqSqbUdQ3VNNRB5uTkJCwuLKqgxtLS0ACVVFGQ4eQUFpRUZgBxHWytOHl4oX0tLS1lZGaiYkZOXW1CUQVXXGChkbGwsJSUFFGI4YM+fqycmpahqoG8AVMVwxJipUptPUFIOqEtEkJdBT4JPSVYSqBgoCTSSQUVLG8QCms/DCzI/OjrK0syEgYERaDiI7+3lHRwcDNQC5bu6ukKEgLp4RKUZsjPSgEJAfrC/t7GhHgChFSifluVS6gAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimg_leg.data.png\":\n/*!**********************************************!*\\\n !*** ./src/dialog/imgs/chatimg_leg.data.png ***!\n \\**********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEOSURBVChTVY+7SgNBFIZnZ3aTWdCYddVcRBIVREEC2gcsFnwMO9/JxsrGzkbQB1AkleArWJjLXhRhJnNbf9ltcviL/3z/nDMzXjI+Hx0PDoadh6dJI6DGOUKIT6kPenZ6eHv/fDTo7vbbRSF5GCCjoDd3j/v9rThel0sLKoWG2DzN97rxdrwhlFHaCqGNdRAF7e1EUhlrHIQl1sAbGjb/N1aFXgqptYEoD3nx/Yu+QvURXI6+tqtFPcpru1os3my5oBX6tgaEaOtcWbKmTywJGF+rMlA8Cgm9vkry+ed0luXLxo9Q+I12JcSGvc7F+ORt8oE5a32pvEositqeI5fJ6OX1/Ws2TbNFUWR5nv4B2LeYEU2WizoAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimgactive.data.png\":\n/*!************************************************!*\\\n !*** ./src/dialog/imgs/chatimgactive.data.png ***!\n \\************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAApklEQVQYV2Po6upqaWmJjo4CIk1dQ4ZiMLCzNGVgYGQRkGCorqmOjggTEeQF8hm4BRmCg4ONDfVAHAhfWVlZWFgYygciKUVVSVkFoCgnD1jLHkOGZHlWbkFRoBCIf0CdIV+GgZGTF6pLnoNBkJcLqhiIBCXloCwgAprv7eWtraGG4FtZWXq5OQG1QPnGxsaurq5AIRCfhYshKTYKqASoy83RRkVBBgAFhh2w1olrrAAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimgactive_leg.data.png\":\n/*!****************************************************!*\\\n !*** ./src/dialog/imgs/chatimgactive_leg.data.png ***!\n \\****************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEESURBVChTPY4xTgMxEEXtmfFmE1hpRSQECqIIVRBCEanpuABnyImo09FzASokjgAVVUQBURpCSMiKHdt8ZwVf1mj8/veM7dXlxbBfnvTad4/vmSMNwRgjRAJ6fno4uX3IssA5k5KV5BHozeQedK9s5bm0dwmVmfh1OisLAa3rEJV8DCFE7wOBFjsO1AbGBAg0jerkDNTQSL6hyRDrfIjN5f8RRPpjmCw6NEhgjakdKknWJGCnhFj8yKDSfK7IQla2/p+46LBRaTkiNlETwvoYDY2vBx/V6m2x2u5IpxH3j4+Gg4Pnl1mluvSi335TBRwuu/vO+NFZ72m6+FxvlnW99v5L9ReDbXkhpJVqYwAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimghover.data.png\":\n/*!***********************************************!*\\\n !*** ./src/dialog/imgs/chatimghover.data.png ***!\n \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAz0lEQVQYV2M4dfLEjp07W1pamhrrnL38GFavXr10yeKk2ChhYWEpFW2GLVu2dLQ1a2uocfIKiipoMABVRoaFcPLwcguKiiqoMVhZWRob6kmKCgGFBMSkGUztnU2t7VxdXZWVlYFCDP9DhSfbyaloaQMVSklJMfz3YF1sJSylqKqlpQW0gsFOQVhLTRnC4RGVZjAyBymDma/BUF1T7e3lzcDACJQUlFZkSE5OLsjNAmoByoP4YZGR2RlpQCGgLpD+Sb2d0dFR2dnZQC8Y6WkBAPN1NR2AAHfmAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimghover_leg.data.png\":\n/*!***************************************************!*\\\n !*** ./src/dialog/imgs/chatimghover_leg.data.png ***!\n \\***************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEjSURBVChTVc89SwNBEIDh2727fChqFosQLExMY4gIsbOIBLT0B9joX9RKTCOksLESSa1Y5TSa+8rdze7s7jl4lfAUw7sMy7CL8cnx4f5Bt3338FzzubbWcRyPc4/q6Kg/nT7eXA72erurz2xHNCBXnOrt/ex01G2JjSwq6nUeh5Ci67ISR30x7DVXqQVAkmegC+BUOx3xFhilNEmTQgIS3qh79JtWOksKkudQ4TXPWyxCpXWSAQGpK3wZrmmDJqn+4VSryRgkIFXF3doUvldyVtJlf8c5gFbbkh5qa822mz5FUBYRpTJaG359dRYE3/OPKEpgncu0MBJtCMztdtqT8eDl9V0xP0cXFe05BktXiBazzvlkOHuaB8vVVxj/xOkySn4BoaPZbEW+44oAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimg.data.png\":\n/*!**********************************************!*\\\n !*** ./src/dialog/imgs/continueimg.data.png ***!\n \\**********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABTklEQVRIS72PMUsDQRCFB2Jjk85KsPEPmMYmgig2gWAlKWwCIiIihIC1WIpiJZY2SpqgpLCQNDZRAjZWHqmvsVEQ1Ebl8J0D4zIXD5HdgY/lzey7fffoeVD9fFxikpfaP/jLhxLhojy+kPdRjZKokhIvBieqIC+6WcVpkfjdiz5u55P7BR6CgqDu2dbeaQdnGpoxeAcpaT0buBsD/XQ1pwwhoPde2YDX/oxbTxpir5x+sasXt8vZhm/9knL6hR5OJm0YHI2D9c1GdeWH7sG0svmF4uMJA7jbbnPW7YaR98rsC7xMHGBAttvd/pjyeIeQYcD1TtGtB42N8oSAettFBnkgR+SPEIxaytVlc5Qb4oQG7q37FSOjMiibQjwMcZIBnY0RcNiYYqFuA0GtOl0s0/laYSj4D6XdjSBLCLENdQru7W9OeUpGhsd8YGvV6Qu6U2ehlR3eegAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimg_leg.data.png\":\n/*!**************************************************!*\\\n !*** ./src/dialog/imgs/continueimg_leg.data.png ***!\n \\**************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAASPSURBVEhLrVZLaFxVGD7nPubeO5NMZpIQTYfaNn2RREsrbQXbuOnKR4WCiKtCV2JABF24qTvdCK5ciIWudeFCqkuLC6WKQqVmEVsMjUkTyySTec993+t37n/n5CZNShQ/Dof/db7z/efce2f4J+++PDbqsgz0sN2y9a7NYResmIKPgTVgptY26IOpwViz0cnFdur04XFrqJDw64OargZ+ODKQJPaAWr1td5zs1lq+pKpmztBzYaPWYcxvV9cN/v7sa4cr1ulzz6Oitv7As0OqBnzH6ThRr1VPfcbyxfKAqeimWRotwe1126hHGWW3Fft2jwzdyn/42U2ygatvXaAU4iAsl/KwiQTMoqK/deymbNwoY95oBiZvJwGhhAzSk7PUbr1brdZkCkoWVmzR3jOT+1p+Keita/nRRnVpYEDs1+n0YGAWHAkCvVwyXGyw3lbhbstKtBylaEbNFg4wxRc3bn19fSaf97hy5O8H9y6/9+vrLz2naoIE4Lki6skmZJmJTQZB67DCE0XxZFEKcZKdlKdAcHhIm5tfFe1V9o1hJapjrxUG4vZ8P8BsWgZmx3Z1XYMaMihFoDgMpMjFTJVBIMo0TYPxzfd3Pv/giFUq5y02NHKMOnxxZpoKABgAtiMeLKGgNAjZOGbYMGSQXMsySRKaWlmtpu3B6rS7iEpIIkC6j4JIUycDCnp++qjf/PmPj9/cPzRmjIyXZYcXzhxmqo5sTk9vcjdInj0ChNPTRxcWltXzZ6YUzpuNtud5UQZJXwEMWkBBx/U5Z4qiUFDWIEKGBLKbmkJ/ojJ87cbiC5OFKPYVtTf65LFzx/Offjk3MT7EFDWMYjlUNSUHwEDB1N8zsAQaOp2uaM80crWaeIkl3W7DdV0ehX4Y+0GIIYK+F8YctpS1RVPoszhygwjuU+Pl69/+9cYrxcDrdZvL+4+ffPrg4LWvfhcdxhGaTFYLZXJQ5L+hULAcx+XvXLnIrOFWdVlIAZKnZRvQVWrtAsMQbymBig1NdIvGkpjAj7/d/2h2Csbd+bWV9bXbS2a96Zw/dYgqBR7dGpIQ3F3YYzA2NtyoN9WTkwcCp92znfTM+tB4LA4VZ5/5lmSBWwtjRoNF6SqAsqCy/UgW/HRn8erlibxqz99tNZuL9Vb050N29sRBVeG0r6bgoe+/gaGPTUEFBi/ZnYRJSZuVu0M8nVGknjhaCYMgK4UG1KMIvJiznciRxbYURIvlUcC4gvmXuaW3Xy2xwL2/EqG3jY5+a8E4PVXhDI1FIcQmTW4eaHLnJCBLLiUlxyiQLsmcCzEggs+4aO/U5IG2GwoplMCAJiru824BVVJNfxUuD5McUdKVyCMes9W19nihttFouW4Dvf1wL4fekEWK40sV480UTSIC6fKgd4SUhBMRLt180qS48MSliO/hNDi/cmmGVv5fwNnL14nuweT2d7cfwiga4n/Z2elDIpfAiS3MKCBj8z38lyiqvpP5DyjBZy8+qxs5WGEURH76JVB0sY2q7PxbtyOwnAwiIQbp7hFy1Y4QVKrNQnEQBNRnRWrGFsGBG/wD9kSQTvgpZ/YAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimgdown.data.png\":\n/*!**************************************************!*\\\n !*** ./src/dialog/imgs/continueimgdown.data.png ***!\n \\**************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABMklEQVRIS92VoU4DQRCG5wKGNyEo3gB1BtWEYGqaNAGBoQ3BoAiqKVXwDJUEgcAgCQIUBoPgVfg2/2WzGUpqdk40+XqZ3Z3u3Le32bXbQbMc2UaCmj2cbr1dWTSvl4mXC3s82+appsupDmqp3ueNRaN6s+nBaHzCU82Pa59WF9TSihJ9zex7EQgl7s/3cRPEcqNuUGkmRy2tohsIotSTIW/gcurS6f3c9QFf6a8hL+HSKoJatznzPsm7pWyu7FlL+RfmZzdS73BwtNseZ56nOyq9dv6VCerMQwSKZZS+Xj9Hi9wmw73SjSadcQdMOlr4qUYczP+fm3D5VWDapNfPvQelHjE7xyVUJ9173O66ZKNhLWUoNzcaAWqd3vsknFxSgRutjmrZvG34iE9D2zCQmrfNLxl9slarbU3QAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimgdown_leg.data.png\":\n/*!******************************************************!*\\\n !*** ./src/dialog/imgs/continueimgdown_leg.data.png ***!\n \\******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAQQSURBVEhL1VW9bxxFFN/52NvbO59sEic5GZMIEHFkAiICKaRDAlGAlJKGioqShpqejn+ABiEoqFIhkIJEk44miSCRyIcSJXawfT6f7253dueD39xbz62/Ekei4ae5pzdv3rz3fm9m59jHb780N5tFu1GWttKOgDjmlXY4DgsY9nKRQkppaAqkup3JUTXZh0IViFlP3UgalTZZhexvpezyu6ePH4u73QXMc+15ltZBxpxBscNxVnhXQtpo8JkWlljccGVlJ394QpKzZSl3WaZYmjiSV69PO/j+mymMUGCHZ+eFhOwEBIek1GQJGJUCYUlHJaRQPVCwZdTrBzsq2eiVnt7phZOYb6u8HRuEoOWAEBGlkKLyPGk2SQ+AkchU8x2oTP/xoPj2m8+gt9qdR3/f/PLr395alILzJJXkQ6CYSBcShR7VU0PCk5ZI7yRNFF9f8l1Lmg8e/yOWFmfjNM1LheWssEbrPWM0NI4Jbdh4O4+YhTTaqrzAwJR8yAg3X8KEUlHosjTWOGPt6sBeXErKfOzc+MTi2UvL7e9+vjPfjIyxlY9GHEvRkI4iI2ae+yWEhU4ZyRMKLZG+PRyHJWxEqb4qFuWZ8vSSpgQ31EQeewbKrSuT+iuQPRjrU+f8jYU0pTs1w3+8+vDCa3NWS602uy8vg+H3v9ydSyxzzBgXce8Jqhi4+BTKR5zAx7QWDkcBBcFIW8lokHt60CaHsKv0A4E0lP6ZgJsu8AFV02Mtd+Xa6jtLLYbuqhEx/OHXe2COVbhhcOEj1+MTK1ggyYIrHfSnA46jceHpzXQ6w8GuNyrEreuFMigCzQ79BgGaCjl9waad3uFWWv8ezrejK9fWPnpvCXdyfWXtzLnzyy+qn35fIYYAMUSiEKGyOxdYOc3wRWJa54wLQg2iwSMhJJMxz7LS/zHMd2cHm0NUD9dGIlgZafQpjrwirDRcTep7CrCLFGzZ70z0bq1FX31+yfLW9b/+XF/Zunl/Y6DSN07teskEF/TaoIBIVO1BAZAuppkHshBghE4y1EyeeLe2+8rTQ3HErQ7KhD349ivT84OIAeD2xScXoNy7/2R9q9/rjWE5dwJ/A1N6CRfTth6UN5QEWad0GEBKnDk+I7kIBx0Ai8HvaBf9MDSUKSy73Ys+/fDVXJnV1R644Q27sWLOzk3uEm4a27nYjKNuYyOc2oE9nZbEOPbS4Yb+gC3zD6cfkYiaPFZai1dOdmod/C+Bo5PGlYxt5FFHqs3+AO83/Q2CGwF/JYEe1Q3lmfeFh45gl/W3GJRwkuCFgTVM8YXjr51dfr0rW3v/o+sXnUB3GvJ5QZ/ijSdeaq2llPXvDRey0nYQsoQaKHXQgf3l4awqrYZBlrMPzi+00IH/P/Yf0iAr/gXJh0N13Pe/YwAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/index.ts\":\n/*!*****************************!*\\\n !*** ./src/dialog/index.ts ***!\n \\*****************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst a1lib = __importStar(__webpack_require__(/*! alt1/base */ \"alt1/base\"));\nconst OCR = __importStar(__webpack_require__(/*! alt1/ocr */ \"alt1/ocr\"));\nconst base_1 = __webpack_require__(/*! alt1/base */ \"alt1/base\");\nvar imgs_rs3 = (0, base_1.webpackImages)({\n chatimg: __webpack_require__(/*! ./imgs/chatimg.data.png */ \"./src/dialog/imgs/chatimg.data.png\"),\n chatimghover: __webpack_require__(/*! ./imgs/chatimghover.data.png */ \"./src/dialog/imgs/chatimghover.data.png\"),\n chatimgactive: __webpack_require__(/*! ./imgs/chatimgactive.data.png */ \"./src/dialog/imgs/chatimgactive.data.png\"),\n continueimg: __webpack_require__(/*! ./imgs/continueimg.data.png */ \"./src/dialog/imgs/continueimg.data.png\"),\n continueimgdown: __webpack_require__(/*! ./imgs/continueimgdown.data.png */ \"./src/dialog/imgs/continueimgdown.data.png\"),\n boxtl: __webpack_require__(/*! ./imgs/boxtl.data.png */ \"./src/dialog/imgs/boxtl.data.png\"),\n boxtr: __webpack_require__(/*! ./imgs/boxtr.data.png */ \"./src/dialog/imgs/boxtr.data.png\")\n});\nvar imgs_leg = (0, base_1.webpackImages)({\n chatimg: __webpack_require__(/*! ./imgs/chatimg_leg.data.png */ \"./src/dialog/imgs/chatimg_leg.data.png\"),\n chatimghover: __webpack_require__(/*! ./imgs/chatimghover_leg.data.png */ \"./src/dialog/imgs/chatimghover_leg.data.png\"),\n chatimgactive: __webpack_require__(/*! ./imgs/chatimgactive_leg.data.png */ \"./src/dialog/imgs/chatimgactive_leg.data.png\"),\n continueimg: __webpack_require__(/*! ./imgs/continueimg_leg.data.png */ \"./src/dialog/imgs/continueimg_leg.data.png\"),\n continueimgdown: __webpack_require__(/*! ./imgs/continueimgdown_leg.data.png */ \"./src/dialog/imgs/continueimgdown_leg.data.png\"),\n boxtl: __webpack_require__(/*! ./imgs/boxtl_leg.data.png */ \"./src/dialog/imgs/boxtl_leg.data.png\"),\n boxtr: __webpack_require__(/*! ./imgs/boxtr_leg.data.png */ \"./src/dialog/imgs/boxtr_leg.data.png\")\n});\nvar fontmono = __webpack_require__(/*! ../fonts/aa_8px_mono.fontmeta.json */ \"./src/fonts/aa_8px_mono.fontmeta.json\");\nvar fontheavy = __webpack_require__(/*! ../fonts/aa_8px_mono_allcaps.fontmeta.json */ \"./src/fonts/aa_8px_mono_allcaps.fontmeta.json\");\nclass DialogReader {\n constructor() {\n this.pos = null;\n }\n find(imgref) {\n if (!imgref) {\n imgref = a1lib.captureHoldFullRs();\n }\n if (!imgref) {\n return null;\n }\n var boxes = [];\n for (let imgs of [imgs_rs3, imgs_leg]) {\n var pos = imgref.findSubimage(imgs.boxtl);\n for (var a in pos) {\n var p = pos[a];\n if (imgref.findSubimage(imgs.boxtr, p.x + 492, p.y, 16, 16).length != 0) {\n boxes.push(Object.assign(Object.assign({}, p), { legacy: imgs == imgs_leg }));\n }\n }\n }\n if (boxes.length == 0) {\n return false;\n }\n var box = boxes[0];\n if (boxes.length > 1) {\n console.log(\"More than one dialog box found\");\n }\n this.pos = { x: box.x + 1, y: box.y + 1, width: 506, height: 130, legacy: box.legacy };\n return this.pos;\n }\n ensureimg(imgref) {\n if (!this.pos) {\n return null;\n }\n if (imgref && a1lib.Rect.fromArgs(imgref).contains(this.pos)) {\n return imgref;\n }\n return a1lib.captureHold(this.pos.x, this.pos.y, this.pos.width, this.pos.height);\n }\n read(imgref) {\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return false;\n }\n let title = this.readTitle(imgref);\n var r = {\n text: null,\n opts: null,\n title\n };\n if (this.checkDialog(imgref)) {\n r.text = this.readDialog(imgref, true);\n return r;\n }\n else {\n var opts = this.findOptions(imgref);\n if (opts.length != 0) {\n r.opts = this.readOptions(imgref, opts);\n return r;\n }\n else {\n return null;\n }\n }\n }\n readTitle(imgref) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n var buf = imgref.toData(this.pos.x, this.pos.y, this.pos.width, 32);\n //somehow y coord can change, 19 for \"choose and option:\" 18 for npc names\n var pos = OCR.findChar(buf, fontheavy, [255, 203, 5], Math.round(this.pos.width / 2) - 10, 16, 20, 4);\n if (!pos) {\n return \"\";\n }\n var read = OCR.readSmallCapsBackwards(buf, fontheavy, [[255, 203, 5]], Math.round(this.pos.width / 2) - 10, pos.y, 150, 1);\n return read.text.toLowerCase(); //normalize case since we don't actually know the original\n }\n checkDialog(imgref) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n var locs = [];\n let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);\n locs = locs.concat(imgref.findSubimage(imgs.continueimg, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));\n locs = locs.concat(imgref.findSubimage(imgs.continueimgdown, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));\n return locs.length != 0;\n }\n readDialog(imgref, checked) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return null;\n }\n if (!checked) {\n checked = this.checkDialog(imgref);\n }\n if (!checked) {\n return null;\n }\n var lines = [];\n var buf = imgref.toData(this.pos.x, this.pos.y + 33, this.pos.width, 80);\n for (var y = 0; y < buf.height; y++) {\n var hastext = false;\n for (var x = 200; x < 300; x++) {\n var i = x * 4 + y * 4 * buf.width;\n if (buf.data[i] + buf.data[i + 1] + buf.data[i + 2] < 50) {\n hastext = true;\n break;\n }\n }\n if (hastext) {\n var chr = null;\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 192, y + 5, 12, 3);\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 246, y + 5, 12, 3);\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 310, y + 5, 12, 3);\n if (chr) {\n var read = OCR.readLine(buf, fontmono, [0, 0, 0], chr.x, chr.y, true, true);\n if (read.text.length >= 3) {\n lines.push(read.text);\n }\n y = chr.y + 5;\n }\n }\n }\n return lines;\n }\n findOptions(imgref) {\n var locs = [];\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);\n var a = imgref.findSubimage(imgs.chatimg);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: false, active: false });\n }\n var a = imgref.findSubimage(imgs.chatimghover);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: true, active: false });\n }\n var a = imgref.findSubimage(imgs.chatimgactive);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: false, active: true });\n }\n return locs;\n }\n readOptions(imgref, locs) {\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return null;\n }\n if (!this.pos) {\n throw new Error(\"interface not found\");\n }\n var buf = imgref.toData();\n if (!locs) {\n locs = this.findOptions(imgref);\n }\n var bgcol = [150, 135, 105];\n var fontcol = this.pos.legacy ? [255, 255, 255] : [174, 208, 224];\n var r = [];\n for (var a = 0; a < locs.length; a++) {\n var dx = locs[a].x + 30;\n var dy = locs[a].y + 6;\n var checkline = imgref.toData(dx, dy, Math.min(500, imgref.width - a), 1);\n var row = null;\n for (var x = 0; x < checkline.width; x++) {\n var i = x * 4;\n if (row) {\n if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], bgcol[0], bgcol[1], bgcol[2]) < 75) {\n row.width = x + 20;\n break;\n }\n }\n else if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], fontcol[0], fontcol[1], fontcol[2]) < 100) {\n var text = \"\";\n var chr = OCR.findChar(buf, fontmono, fontcol, dx + x + 2 - imgref.x, dy + 3 - imgref.y, 30, 1);\n if (chr) {\n var read = OCR.readLine(buf, fontmono, fontcol, chr.x, chr.y, true, true);\n var text = read.text;\n }\n row = { text: text, x: dx + x, y: dy, width: 200, buttonx: dx - 31, hover: !!locs[a].hover, active: locs[a].active };\n }\n }\n if (row) {\n r.push(row);\n }\n }\n r.sort((a, b) => a.y - b.y);\n return r;\n }\n}\nexports[\"default\"] = DialogReader;\n//TODO get rid of this or make it standard\nfunction coldiff(r1, g1, b1, r2, g2, b2) {\n return Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);\n}\n\n\n/***/ }),\n\n/***/ \"alt1/base\":\n/*!**************************************************************************************************!*\\\n !*** external {\"root\":\"A1lib\",\"commonjs2\":\"alt1/base\",\"commonjs\":\"alt1/base\",\"amd\":\"alt1/base\"} ***!\n \\**************************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;\n\n/***/ }),\n\n/***/ \"alt1/ocr\":\n/*!*********************************************************************************************!*\\\n !*** external {\"root\":\"OCR\",\"commonjs2\":\"alt1/ocr\",\"commonjs\":\"alt1/ocr\",\"amd\":\"alt1/ocr\"} ***!\n \\*********************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_ocr__;\n\n/***/ }),\n\n/***/ \"./src/fonts/aa_8px_mono.fontmeta.json\":\n/*!*********************************************!*\\\n !*** ./src/fonts/aa_8px_mono.fontmeta.json ***!\n \\*********************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('{\"chars\":[{\"width\":7,\"bonus\":75,\"chr\":\"a\",\"pixels\":[0,7,187,1,3,221,1,6,170,1,8,255,2,3,255,2,5,187,2,8,255,3,3,255,3,5,255,3,8,221,4,4,238,4,5,255,4,6,204,4,7,255,4,8,238],\"secondary\":false},{\"width\":7,\"bonus\":105,\"chr\":\"b\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,204,1,4,170,1,7,170,1,8,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,170,4,4,170,4,7,170,5,5,187,5,6,187],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"c\",\"pixels\":[0,5,170,0,6,187,1,4,187,1,7,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,221,4,8,221],\"secondary\":false},{\"width\":7,\"bonus\":105,\"chr\":\"d\",\"pixels\":[0,5,187,0,6,187,1,4,170,1,7,170,1,8,170,2,3,255,2,8,255,3,3,255,3,8,255,4,3,204,4,4,170,4,7,170,4,8,187,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,221,5,7,221,5,8,204],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"e\",\"pixels\":[0,5,187,0,6,170,1,4,187,1,5,255,1,7,204,2,3,255,2,5,255,2,8,255,3,3,255,3,5,255,3,8,255,4,3,187,4,5,255,4,8,221,5,5,204],\"secondary\":false},{\"width\":4,\"bonus\":50,\"chr\":\"f\",\"pixels\":[0,3,204,1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204,2,1,255,2,3,255],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"g\",\"pixels\":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,170,1,11,153,2,3,255,2,8,255,2,11,238,3,3,255,3,8,255,3,11,221,4,3,221,4,7,153,4,8,221,4,10,204,5,3,204,5,4,221,5,5,221,5,6,221,5,7,221,5,8,221,5,9,170],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"h\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,170,1,4,204,2,3,255,3,3,255,4,3,170,4,4,221,4,5,221,4,6,221,4,7,221,4,8,204],\"secondary\":false},{\"width\":3,\"bonus\":35,\"chr\":\"i\",\"pixels\":[0,1,238,0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204],\"secondary\":false},{\"width\":4,\"bonus\":50,\"chr\":\"j\",\"pixels\":[0,11,153,1,11,170,2,1,204,2,3,204,2,4,221,2,5,221,2,6,221,2,7,221,2,8,221,2,9,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"k\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,4,153,2,5,255,2,6,221,3,3,204,3,7,221],\"secondary\":false},{\"width\":3,\"bonus\":40,\"chr\":\"l\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,1,8,255],\"secondary\":false},{\"width\":10,\"bonus\":115,\"chr\":\"m\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,153,4,4,255,4,5,221,4,6,221,4,7,221,4,8,204,5,4,187,6,3,255,7,3,238,8,4,170,8,5,221,8,6,221,8,7,221,8,8,204],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"n\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,238,5,4,170,5,5,221,5,6,221,5,7,221,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":70,\"chr\":\"o\",\"pixels\":[0,5,187,0,6,170,1,4,204,1,7,221,2,3,238,2,8,238,3,3,255,3,8,255,4,3,238,4,8,255,5,4,204,5,7,221,6,5,170,6,6,170],\"secondary\":false},{\"width\":6,\"bonus\":90,\"chr\":\"p\",\"pixels\":[0,3,238,0,4,255,0,5,187,0,6,204,0,7,255,0,8,221,0,9,221,0,10,221,1,3,255,1,8,238,2,3,255,2,8,255,3,3,238,3,8,238,4,4,238,4,5,255,4,6,255,4,7,238],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"q\",\"pixels\":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,153,1,8,170,2,3,255,2,8,255,3,3,238,3,8,238,4,3,255,4,4,255,4,5,187,4,6,187,4,7,255,4,8,238,4,9,221,4,10,221],\"secondary\":false},{\"width\":4,\"bonus\":45,\"chr\":\"r\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,187,1,4,204,2,3,255],\"secondary\":false},{\"width\":6,\"bonus\":50,\"chr\":\"s\",\"pixels\":[0,4,187,1,3,255,1,5,238,1,8,255,2,3,255,2,8,255,3,3,255,3,6,238,3,8,255,4,7,187],\"secondary\":false},{\"width\":5,\"bonus\":45,\"chr\":\"t\",\"pixels\":[1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,170,2,3,255,2,8,238,3,8,153],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"u\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,170,1,8,238,2,8,255,3,8,204,4,3,204,4,4,221,4,5,221,4,6,204,4,7,255,4,8,221],\"secondary\":false},{\"width\":6,\"bonus\":50,\"chr\":\"v\",\"pixels\":[0,3,238,1,5,238,1,6,204,2,7,255,2,8,255,3,5,153,3,6,255,3,7,153,4,3,238,4,4,204],\"secondary\":false},{\"width\":10,\"bonus\":95,\"chr\":\"w\",\"pixels\":[1,3,153,1,4,238,1,5,187,2,6,153,2,7,238,2,8,187,3,6,204,3,7,238,3,8,153,4,3,170,4,4,255,5,4,221,5,5,221,6,7,255,6,8,221,7,6,238,7,7,204,8,3,238,8,4,204],\"secondary\":false},{\"width\":6,\"bonus\":55,\"chr\":\"x\",\"pixels\":[0,8,170,1,3,170,1,4,204,1,7,221,2,5,255,2,6,238,3,4,255,3,6,187,3,7,187,4,3,221,4,8,255],\"secondary\":false},{\"width\":6,\"bonus\":65,\"chr\":\"y\",\"pixels\":[0,3,255,0,4,153,0,11,221,1,5,204,1,6,221,1,11,187,2,7,187,2,8,255,2,9,238,3,6,238,3,7,187,4,3,204,4,4,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"z\",\"pixels\":[0,3,153,0,8,204,1,3,255,1,7,221,1,8,255,2,3,255,2,6,255,2,8,255,3,3,255,3,4,170,3,5,170,3,8,255,4,3,255,4,8,255],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"A\",\"pixels\":[0,8,153,1,6,221,1,7,238,2,3,170,2,4,255,2,5,187,2,6,255,3,1,255,3,2,255,3,6,255,4,2,255,4,3,238,4,6,255,5,5,255,5,6,255,6,7,187,6,8,255],\"secondary\":false},{\"width\":7,\"bonus\":125,\"chr\":\"B\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,4,255,1,8,255,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,1,221,4,4,255,4,5,170,4,8,204,5,2,170,5,3,170,5,6,187,5,7,153],\"secondary\":false},{\"width\":9,\"bonus\":80,\"chr\":\"C\",\"pixels\":[0,4,187,0,5,187,1,2,221,1,3,153,1,6,153,1,7,204,2,1,170,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,170,6,8,170],\"secondary\":false},{\"width\":8,\"bonus\":100,\"chr\":\"D\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,8,255,2,1,255,2,8,255,3,1,255,3,8,255,4,1,204,4,8,204,5,2,221,5,7,221,6,4,187,6,5,187],\"secondary\":false},{\"width\":6,\"bonus\":95,\"chr\":\"E\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,1,8,255,2,1,255,2,5,255,2,8,255,3,1,255,3,5,255,3,8,255,4,1,153,4,8,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"F\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"G\",\"pixels\":[0,4,170,0,5,187,1,2,204,1,3,153,1,7,221,2,1,170,2,8,187,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,238,6,1,170,6,5,255,6,7,153,6,8,170,7,5,153,7,6,221,7,7,221,7,8,204],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"H\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,5,255,3,5,255,4,5,255,5,5,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],\"secondary\":false},{\"width\":4,\"bonus\":60,\"chr\":\"I\",\"pixels\":[0,1,192,0,8,191,1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,2,1,192,2,8,191],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"J\",\"pixels\":[0,6,153,0,7,153,1,8,204,2,1,221,2,8,255,3,1,255,3,8,204,4,1,204,4,2,221,4,3,221,4,4,221,4,5,221,4,6,221,4,7,153],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"K\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,255,2,4,255,3,3,221,3,5,170,3,6,204,4,1,204,4,2,153,4,7,238,4,8,153],\"secondary\":false},{\"width\":6,\"bonus\":60,\"chr\":\"L\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,8,255,2,8,255,3,8,255,4,8,255],\"secondary\":false},{\"width\":9,\"bonus\":130,\"chr\":\"M\",\"pixels\":[0,1,245,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,1,2,170,1,3,225,2,4,207,2,5,190,3,6,232,4,6,232,5,4,207,5,5,190,6,2,170,6,3,224,7,1,245,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255],\"secondary\":false},{\"width\":8,\"bonus\":110,\"chr\":\"N\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,2,255,2,3,221,3,4,187,3,5,187,4,6,221,5,7,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],\"secondary\":false},{\"width\":10,\"bonus\":110,\"chr\":\"O\",\"pixels\":[0,4,187,0,5,170,1,2,204,1,3,153,1,6,170,1,7,204,2,1,153,2,8,153,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,153,6,8,153,7,2,204,7,3,153,7,6,170,7,7,204,8,4,187,8,5,170],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"P\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,4,1,187,4,5,187,5,3,221],\"secondary\":false},{\"width\":9,\"bonus\":100,\"chr\":\"Q\",\"pixels\":[0,4,187,0,5,187,1,2,221,1,6,153,1,7,221,2,1,187,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,238,5,8,238,6,2,204,6,7,255,7,3,255,7,4,204,7,5,221,7,6,255,7,8,204],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"R\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,3,6,187,4,2,238,4,3,204,4,4,255,4,7,238,4,8,170],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"S\",\"pixels\":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,1,255,2,4,170,2,8,255,3,1,255,3,5,255,3,8,255,4,1,170,4,6,221,4,7,238],\"secondary\":false},{\"width\":8,\"bonus\":65,\"chr\":\"T\",\"pixels\":[0,1,255,1,1,255,2,1,255,3,1,255,3,2,221,3,3,221,3,4,221,3,5,221,3,6,221,3,7,221,3,8,204,4,1,255,5,1,255],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"U\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,187,1,7,170,2,8,255,3,8,255,4,8,221,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,255,5,7,238],\"secondary\":false},{\"width\":7,\"bonus\":70,\"chr\":\"V\",\"pixels\":[0,1,255,0,2,187,1,3,153,1,4,255,1,5,153,2,6,187,2,7,238,3,7,255,3,8,204,4,4,204,4,5,238,5,1,170,5,2,255,5,3,153],\"secondary\":false},{\"width\":10,\"bonus\":125,\"chr\":\"W\",\"pixels\":[0,1,255,0,2,221,1,4,187,1,5,255,1,6,204,2,7,255,2,8,255,3,3,153,3,4,238,3,5,221,4,1,255,4,2,255,4,3,153,5,3,170,5,4,238,5,5,204,6,7,255,6,8,255,7,4,153,7,5,238,7,6,238,7,7,153,8,1,238,8,2,238,8,3,153],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"X\",\"pixels\":[0,8,170,1,1,187,1,2,204,1,7,238,2,3,221,2,4,153,2,5,255,2,6,153,3,4,255,3,5,238,4,2,238,4,6,204,4,7,170,5,1,204,5,8,255],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"Y\",\"pixels\":[0,1,170,1,2,238,2,3,153,2,4,255,3,4,221,3,5,204,3,6,221,3,7,221,3,8,204,4,3,255,5,1,238],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"Z\",\"pixels\":[0,8,187,1,1,255,1,7,221,1,8,255,2,1,255,2,5,204,2,8,255,3,1,255,3,4,204,3,8,255,4,1,255,4,2,221,4,8,255,5,1,187,5,8,153],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"0\",\"pixels\":[0,2,153,0,3,221,0,4,255,0,5,255,0,6,238,0,7,170,1,1,187,1,8,204,2,1,187,2,8,187,3,1,221,3,8,204,4,2,170,4,3,255,4,4,187,4,5,187,4,6,238,4,7,170],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"1\",\"pixels\":[1,8,187,2,1,204,2,2,204,2,3,187,2,4,187,2,5,187,2,6,187,2,7,187,2,8,238,3,8,204],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"2\",\"pixels\":[1,8,255,2,1,187,2,6,153,2,8,187,3,1,204,3,5,153,3,8,187,4,1,187,4,2,153,4,4,204,4,8,187],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"3\",\"pixels\":[0,8,204,1,1,187,1,8,187,2,1,187,2,4,187,2,8,204,3,2,221,3,3,204,3,5,204,3,7,170],\"secondary\":false},{\"width\":7,\"bonus\":80,\"chr\":\"4\",\"pixels\":[0,6,238,1,4,187,1,6,187,2,3,170,2,6,187,3,1,187,3,2,153,3,6,204,4,1,187,4,2,187,4,3,187,4,4,187,4,5,187,4,6,238,4,7,187,4,8,187],\"secondary\":false},{\"width\":7,\"bonus\":70,\"chr\":\"5\",\"pixels\":[1,1,238,1,2,187,1,3,187,1,4,187,1,8,204,2,1,187,2,4,187,2,8,187,3,1,187,3,4,204,3,8,204,4,5,238,4,6,187,4,7,221],\"secondary\":false},{\"width\":7,\"bonus\":80,\"chr\":\"6\",\"pixels\":[0,3,170,0,4,255,0,5,255,0,6,238,0,7,153,1,2,187,1,8,187,2,1,204,2,4,187,2,8,187,3,1,187,3,4,204,3,8,187,4,5,221,4,6,255,4,7,187],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"7\",\"pixels\":[0,1,187,1,1,187,1,8,204,2,1,187,2,6,238,2,7,153,3,1,187,3,3,153,3,4,221,4,1,255,4,2,187],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"8\",\"pixels\":[1,2,238,1,3,221,1,6,204,1,7,221,2,1,204,2,4,204,2,5,170,2,8,221,3,1,187,3,4,170,3,8,187,4,1,221,4,4,170,4,5,204,4,8,187,5,2,170,5,3,153,5,6,238,5,7,238],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"9\",\"pixels\":[1,2,221,1,3,187,1,4,238,1,8,153,2,1,204,2,5,221,2,8,187,3,1,187,3,5,187,3,8,204,4,1,187,4,7,170,5,2,153,5,3,238,5,4,255,5,5,255,5,6,187],\"secondary\":false},{\"width\":8,\"bonus\":75,\"chr\":\"%\",\"pixels\":[0,3,255,0,8,255,1,2,255,1,4,255,1,7,255,2,3,255,2,6,255,3,5,255,4,4,255,4,7,255,5,3,255,5,6,255,5,8,255,6,2,255,6,7,255],\"secondary\":false},{\"width\":4,\"bonus\":40,\"chr\":\"/\",\"pixels\":[0,7,153,0,8,238,0,9,221,1,4,187,1,5,238,1,6,170,2,1,221,2,2,221],\"secondary\":false},{\"width\":7,\"bonus\":60,\"chr\":\"+\",\"pixels\":[0,5,221,1,5,255,2,5,255,3,2,153,3,3,221,3,4,221,3,5,255,3,6,221,3,7,221,3,8,204,4,5,255,5,5,255],\"secondary\":false},{\"width\":5,\"bonus\":40,\"chr\":\"?\",\"pixels\":[0,1,170,1,1,255,1,6,221,1,8,255,2,1,255,2,5,170,3,2,255,3,3,221],\"secondary\":false},{\"width\":2,\"bonus\":35,\"chr\":\"!\",\"pixels\":[0,1,170,0,2,187,0,3,187,0,4,187,0,5,187,0,6,170,0,8,255],\"secondary\":false},{\"width\":8,\"bonus\":130,\"chr\":\"@\",\"pixels\":[0,4,255,0,5,255,0,6,221,0,7,255,0,8,187,1,3,221,1,9,238,2,2,221,2,5,255,2,6,238,2,7,255,2,10,153,3,2,255,3,4,255,3,8,204,3,10,187,4,2,238,4,4,255,4,8,255,5,3,238,5,4,255,5,5,221,5,6,221,5,7,221,5,8,238,6,8,221],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"#\",\"pixels\":[0,6,255,1,3,255,1,6,255,1,7,170,1,8,238,2,1,170,2,2,238,2,3,255,2,4,221,2,5,170,2,6,255,3,3,255,3,6,255,4,3,255,4,4,153,4,5,204,4,6,255,4,7,238,4,8,187,5,1,255,5,2,187,5,3,255,5,6,255,6,3,255],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"$\",\"pixels\":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,0,204,2,1,238,2,8,238,2,9,204,3,1,238,3,5,238,3,8,255,4,6,170,4,7,170],\"secondary\":false},{\"width\":6,\"bonus\":40,\"chr\":\"^\",\"pixels\":[0,4,153,0,5,238,1,2,204,1,3,221,2,1,221,2,2,221,3,3,187,3,4,221],\"secondary\":false},{\"width\":6,\"bonus\":20,\"chr\":\"~\",\"pixels\":[1,5,255,2,5,221,3,6,221,4,5,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"&\",\"pixels\":[0,6,187,1,2,238,1,3,255,1,4,187,1,5,187,1,8,187,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,4,255,4,8,187,5,3,204,5,4,255,5,5,221,5,6,187,6,4,153],\"secondary\":false},{\"width\":6,\"bonus\":45,\"chr\":\"*\",\"pixels\":[0,2,170,1,2,170,1,3,204,1,4,255,2,1,204,2,2,238,2,3,255,3,2,170,3,4,153],\"secondary\":false},{\"width\":4,\"bonus\":55,\"chr\":\"(\",\"pixels\":[0,3,173,0,4,239,0,5,253,0,6,230,0,7,171,1,1,194,1,2,204,1,8,204,1,9,191,2,0,210,2,10,216],\"secondary\":false},{\"width\":4,\"bonus\":55,\"chr\":\")\",\"pixels\":[1,0,211,1,10,216,2,1,194,2,2,203,2,8,203,2,9,191,3,3,174,3,4,240,3,5,253,3,6,229,3,7,171],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"_\",\"pixels\":[0,9,153,1,9,255,2,9,255,3,9,255,4,9,255,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":15,\"chr\":\"-\",\"pixels\":[0,5,255,1,5,255,2,5,255],\"secondary\":true},{\"width\":8,\"bonus\":50,\"chr\":\"=\",\"pixels\":[0,4,255,0,6,255,1,4,255,1,6,255,2,4,255,2,6,255,3,4,255,3,6,255,4,4,255,4,6,255],\"secondary\":false},{\"width\":3,\"bonus\":55,\"chr\":\"[\",\"pixels\":[0,0,204,0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,0,238,1,8,238],\"secondary\":false},{\"width\":3,\"bonus\":55,\"chr\":\"]\",\"pixels\":[0,0,238,0,8,238,1,0,204,1,1,221,1,2,221,1,3,221,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204],\"secondary\":false},{\"width\":5,\"bonus\":50,\"chr\":\"{\",\"pixels\":[0,5,153,1,2,170,1,3,221,1,4,221,1,5,204,1,6,255,1,7,221,1,8,170,2,1,238,2,9,238],\"secondary\":false},{\"width\":5,\"bonus\":50,\"chr\":\"}\",\"pixels\":[1,1,238,1,9,238,2,2,170,2,3,221,2,4,221,2,5,204,2,6,255,2,7,221,2,8,170,3,5,153],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\":\",\"pixels\":[1,3,255,1,7,255],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\";\",\"pixels\":[0,9,201,1,3,255,1,7,241,1,8,255],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\"\\\\\"\",\"pixels\":[0,1,255,0,2,255,2,1,255,2,2,255],\"secondary\":true},{\"width\":2,\"bonus\":10,\"chr\":\"\\'\",\"pixels\":[0,1,255,0,2,177],\"secondary\":true},{\"width\":7,\"bonus\":40,\"chr\":\"<\",\"pixels\":[0,5,204,1,5,255,2,4,238,2,6,238,3,4,170,3,6,170,4,3,221,4,7,221],\"secondary\":false},{\"width\":7,\"bonus\":45,\"chr\":\">\",\"pixels\":[0,3,204,0,7,204,1,7,187,2,4,238,2,6,255,3,4,170,3,5,153,3,6,204,4,5,255],\"secondary\":false},{\"width\":5,\"bonus\":35,\"chr\":\"\\\\\\\\\",\"pixels\":[1,1,153,1,2,255,1,3,204,2,5,255,2,6,204,3,8,255,3,9,204],\"secondary\":false},{\"width\":2,\"bonus\":5,\"chr\":\".\",\"pixels\":[0,8,255],\"secondary\":true},{\"width\":3,\"bonus\":15,\"chr\":\",\",\"pixels\":[0,9,205,1,7,205,1,8,255],\"secondary\":true},{\"width\":3,\"bonus\":50,\"chr\":\"|\",\"pixels\":[0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,221,0,9,221,0,10,204],\"secondary\":false}],\"width\":10,\"spacewidth\":3,\"shadow\":false,\"height\":12,\"basey\":8}');\n\n/***/ }),\n\n/***/ \"./src/fonts/aa_8px_mono_allcaps.fontmeta.json\":\n/*!*****************************************************!*\\\n !*** ./src/fonts/aa_8px_mono_allcaps.fontmeta.json ***!\n \\*****************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('{\"chars\":[{\"width\":3,\"bonus\":35,\"chr\":\"!\",\"pixels\":[0,2,170,1,1,221,1,2,255,1,3,221,1,4,187,1,5,170,1,9,204],\"secondary\":false},{\"width\":6,\"bonus\":20,\"chr\":\"\\\\\"\",\"pixels\":[1,2,221,1,3,255,3,2,221,3,3,255],\"secondary\":true},{\"width\":8,\"bonus\":125,\"chr\":\"#\",\"pixels\":[0,7,187,1,4,255,1,7,255,1,10,170,2,3,170,2,4,255,2,5,255,2,6,221,2,7,255,2,8,170,3,4,255,3,7,255,4,4,255,4,5,153,4,7,255,4,8,238,4,9,255,4,10,204,5,2,238,5,3,204,5,4,255,5,5,153,5,7,255,6,4,255,6,7,153],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"$\",\"pixels\":[0,8,187,1,2,255,1,3,255,1,4,221,1,9,238,2,1,187,2,4,255,2,5,204,2,8,170,2,9,255,2,10,221,3,0,187,3,1,238,3,2,187,3,3,170,3,4,153,3,5,255,3,6,221,3,9,221,4,1,221,4,6,255,4,7,255,4,8,255],\"secondary\":false},{\"width\":12,\"bonus\":135,\"chr\":\"%\",\"pixels\":[1,2,255,1,3,255,1,4,221,2,5,153,3,1,153,3,9,187,4,1,170,4,2,255,4,3,255,4,4,221,4,7,238,4,8,204,5,4,153,5,5,238,5,6,153,6,1,153,6,2,187,6,3,204,6,6,221,6,7,255,6,8,255,7,1,153,7,9,187,8,9,187,9,6,221,9,7,255,9,8,255],\"secondary\":false},{\"width\":11,\"bonus\":190,\"chr\":\"&\",\"pixels\":[0,6,187,0,7,255,0,8,170,1,2,204,1,3,255,1,4,153,1,5,238,1,6,170,1,7,187,1,8,255,1,9,153,2,1,170,2,2,153,2,3,153,2,4,255,2,5,187,2,9,238,3,1,221,3,5,238,3,6,170,3,9,255,4,1,238,4,6,238,4,7,153,4,9,204,5,1,187,5,2,187,5,7,255,5,8,204,6,7,170,6,8,255,7,5,238,7,6,255,7,7,170,7,8,170,7,9,221,8,9,238,9,9,153],\"secondary\":false},{\"width\":4,\"bonus\":10,\"chr\":\"\\'\",\"pixels\":[1,2,204,1,3,255],\"secondary\":true},{\"width\":4,\"bonus\":50,\"chr\":\"(\",\"pixels\":[0,3,170,0,4,238,0,5,255,0,6,221,0,7,153,1,1,153,1,2,221,1,3,153,1,7,170,1,8,238],\"secondary\":false},{\"width\":4,\"bonus\":40,\"chr\":\")\",\"pixels\":[1,1,170,1,2,221,1,7,170,1,8,238,2,3,187,2,4,238,2,5,255,2,6,204],\"secondary\":false},{\"width\":5,\"bonus\":25,\"chr\":\"*\",\"pixels\":[1,1,170,1,2,221,1,3,153,2,2,255,2,3,204],\"secondary\":false},{\"width\":8,\"bonus\":45,\"chr\":\"+\",\"pixels\":[1,6,255,2,6,255,3,4,255,3,5,255,3,6,255,3,7,255,3,8,255,4,6,255,5,6,255],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\",\",\"pixels\":[1,8,187,1,9,221],\"secondary\":true},{\"width\":5,\"bonus\":20,\"chr\":\"-\",\"pixels\":[0,7,204,1,7,255,2,7,238,3,7,187],\"secondary\":true},{\"width\":3,\"bonus\":5,\"chr\":\".\",\"pixels\":[0,9,204],\"secondary\":true},{\"width\":7,\"bonus\":40,\"chr\":\"/\",\"pixels\":[0,9,221,1,7,187,1,8,187,2,6,221,3,4,221,4,2,170,4,3,187,5,1,187],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"0\",\"pixels\":[0,6,153,1,3,221,1,4,255,1,5,255,1,6,255,1,7,255,1,8,238,2,2,187,2,8,153,2,9,204,3,2,187,3,9,204,4,2,221,4,9,187,5,3,238,5,4,255,5,5,255,5,6,255,5,7,255,5,8,221,6,5,153],\"secondary\":false},{\"width\":6,\"bonus\":85,\"chr\":\"1\",\"pixels\":[1,3,170,1,9,153,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,3,2,153,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221],\"secondary\":false},{\"width\":8,\"bonus\":100,\"chr\":\"2\",\"pixels\":[1,2,187,1,3,153,1,9,255,2,2,187,2,8,221,2,9,255,3,2,221,3,7,221,3,9,255,4,2,187,4,3,238,4,4,187,4,5,238,4,6,238,4,9,255,5,3,221,5,4,255,5,5,170,5,8,153,5,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"3\",\"pixels\":[0,2,170,0,8,170,0,9,204,1,2,221,1,9,238,2,2,238,2,5,221,2,9,221,3,2,221,3,3,187,3,4,204,3,5,255,3,6,153,3,9,187,4,3,238,4,4,153,4,6,255,4,7,255,4,8,255,5,7,153],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"4\",\"pixels\":[0,7,153,1,6,187,1,7,255,2,5,187,2,7,255,3,4,187,3,7,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,7,255,5,9,204,6,7,221],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"5\",\"pixels\":[0,8,153,0,9,221,1,2,255,1,3,187,1,4,238,1,9,221,2,2,255,2,4,187,2,5,170,2,9,204,3,2,255,3,5,255,3,9,170,4,2,255,4,5,204,4,6,255,4,7,255,4,8,238,5,7,153],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"6\",\"pixels\":[0,7,153,1,4,153,1,5,255,1,6,255,1,7,255,1,8,255,2,4,204,2,9,221,3,3,170,3,5,153,3,9,204,4,2,153,4,5,187,4,9,204,5,6,238,5,7,170,5,8,187,5,9,153,6,6,187,6,7,255,6,8,170],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"7\",\"pixels\":[0,2,204,0,3,187,1,2,255,1,9,187,2,2,255,2,7,238,2,8,255,2,9,170,3,2,255,3,5,221,3,6,204,4,2,255,4,3,204,4,4,170,5,2,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"8\",\"pixels\":[1,3,221,1,4,204,1,6,187,1,7,255,1,8,255,2,2,187,2,4,204,2,5,221,2,6,153,2,9,221,3,2,153,3,5,255,3,9,187,4,2,187,4,5,238,4,6,204,4,9,204,5,2,170,5,3,255,5,4,238,5,6,238,5,7,255,5,8,255,6,7,153],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"9\",\"pixels\":[0,4,153,1,3,255,1,4,255,1,5,255,2,2,187,2,6,153,3,2,204,3,6,153,3,9,153,4,2,221,4,7,153,4,8,204,5,3,255,5,4,255,5,5,255,5,6,255,5,7,187,6,4,153,6,5,153],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\":\",\"pixels\":[0,3,204,0,7,204],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\";\",\"pixels\":[0,2,204,0,6,153,0,7,187,0,8,153],\"secondary\":true},{\"width\":7,\"bonus\":55,\"chr\":\"<\",\"pixels\":[0,6,187,0,7,153,1,6,221,1,7,238,2,5,153,3,5,238,3,8,238,4,5,153,4,8,187,5,4,187,5,9,153],\"secondary\":false},{\"width\":7,\"bonus\":60,\"chr\":\"=\",\"pixels\":[0,5,255,0,8,255,1,5,255,1,8,255,2,5,255,2,8,255,3,5,255,3,8,255,4,5,255,4,8,255,5,5,221,5,8,221],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\">\",\"pixels\":[0,4,204,0,9,170,1,5,170,1,8,187,2,5,238,2,8,221,3,7,153,4,6,238,4,7,238,5,6,153],\"secondary\":false},{\"width\":6,\"bonus\":65,\"chr\":\"?\",\"pixels\":[0,2,153,0,3,187,1,2,221,1,7,221,2,2,238,2,6,238,2,10,204,3,2,204,3,3,221,3,4,204,3,5,255,4,3,238,4,4,221],\"secondary\":false},{\"width\":11,\"bonus\":180,\"chr\":\"@\",\"pixels\":[0,4,187,0,5,255,0,6,255,0,7,238,1,3,170,1,8,204,2,5,187,2,6,238,2,7,187,2,9,204,3,4,204,3,5,153,3,6,153,3,7,204,3,9,204,4,3,153,4,6,153,4,9,187,5,0,153,5,3,221,5,4,170,5,5,238,5,6,255,5,7,187,5,9,170,6,3,221,6,4,153,6,7,238,7,1,153,7,7,170,8,1,170,8,2,153,8,6,170,9,3,187,9,4,221,9,5,170],\"secondary\":false},{\"width\":9,\"bonus\":110,\"chr\":\"A\",\"pixels\":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],\"secondary\":false},{\"width\":7,\"bonus\":150,\"chr\":\"B\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"C\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],\"secondary\":false},{\"width\":10,\"bonus\":165,\"chr\":\"D\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],\"secondary\":false},{\"width\":7,\"bonus\":110,\"chr\":\"E\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,239,3,2,214,3,5,221,3,9,212,4,2,212,4,5,226,4,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"F\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],\"secondary\":false},{\"width\":9,\"bonus\":135,\"chr\":\"G\",\"pixels\":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],\"secondary\":false},{\"width\":10,\"bonus\":175,\"chr\":\"H\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],\"secondary\":false},{\"width\":5,\"bonus\":80,\"chr\":\"I\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],\"secondary\":false},{\"width\":6,\"bonus\":90,\"chr\":\"J\",\"pixels\":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],\"secondary\":false},{\"width\":10,\"bonus\":140,\"chr\":\"K\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"L\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],\"secondary\":false},{\"width\":12,\"bonus\":150,\"chr\":\"M\",\"pixels\":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],\"secondary\":false},{\"width\":10,\"bonus\":130,\"chr\":\"N\",\"pixels\":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],\"secondary\":false},{\"width\":10,\"bonus\":155,\"chr\":\"O\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],\"secondary\":false},{\"width\":8,\"bonus\":130,\"chr\":\"P\",\"pixels\":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,1,238,2,2,153,2,3,153,2,4,153,2,5,170,2,6,153,2,7,153,2,8,153,2,9,221,3,1,204,4,1,238,4,5,187,5,1,153,5,2,255,5,3,255,5,4,255,6,3,153],\"secondary\":false},{\"width\":10,\"bonus\":180,\"chr\":\"Q\",\"pixels\":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],\"secondary\":false},{\"width\":7,\"bonus\":140,\"chr\":\"R\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238],\"secondary\":false},{\"width\":6,\"bonus\":115,\"chr\":\"S\",\"pixels\":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"T\",\"pixels\":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],\"secondary\":false},{\"width\":10,\"bonus\":120,\"chr\":\"U\",\"pixels\":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],\"secondary\":false},{\"width\":10,\"bonus\":90,\"chr\":\"V\",\"pixels\":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],\"secondary\":false},{\"width\":13,\"bonus\":165,\"chr\":\"W\",\"pixels\":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],\"secondary\":false},{\"width\":9,\"bonus\":115,\"chr\":\"X\",\"pixels\":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"Y\",\"pixels\":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"Z\",\"pixels\":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":65,\"chr\":\"[\",\"pixels\":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,187,1,0,187,1,10,170],\"secondary\":false},{\"width\":8,\"bonus\":40,\"chr\":\"\\\\\\\\\",\"pixels\":[1,1,170,1,2,187,2,3,221,3,5,221,4,6,187,4,7,187,5,8,221,6,9,153],\"secondary\":false},{\"width\":5,\"bonus\":65,\"chr\":\"]\",\"pixels\":[1,0,153,1,10,153,2,0,255,2,1,255,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,187],\"secondary\":false},{\"width\":7,\"bonus\":40,\"chr\":\"^\",\"pixels\":[0,5,204,1,3,238,1,4,170,2,1,238,3,1,221,3,2,204,4,3,187,4,4,238],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"_\",\"pixels\":[0,10,221,1,10,221,2,10,221,3,10,221,4,10,221,5,10,221],\"secondary\":false},{\"width\":9,\"bonus\":110,\"chr\":\"a\",\"pixels\":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],\"secondary\":false},{\"width\":7,\"bonus\":150,\"chr\":\"b\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"c\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],\"secondary\":false},{\"width\":10,\"bonus\":165,\"chr\":\"d\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],\"secondary\":false},{\"width\":7,\"bonus\":110,\"chr\":\"e\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,5,221,3,9,221,4,2,238,4,5,238,4,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"f\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],\"secondary\":false},{\"width\":10,\"bonus\":135,\"chr\":\"g\",\"pixels\":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],\"secondary\":false},{\"width\":10,\"bonus\":175,\"chr\":\"h\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],\"secondary\":false},{\"width\":5,\"bonus\":80,\"chr\":\"i\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],\"secondary\":false},{\"width\":5,\"bonus\":90,\"chr\":\"j\",\"pixels\":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],\"secondary\":false},{\"width\":9,\"bonus\":140,\"chr\":\"k\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"l\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],\"secondary\":false},{\"width\":12,\"bonus\":150,\"chr\":\"m\",\"pixels\":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],\"secondary\":false},{\"width\":10,\"bonus\":130,\"chr\":\"n\",\"pixels\":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],\"secondary\":false},{\"width\":10,\"bonus\":155,\"chr\":\"o\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"p\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,170,2,7,153,2,8,153,2,9,221,3,2,221,4,2,221,4,3,204,4,4,153,4,5,221,5,3,221,5,4,221],\"secondary\":false},{\"width\":10,\"bonus\":180,\"chr\":\"q\",\"pixels\":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],\"secondary\":false},{\"width\":9,\"bonus\":145,\"chr\":\"r\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238,7,9,153],\"secondary\":false},{\"width\":6,\"bonus\":115,\"chr\":\"s\",\"pixels\":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"t\",\"pixels\":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],\"secondary\":false},{\"width\":10,\"bonus\":120,\"chr\":\"u\",\"pixels\":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],\"secondary\":false},{\"width\":10,\"bonus\":90,\"chr\":\"v\",\"pixels\":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],\"secondary\":false},{\"width\":13,\"bonus\":165,\"chr\":\"w\",\"pixels\":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],\"secondary\":false},{\"width\":9,\"bonus\":115,\"chr\":\"x\",\"pixels\":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"y\",\"pixels\":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"z\",\"pixels\":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":45,\"chr\":\"{\",\"pixels\":[1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221,2,0,153],\"secondary\":false},{\"width\":2,\"bonus\":60,\"chr\":\"|\",\"pixels\":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,255,0,11,255],\"secondary\":true},{\"width\":4,\"bonus\":45,\"chr\":\"}\",\"pixels\":[0,0,153,1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"~\",\"pixels\":[0,5,221,1,4,255,2,4,187,3,5,187,4,5,255,5,4,204],\"secondary\":false}],\"width\":13,\"spacewidth\":3,\"shadow\":false,\"height\":12,\"basey\":9}');\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/dialog/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"alt1/base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"alt1/base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ocr\"] = factory(require(\"alt1/base\"));\n\telse\n\t\troot[\"OCR\"] = factory(root[\"A1lib\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/ocr/index.ts\":\n/*!**************************!*\\\n !*** ./src/ocr/index.ts ***!\n \\**************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.generatefont = exports.readChar = exports.readSmallCapsBackwards = exports.readLine = exports.getChatColor = exports.GetChatColorMono = exports.findReadLine = exports.findChar = exports.decompose3col = exports.decomposeblack = exports.decompose2col = exports.canblend = exports.unblendTrans = exports.unblendKnownBg = exports.unblendBlackBackground = exports.debugFont = exports.debugout = exports.debug = void 0;\nconst base_1 = __webpack_require__(/*! alt1/base */ \"alt1/base\");\nexports.debug = {\n printcharscores: false,\n trackread: false\n};\nexports.debugout = {};\n/**\n * draws the font definition to a buffer and displays it in the dom for debugging purposes\n * @param font\n */\nfunction debugFont(font) {\n var spacing = font.width + 2;\n var buf = new base_1.ImageData(spacing * font.chars.length, font.height + 1);\n for (var a = 0; a < buf.data.length; a += 4) {\n buf.data[a] = buf.data[a + 1] = buf.data[a + 2] = 0;\n buf.data[a + 3] = 255;\n }\n for (var a = 0; a < font.chars.length; a++) {\n var bx = a * spacing;\n var chr = font.chars[a];\n for (var b = 0; b < chr.pixels.length; b += (font.shadow ? 4 : 3)) {\n buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 2], chr.pixels[b + 2], chr.pixels[b + 2], 255]);\n if (font.shadow) {\n buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 3], 0, 0, 255]);\n }\n }\n }\n buf.show();\n}\nexports.debugFont = debugFont;\nfunction unblendBlackBackground(img, r, g, b) {\n var rimg = new base_1.ImageData(img.width, img.height);\n for (var i = 0; i < img.data.length; i += 4) {\n var col = decomposeblack(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b);\n rimg.data[i + 0] = col[0] * 255;\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendBlackBackground = unblendBlackBackground;\n/**\n * unblends a imagebuffer into match strength with given color\n * the bgimg argument should contain a second image with pixel occluded by the font visible.\n * @param img\n * @param shadow detect black as second color\n * @param bgimg optional second image to\n */\nfunction unblendKnownBg(img, bgimg, shadow, r, g, b) {\n if (bgimg && (img.width != bgimg.width || img.height != bgimg.height)) {\n throw \"bgimg size doesn't match\";\n }\n var rimg = new base_1.ImageData(img.width, img.height);\n var totalerror = 0;\n for (var i = 0; i < img.data.length; i += 4) {\n var col = decompose2col(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b, bgimg.data[i + 0], bgimg.data[i + 1], bgimg.data[i + 2]);\n if (shadow) {\n if (col[2] > 0.01) {\n console.log(\"high error component: \" + (col[2] * 100).toFixed(1) + \"%\");\n }\n totalerror += col[2];\n var m = 1 - col[1] - Math.abs(col[2]); //main color+black=100%-bg-error\n rimg.data[i + 0] = m * 255;\n rimg.data[i + 1] = col[0] / m * 255;\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n else {\n rimg.data[i + 0] = col[0] * 255;\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendKnownBg = unblendKnownBg;\n/**\n * Unblends a font image that is already conpletely isolated to the raw image used ingame. This is the easiest mode for pixel fonts where alpha is 0 or 255, or for extracted font files.\n * @param img\n * @param r\n * @param g\n * @param b\n * @param shadow whether the font has a black shadow\n */\nfunction unblendTrans(img, shadow, r, g, b) {\n var rimg = new base_1.ImageData(img.width, img.height);\n var pxlum = r + g + b;\n for (var i = 0; i < img.data.length; i += 4) {\n if (shadow) {\n var lum = img.data[i + 0] + img.data[i + 1] + img.data[i + 2];\n rimg.data[i + 0] = img.data[i + 3];\n rimg.data[i + 1] = lum / pxlum * 255;\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n else {\n rimg.data[i + 0] = img.data[i + 3];\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendTrans = unblendTrans;\n/**\n * Determised wether color [rgb]m can be a result of a blend with color [rgb]1 that is p (0-1) of the mix\n * It returns the number that the second color has to lie outside of the possible color ranges\n * @param rm resulting color\n * @param r1 first color of the mix (the other color is unknown)\n * @param p the portion of the [rgb]1 in the mix (0-1)\n */\nfunction canblend(rm, gm, bm, r1, g1, b1, p) {\n var m = Math.min(50, p / (1 - p));\n var r = rm + (rm - r1) * m;\n var g = gm + (gm - g1) * m;\n var b = bm + (bm - b1) * m;\n return Math.max(0, -r, -g, -b, r - 255, g - 255, b - 255);\n}\nexports.canblend = canblend;\n/**\n * decomposes a color in 2 given component colors and returns the amount of each color present\n * also return a third (noise) component which is the the amount leftover orthagonal from the 2 given colors\n */\nfunction decompose2col(rp, gp, bp, r1, g1, b1, r2, g2, b2) {\n //get the normal of the error (cross-product of both colors)\n var r3 = g1 * b2 - g2 * b1;\n var g3 = b1 * r2 - b2 * r1;\n var b3 = r1 * g2 - r2 * g1;\n //normalize to length 255\n var norm = 255 / Math.sqrt(r3 * r3 + g3 * g3 + b3 * b3);\n r3 *= norm;\n g3 *= norm;\n b3 *= norm;\n return decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3);\n}\nexports.decompose2col = decompose2col;\n/**\n * decomposes a pixel in a given color component and black and returns what proportion of the second color it contains\n * this is not as formal as decompose 2/3 and only give a \"good enough\" number\n */\nfunction decomposeblack(rp, gp, bp, r1, g1, b1) {\n var dr = Math.abs(rp - r1);\n var dg = Math.abs(gp - g1);\n var db = Math.abs(bp - b1);\n var maxdif = Math.max(dr, dg, db);\n return [1 - maxdif / 255];\n}\nexports.decomposeblack = decomposeblack;\n/**\n * decomposes a color in 3 given component colors and returns the amount of each color present\n */\nfunction decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3) {\n //P=x*C1+y*C2+z*C3\n //assemble as matrix \n //M*w=p\n //get inverse of M\n //dirty written out version of cramer's rule\n var A = g2 * b3 - b2 * g3;\n var B = g3 * b1 - b3 * g1;\n var C = g1 * b2 - b1 * g2;\n var D = b2 * r3 - r2 * b3;\n var E = b3 * r1 - r3 * b1;\n var F = b1 * r2 - r1 * b2;\n var G = r2 * g3 - g2 * r3;\n var H = r3 * g1 - g3 * r1;\n var I = r1 * g2 - g1 * r2;\n var det = r1 * A + g1 * D + b1 * G;\n //M^-1*p=w\n var x = (A * rp + D * gp + G * bp) / det;\n var y = (B * rp + E * gp + H * bp) / det;\n var z = (C * rp + F * gp + I * bp) / det;\n return [x, y, z];\n}\nexports.decompose3col = decompose3col;\n/**\n * brute force to the exact position of the text\n */\nfunction findChar(buffer, font, col, x, y, w, h) {\n if (x < 0) {\n return null;\n }\n if (y - font.basey < 0) {\n return null;\n }\n if (x + w + font.width > buffer.width) {\n return null;\n }\n if (y + h - font.basey + font.height > buffer.height) {\n return null;\n }\n var best = 1000; //TODO finetune score constants\n var bestchar = null;\n for (var cx = x; cx < x + w; cx++) {\n for (var cy = y; cy < y + h; cy++) {\n var chr = readChar(buffer, font, col, cx, cy, false, false);\n if (chr != null && chr.sizescore < best) {\n best = chr.sizescore;\n bestchar = chr;\n }\n }\n }\n return bestchar;\n}\nexports.findChar = findChar;\n/**\n * reads text with unknown exact coord or color. The given coord should be inside the text\n * color selection not implemented yet\n */\nfunction findReadLine(buffer, font, cols, x, y, w = -1, h = -1) {\n if (w == -1) {\n w = font.width + font.spacewidth;\n x -= Math.ceil(w / 2);\n }\n if (h == -1) {\n h = 7;\n y -= 1;\n }\n var chr = null;\n if (cols.length > 1) {\n //TODO use getChatColor() instead for non-mono?\n var sorted = GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols);\n //loop until we have a match (max 2 cols)\n for (var a = 0; a < 2 && a < sorted.length && chr == null; a++) {\n chr = findChar(buffer, font, sorted[a].col, x, y, w, h);\n }\n }\n else {\n chr = findChar(buffer, font, cols[0], x, y, w, h);\n }\n if (chr == null) {\n return { debugArea: { x, y, w, h }, text: \"\", fragments: [] };\n }\n return readLine(buffer, font, cols, chr.x, chr.y, true, true);\n}\nexports.findReadLine = findReadLine;\nfunction GetChatColorMono(buf, rect, colors) {\n var colormap = colors.map(c => ({ col: c, score: 0 }));\n if (rect.x < 0 || rect.y < 0 || rect.x + rect.width > buf.width || rect.y + rect.height > buf.height) {\n return colormap;\n }\n var data = buf.data;\n var maxd = 50;\n for (var colobj of colormap) {\n var score = 0;\n var col = colobj.col;\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n var i = x * 4 + y * 4 * buf.width;\n var d = Math.abs(data[i] - col[0]) + Math.abs(data[i + 1] - col[1]) + Math.abs(data[i + 2] - col[2]);\n if (d < maxd) {\n score += maxd - d;\n }\n }\n }\n colobj.score = score;\n }\n return colormap.sort((a, b) => b.score - a.score);\n}\nexports.GetChatColorMono = GetChatColorMono;\nfunction unblend(r, g, b, R, G, B) {\n var m = Math.sqrt(r * r + g * g + b * b);\n var n = Math.sqrt(R * R + G * G + B * B);\n var x = (r * R + g * G + b * B) / n;\n var y = Math.sqrt(Math.max(0, m * m - x * x));\n var r1 = Math.max(0, (63.75 - y) * 4);\n var r2 = x / n * 255;\n if (r2 > 255) //brighter than refcol\n {\n r1 = Math.max(0, r1 - r2 + 255);\n r2 = 255;\n }\n return [r1, r2];\n}\nfunction getChatColor(buf, rect, colors) {\n var bestscore = -1.0;\n var best = null;\n var b2 = 0.0;\n var data = buf.data;\n for (let col of colors) {\n var score = 0.0;\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n if (x < 0 || x + 1 >= buf.width) {\n continue;\n }\n if (y < 0 || y + 1 >= buf.width) {\n continue;\n }\n let i1 = buf.pixelOffset(x, y);\n let i2 = buf.pixelOffset(x + 1, y + 1);\n var pixel1 = unblend(data[i1 + 0], data[i1 + 1], data[i1 + 2], col[0], col[1], col[2]);\n var pixel2 = unblend(data[i2 + 0], data[i2 + 1], data[i2 + 2], col[0], col[1], col[2]);\n //TODO this is from c# can simplify a bit\n var s = (pixel1[0] / 255 * pixel1[1] / 255) * (pixel2[0] / 255 * (255.0 - pixel2[1]) / 255);\n score += s;\n }\n }\n if (score > bestscore) {\n b2 = bestscore;\n bestscore = score;\n best = col;\n }\n else if (score > b2) {\n b2 = score;\n }\n }\n //Console.WriteLine(\"color: \" + bestcol + \" - \" + (bestscore - b2));\n //bestscore /= rect.width * rect.height;\n return best;\n}\nexports.getChatColor = getChatColor;\n/**\n * reads a line of text with exactly known position and color. y should be the y coord of the text base line, x should be the first pixel of a new character\n */\nfunction readLine(buffer, font, colors, x, y, forward, backward = false) {\n if (typeof colors[0] != \"number\" && colors.length == 1) {\n colors = colors[0];\n }\n var multicol = typeof colors[0] != \"number\";\n var allcolors = multicol ? colors : [colors];\n var detectcolor = function (sx, sy, backward) {\n var w = Math.floor(font.width * 1.5);\n if (backward) {\n sx -= w;\n }\n sy -= font.basey;\n return getChatColor(buffer, { x: sx, y: sy, width: w, height: font.height }, allcolors);\n };\n var fragments = [];\n var x1 = x;\n var x2 = x;\n var maxspaces = (typeof font.maxspaces == \"number\" ? font.maxspaces : 1);\n let fragtext = \"\";\n let fraghadprimary = false;\n var lastcol = null;\n let addfrag = (forward) => {\n if (!fragtext) {\n return;\n }\n let frag = {\n text: fragtext,\n color: lastcol,\n index: 0,\n xstart: x + (forward ? fragstartdx : fragenddx),\n xend: x + (forward ? fragenddx : fragstartdx)\n };\n if (forward) {\n fragments.push(frag);\n }\n else {\n fragments.unshift(frag);\n }\n fragtext = \"\";\n fragstartdx = dx;\n fraghadprimary = false;\n };\n for (var dirforward of [true, false]) {\n //init vars\n if (dirforward && !forward) {\n continue;\n }\n if (!dirforward && !backward) {\n continue;\n }\n var dx = 0;\n var fragstartdx = dx;\n var fragenddx = dx;\n var triedspaces = 0;\n var triedrecol = false;\n var col = multicol ? null : colors;\n while (true) {\n col = col || detectcolor(x + dx, y, !dirforward);\n var chr = (col ? readChar(buffer, font, col, x + dx, y, !dirforward, true) : null);\n if (col == null || chr == null) {\n if (triedspaces < maxspaces) {\n dx += (dirforward ? 1 : -1) * font.spacewidth;\n triedspaces++;\n continue;\n }\n if (multicol && !triedrecol && fraghadprimary) {\n dx -= (dirforward ? 1 : -1) * triedspaces * font.spacewidth;\n triedspaces = 0;\n col = null;\n triedrecol = true;\n continue;\n }\n if (dirforward) {\n x2 = x + dx - font.spacewidth;\n }\n else {\n x1 = x + dx + font.spacewidth;\n }\n break;\n }\n else {\n if (lastcol && (col[0] != lastcol[0] || col[1] != lastcol[1] || col[2] != lastcol[2])) {\n addfrag(dirforward);\n }\n var spaces = \"\";\n for (var a = 0; a < triedspaces; a++) {\n spaces += \" \";\n }\n if (dirforward) {\n fragtext += spaces + chr.chr;\n }\n else {\n fragtext = chr.chr + spaces + fragtext;\n }\n if (!chr.basechar.secondary) {\n fraghadprimary = true;\n }\n triedspaces = 0;\n triedrecol = false;\n dx += (dirforward ? 1 : -1) * chr.basechar.width;\n fragenddx = dx;\n lastcol = col;\n }\n }\n if (lastcol && fraghadprimary) {\n addfrag(dirforward);\n }\n }\n fragments.forEach((f, i) => f.index = i);\n return {\n debugArea: { x: x1, y: y - 9, w: x2 - x1, h: 10 },\n text: fragments.map(f => f.text).join(\"\"),\n fragments\n };\n}\nexports.readLine = readLine;\n/**\n * Reads a line of text that uses a smallcaps font, these fonts can have duplicate chars that only have a different amount of\n * empty space after the char before the next char starts.\n * The coordinates should be near the end of the string, or a rectangle with high 1 containing all points where the string can end.\n */\nfunction readSmallCapsBackwards(buffer, font, cols, x, y, w = -1, h = -1) {\n if (w == -1) {\n w = font.width + font.spacewidth;\n x -= Math.ceil(w / 2);\n }\n if (h == -1) {\n h = 7;\n y -= 1;\n }\n var matchedchar = null;\n var sorted = (cols.length == 1 ? [{ col: cols[0], score: 1 }] : GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols));\n //loop until we have a match (max 2 cols)\n for (var a = 0; a < 2 && a < sorted.length && matchedchar == null; a++) {\n for (var cx = x + w - 1; cx >= x; cx--) {\n var best = 1000; //TODO finetune score constants\n var bestchar = null;\n for (var cy = y; cy < y + h; cy++) {\n var chr = readChar(buffer, font, sorted[a].col, cx, cy, true, false);\n if (chr != null && chr.sizescore < best) {\n best = chr.sizescore;\n bestchar = chr;\n }\n }\n if (bestchar) {\n matchedchar = bestchar;\n break;\n }\n }\n }\n if (matchedchar == null) {\n return { text: \"\", debugArea: { x, y, w, h } };\n }\n return readLine(buffer, font, cols, matchedchar.x, matchedchar.y, false, true);\n}\nexports.readSmallCapsBackwards = readSmallCapsBackwards;\n/**\n * Reads a single character at the exact given location\n * @param x exact x location of the start of the character domain (includes part of the spacing between characters)\n * @param y exact y location of the baseline pixel of the character\n * @param backwards read in backwards direction, the x location should be the first pixel after the character domain in that case\n */\nfunction readChar(buffer, font, col, x, y, backwards, allowSecondary) {\n y -= font.basey;\n var shiftx = 0;\n var shifty = font.basey;\n var shadow = font.shadow;\n var debugobj = null;\n var debugimg = null;\n if (exports.debug.trackread) {\n var name = x + \";\" + y + \" \" + JSON.stringify(col);\n if (!exports.debugout[name]) {\n exports.debugout[name] = [];\n }\n debugobj = exports.debugout[name];\n }\n //===== make sure the full domain is inside the bitmap/buffer ======\n if (y < 0 || y + font.height >= buffer.height) {\n return null;\n }\n if (!backwards) {\n if (x < 0 || x + font.width > buffer.width) {\n return null;\n }\n }\n else {\n if (x - font.width < 0 || x > buffer.width) {\n return null;\n }\n }\n //====== start reading the char ======\n var scores = [];\n for (var chr = 0; chr < font.chars.length; chr++) {\n var chrobj = font.chars[chr];\n if (chrobj.secondary && !allowSecondary) {\n continue;\n }\n scores[chr] = { score: 0, sizescore: 0, chr: chrobj };\n var chrx = (backwards ? x - chrobj.width : x);\n if (exports.debug.trackread) {\n debugimg = new base_1.ImageData(font.width, font.height);\n }\n for (var a = 0; a < chrobj.pixels.length;) {\n var i = (chrx + chrobj.pixels[a]) * 4 + (y + chrobj.pixels[a + 1]) * buffer.width * 4;\n var penalty = 0;\n if (!shadow) {\n penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0], col[1], col[2], chrobj.pixels[a + 2] / 255);\n a += 3;\n }\n else {\n var lum = chrobj.pixels[a + 3] / 255;\n penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0] * lum, col[1] * lum, col[2] * lum, chrobj.pixels[a + 2] / 255);\n a += 4;\n }\n scores[chr].score += Math.max(0, penalty);\n //TODO add compiler flag to this to remove it for performance\n if (debugimg) {\n debugimg.setPixel(chrobj.pixels[a], chrobj.pixels[a + 1], [penalty, penalty, penalty, 255]);\n }\n }\n scores[chr].sizescore = scores[chr].score - chrobj.bonus;\n if (debugobj) {\n debugobj.push({ chr: chrobj.chr, score: scores[chr].sizescore, rawscore: scores[chr].score, img: debugimg });\n }\n }\n scores.sort((a, b) => a.sizescore - b.sizescore);\n if (exports.debug.printcharscores) {\n scores.slice(0, 5).forEach(q => console.log(q.chr.chr, q.score.toFixed(3), q.sizescore.toFixed(3)));\n }\n var winchr = scores[0];\n if (!winchr || winchr.score > 400) {\n return null;\n }\n return { chr: winchr.chr.chr, basechar: winchr.chr, x: x + shiftx, y: y + shifty, score: winchr.score, sizescore: winchr.sizescore };\n}\nexports.readChar = readChar;\n/**\n * Generates a font json description to use in reader functions\n * @param unblended A source image with all characters lined up. The image should be unblended into components using the unblend functions\n * The lowest pixel line of this image is used to mark the location and size of the charecters if the red component is 255 it means there is a character on that pixel column\n * @param chars A string containing all the characters of the image in the same order\n * @param seconds A string with characters that are considered unlikely and should only be detected if no other character is possible.\n * For example the period (.) character matches positive inside many other characters and should be marked as secondary\n * @param bonusses An object that contains bonus scores for certain difficult characters to make the more likely to be red.\n * @param basey The y position of the baseline pixel of the font\n * @param spacewidth the number of pixels a space takes\n * @param treshold minimal color match proportion (0-1) before a pixel is used for the font\n * @param shadow whether this font also uses the black shadow some fonts have. The \"unblended\" image should be unblended correspondingly\n * @returns a javascript object describing the font which is used as input for the different read functions\n */\nfunction generatefont(unblended, chars, seconds, bonusses, basey, spacewidth, treshold, shadow) {\n //settings vars\n treshold *= 255;\n //initial vars\n var miny = unblended.height - 1;\n var maxy = 0;\n var font = { chars: [], width: 0, spacewidth: spacewidth, shadow: shadow, height: 0, basey: 0 };\n var ds = false;\n var chardata = [];\n //index all chars\n for (var dx = 0; dx < unblended.width; dx++) {\n var i = 4 * dx + 4 * unblended.width * (unblended.height - 1);\n if (unblended.data[i] == 255 && unblended.data[i + 3] == 255) {\n if (ds === false) {\n ds = dx;\n }\n }\n else {\n if (ds !== false) {\n //char found, start detection\n var de = dx;\n var char = chars[chardata.length];\n var chr = {\n ds: ds,\n de: de,\n width: de - ds,\n chr: char,\n bonus: (bonusses && bonusses[char]) || 0,\n secondary: seconds.indexOf(chars[chardata.length]) != -1,\n pixels: []\n };\n chardata.push(chr);\n font.width = Math.max(font.width, chr.width);\n for (x = 0; x < de - ds; x++) {\n for (y = 0; y < unblended.height - 1; y++) {\n var i = (x + ds) * 4 + y * unblended.width * 4;\n if (unblended.data[i] >= treshold) {\n miny = Math.min(miny, y);\n maxy = Math.max(maxy, y);\n }\n }\n }\n ds = false;\n }\n }\n }\n font.height = maxy + 1 - miny;\n font.basey = basey - miny;\n //detect all pixels\n for (var a in chardata) {\n var chr = chardata[a];\n for (var x = 0; x < chr.width; x++) {\n for (var y = 0; y < maxy + 1 - miny; y++) {\n var i = (x + chr.ds) * 4 + (y + miny) * unblended.width * 4;\n if (unblended.data[i] >= treshold) {\n chr.pixels.push(x, y);\n chr.pixels.push(unblended.data[i]);\n if (shadow) {\n chr.pixels.push(unblended.data[i + 1]);\n }\n chr.bonus += 5;\n }\n }\n }\n //prevent js from doing the thing with unnecessary output precision\n chr.bonus = +chr.bonus.toFixed(3);\n font.chars.push({ width: chr.width, bonus: chr.bonus, chr: chr.chr, pixels: chr.pixels, secondary: chr.secondary });\n }\n return font;\n}\nexports.generatefont = generatefont;\n\n\n/***/ }),\n\n/***/ \"alt1/base\":\n/*!**************************************************************************************************!*\\\n !*** external {\"root\":\"A1lib\",\"commonjs2\":\"alt1/base\",\"commonjs\":\"alt1/base\",\"amd\":\"alt1/base\"} ***!\n \\**************************************************************************************************/\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/ocr/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from \"./modules/dochandler\";\nimport * as settings from \"./modules/settings\";\nimport * as slayer from \"./modules/slayer\";\nimport * as logger from \"./modules/logger\";\nimport \"./index.html\";\nimport \"./appconfig.json\";\n/* COPYRIGHT NOTICE - DO NOT REMOVE\n 2021 @ Unlishema Dragonsworn\n I have programmed this enitre app myself; however, I must give credit where credit is due.\n \n The credits have been moved into their own file @ https://slayer.unlishema.org/pages/credits.html\n*/\n/*\n ~~~ Slayer Assistant App ~~~\n Features coming in the near future (Also my current TODO List)\n\n ~ Before Release for Sure ~\n Update the about page. (Will need updated again on next release)\n Update the changelog page. (Will need updated again on next release)\n Update the credits page. (Will need updated again on next release)\n\n ~ Coming Next Release ~\n Add ability to load the database through a php file instead of the json (Done, except for reapers.json)\n - Add other features to the database query php even if the app don't use them yet (Coming in the future)\n -- Example: http://slayer.unlishema.org/data/creatures.php?q=Dragon&l=10\n -- l=100 could limit results, d could have it give extra details, q could also be setup for seaching, and so on\n\n ~ Coming Very Soon Maybe even next Release ~\n Add in a status tracking area to keep track of xp/hr, kills/hr, and more (Needs finished)\n Adjust histories to use sessionStorage\n\n ~ Near future Release ~\n Add support for Ushubti\n\n ~ Settings Still needed for the app ~\n Settings:\n - Ability to toggle on and off Debug and Verbose mode\n\n - Ability to toggle all hidden creatures\n -- Ability to toggle sub-classes of hidden creatures like (elite), (dragonkin lab) and such\n\n - Ability to select default loading\n -- Default Task(s) on open and adjust doc based on it (Done, Partially)\n -- Load previous task(s) and adjust doc based on it\n\n - Ability to select defaults for everything (Later On)\n -- Select default creature per task\n -- Select default variant per creature\n\n - Ability to customize the Look N Feel of the Slayer Assistant UI (Way Later On)\n - Ability to select how long to save search history (Way Later On)\n - Ability to select the type of search algo for the app (Maybe Later On)\n\n - Ability to turn off app injection (This will fix issues where a user can't inject into the client) [Need to remember what issue caused me to want this]\n\n*/\nif (window.alt1)\n alt1.identifyAppUrl(\"./appconfig.json\");\n// Initialize the JavaScript for the app\ndocument.addEventListener(\"DOMContentLoaded\", function () { return __awaiter(void 0, void 0, void 0, function () {\n var error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n // Setup the main document and load assignment index\n return [4 /*yield*/, dochandler.main.setup.documentMain()];\n case 1:\n // Setup the main document and load assignment index\n _a.sent();\n // Run the Config Setup Process\n return [4 /*yield*/, settings.controller.load()];\n case 2:\n // Run the Config Setup Process\n _a.sent();\n // Start the capture loop at the configured interval\n setInterval(function () {\n slayer.findTask();\n }, settings.controller.autoCapture.loopTimer);\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n logger.error(\"Initialization error:\", error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n}); });\n// Save settings before closing the app\ndocument.addEventListener(\"beforeunload\", function () { return __awaiter(void 0, void 0, void 0, function () {\n var error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, settings.controller.save()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n logger.error(\"Error saving settings:\", error_2);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n}); });\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"main.js","mappings":"AAAA;AACA;AACA,2EAA2E,MAAM,2BAA2B,aAAa,qDAAqD,MAAM,4BAA4B,aAAa,qDAAqD,MAAM,qCAAqC,aAAa;AAC1U;AACA;AACA;AACA,uFAAuF,MAAM,2BAA2B,aAAa,qDAAqD,MAAM,4BAA4B,aAAa,qDAAqD,MAAM,qCAAqC,aAAa;AACtV;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;;;;;;;ACA/C,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,gBAAgB;AAC7F;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,iGAAiG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;;;;;;;;;;;;;;;;;;;ACtN3B,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAA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SAAS;AAC7C;AACA;AAC2C;AACP;AACpC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG;AACrG;AACA;AACA;AACA,oBAAoB,0CAAY;AAChC,4CAA4C;AAC5C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA,4BAA4B,uDAAU;AACtC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;AC3FA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACoC;AACpC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA;AACA;AACA,oBAAoB,0CAAY;AAChC,4CAA4C;AAC5C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wDAAwD;AAC1H;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;ACxGA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC2C;AACP;AACpC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA,oBAAoB,0CAAY;AAChC,8CAA8C;AAC9C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uDAAU;AACnD;AACA,gDAAgD,oBAAoB;AACpE;AACA,4BAA4B,uDAAU;AACtC,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC,sBAAsB;AAChB;AACP;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0DAA4B;AAC7E;AACA;AACA,6CAA6C,0DAA4B;AACzE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,uCAAuC;AAChG;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0DAA4B;AAC7E;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,+BAA+B;AACxF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAwB;AACrE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,+BAA+B;AACxF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AA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AmB;AAC/C;AACA;AACA,4BAA4B,iDAAmB;AAC/C;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC,wBAAwB;;;;;;;;;;;;;;;;;;;;;;ACxlBmB;AACJ;AACJ;AACpC;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI,yCAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,QAAQ,iDAAmB;AAC3B,QAAQ,oDAAsB;AAC9B,QAAQ,yCAAW;AACnB;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,mBAAmB,iDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,uBAAuB,iDAAmB;AAC1C,sBAAsB,iDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,qBAAqB,iDAAmB;AACxC;AACA;AACA;AACA;AACA,CAAC,oBAAoB;;;;;;;;;;;;;;;;;;;;;ACnEuB;AACJ;AACxC;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACA;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACA;AACO;AACP;AACA,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,6BAA6B,iDAAmB;AAChD;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,gCAAgC,iDAAmB;AACnD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrCA;AACO;AACP;AACA,yCAAyC;AACzC;AACA,yCAAyC;AACzC,0CAA0C,EAAE;AAC5C;AACA;AACO;AACP,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC;AACA;AACO;AACP;AACA;AACA,4CAA4C;AAC5C;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AClFA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC2C;AACR;AACO;AACP;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,kBAAkB;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC;AACA;AACA,4BAA4B,iDAAmB;AAC/C;AACA,6CAA6C,iDAAQ,UAAU,8DAA8D,IAAI,8DAA8D;AAC/L;AACA;AACA;AACA;AACA;AACA,6CAA6C,iDAAQ,UAAU,8DAA8D;AAC7H;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wCAAU;AAC1B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiC;AAC3B;AACP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA,CAAC,wBAAwB;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wBAAwB;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA;AACA,oBAAoB,6CAAe;AACnC;AACA;AACA;AACA,oBAAoB,+CAAiB;AACrC;AACA;AACA;AACA,yCAAyC,kDAAoB;AAC7D;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB;AAC5D;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC;AACA,4BAA4B,wCAAU,0BAA0B,eAAe;AAC/E;AACA;AACA,4BAA4B,wCAAU,yBAAyB,eAAe;AAC9E;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,8BAA8B,iDAAmB;AACjD;AACA,4BAA4B,wCAAU;AACtC;AACA;AACA,8BAA8B,iDAAmB;AACjD;AACA,4BAA4B,wCAAU;AACtC;AACA;AACA;AACA,4BAA4B,wCAAU;AACtC;AACA,4BAA4B,wCAAU;AACtC;AACA,4BAA4B,wCAAU;AACtC,kEAAkE,gBAAgB;AAClF;AACA,gCAAgC,wCAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAY;AAChC;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5aA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC8B;AACsB;AACM;AACN;AACb;AACI;AACR;AACnC;AACO,qBAAqB,6DAAe;AACpC,uBAAuB,mEAAkB;AACzC,wBAAwB,6DAAe;AACvC;AACP;AACA,4BAA4B,oCAAoC,6BAA6B;AAC7F;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,mDAAuB;AACtC;AACA;AACA;AACA,YAAY,yCAAW;AACvB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C;AACA,oBAAoB,iDAAmB;AACvC,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,sDAAsD;AAC5H;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,sDAAsD,IAAI,sDAAsD;AACtL;AACA;AACA;AACA,6CAA6C,iDAAmB,UAAU,sDAAsD;AAChI;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAmB;AAC5C;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C,iDAAiD,0DAA4B;AAC7E,yCAAyC,iDAAmB,UAAU,kDAAkD;AACxH;AACA;AACA;AACA;AACA,kDAAkD,0DAA4B;AAC9E,yCAAyC,iDAAmB,UAAU,kDAAkD;AACxH;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB;AAC5D;AACA;AACA;AACA;AACA,oBAAoB,mDAAqB;AACzC,oBAAoB,6CAAe;AACnC,iEAAiE,iDAAmB;AACpF;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAwB;AAChD;AACA;AACA;AACA,wBAAwB,iDAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAsB;AAC1C,oBAAoB,wCAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,qCAAqC,sCAAsC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,+BAA+B,IAAI,+BAA+B;AACxI;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,+BAA+B;AACrG;AACA;AACA;AACA,8CAA8C,iDAAmB,UAAU,+BAA+B;AAC1G;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,yBAAyB,iDAAmB;AAC5C,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrPA,gEAAgE,kDAAkD,6BAA6B;;AAE/I;;;;;;;;;;;ACFA,yEAAyE,2DAA2D,6BAA6B;;AAEjK;;;;;;;;;;;ACFA,+DAA+D,iDAAiD,6BAA6B;;AAE7I;;;;;;;;;;ACFA;AACA,IAAI,IAAyD;AAC7D,2EAA2E,MAAM,OAAO,mBAAO,CAAC,oBAAO,KAAK,aAAa,qDAAqD,MAAM,OAAO,mBAAO,CAAC,sBAAQ,KAAK,aAAa,qDAAqD,MAAM,OAAO,mBAAO,CAAC,wCAAiB,KAAK,aAAa;AAC1U,MAAM,EAK4E;AAClF,CAAC;AACD,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,gDAAgD,aAAa;;;AAG7D,OAAO;;AAEP;AACA;AACA;AACA;AACA;;;AAGA,gDAAgD,aAAa;;;AAG7D,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,+BAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,2BAA2B,+BAAmB;AAC9C,iCAAiC,+BAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,IAAI;AACJ;AACA,iEAAiE,+BAAmB,oBAAoB,+BAAmB;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,iBAAiB,gCAAmB;AACpC,4BAA4B,gCAAmB;AAC/C,iCAAiC,gCAAmB;AACpD,WAAW,gCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,qBAAqB;AACrB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,wBAAwB,kBAAkB;AAC1C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,gCAAgC,SAAS;AACzC,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC,yBAAyB,qBAAqB;AAC9C,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY,WAAW;AACjF;AACA;AACA;AACA,qDAAqD,iBAAiB,WAAW;AACjF,yCAAyC,iDAAiD;AAC1F,0CAA0C,mCAAmC;AAC7E,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;;AAG7D,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,gDAAgD,aAAa;AAC7D;AACA,gCAAmB;AACnB,mCAAmC,gCAAmB;AACtD,kCAAkC,gCAAmB;AACrD,aAAa,gCAAmB;AAChC,0CAA0C,qCAAqC,2CAA2C;AAC1H,6BAA6B,gCAAmB;AAChD,+CAA+C,qCAAqC,4CAA4C;AAChI,oCAAoC,gCAAmB;AACvD,aAAa,gCAAmB;AAChC,aAAa,gCAAmB;AAChC,oBAAoB,gCAAmB;AACvC,mDAAmD,qCAAqC,uCAAuC;AAC/H,kDAAkD,qCAAqC,sCAAsC;AAC7H,mDAAmD,qCAAqC,uCAAuC;AAC/H,mDAAmD,qCAAqC,uCAAuC;AAC/H,kDAAkD,qCAAqC,sCAAsC;;;AAG7H,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;;AAG7D;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC,sBAAsB,gCAAmB;AACzC;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB,kDAAkD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB,oDAAoD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sCAAsC;AACrG;AACA;AACA;AACA,wDAAwD,OAAO,qDAAqD;AACpH;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC,iCAAiC,gCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAA0B;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC,OAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA,6CAA6C;AAC7C;AACA,gDAAgD,aAAa;AAC7D;AACA,+BAA+B,gCAAmB;AAClD,iBAAiB,gCAAmB;AACpC,+BAA+B,gCAAmB;AAClD,gCAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,wBAAwB,OAAO;AAC/B;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,WAAW,2BAA2B;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,4GAA4G,yCAAyC;AACrJ;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,yCAAyC;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,kDAAkD,6BAA6B;;AAE/I;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,yEAAyE,2DAA2D,6BAA6B;;AAEjK;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,+DAA+D,iDAAiD,6BAA6B;;AAE7I;;AAEA,OAAO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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA,iBAAiB,iFAAiF;AAClG;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA,iBAAiB,4EAA4E;AAC7F;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,UAAU,oLAAoL,EAAE,qOAAqO,EAAE,4IAA4I,EAAE,qOAAqO,EAAE,oLAAoL,EAAE,4IAA4I,EAAE,yPAAyP,EAAE,4MAA4M,EAAE,oHAAoH,EAAE,8IAA8I,EAAE,4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ACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;;;;AC7eD;AACA,IAAI,IAAyD;AAC7D,2BAA2B,mBAAO,CAAC,0DAAW;AAC9C,MAAM,EAKiC;AACvC,CAAC;AACD,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,8BAAmB;;;AAG7D,gDAAgD,aAAa;AAC7D;AACA,eAAe,8BAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB,YAAY;AACjC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6CAA6C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA,oBAAoB,mDAAmD;AACvE,iCAAiC,SAAS;AAC1C,6BAA6B;AAC7B;AACA,6BAA6B,YAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2FAA2F;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gGAAgG;AAC1H;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA,iBAAiB,iFAAiF;AAClG;AACA;;AAEA;;AAEA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gCAAmB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;UCrsBD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;AClBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACmD;AACJ;AACJ;AACA;AACrB;AACI;AAC1B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2DAAqB;AAC1D;AACA;AACA;AACA;AACA,qCAAqC,yDAAmB;AACxD;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAe;AACnC,iBAAiB,EAAE,yDAAmB;AACtC;AACA;AACA;AACA,gBAAgB,kDAAY;AAC5B;AACA;AACA;AACA,KAAK;AACL,CAAC,IAAI;AACL;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,qCAAqC,yDAAmB;AACxD;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAY;AAC5B;AACA;AACA;AACA,KAAK;AACL,CAAC,IAAI","sources":["webpack://SlayerAssistant/webpack/universalModuleDefinition","webpack://SlayerAssistant/./images/data/reaper_collapsed_OSL.data.png","webpack://SlayerAssistant/./images/data/reaper_collapsed_RS3.data.png","webpack://SlayerAssistant/./images/data/reaper_expanded_OSL.data.png","webpack://SlayerAssistant/./images/data/reaper_expanded_RS3.data.png","webpack://SlayerAssistant/./images/data/slayer_collapsed_OSL.data.png","webpack://SlayerAssistant/./images/data/slayer_collapsed_RS3.data.png","webpack://SlayerAssistant/./images/data/slayer_expanded_OSL.data.png","webpack://SlayerAssistant/./images/data/slayer_expanded_RS3.data.png","webpack://SlayerAssistant/./modules/SearchAlgorithm.ts","webpack://SlayerAssistant/./modules/SlayerDialogReader.ts","webpack://SlayerAssistant/./modules/UICounterReader.ts","webpack://SlayerAssistant/./modules/data/assignnments.ts","webpack://SlayerAssistant/./modules/data/creatures.ts","webpack://SlayerAssistant/./modules/data/masters.ts","webpack://SlayerAssistant/./modules/data/reapers.ts","webpack://SlayerAssistant/./modules/data/variants.ts","webpack://SlayerAssistant/./modules/dochandler.ts","webpack://SlayerAssistant/./modules/dochandler/animate.ts","webpack://SlayerAssistant/./modules/dochandler/change.ts","webpack://SlayerAssistant/./modules/dochandler/hide.ts","webpack://SlayerAssistant/./modules/dochandler/hover.ts","webpack://SlayerAssistant/./modules/dochandler/main.ts","webpack://SlayerAssistant/./modules/dochandler/open.ts","webpack://SlayerAssistant/./modules/dochandler/show.ts","webpack://SlayerAssistant/./modules/extrafuncs.ts","webpack://SlayerAssistant/./modules/logger.ts","webpack://SlayerAssistant/./modules/settings.ts","webpack://SlayerAssistant/./modules/slayer.ts","webpack://SlayerAssistant/external umd \"canvas\"","webpack://SlayerAssistant/external umd \"electron/common\"","webpack://SlayerAssistant/external umd \"sharp\"","webpack://SlayerAssistant/../node_modules/alt1/dist/base/index.js","webpack://SlayerAssistant/../node_modules/alt1/dist/dialog/index.js","webpack://SlayerAssistant/../node_modules/alt1/dist/ocr/index.js","webpack://SlayerAssistant/webpack/bootstrap","webpack://SlayerAssistant/webpack/runtime/compat get default export","webpack://SlayerAssistant/webpack/runtime/define property getters","webpack://SlayerAssistant/webpack/runtime/global","webpack://SlayerAssistant/webpack/runtime/hasOwnProperty shorthand","webpack://SlayerAssistant/webpack/runtime/make namespace object","webpack://SlayerAssistant/webpack/runtime/publicPath","webpack://SlayerAssistant/./index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sharp\", \"canvas\", \"electron/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SlayerAssistant\"] = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse\n\t\troot[\"SlayerAssistant\"] = factory(root[\"sharp\"], root[\"canvas\"], root[\"electron/common\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {\nreturn ","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAVXG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKrnKwAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXKm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQRroAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAa4G5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3ePXqQAAAYVub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqIw0NAAANGG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+dZ7WgAAAAZub1BFAAAAAAAA7Gu72AAAAAlub1BFAAAAAAAAAAAAoYpy1QAAAAdub1BFAAAAAAAAAFrm3tAAAAh/SURBVHja7ZxvbBt3Gcc/vnNsJ3Z8sZM0aedMZR0J7VqgA2looMGKNHXrNGma9mIgjaIheNEiDRWpmvivakyA9gJerEUgNFQNhIAXE0JjvABENQGtEGXr2qysILUN6R8n9p3vj3323fHCvYu9JKV/k3P3fKQo9tm/ex4/9/j8u+f33Dfx5V1PBFwiP5gFwKhZlCZKGNUKRs0CoOU3aTUDsrkcAI2GhVuvo6hpMukUxeEiumECoOVz2LZD3XGw7RrjY+PRPk++dSJ6nh/M/t/tK+nDzbQlcb28LcvxeOSTRT64+R706gAogyyLXyPhHiHx7a/vCv52+AiFwgi+W0e3TFS1D89romVzKKkMlUqZK+VKx4bvW277SvqwErau9r3vtrhWqhY/+c427PoaWsF6SKSWdyRwwT1OMvxGGYYefeh8XltI5Hpj2X0slfDhPnTLBMtcdmw+ry35YcLtK+nDStiSuF7eVrPhY+nn8AIV+goLLyYykEhD0ICg3pHADom9T38mmJ4+AcDp0zPRa/2Z9hTCqVvRtobrRo/TqRQN1yWdWvwN0TQNXdcXvb7c+5fbvpI+rJQtievSthIJlb07M2ye2kSQKLbzVkmBOgZKDnwTvPMEfntsIpgnqeVzXT81/zg+k+C6mWH1mbkFbd3acX3yK/Daj8rBC792ef3tAYKgzrd2b2X97Rt4861p9u1/A03TmCpV+fyjWRTbdsjnNQqFETRNQxBWk1f/6vD6v9cyNDROf7bEy3/6L636SX7zh+MMj97Ops0fYtbawmv/NFHqjkOlUm7PTXRdoiesKtsfeox6w8TzfBpuk61b1tGXSnDXHQFz81Ualkl57iIf3jKOYtu1aBLeORcRhNVguJDiu18q0p9N8MD9d7Jl7Umeef4oH7+7nwc+qlExa3x/3yNklTMkx8fGmZm9gKr2LTnhFoSV5ODBl3jw3izfe/o+/JbBgV94TJ/O86tDGk89OkmzUaY1/yKvHlZRwuLxUrVBQVhpfv/3Dez5gc+xY4ewzbPoNZcAjzlrCLP6JtMnT7B3v8JscwfJ0kSJf506JVETYkEm3YfvT/DcQZ0vPjbD7sdz7CYATnHspMmPX1nHuvFR7to0RdKoVqKBYU1OEFYTRVHI53I8//MG58oOqqrg+wGjxQE2vCeLqioY1QrJcNpQKIxw8UJVIifEgiDw+OMvn+TIG2Vmy1DMN5kc/B37XhoA2n0iybDaYBh61yqIIKwmqtrH1/Yd4PH7G9wzBufn4YVXkjQ9hb4k2HaN5OTURmZmL+B5TSmVCbGhL6ny9ux6vvlik5bnk1QVTNtgarL9+uTUxu45r5TKhHidfRUG+tPRc89feGxUK+1Smar2AciZV4g1YX6qah9GzUIpDhej3ks58wpxJp1KRU1kxeEiStjPK4sUQi8Q9RQbJoqEQ+hVlLCfVxB650KuDy2fW+jnBaSfV4g1YX7m8xq27Sz08wLSzyvEmjA/K5UydcdZ6OftLEUIQhzpzE/brqGEmgJhKUIQ4kpnfo6PjXcvUghCr1ywGTULpTRRkhqv0FN4XpPSRAnFqFbQsm3pHennFeJMmJ9aNrfQ26CkMhQKIxIdIfYUCiMoqUx72pAfzEalMunnFeJMmJ+VSpn8YHbhBkzfrUt0hNgT5ml0wQaXxNMEIeaEeRpdsIXlB0GIO2GeRjdgdgrtfeFTOwIJkRBHDh89GvWeGzVrsW7DD3/2W4mSEEu2broNWKjzJsM6r26ZYR0tIWES4kh/JhtAR503mUpjXlKtllKZEGfC/DTrDZKpNMnOfl5dN4mHgLEgLEbTtGgxraufV/R5hbij6zq+W1/czyv6vELcabhuVOft6ueVW9+FuBPe+g4d/bxh+UEQ4k6Yp13Lw4LQS3QtD4P08wrxpjM/o35eQPp5hZ4gzFOjZi1UG0SfV4g7Tt3CMPSFasPk1MZoIiylMiHONFw3umCbnNrYPeeVUpkQZzrzU/R5hZ4784Lo8wo9euYVfV6hZxF9XuGWQPR5hZ5D9HmFnkP0eYWeRfR5hZ5F9HmFnkX0eYVb4oJN9HmFnkT0eYWeQ/R5hZ5G9HmFnkT0eYWeRvR5hZ5F9HmFnuWy+rz33j0ZACRV9aY5oCSW2Lfqt/977UY3P/BWNCihT9dr1/N9qoZFparz3Ofex54DJ1i7poiW68cPgmuO643y73K0vIV9x/H41yyjS593UZ03qao31fHlj7qy6om7bGCvkCAIcOou5y7qfHXnBO9f4/Dpj5U4d7GK02gSBMGq+ncl9MLxj22dd6UT90bSbHqUKzU+sjnLwx9o4lbLPDzVxx2jaeaqNVqeL7/713H8F9V546DP6wde9NerXx4/CDDtOs2mw7OfHcVzdPyWS70yx57tt2FbNk7dxQ+C2H65V+WMexXH/536vFE/b6EwsmL9vJ1Oxilhr8uXIMBttfjGU3cyWugnOThKZmQdmcIwY8UBdu14L82mB9eQvDfEv5ieXa/mM4X6vGE/bzLs59WyOXRdZzCbf1dOD67Xn0QiQbY/zbM/Pcsz+xt4HVMEVVXIDaQZKQySSCRuiXitRrxDfV7dMhkpaiShveRWqZTpz2TZ/uA25ufmqTdcfK9BKpNhzegY4Y2aWj6HbTvUHQfbrjE+No5RsyhNlDCqFcJFj+Jw8arHtPwma0bHxL7YX9L+oT//Bd0yo1aGxM4nHgoAxsZGsUwT03IAoiXjzvraUt1n4fbwok9JZaKx1zImdEzsi/13jlm3dpxsLsf58xfbc/ShoQGqVZvp6RPLFoU9r9nlRKeBsO6mW2bkTGdJ42rHLBc0sS/2z5w9E+1raGiAZKsZcPjIEaC7U73huqRTqUX/23MPE7fRompUusaEpYzwqvBaxoh9sX85++1bgf7Dtk/cx/8A/EcyrqMdMKAAAAAASUVORK5CYII=\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAe825vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2Q1aAAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXWm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALW4o8EAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAYyG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgO3bMAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAafG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejEs8AAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD51ntaAAAABm5vUEUAAAAAAADsa7vYAAAACW5vUEUAAAAAAAAAAAChinLVAAAAB25vUEUAAAAAAAAAWube0AAACUVJREFUeNrtnX2MHHUZxz87O/t2u7dzu/fe7im0tKUIpWptKoggGilSEpqYGDDGEkn8oyFBMREMakDA/9SICUUMwSjEBEM0CEJEYsAKbZVCX0/oQWnveu3dbXdn9n12Z8c/tjO3x93VXgt7s+X5JJe7m5vfPL995tnZZ57fM9/zfW/rzTaniHdGATByBVJDKYxsBiNXAKBWr1Kr2kRjMQAqlQJmuYziDxEOBUl2J9GNPABaPEaxWKJcKlEs5hjoH3CP+dZ/D7q/xzuj/3d7K+fwYdoSv56ZrXiXxvETaXL5IorPR6VSoVIxOfTOEboGV/DwQz/nJ/fdT/GdV/A9+KOt9o6du0gkeqibZfRCHr8/gGVV0aIxlGCYTGaKM+VMxzr7zbe9lXNoha2F7vtR9GulUiWdyTM6niYYibLsYx8n3BFn7/49rFu/gQd/8TDP//H3vPnmbsZ2vYDqvKMMQ3dfdDyuTQdyuTKvsbkC3jmGXshDIT/v2Hhcm/PFONtbOYdW2BK/zm+rq6ubvGEwfHSMZPcSnvj1d7ho6QrCvX3s2Pser722iy9s3MT2vz/Prlf/iX34JfadqOP7/h3ftIeHDwJw5MiYe8BIuJFClMqF6XeGabo/h4JBKqZJKBicNRlN09B1fdbf59t/vu2tnEOrbIlfZ9sqlSsUSjUuvHgdv7v3RibKPdR9MZRIBzYqjzz6GDV/mFjEz4mRPTzz0r/54jXrUbV4bMZHze4DYz7OmTEWn7Hz0Nb569d4Z8x+6J7NHE9HGJ0cZ6JocuFggnAgxDc2X8sfnv4rXek9rL3kYqz0EizVj1oslojHtcbHgZ73iIOEjxqbN17Nzpdf5/EX95PPZnnqvq2M+33ccf82hvft5dabrkJZfh2/eWE7fXWFvW8eRCmXSmQyU43cRNfFi8KiMDjYx4Ejk9xy45e5at0nONbRw+33Psq+3f9hw5rl7Ng7QjwS44pVAfIBjctXX4BSLObcJLw5FxGEVjIxeRIjZ4IxxvjoYTpUlZMTxxqJyug4xyay9HV38eRzw6wfhDUXJlEH+gcYG5/A7w/MmXALQit491gaX61AsDLJSLrGoQMHuO1rm3h7NM3QkiTXfel6tm37Jd09MdShy9jzxh4Up3g8V21QEFrF/v0HODqRY8eh4wQVuHrtGlJ9Ma6/cgUJxeSuu+8iaNv87Ie302Wb7N+9DyU1lBLPCYtONKzS39XB+ESOw4ffY8sP7ien5/nbn//Czldf4btbNtIzMMjTzzyH3xrnq5uXoxrZjHsApyYnCK2mJ9HJu0ePceklF3Hw7SO8fmCY1/e/hY2PTdes5aFfPc3aqzZw5WWDdA5dwMdGtk+nDYlEj3hQWDTCoQCDPXGGDx1BDYbQkr1UahZ6rsBTz21n2acv56bPpjiRi/L4Y3/i7idGUJ1qg2HoM1ZBBKGV+Hw+IuEQqf4kpYpJtWpxwWA3iuKjVKnywj/+xbMvvkxnrANNi7Ju7QrUlatWMzY+gWVVpVQmLHIAQyDgJxCIYNs20FjsjcdsklqMdDbN8mVLCah+1q//zMycV0plgpeuxM0/h4IqndEI4VAAgJyeaeS8fn9jg1x5BS/jxKffH8DIFVCS3Um391KuvIKXCQWDbhNZsjuJ4vTzyiKF0A64PcVGHkXcIbQritPPKwjtgt8fQIvHUJr7eTVNE88InsWJz3hco1gsTffzAtLPK3gaJz4zmSnKpdJ0P29zKUIQWk3NsqhZ1mn3aY7PYjGH4mgKOKUIQVgsVL//tH9vjs+B/oGZixSC4NXAff8Nm5ErNPp5pcYrtBOWVSU1lEIxshm0aEN6R/p5BS/jxKcWjWFkT/U2KMGw9PMKbUEi0YMSDDfShnhn1C2VST+v4GWc+Mxkpoh3RqefpKibZfGO4HmcOHVv2OCUeJogeBwnTt0bNqf8IAhex4lTI5tBdeq8Trns27fcYIuLBC+y84033N5zI1dATQ2leHtkxN3hkSefFS8JnuSTlywFpuu8qlPn1Qt5p47mEzcJXiQSjtrQVOdVgyHyp1SrpVQmeBknPvPlCmowJPq8QvugaZq7mDajn1f0eQWvo+s6dbM8u59X9HkFr1MxTbfOO6OfVx59F7yO8+g7NPXzOuUHQfA6TpzOWB4WhHZixvIwSD+v4G2a49Pt5wXR5xXaAydOjVxhutog+ryC1ymVCxiGPl1tWLlqtZsIS6lM8DIV03Rv2FauWj0z55VSmeBlmuPTzXlFn1dolysviD6v0KZXXtHnFdoW0ecVzgtEn1doO0SfV2g7RJ9XaFtEn1doW0SfV2hbRJ9XOC9u2ESfV2hLRJ9XaDtEn1doa0SfV2hLRJ9XaGtEn1doW0SfV2hbTqvPe8WnVtqwsP+LtVAU3xzH9tcb361Go1vdtlrqFGdO52rXqtfJGgUyWZ2f3nYxd247yGBfEi0WoW7bZ+3XD2p+p6P5P1B68fznCsYMfd5ZdV7V7/9QJz7/WVcWPXDndewZYts2pbLJ8Umde7YMsaavxNc/l+L4ZJZSpYpt24s6vzOhHc6/Z+u8rQ7cD5Jq1WIqk2PDpVE2XV7FzE6xaVWAZb0h0tkcNasun/vncP5n1Xm9oM9bty33q13fPHXbJl8sU62WeODWXqySTr1mUs6kuXPjUoqFIqWySd22PfvmXpQr7gLO//v1ed1+3kSip2X9vM2T9FLAntNcbBuzVuPH37qI3kQEtbOXcM8Swolu+pMdbL1hBdWqBWcRvB/I/Dx6dV3Ia3L0eZ1+XtXp59WiMXRdpzMa/0imB+c6H5/PRzQS4oHfjnL3wxWsphTB71eIdYToSXTi8/nOC38thr8dfV69kKcnqaFCY8ktk5kiEo6y8fprOZk+SbliUrcqBMNh+nr7cR7U1OIxisUS5VKJYjHHQP8ARq5AaiiFkc3gLHoku5MLHlOrV+nr7Rf7Yn9O+6+8/Cp6Ie+2Mvi23PwVG6C/v5dCPk++UAJwl4yb62tzdZ85252bPiUYdseezRhnYmJf7L9/zJLBAaKxGCdOTDZy9K6uDrLZIsPDB+ctCltWdcYkmg04dTe9kHcn01zSWOiY+Zwm9sX+0dGj7rG6ujpQa1Wbnbt2ATM71SumSSgYnPW9kXvkMSs1skZmxhinlOHcFZ7NGLEv9k9nv/Eo0Ltce83n+R+bCm28wSXdjwAAAABJRU5ErkJggg==\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAehm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYX5ysAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAQyklEQVR42u1da4wlx1X+uh7dfR9zZ2Zndvbh127sTWxjr53YRCaOQyxZBIMTBQmIBD8QIfIPIBL/CD9AJARZAgmiSBGOAhFIEUIyivIDQkA8xGPBD4Gdtb12FK8fa++ud2ZnZ+6de/t2V1dV86P61O17vSYOhJm7q/qk0b1zu7u66pzTp0+dOnVO9LGff7i6tPEmGOcAAM4FCMZoNGGNgYwTAECpCv+9+T99GqNRVRZCxAAArRUqW02d0/wEMNU2/d9sh/rDuYAxGtYYMM79/9T3UhVgnE8db44nabVQjMd+THROsz9Ej+a46R7N/jXHS32j62fbbLb9P91vltazNKZ+NMdM47vS+WetxXi0g1IpqCJHxCKwiOPSxgXccOQIvvylL+B3Pvd5ZC//K8RL3zmFN149DcYYGOfQZQlrDRaXV1DkOXSpIGQMaw0YcwRWRQ4AEFIiThLkWQatS8RJCsY4dKkAAGm7DV1OCKiK3N+HiOnaif0xIeOpewJAq93BaGcAAFNM1mUJISWsMRAybvyuwDhHnCRQReH7ZK1FnKT+vHw8AmPc/0ZjnO3/7HnUfrP/SZpip7891R9qR8gYQgqoopjqN2Pc07JJf6JrNhxell6M86lrm/xSRX7F8s8ag1LlyEc7WFldxrvfdRRpuoBnT53E++/5AB75wh/hW3/5NaQtic2shACAOEmhihxpu+0739/aRLe3OMUs6mC728Vw0AdjKbLhENYapK0O8vEIaaszEY4smyJcu9v1wkSdJwgpa8I7AUvSFKOdAYSMsdPfvixhSACoj0RwascJBffXCCmQZ5lnPjHLWuMZQczw2soaCCHRWehhtDPwxGeMTwmptQZxkvp7NYXS9U83hJZBFXl9f+bPT9ttp40YhyoK/7CoIoeQcqpda8zUwzThV3pF8k/lY6g8w203H8Pv/dYv4aZrjiHdv4Ynnn0Njz/+FO7/8Ydw4h++haf+499QvfqPeOqMQnT8ng9X515/zTeapI4gSZqiyHPfOfpdGwNTllhcXsFoOIQuC38sGw2RpB1wHkHXwmDqASZp6n+LwMB5NNUeAEgpYWeuoT7Q9yRNYUwFzqO3HBMygS6LqVcl9a15rjEVKlgIzt/SBpfS338WXEp/jZCJHwO1z6X0Y6b70rFmP5rjarY5e02Tbs02tTEQ9UM02//muK8U/kkpsX1xHbfffhxf++xPYj1fhY26YK02Kgh8+StfheYpui2OC6dP4ut/9ySuOXoTolvv/mD15tkzsMags9DD2dMvRAgI2EV0llYrnWd48q9/H/mghTc2LmE9Uzh6aBmpTAAW4S++/jdYUSdx5PDN+Kt/fhpPXhTObCDV3XzyAwJ2CyyK8ImH7seT//Jf+NO/fx7D7W089rlfwXke4dc+/yhefO5Z/OLH7wO78SP44789gbWKo+hfBGsazwEBewFrLQ4dXsOpMxv4uY/+GO67+4dwrr2KT3/2K3ju6f/EPcdvxBPPnkav1cUH3iMxlIu47+73gAkh/OQhIGAvoEuF9Y1LGOwoYHAW5994FW0hcGn9HADg7BvncW59G2srS/jzb76I9x8Cjh/dB6G1Rpyk3q0RELDrZgMXePnsJrgZIS42cHpT46VTp/CpTzyE776xiesO78NHHngQjz76RaysdiGuux0nnzk5MRsY41Oz04CA3ULSauOZk8/h9fUdPPHSm4gZ8KN3Hse1a108eO8xLDOFz/zGZxBXFf7gNz+NpUrh+aefQ/Teex+oXn/1NFSRY/XAQbz8/NPB2xCwq1g+cG2VDQe465Yb8Morr8FUDHfcciN+4kPvwzNP/DuG4ww/+9MP4fFT6xgNLuDm1Qrrwzedq+zSxQvQpUaSpsFVFrDr2Hfo+spoDVOMcc/xo3jxpTMYF2OgYqgQ4aEP34mXv30ad953D374phgL1x2BPX3CmQ261H7lJiBg170NxkDKGDLt4MS3XwZEjIXl/RiXBlv9IR775gm866478PEfuRYXdjr46p98A5/60vPObDj9necRJyl6S0vBbAjYdXT3rVVCuNVJRABnzAXmqKJehteIqgpJzKGUho0Yjh671S1SWGt8bEBAwK4Lb28ReZbBWot2t4tsOEScthCnbVhr0On1sLO1hYXFRfS3LsEag7TdASuKHEJIF9FkgrssYPdBgssYQ55ltevWQhU5Wu0O+pubEDJGxEUdYBWjKHKwJEl9lJUJq2wBewCK4nPRZhZCCh/lV+QuxFMVOUxZgjEOxjmSJHWal2JDQ2xDwF6BQkddWKlG2m4jTlLk4xHiJIWQEkma1mGd3GneQLaAufA4WAtrjQu9LFUdSyyQtjqIk+TyAt/p9qCKHAuLS2GFLWBPQMH2uiwxzkYuaF2XGA760KWCLjXiJEGROzlVRY5Ot+c0b5ykGGcjH0wdELDbaLU7botRvbPFady03oqkMBz0waXEOBv5IDJW5Fltc3B0u71AxYBdR7vbRX9rE1o7h0EzPFcVBbQukbY66HZ7Pva8yDOneYUUsNZgNBwGSgbsOrLh0Alnb9FvIE1St7+Q/lSRY1TvtxPS7ZBmWut6lyp/y/6vgIDd8jRMbNvUm7GqcLufFxaX6oU0t+KWDYfQWrtgdFHbusFVFrAnwss59u1fg5DC7XRmk+3xQsbob20ibXW8fAopIYRwmndiRwRvQ8BeaF6O9fNnfdIR+o1SMszKJ2PcaV4AYRdFwJ6CBHS0M/C5L/LxyGvapdX9UzJK35kQoqGik0DJgD2xeRljPp4BcME6O/1txEmKYX+7TvAykU9vNjgnsZhKohEQsJvQukS72wUAdBZ6yLOsVqguzsFaC86jOm1WDq01RJKkEEJClzrYvAF7Amtt7SZzKa5GOwO/XJwNh1g9cBBFnte51zSEkI3AHO5WNcIKW8BeYPXAQQwHfR8c1lnoedPBWoNsNPQrwNa6zJKTkMh6NhdCIgP2Auvnz4IxjsXlFez0t70FkGcZFpdXXLxvIycaY42QSIqXXFxeCZQM2IMJG0er20F/a3M63SznGGcjf97i8opfgSuK3Nm8tASXj0e4/2d+oQrkDJhHvHbqpJfVJEkhjNHQpUKcuBSU//TYnwUqBcwlrrnxFu8HNkbTBkwLXSpyCgd/WcC8oqIM9wAoqizENgTMP5qxDV54ZeI2wBkTzN2A+QXJJ8kr41ygyMZ+BSMgYF7BeQRrLYpsDM4pM/pMGaWAgHlFsxqRKIrcrx2H5eGAeYbL4eAma0WRT6LKRFgaDrgCQHIqhHA2L0lzQMCVADc/E5MiggEBV4bNyxEntc1LVRVpx2ZAwDyDSukKGTs/78LiEnx+1ICAebZ5hcTC4pLTwqPhwKfYCQiY/wlbjHE2wmg4mFTATNI0mA0Bc43ZOtIsqWuwNeMmAwLmFeNs5OZnPhi9TuQbMqMHzDNIPq0xk/y8QsZua3FYJg6YZ3uX83oLfDwxG3SpIGQcosoC5hrGVC53b6mmdw8DCIn2AubbbKjlc2r3MGUpCd6GgCvB26CK3GleIWPvKgtRZQHzjCLPfd5eIWMw2nw5zkZB8wbMvealtP66VM7mBTCVEzUgYF7h050WOdjyyn6faC8gYN5BifaWV/aDbW1uuGJtWRYWKQLm29tgjC/vurW5MV1EMCxSBMy11p2RT+8qY5xDxiG5dMD8QsYJGOcTVxkw2UkxHPQDhQLmFiSfkyKC9S6K4G0IuFK8DZQlkgGu4mCI5w2Yd5CMUoVMIYTwGSKN0YFCAXOLbDT0hQaFEBBauxSnANBbWsK+Q9dXuix9FW6yLyjybPbTWgNrXCLg5vnevVGfR/ETQkof1kb3pe9pu42sUUKWMQYhY+TjEdJWZ+qeVNKTMqioIvf78CjQiJKp0IqMtdZXnZlKYsy4b5tA40rbbQwHfX9/ay3a3S5UUfjrqD1V5JBxDDXOwO0If/jLt+JXv/gCWNKBiBMkaQpVFFBF7u8fJ4lvn+hFdIgTp2lGOwMwzr1p16Q5vTmJX7OfVxP/2p0uLm2su35pTTspbKOzpa++zRjzCxjUQapfQWlRnQ1ivSHtynC6Qc0G/EwExvq2mgIzHPRhrZkY5A3XiKsAMyk74HaRskksspC+LWuM96D4jIKcT85v1PQiG4oYRHWY3Y5qC11Ov43iJPX1EwjtbtflOI4TqHyMPBvidx8+gjvXcnzy/uugxiNoVSCvd6uQoKoiB+fCx5YQ3XSp/SbD/tYmOgu9xoNiPFMvx6+rmX8TxWLf6m2gJ6uz0JvSRKoofJp1Ve+8iJPUMzxu1LUgQjS1CwX8EDGoZJEuS88QChCiJ5TOaTI7rrcskdDRgBxDrNcC1JbfIdIoCWqt8fdQRV7Xty29pnCvpaQmpoQqcqStTi0EcW1rySlGqqJoMLXAA3f18NE7Sqjti/jYzRK3XduC1SUQRVPaXgiJIs99bImQMToLPQgpUOQ58vHIn0PC4rRq7AV1ll9XO/8u621oSj11tvkUxUkCXZbo9haxb/9a45UhJ3XcJPdEiZMUXHL/lLrfZd2ORtpuQ0iJtN32WoUG54hceKFykUQMcZL4AQkp/XUkeE0CUz9o0MR8uiZtt32R5rjh6yZtSP1qggo5U7tCCn+tNa6wc0eUeOSTazDjPqxWyLc28esPXgtR5bDawGpdC53wGoiYSYJC2p6ip5pvRVFXxKHX6Sy/rmb+kXCTt4Efefdtv33h3BkwzhFFDEU+RlXZ+uktUaraRtIlrLWQcYz+1iVUVYWIRYiTBFHkXk9RvWCnSwWtS2hV21ARYLRG0mp5xtArpKpch1sdp92i+pVX5GNXTG6cwVqDqqqgigKtTgelUjDGIGIRuJAolUKr04G1FhGLYLT2gmiMhowTf7+mieBeSy7dFRcCUcRAZQ50WYJxDi5cMWcZJ+67LlFVFoxz5OMMxmhXM7eqAGvwyMM34H3HWoiEhLI9qLKNxaUuDqz28NQrY2hd1m06eu4/eBg7/W0krdRXgKwqV4OMFo2IPlVV+euElIgi5vtD/DLGXLX840KgVG7OcPi6o4huvfuD1bkzr0DIGL2lJayfPztlf9CEhJ46VRT+6WlOfCiTCT1B9IQ0Jw8A0Op2MBoM0O0tuuuyzL8ynO1IFTmlnzARwehV1pxE0NOuy9JPpCbnld6uot9oktCcCDQnGqsHDmL9/FlvKsxO8OgBoLa9PR0xKJVDFzlKVaCqLKIoQlVVEEKCcQFEEZZWDzTMDOPNkuab4XL3ITqQdiX60kSH+EWmxtXIv9UDBzHY3oYuFQ5fXwvv+vmz9SsmweLSMsq6o2mr42eKzU9ZG9Fc1BnVtUJZlugu9DDcGfhrjVbgIvbHyfaZ/Z/aLMvSfzZtJTpfSgkuJrNXar95vV9KrM9t3sto5Y/P9n22L7PX0j2b51A7szRqTkqIJtRm81jzGurbLA3oPm/Hk1l6UZ+vRv5dunjBe3nWDl2D6L33PlC98t0Xptwmu+FSaj5xs8Y8aYgfpEuJNEhTszU1a3O23dRa79SF1NRYe+kCnP28GvmnS4Wjx25xE7amC2NXXEpE9HrW62bOyjOGiib/IFxKbvKRNGbnwruD4iRF2m77CUTTDdSceVN/aSwTn6fwx2nG/L1cSDSh+f9yAV7N/POKQ5coihzRhx78qerixsY7XuUQQriK23VSaq31O77m7WC0QrvTQ5YNwbl42zaa90uS1K8IDnf6U69rAH4i9f3ie/X1/3rt90u//+04rnb+re7fj/8GO6Pn3eR9G3UAAAAASUVORK5CYII=\")","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar SearchData = /** @class */ (function () {\n function SearchData() {\n this.reaper = false;\n this.task = 'Dragons';\n this.probability = 0;\n }\n return SearchData;\n}());\nexport { SearchData };\nvar SearchAlgorithm = /** @class */ (function () {\n function SearchAlgorithm() {\n this.assignmentsCache = {};\n this.reapersCache = {};\n this.data = new SearchData();\n }\n SearchAlgorithm.prototype.lookup = function (lookup_1) {\n return __awaiter(this, arguments, void 0, function (lookup, skipReaper) {\n var probabilities, reapers, assignments;\n if (skipReaper === void 0) { skipReaper = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n probabilities = {};\n this.data = new SearchData();\n if (!!skipReaper) return [3 /*break*/, 2];\n return [4 /*yield*/, this.fetchData(\"reapers\")];\n case 1:\n reapers = _a.sent();\n this.calculateProbabilities(reapers, lookup, probabilities, true);\n _a.label = 2;\n case 2: return [4 /*yield*/, this.fetchData(\"assignments\")];\n case 3:\n assignments = _a.sent();\n this.calculateProbabilities(assignments, lookup, probabilities, false);\n // Find the best match\n return [2 /*return*/, this.findBestMatch(probabilities)];\n }\n });\n });\n };\n SearchAlgorithm.prototype.fetchData = function (type) {\n return __awaiter(this, void 0, void 0, function () {\n var cacheKey, data, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n cacheKey = type === \"reapers\" ? \"reapersList\" : \"assignmentsList\";\n if (!(cacheKey in this[\"\".concat(type, \"Cache\")])) return [3 /*break*/, 1];\n data = this[\"\".concat(type, \"Cache\")][cacheKey];\n return [3 /*break*/, 4];\n case 1: return [4 /*yield*/, fetch(\"./data/\".concat(type, \".json\"))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n data = _a.sent();\n this[\"\".concat(type, \"Cache\")][cacheKey] = data;\n _a.label = 4;\n case 4: return [2 /*return*/, data];\n }\n });\n });\n };\n SearchAlgorithm.prototype.calculateProbabilities = function (data, lookup, probabilities, isReaper) {\n for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {\n var a = data_1[_i];\n var indexScore = this.calculateIndexScore(a[\"index\"], lookup);\n probabilities[a[\"index\"]] = {\n reaper: isReaper,\n index: indexScore,\n alias: {},\n creatures: {}\n };\n for (var _a = 0, _b = a[\"alias\"]; _a < _b.length; _a++) {\n var b = _b[_a];\n probabilities[a[\"index\"]].alias[b] = this.calculateIndexScore(b, lookup);\n }\n for (var _c = 0, _d = a[\"creatures\"]; _c < _d.length; _c++) {\n var b = _d[_c];\n probabilities[a[\"index\"]].creatures[b] = this.calculateIndexScore(b, lookup);\n }\n }\n };\n // Calculate index score based on matching logic\n SearchAlgorithm.prototype.calculateIndexScore = function (index, lookup) {\n var score = 0;\n // Normalize input for comparison\n var normalizedIndex = index.toLowerCase();\n var normalizedLookup = lookup.toLowerCase();\n // Exact matches\n if (normalizedIndex === normalizedLookup) {\n score += 100; // Highest score for exact matches\n }\n else if (normalizedIndex === normalizedLookup + 's') {\n score += 90; // High score for plural matches\n }\n else if (normalizedLookup === normalizedIndex.slice(0, -1) && normalizedIndex.endsWith('s')) {\n score += 80; // High score for singular form matches\n }\n else {\n // Calculate the edit distance\n var editDist = this.editDistance(normalizedIndex, normalizedLookup);\n // Close matches within 3 characters\n if (editDist <= 3) {\n score += 40; // Boost for close matches\n }\n // Starts with lookup\n if (normalizedIndex.startsWith(normalizedLookup)) {\n score += 30; // Boost for prefix matches\n }\n }\n return score;\n };\n SearchAlgorithm.prototype.findBestMatch = function (probabilities) {\n for (var key in probabilities) {\n if (probabilities[key].index > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].index;\n }\n this.checkAliasMatches(probabilities, key);\n this.checkCreatureMatches(probabilities, key);\n }\n return this.data;\n };\n SearchAlgorithm.prototype.checkAliasMatches = function (probabilities, key) {\n if (probabilities[key].alias) {\n for (var _i = 0, _a = Object.keys(probabilities[key].alias); _i < _a.length; _i++) {\n var aliasKey = _a[_i];\n if (probabilities[key].alias[aliasKey] > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].alias[aliasKey];\n }\n }\n }\n };\n SearchAlgorithm.prototype.checkCreatureMatches = function (probabilities, key) {\n if (probabilities[key].creatures) {\n for (var _i = 0, _a = Object.keys(probabilities[key].creatures); _i < _a.length; _i++) {\n var creatureKey = _a[_i];\n var creatureScore = probabilities[key].creatures[creatureKey];\n // Increase the visibility of creatures but keep them as a lower priority\n if (this.data.probability < 10) { // Allow creatures to show up if current probability is low\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = Math.max(this.data.probability, creatureScore + 20); // Add a base boost for creatures\n }\n }\n }\n };\n SearchAlgorithm.prototype.editDistance = function (s1, s2) {\n s1 = s1.toLowerCase();\n s2 = s2.toLowerCase();\n var costs = [];\n for (var i = 0; i <= s1.length; i++) {\n var lastValue = i;\n for (var j = 0; j <= s2.length; j++) {\n if (i === 0) {\n costs[j] = j;\n }\n else if (j > 0) {\n var newValue = costs[j - 1];\n if (s1.charAt(i - 1) !== s2.charAt(j - 1)) {\n newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\n }\n costs[j - 1] = lastValue;\n lastValue = newValue;\n }\n }\n if (i > 0) {\n costs[s2.length] = lastValue;\n }\n }\n return costs[s2.length];\n };\n return SearchAlgorithm;\n}());\nexport { SearchAlgorithm };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport DialogReader from 'alt1/dialog';\nvar SlayerData = /** @class */ (function () {\n function SlayerData() {\n this.selectYourOwn = false;\n this.ticket = false;\n this.reaper = false;\n this.count = [];\n this.task = [];\n }\n return SlayerData;\n}());\nexport { SlayerData };\nvar SlayerDialogReader = /** @class */ (function () {\n function SlayerDialogReader() {\n }\n SlayerDialogReader.prototype.read = function () {\n return __awaiter(this, arguments, void 0, function (buffer) {\n var data, box, msg, countText, e, countText, e, i, msg, countText;\n if (buffer === void 0) { buffer = null; }\n return __generator(this, function (_a) {\n if (!buffer) {\n buffer = a1lib.captureHoldFullRs();\n }\n if (!this.dialogReader) {\n this.dialogReader = new DialogReader();\n }\n this.data = new SlayerData();\n data = this.dialogReader.find(buffer);\n if (!data)\n return [2 /*return*/, null];\n box = this.dialogReader.read(buffer);\n if (!box)\n return [2 /*return*/, null];\n if (box.text && (!box.opts || box.opts.length !== 2)) {\n msg = box.text.toString();\n // Parsing logic for various types of dialogs\n if (msg.toLowerCase().includes(\"select your own task\")) {\n this.data.selectYourOwn = true;\n }\n if (msg.toLowerCase().includes(\"require you to collect\")) {\n this.data.reaper = true;\n countText = msg.substring(msg.indexOf(\"collect \") + 8, msg.indexOf(\" souls\"));\n this.data.count[0] = parseInt(countText);\n this.data.task[0] = msg.substring(msg.indexOf(\"battle: \") + 8, msg.indexOf(\". Can\"));\n }\n if (msg.toLowerCase().includes(\"new task is to kill\")) {\n e = msg.substring(msg.indexOf(\"kill \") + 5, msg.length - 1);\n countText = e.substring(0, e.includes(\",\") ? e.indexOf(\",\") : e.indexOf(\" \"));\n this.data.count[0] = parseInt(countText);\n this.data.task[0] = e.substring((e.includes(\",\") ? e.indexOf(\",\") : e.indexOf(\" \")) + 1);\n }\n if (msg.toLowerCase().includes(\"still need to kill\")) {\n e = msg.substring(msg.indexOf(\"kill \") + 5);\n this.data.count[0] = parseInt(e.substring(0, e.indexOf(\" \")));\n this.data.task[0] = e.substring(e.indexOf(\" \") + 1, e.includes(\".\") ? e.indexOf(\".\") : e.length - 1);\n }\n if (msg.toLowerCase().includes(\"still hunting\")) {\n this.data.task[0] = msg.substring(msg.indexOf(\"hunting \") + 8, msg.indexOf(\";\"));\n }\n }\n if (box.opts && box.opts.length === 2 && (box.title && box.title.toLowerCase().includes(\"change your assigned slayer task\"))) {\n this.data.ticket = true;\n for (i = 0; i < box.opts.length; i++) {\n msg = box.opts[i].text;\n countText = msg.substring(0, msg.indexOf(' '));\n this.data.count[i] = parseInt(countText);\n this.data.task[i] = msg.substring(msg.indexOf(' ') + 1, msg.includes('(') ? msg.indexOf('(') - 1 : msg.length);\n }\n }\n return [2 /*return*/, this.data];\n });\n });\n };\n return SlayerDialogReader;\n}());\nexport { SlayerDialogReader };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport * as OCR from \"alt1/ocr\";\nimport * as settings from \"./settings\";\nvar imgs = a1lib.webpackImages({\n slayer_expanded_RS3: require(\"../images/data/slayer_expanded_RS3.data.png\"),\n slayer_expanded_OSL: require(\"../images/data/slayer_expanded_OSL.data.png\"),\n reaper_expanded_RS3: require(\"../images/data/reaper_expanded_RS3.data.png\"),\n reaper_expanded_OSL: require(\"../images/data/reaper_expanded_OSL.data.png\"),\n slayer_collapsed_RS3: require(\"../images/data/slayer_collapsed_RS3.data.png\"),\n slayer_collapsed_OSL: require(\"../images/data/slayer_collapsed_OSL.data.png\"),\n reaper_collapsed_RS3: require(\"../images/data/reaper_collapsed_RS3.data.png\"),\n reaper_collapsed_OSL: require(\"../images/data/reaper_collapsed_OSL.data.png\"),\n});\nvar UICounterData = /** @class */ (function () {\n function UICounterData() {\n }\n return UICounterData;\n}());\nexport { UICounterData };\nvar UICounterReader = /** @class */ (function () {\n function UICounterReader() {\n this.countFont = null;\n this.taskFont = null;\n this.data = null;\n }\n UICounterReader.prototype.read = function (buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, width, height, _i, _c, match, countText;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!buffer)\n buffer = a1lib.captureHoldFullRs();\n if (!!this.countFont) return [3 /*break*/, 2];\n _a = this;\n return [4 /*yield*/, fetch(require(\"../fonts/aa_10px_mono.fontmeta.json\")).then(function (r) { return r.json(); })];\n case 1:\n _a.countFont = _d.sent();\n _d.label = 2;\n case 2:\n if (!!this.taskFont) return [3 /*break*/, 4];\n _b = this;\n return [4 /*yield*/, fetch(require(\"../fonts/aa_8px_mono.fontmeta.json\")).then(function (r) { return r.json(); })];\n case 3:\n _b.taskFont = _d.sent();\n _d.label = 4;\n case 4:\n // Reset data for next search\n this.pos = [];\n this.data = null;\n // Look for all UI Elements until we find one, then the rest will get skipped\n this.findUIElement(buffer, imgs.slayer_collapsed_OSL, { reaper: false, collapsed: true, OS: true });\n this.findUIElement(buffer, imgs.slayer_expanded_OSL, { reaper: false, collapsed: false, OS: true });\n this.findUIElement(buffer, imgs.slayer_collapsed_RS3, { reaper: false, collapsed: true, OS: false });\n this.findUIElement(buffer, imgs.slayer_expanded_RS3, { reaper: false, collapsed: false, OS: false });\n this.findUIElement(buffer, imgs.reaper_collapsed_OSL, { reaper: true, collapsed: true, OS: true });\n this.findUIElement(buffer, imgs.reaper_expanded_OSL, { reaper: true, collapsed: false, OS: true });\n this.findUIElement(buffer, imgs.reaper_collapsed_RS3, { reaper: true, collapsed: true, OS: false });\n this.findUIElement(buffer, imgs.reaper_expanded_RS3, { reaper: true, collapsed: false, OS: false });\n // If we don't find any data or we found too many matches then return\n if (!this.data && this.pos.length == 0)\n return [2 /*return*/, null];\n width = this.data.collapsed ? imgs.slayer_collapsed_OSL.width : imgs.slayer_expanded_OSL.width;\n height = this.data.collapsed ? imgs.slayer_collapsed_OSL.height : imgs.slayer_expanded_OSL.height;\n // Loop the results and return the data we find\n for (_i = 0, _c = this.pos; _i < _c.length; _i++) {\n match = _c[_i];\n // Overlay a rectangle around the matched area on screen if we're running in alt1\n if (window.alt1 && alt1.permissionOverlay && settings.controller.ui.overlay)\n alt1.overLayRect(a1lib.mixColor(255, 255, 255), match.x, match.y, width, height, 500, 3);\n // Get the pixel data for the matched area\n this.data.img = buffer.toData(match.x, match.y, width, height);\n countText = OCR.findReadLine(this.data.img, this.countFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], this.data.collapsed ? 10 : 72, 15, 30, 3);\n this.data.count = parseInt(countText.text);\n if (!this.data.collapsed)\n this.data.task = OCR.findReadLine(this.data.img, this.taskFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], 9, 28, 156, 3).text;\n }\n return [2 /*return*/, (!this.pos || this.pos.length == 0) ? null : this.data];\n }\n });\n });\n };\n UICounterReader.prototype.findUIElement = function (buffer, img, mode) {\n if (!this.data && this.pos.length == 0)\n this.pos = buffer.findSubimage(img);\n if (!this.data && this.pos.length > 0)\n this.data = { reaper: mode.reaper, collapsed: mode.collapsed, OS: mode.OS, img: null, count: -1, task: null };\n };\n return UICounterReader;\n}());\nexport { UICounterReader };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as logger from \"../logger\";\nvar cachedData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar cacheTimestamp = Date.now();\n// Fetch and cache the assignments data\nfunction fetchAssignments() {\n return __awaiter(this, arguments, void 0, function (index) {\n var response, error_1;\n if (index === void 0) { index = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(index != \"all\" || (!cachedData || (Date.now() - cacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/assignments.json?q=\".concat(index))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedData = _a.sent();\n cacheTimestamp = Date.now() + (index == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedData];\n }\n });\n });\n}\n// Fetch a single assignment based on the index or alias\nexport function get(assignment) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedAssignment, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchAssignments(assignment)];\n case 1:\n data = _a.sent();\n lowerCasedAssignment = assignment.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (a[\"index\"].toLowerCase() === lowerCasedAssignment) {\n return [2 /*return*/, a];\n }\n if (a[\"alias\"].some(function (alias) { return alias.toLowerCase() === lowerCasedAssignment; })) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n// Get an array of the index\nexport function getIndexList() {\n return __awaiter(this, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchAssignments()];\n case 1:\n data = _a.sent();\n return [2 /*return*/, data.map(function (a) { return \"\\n\\r\"); }).join('')];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { decodeHtml } from '../extrafuncs';\nimport * as logger from \"../logger\";\nvar cachedCreaturesData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar creaturesCacheTimestamp = Date.now();\n// Fetch and cache the creatures data\nfunction fetchCreatures() {\n return __awaiter(this, arguments, void 0, function (name) {\n var response, error_1;\n if (name === void 0) { name = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(name != \"all\" || (!cachedCreaturesData || (Date.now() - creaturesCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/creatures.json?q=\".concat(name))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedCreaturesData = _a.sent();\n creaturesCacheTimestamp = Date.now() + (name == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedCreaturesData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedCreaturesData];\n }\n });\n });\n}\n// Fetch a single creature based on the name\nexport function get(creature) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedCreature, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchCreatures(creature)];\n case 1:\n data = _a.sent();\n lowerCasedCreature = creature.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === lowerCasedCreature) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { decodeHtml } from '../extrafuncs';\nimport * as logger from \"../logger\";\nvar cachedMastersData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar mastersCacheTimestamp = Date.now();\n// Fetch and cache the masters data\nfunction fetchMasters() {\n return __awaiter(this, arguments, void 0, function (name) {\n var response, error_1;\n if (name === void 0) { name = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(name != \"all\" || (!cachedMastersData || (Date.now() - mastersCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/masters.json?q=\".concat(name))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedMastersData = _a.sent();\n mastersCacheTimestamp = Date.now() + (name == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedMastersData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedMastersData];\n }\n });\n });\n}\n// Fetch a single master based on the name\nexport function get(master) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedMaster, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchMasters(master)];\n case 1:\n data = _a.sent();\n lowerCasedMaster = master.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === lowerCasedMaster) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as logger from \"../logger\";\nvar cachedReapersData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar reapersCacheTimestamp = Date.now();\n// Fetch and cache the reapers data\nfunction fetchReapers() {\n return __awaiter(this, arguments, void 0, function (index) {\n var response, error_1;\n if (index === void 0) { index = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(index != \"all\" || (!cachedReapersData || (Date.now() - reapersCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/reapers.json\")];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedReapersData = _a.sent();\n reapersCacheTimestamp = Date.now() + (index == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedReapersData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedReapersData];\n }\n });\n });\n}\n// Fetch a single reaper based on the index or alias\nexport function get(reaper) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedReaper, _i, data_1, a;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchReapers(reaper)];\n case 1:\n data = _a.sent();\n lowerCasedReaper = reaper.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (a[\"index\"].toLowerCase() === lowerCasedReaper) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n// Get an array of the index as HTML option elements\nexport function getIndexList() {\n return __awaiter(this, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchReapers()];\n case 1:\n data = _a.sent();\n return [2 /*return*/, data.map(function (a) { return \"\\n\\r\"); }).join('')];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { decodeHtml } from '../extrafuncs';\nimport * as logger from \"../logger\";\nvar cachedCreaturesData = null;\nvar CACHE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\nvar creaturesCacheTimestamp = Date.now();\n// Fetch and cache the creatures data\nfunction fetchCreatures() {\n return __awaiter(this, arguments, void 0, function (name) {\n var response, error_1;\n if (name === void 0) { name = \"all\"; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(name != \"all\" || (!cachedCreaturesData || (Date.now() - creaturesCacheTimestamp) > CACHE_EXPIRATION_MS))) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(\"./data/creatures.json?q=\".concat(name))];\n case 2:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 3:\n cachedCreaturesData = _a.sent();\n creaturesCacheTimestamp = Date.now() + (name == \"all\" ? 0 : -CACHE_EXPIRATION_MS); // Update timestamp after fetching new data\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.error(\"Error fetching data:\", error_1);\n cachedCreaturesData = []; // Set to empty array on error to prevent further errors\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, cachedCreaturesData];\n }\n });\n });\n}\n// Fetch a single variant based on the creature name and variant name\nexport function get(creature, variant) {\n return __awaiter(this, void 0, void 0, function () {\n var data, lowerCasedCreature, lowerCasedVariant, _i, data_1, a, _a, _b, b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, fetchCreatures(creature)];\n case 1:\n data = _c.sent();\n lowerCasedCreature = decodeHtml(creature.toLowerCase());\n lowerCasedVariant = variant.toLowerCase();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === lowerCasedCreature) {\n for (_a = 0, _b = a[\"variants\"]; _a < _b.length; _a++) {\n b = _b[_a];\n if (b[\"name\"].toLowerCase() === lowerCasedVariant) {\n return [2 /*return*/, b];\n }\n }\n }\n }\n return [2 /*return*/, null];\n }\n });\n });\n}\n","// Import required modules\nimport * as main from './dochandler/main';\n// Export required modules\nexport * as animate from './dochandler/animate';\nexport * as change from './dochandler/change';\nexport * as hide from './dochandler/hide';\nexport * as hover from './dochandler/hover';\nexport * as main from './dochandler/main';\nexport * as show from './dochandler/show';\nexport * as open from './dochandler/open';\n// Function to get the side element based on the index\nexport function getSide(i) {\n var base = main.get.elid(\"base\");\n var side = main.get.elc(i === 0 ? \"left\" : \"right\", base);\n if (!side) {\n side = main.get.elc(\"single\", base);\n }\n return side;\n}\n","// Import required modules\nimport * as dochandler from '../dochandler';\n// Function to show the loading bar\nexport function loading() {\n var loadingBar = dochandler.main.get.elid(\"loading-bar\");\n if (loadingBar) {\n loadingBar.style.visibility = \"visible\";\n }\n}\n// Function to hide the loading bar\nexport function loadingStop() {\n var loadingBar = dochandler.main.get.elid(\"loading-bar\");\n if (loadingBar) {\n loadingBar.style.visibility = \"hidden\";\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Import all modules as namespaces\nimport * as settings from '../settings';\nimport * as dochandler from '../dochandler';\nimport * as extrafuncs from '../extrafuncs';\nimport * as masters from '../data/masters';\nimport * as reapers from '../data/reapers';\nimport * as assignments from '../data/assignnments';\nimport * as creatures from '../data/creatures';\nimport * as variants from '../data/variants';\nimport * as logger from \"../logger\";\n// Update the Creature variant shown\nexport function variant(i_1) {\n return __awaiter(this, arguments, void 0, function (i, creature, variant) {\n var side, data, imageContainer, imageElement, newSize, kills, slayerExp, totalSlayerExp;\n if (creature === void 0) { creature = null; }\n if (variant === void 0) { variant = null; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Start loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n // Return early if UI is limited or data is not available\n if ((settings.controller.ui.limited || dochandler.main.limitedLoaded) && (!creature || !variant)) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Fetch creature and variant from UI elements if not provided\n if (!creature) {\n creature = dochandler.main.get.elc(\"creatures\", side).value;\n }\n if (!variant) {\n variant = dochandler.main.get.elc(\"variants\", side).value;\n }\n logger.log(\"Change variant to: \".concat(creature, \"#\").concat(variant));\n return [4 /*yield*/, variants.get(creature, variant)];\n case 1:\n data = _a.sent();\n if (data) {\n // Update UI if not limited\n if (!settings.controller.ui.limited && !dochandler.main.limitedLoaded) {\n imageContainer = dochandler.main.get.elc(\"image-container\", side);\n imageContainer.innerHTML = data[\"image\"].replace(\"#\", \"%23\");\n imageElement = imageContainer.firstElementChild;\n newSize = extrafuncs.calculateAspectRatioFit(parseInt(imageElement.getAttribute(\"width\")), parseInt(imageElement.getAttribute(\"height\")), imageContainer.offsetWidth, imageContainer.offsetHeight);\n imageElement.style.maxWidth = \"\".concat(newSize.width, \"px\");\n imageElement.style.maxHeight = \"\".concat(newSize.height, \"px\");\n // Update stats\n updateStats(side, data);\n }\n kills = parseInt(dochandler.main.get.elc(\"kills\", side).innerHTML, 10);\n slayerExp = parseFloat(data[\"slayer-exp\"]);\n if (!isNaN(slayerExp) && !isNaN(kills)) {\n totalSlayerExp = (slayerExp * kills).toFixed(2);\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(totalSlayerExp);\n }\n else {\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid data\n }\n }\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n// Helper function to update stats\nfunction updateStats(side, data) {\n dochandler.main.get.elc(\"level\", side).innerHTML = data[\"level\"];\n dochandler.main.get.elc(\"slayer-level\", side).innerHTML = data[\"slayer-level\"];\n dochandler.main.get.elc(\"lifepoints\", side).innerHTML = data[\"lifepoints\"];\n dochandler.main.get.elc(\"defence\", side).innerHTML = data[\"defence\"];\n dochandler.main.get.elc(\"max-melee\", side).innerHTML = data[\"max-melee\"];\n dochandler.main.get.elc(\"max-ranged\", side).innerHTML = data[\"max-ranged\"];\n dochandler.main.get.elc(\"max-magic\", side).innerHTML = data[\"max-magic\"];\n dochandler.main.get.elc(\"max-necromancy\", side).innerHTML = data[\"max-necromancy\"];\n dochandler.main.get.elc(\"max-spec\", side).innerHTML = data[\"max-spec\"];\n // Update weakness and susceptibility\n var weaknessElem = dochandler.main.get.elc(\"weaknessBox\", side);\n weaknessElem.innerHTML = \"

Weakness

\" + data[\"weakness\"].join(\"\");\n var susceptibleElem = dochandler.main.get.elc(\"susceptibleBox\", side);\n susceptibleElem.innerHTML = \"

Susceptible

\" + data[\"susceptible\"].join(\"\");\n // Update experience values\n var experience = parseFloat(data[\"experience\"]);\n if (!isNaN(experience)) {\n dochandler.main.get.elc(\"combat-exp\", side).innerHTML = extrafuncs.numberWithCommas(experience.toFixed(2));\n }\n else {\n dochandler.main.get.elc(\"combat-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid experience\n }\n // Handle lifepoints-exp\n var lifepointsExp = parseFloat(data[\"lifepoint-exp\"]);\n if (!isNaN(lifepointsExp)) {\n dochandler.main.get.elc(\"lifepoints-exp\", side).innerHTML = extrafuncs.numberWithCommas(lifepointsExp.toFixed(2));\n }\n else {\n dochandler.main.get.elc(\"lifepoints-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid lifepoints-exp\n }\n // Handle slayer-exp\n var slayerExp = parseFloat(data[\"slayer-exp\"]);\n if (!isNaN(slayerExp)) {\n dochandler.main.get.elc(\"slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(slayerExp.toFixed(2));\n }\n else {\n dochandler.main.get.elc(\"slayer-exp\", side).innerHTML = \"N/A\"; // Or any default value for invalid slayer-exp\n }\n}\n// Update the Creature shown\nexport function creature(i_1) {\n return __awaiter(this, arguments, void 0, function (i, creature, variant) {\n var side, data, variantsElem_1;\n if (creature === void 0) { creature = null; }\n if (variant === void 0) { variant = null; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Start loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n // Return early if UI is limited and no creature is provided\n if ((settings.controller.ui.limited || dochandler.main.limitedLoaded) && !creature) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Fetch creature from UI elements if not provided\n if (!creature) {\n creature = dochandler.main.get.elc(\"creatures\", side).value;\n }\n logger.log(\"Change Creature to: \".concat(creature).concat(variant ? \"#\".concat(variant) : ''));\n return [4 /*yield*/, creatures.get(creature)];\n case 1:\n data = _a.sent();\n if (data) {\n // Update variants if available\n if (data[\"variants\"] && !settings.controller.ui.limited && !dochandler.main.limitedLoaded) {\n variantsElem_1 = dochandler.main.get.elc(\"variants\", side);\n variantsElem_1.innerHTML = \"\";\n data[\"variants\"].forEach(function (a) {\n variantsElem_1.innerHTML += \"\");\n });\n if (!variant) {\n variant = data[\"variants\"][0][\"name\"];\n }\n }\n // Update the variant to reflect changes\n dochandler.change.variant(i, creature, variant);\n }\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n// Update the reaper assignment data\nexport function reaper(task, count) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, assignment(2, task, count)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\n// Update the entire Assignment data\nexport function assignment(i, task, count) {\n return __awaiter(this, void 0, void 0, function () {\n var side, nameElement, slayer_exp, slayxp, data, total_exp, j, img, masterData, kills, _loop_1, j, j, j, j, j, _i, _a, a, defaultCreature, _b, creature_1, variant_1;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Ensure correct task loading conditions\n if (i === 1 && !dochandler.main.doubleLoaded) {\n logger.error(\"Cannot load double slayer task if only 1 is displayed!\");\n return [2 /*return*/];\n }\n if (i === 2 && !dochandler.main.reaperLoaded) {\n logger.error(\"Cannot load reaper task if 2 are displayed!\");\n return [2 /*return*/];\n }\n // Show loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n nameElement = dochandler.main.get.elc(\"name\", side);\n if (!nameElement)\n return [2 /*return*/];\n // Check if the current task is the same as the new one\n if ((task == null && nameElement.innerHTML !== \"???\") || nameElement.innerHTML.toLowerCase() === task.toLowerCase()) {\n logger.log(\"Update task: [\".concat(count, \"] \").concat(task, \" \").concat(i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\")));\n dochandler.main.get.elc(\"kills\", side).innerHTML = extrafuncs.numberWithCommas(count);\n slayer_exp = dochandler.main.get.elc(\"slayer-exp\", side);\n if (slayer_exp && slayer_exp.innerHTML !== \"\") {\n slayxp = parseInt(slayer_exp.innerHTML);\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas((slayxp * count).toFixed(2));\n }\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Load new task data\n logger.log(\"Load task: [\".concat(count, \"] \").concat(task, \" \").concat(i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\")));\n dochandler.main.get.elc(\"type\", side).innerHTML = i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\");\n if (i === 2)\n dochandler.main.get.elc(\"type\", side).id = \"type-reaper\";\n return [4 /*yield*/, (i === 2 ? reapers.get(task) : assignments.get(task))];\n case 1:\n data = _d.sent();\n if (!data) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Update UI elements with the new data\n dochandler.main.get.elc(\"name\", side).innerHTML = data[\"index\"];\n dochandler.main.get.elc(\"name\", side).title = data[\"index\"];\n dochandler.main.get.elc(\"kills\", side).innerHTML = extrafuncs.numberWithCommas(count);\n if (dochandler.main.limitedLoaded) {\n total_exp = 0;\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(total_exp);\n }\n if (!(!settings.controller.ui.limited && !dochandler.main.limitedLoaded)) return [3 /*break*/, 6];\n dochandler.main.get.elc(\"masters\", side).innerHTML = \"
Assignment Range
\";\n j = 0;\n _d.label = 2;\n case 2:\n if (!(j < data[\"masters\"].length)) return [3 /*break*/, 5];\n img = \"\\\"\").concat(data[\"masters\"][j],\");\n return [4 /*yield*/, masters.get(data[\"masters\"][j])];\n case 3:\n masterData = _d.sent();\n kills = masterData[\"task-counts\"][data[\"index\"]];\n dochandler.main.get.elc(\"masters\", side).innerHTML += \"
\").concat(img, \" Kills: \").concat(kills, \"
\");\n _d.label = 4;\n case 4:\n j++;\n return [3 /*break*/, 2];\n case 5:\n _loop_1 = function (j) {\n dochandler.main.get.elc(\"masterInfo\".concat(j), side).addEventListener('click', function () { return dochandler.open.wiki.master(i, j); });\n };\n for (j = 0; j < data[\"masters\"].length; j++) {\n _loop_1(j);\n }\n // Update equipment data\n if (data[\"equipment\"]) {\n for (j = 0; j < 3; j++) {\n dochandler.main.get.elc(\"equipInfo\".concat(j + 1), side).innerHTML = j === 0 ? \"None\" : \"\";\n }\n for (j = 0; j < data[\"equipment\"].length; j++) {\n dochandler.main.get.elc(\"equipInfo\".concat(j + 1), side).innerHTML = data[\"equipment\"][j] || \"Database Empty\";\n }\n dochandler.main.get.elc(\"equipMore\", side).style.visibility = data[\"equipment\"].length < 3 ? \"hidden\" : \"visible\";\n }\n else {\n dochandler.main.get.elc(\"equipMore\", side).style.visibility = \"hidden\";\n dochandler.main.get.elc(\"equipInfo1\", side).innerHTML = \"Database Missing\";\n }\n // Update locations data\n if (data[\"locations\"]) {\n for (j = 0; j < 3; j++) {\n dochandler.main.get.elc(\"locationInfo\".concat(j + 1), side).innerHTML = j === 0 ? \"None\" : \"\";\n }\n for (j = 0; j < data[\"locations\"].length; j++) {\n dochandler.main.get.elc(\"locationInfo\".concat(j + 1), side).innerHTML = data[\"locations\"][j] || \"Database Empty\";\n }\n dochandler.main.get.elc(\"locationMore\", side).style.visibility = data[\"locations\"].length < 3 ? \"hidden\" : \"visible\";\n }\n else {\n dochandler.main.get.elc(\"locationMore\", side).style.visibility = \"hidden\";\n dochandler.main.get.elc(\"locationInfo1\", side).innerHTML = \"Database Missing\";\n }\n // Update creatures data\n if (data[\"creatures\"]) {\n dochandler.main.get.elc(\"creatures\", side).innerHTML = \"\";\n for (_i = 0, _a = data[\"creatures\"]; _i < _a.length; _i++) {\n a = _a[_i];\n if (!extrafuncs.listContains(data[\"hidden-creatures\"], a)) {\n defaultCreature = ((_c = data[\"default-creature\"]) === null || _c === void 0 ? void 0 : _c.split(\"#\")[0]) || \"\";\n dochandler.main.get.elc(\"creatures\", side).innerHTML += \"\");\n }\n }\n }\n // Set default creature and variant\n if (data[\"default-creature\"]) {\n _b = data[\"default-creature\"].split(\"#\"), creature_1 = _b[0], variant_1 = _b[1];\n dochandler.change.creature(i, creature_1, variant_1);\n }\n else {\n dochandler.change.creature(i);\n }\n _d.label = 6;\n case 6:\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n","import * as dochandler from \"../dochandler\";\nimport * as settings from \"../settings\";\nexport function assignmentWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-task-wiki\", side).style.visibility = \"hidden\";\n}\nexport function creatureWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-creature-wiki\", side).style.visibility = \"hidden\";\n}\nexport function moreEquip(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"equipHidden\", side).style.visibility = \"hidden\";\n}\nexport function moreLocations(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"locationHidden\", side).style.visibility = \"hidden\";\n}\n","import * as dochandler from \"../dochandler\";\nimport * as settings from \"../settings\";\nexport function assignmentWiki(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer;\n var hideTimer = null;\n showTimer = setTimeout(function () { return dochandler.show.assignmentWikiPreview(i); }, 500);\n dochandler.main.get.elc(\"task-wiki\", side).onmouseleave = function () {\n hideTimer = setTimeout(function () { return dochandler.hide.assignmentWikiPreview(i); }, 200);\n clearTimeout(showTimer);\n };\n dochandler.main.get.elc(\"preview-task-wiki\", side).onmouseenter = function () {\n if (hideTimer !== null)\n clearTimeout(hideTimer);\n };\n}\nexport function creatureWiki(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer;\n var hideTimer = null;\n showTimer = setTimeout(function () { return dochandler.show.creatureWikiPreview(i); }, 500);\n dochandler.main.get.elc(\"creature-wiki\", side).onmouseleave = function () {\n hideTimer = setTimeout(function () { return dochandler.hide.creatureWikiPreview(i); }, 200);\n clearTimeout(showTimer);\n };\n dochandler.main.get.elc(\"preview-creature-wiki\", side).onmouseenter = function () {\n if (hideTimer !== null)\n clearTimeout(hideTimer);\n };\n}\nexport function moreEquip(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer = setTimeout(function () { return dochandler.show.moreEquip(i); }, 500);\n dochandler.main.get.elc(\"equipMore\", side).onmouseleave = function () {\n clearTimeout(showTimer);\n };\n}\nexport function moreLocations(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer = setTimeout(function () { return dochandler.show.moreLocations(i); }, 500);\n dochandler.main.get.elc(\"locationMore\", side).onmouseleave = function () {\n clearTimeout(showTimer);\n };\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from '../dochandler';\nimport * as reapers from '../data/reapers';\nimport * as assignments from '../data/assignnments';\nimport * as settings from '../settings';\nimport * as slayer from '../slayer';\nimport * as logger from \"../logger\";\n// Define variables\nexport var doubleLoaded = false;\nexport var singleLoaded = false;\nexport var reaperLoaded = false;\nexport var suggestedLoaded = false;\nexport var limitedLoaded = false;\nexport var get;\n(function (get) {\n function elc(id, base) {\n return base.getElementsByClassName(id)[0];\n }\n get.elc = elc;\n function elid(id) {\n return document.getElementById(id);\n }\n get.elid = elid;\n function searchInput() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, document.querySelector(\"input[name='search-info']\").value];\n });\n });\n }\n get.searchInput = searchInput;\n})(get || (get = {}));\nexport var reset;\n(function (reset) {\n function single() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!singleLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n singleLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.single = single;\n function double() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!doubleLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n doubleLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.double = double;\n function reaper() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!reaperLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n reaperLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.reaper = reaper;\n function suggested() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!suggestedLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n suggestedLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.suggested = suggested;\n function searchBox() {\n return __awaiter(this, void 0, void 0, function () {\n var searchInfo;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, get.elid(\"search-info\")];\n case 1:\n searchInfo = _a.sent();\n searchInfo.value = \"\";\n toggle.searchText();\n return [2 /*return*/];\n }\n });\n });\n }\n reset.searchBox = searchBox;\n})(reset || (reset = {}));\nexport var set;\n(function (set) {\n // Set to use a double document\n function double(task0_1, task1_1) {\n return __awaiter(this, arguments, void 0, function (task0, task1, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if ((task0 == null || task1 == null) && !doubleLoaded)\n return [2 /*return*/];\n logger.log(\"Load Double: [\".concat(task0.count, \"] \").concat(task0.name, \" | [\").concat(task1.count, \"] \").concat(task1.name));\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n if (!!doubleLoaded) return [3 /*break*/, 5];\n return [4 /*yield*/, setup.doubleAssignment()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, dochandler.change.assignment(0, task0.name, task0.count)];\n case 6:\n _a.sent();\n return [4 /*yield*/, dochandler.change.assignment(1, task1.name, task1.count)];\n case 7:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task0.name && task1.name) {\n settings.change.addHistory({ type: 'double', tasks: [task0, task1] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.double = double;\n // Set to use a single document\n function single(task_1) {\n return __awaiter(this, arguments, void 0, function (task, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (task == null && !singleLoaded)\n return [2 /*return*/];\n logger.log(\"Load Single: [\".concat(task.count, \"] \").concat(task.name));\n // Reset all others\n return [4 /*yield*/, reset.double()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n if (!!singleLoaded) return [3 /*break*/, 5];\n return [4 /*yield*/, setup.singleAssignment(0)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, dochandler.change.assignment(0, task.name, task.count)];\n case 6:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task.name) {\n settings.change.addHistory({ type: 'single', tasks: [task] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.single = single;\n // Set to use reaper tasks doc\n function reaper(task_1) {\n return __awaiter(this, arguments, void 0, function (task, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (task == null && !reaperLoaded)\n return [2 /*return*/];\n logger.log(\"Load Reaper: [\".concat(task.count, \"] \").concat(task.name));\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.double()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n return [4 /*yield*/, setup.singleAssignment(2)];\n case 4:\n _a.sent();\n return [4 /*yield*/, dochandler.change.reaper(task.name, task.count)];\n case 5:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task.name) {\n settings.change.addHistory({ type: 'reaper', tasks: [task] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.reaper = reaper;\n // Set to use suggested tasks doc\n function suggested() {\n return __awaiter(this, arguments, void 0, function (bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (suggestedLoaded)\n return [2 /*return*/];\n logger.log(\"Load Suggested!\");\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.double()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 3:\n _a.sent();\n return [4 /*yield*/, dochandler.main.setup.suggested()];\n case 4:\n _a.sent();\n // Log history if not bypassed\n if (!bypass) {\n settings.change.addHistory({ type: 'suggestion', tasks: null });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.suggested = suggested;\n // Set search button\n function searchButtonText(s) {\n dochandler.main.get.elid(\"search-button\").innerHTML = \"\".concat(s, \". . .\");\n }\n set.searchButtonText = searchButtonText;\n // Set the search input\n function searchInput(s) {\n if (s == null)\n return;\n dochandler.main.get.elid(\"search-info\").value = s;\n dochandler.main.toggle.searchText();\n }\n set.searchInput = searchInput;\n})(set || (set = {}));\nexport var setup;\n(function (setup) {\n // Setup the main document\n function documentMain() {\n return __awaiter(this, void 0, void 0, function () {\n var nisElement, _a, reapersIndexList, assignmentsIndexList;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n nisElement = dochandler.main.get.elid(\"nis\");\n _a = nisElement;\n return [4 /*yield*/, fetch(\"./pages/doc/body.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n // Setup event listeners\n dochandler.main.get.elid(\"infobutton\").addEventListener('click', dochandler.open.aboutInfo);\n dochandler.main.get.elid(\"menubutton\").addEventListener('click', dochandler.open.settingsPage);\n dochandler.main.get.elid(\"donatebutton\").addEventListener('click', dochandler.open.donate);\n dochandler.main.get.elid(\"backbutton\").addEventListener('click', settings.change.goPreviousHistory);\n dochandler.main.get.elid(\"forwardbutton\").addEventListener('click', settings.change.goNextHistory);\n dochandler.main.get.elid(\"search-button\").addEventListener('click', function () { slayer.searchTasks(); });\n dochandler.main.get.elid(\"search-info\").addEventListener('input', dochandler.main.toggle.searchText);\n dochandler.main.get.elid(\"search-info\").addEventListener('change', function () { slayer.searchTasks(); });\n dochandler.main.get.elid(\"search-info\").addEventListener('keyup', function (event) {\n switch (event.key) {\n case \"ArrowUp\":\n dochandler.main.set.searchInput(settings.search.getPreviousHistory());\n break;\n case \"ArrowDown\":\n dochandler.main.set.searchInput(settings.search.getNextHistory());\n break;\n }\n });\n dochandler.main.get.elid(\"warning-link\").addEventListener('click', function (e) {\n dochandler.main.get.elid(\"warning-ui\").style.visibility = \"hidden\";\n });\n // Setup warnings based on the status\n if (window.alt1) {\n if (!alt1.permissionInstalled)\n dochandler.main.get.elid(\"warning-msg\").innerHTML = \"You should click Add App at top right\";\n else if (!alt1.permissionOverlay || !alt1.permissionGameState || !alt1.permissionPixel)\n dochandler.main.get.elid(\"warning-msg\").innerHTML = \"This app is missing permissions\";\n else if (!alt1.rsLinked)\n dochandler.main.get.elid(\"warning-msg\").innerHTML = \"RuneScape not detected, troubleshoot\";\n else\n dochandler.main.get.elid(\"warning-ui\").style.visibility = \"hidden\";\n }\n return [4 /*yield*/, reapers.getIndexList()];\n case 2:\n reapersIndexList = _b.sent();\n dochandler.main.get.elid(\"search-info-list\").innerHTML = reapersIndexList;\n return [4 /*yield*/, assignments.getIndexList()];\n case 3:\n assignmentsIndexList = _b.sent();\n dochandler.main.get.elid(\"search-info-list\").innerHTML += assignmentsIndexList;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.documentMain = documentMain;\n // Setup the base for double assignment\n function doubleAssignment() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, _loop_1, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n limitedLoaded = true;\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/dual.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n _loop_1 = function (i) {\n var side, _c, extraInfo, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n side = dochandler.getSide(i);\n _c = side;\n return [4 /*yield*/, fetch(\"./pages/doc/example.html\").then(function (r) { return r.text(); })];\n case 1:\n _c.innerHTML = _e.sent();\n // Setup event listeners\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.assignment(i); });\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.assignmentWiki(i); });\n if (!!settings.controller.ui.limited) return [3 /*break*/, 3];\n extraInfo = dochandler.main.get.elc(\"extra-info\", side);\n _d = extraInfo;\n return [4 /*yield*/, fetch(\"./pages/doc/example-extra.html\").then(function (r) { return r.text(); })];\n case 2:\n _d.innerHTML = _e.sent();\n limitedLoaded = false;\n dochandler.main.get.elc(\"preview-task-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.assignmentWikiPreview(i); });\n dochandler.main.get.elc(\"preview-creature-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.creatureWikiPreview(i); });\n dochandler.main.get.elc(\"equipMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreEquip(i); });\n dochandler.main.get.elc(\"equipHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreEquip(i); });\n dochandler.main.get.elc(\"locationMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreLocations(i); });\n dochandler.main.get.elc(\"locationHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreLocations(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.creature(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.creatureWiki(i); });\n dochandler.main.get.elc(\"creatures\", side).addEventListener('change', function () { return dochandler.change.creature(i); });\n dochandler.main.get.elc(\"variants\", side).addEventListener('change', function () { return dochandler.change.variant(i); });\n _e.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n };\n i = 0;\n _b.label = 2;\n case 2:\n if (!(i < 2)) return [3 /*break*/, 5];\n return [5 /*yield**/, _loop_1(i)];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4:\n i++;\n return [3 /*break*/, 2];\n case 5:\n // Adjust the doc for limited and full\n adjustForSettings();\n doubleLoaded = true;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.doubleAssignment = doubleAssignment;\n // Setup the base for single assignment\n function singleAssignment(i) {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, side, _b, extraInfo, _c, statusElement;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n limitedLoaded = true;\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/single.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _d.sent();\n side = dochandler.getSide(i);\n _b = side;\n return [4 /*yield*/, fetch(\"./pages/doc/example.html\").then(function (r) { return r.text(); })];\n case 2:\n _b.innerHTML = _d.sent();\n // Setup event listeners\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.assignment(i); });\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.assignmentWiki(i); });\n if (!!settings.controller.ui.limited) return [3 /*break*/, 4];\n extraInfo = dochandler.main.get.elc(\"extra-info\", side);\n _c = extraInfo;\n return [4 /*yield*/, fetch(\"./pages/doc/example-extra.html\").then(function (r) { return r.text(); })];\n case 3:\n _c.innerHTML = _d.sent();\n limitedLoaded = false;\n dochandler.main.get.elc(\"preview-task-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.assignmentWikiPreview(i); });\n dochandler.main.get.elc(\"preview-creature-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.creatureWikiPreview(i); });\n dochandler.main.get.elc(\"equipMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreEquip(i); });\n dochandler.main.get.elc(\"equipHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreEquip(i); });\n dochandler.main.get.elc(\"locationMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreLocations(i); });\n dochandler.main.get.elc(\"locationHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreLocations(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.creature(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.creatureWiki(i); });\n dochandler.main.get.elc(\"creatures\", side).addEventListener('change', function () { return dochandler.change.creature(i); });\n dochandler.main.get.elc(\"variants\", side).addEventListener('change', function () { return dochandler.change.variant(i); });\n _d.label = 4;\n case 4:\n statusElement = dochandler.main.get.elc(\"status\", side);\n if (settings.controller.ui.status) {\n statusElement.style.visibility = \"visible\";\n }\n else {\n statusElement.style.visibility = \"hidden\";\n }\n // Adjust the doc for limited and full\n adjustForSettings();\n if (i === 2) {\n reaperLoaded = true;\n }\n else {\n singleLoaded = true;\n }\n return [2 /*return*/];\n }\n });\n });\n }\n setup.singleAssignment = singleAssignment;\n // Setup the base for suggested\n function suggested() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, suggestType, _loop_2, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/suggested.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n suggestType = dochandler.main.get.elid(\"type-suggest\");\n if (suggestType) {\n suggestType.addEventListener('click', function () { return window.open(\"https://runescape.wiki/w/Slayer_training/High-levelled\"); });\n }\n _loop_2 = function (i) {\n var element = dochandler.main.get.elid(\"suggestion-\".concat(i));\n if (element) {\n element.addEventListener('click', function () { return slayer.searchTasks(element.innerHTML); });\n }\n };\n for (i = 1; i <= 12; i++) {\n _loop_2(i);\n }\n suggestedLoaded = true;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.suggested = suggested;\n // If limited, set the size of the base\n function adjustForSettings() {\n var baseElement = dochandler.main.get.elid(\"base\");\n var divideElement = dochandler.main.get.elid(\"divide\");\n var copyrightElement = dochandler.main.get.elid(\"copyright\");\n if (settings.controller.ui.limited) {\n baseElement.classList.remove(\"base-full\");\n if (divideElement) {\n divideElement.classList.remove(\"divide-full\");\n }\n copyrightElement.classList.remove(\"copyright-full\");\n }\n else {\n baseElement.classList.add(\"base-full\");\n if (divideElement) {\n divideElement.classList.add(\"divide-full\");\n }\n copyrightElement.classList.add(\"copyright-full\");\n }\n }\n})(setup || (setup = {}));\nexport var toggle;\n(function (toggle) {\n // Toggle if we are capturing screen or searching text\n function searchText() {\n return __awaiter(this, void 0, void 0, function () {\n var searchResult, autoCaptureEnabled, searchInput;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n searchResult = slayer.searchResult;\n autoCaptureEnabled = settings.controller.autoCapture.enabled;\n return [4 /*yield*/, dochandler.main.get.searchInput()];\n case 1:\n searchInput = _a.sent();\n if (searchResult || (!autoCaptureEnabled && searchInput === \"\")) {\n dochandler.main.set.searchButtonText(\"Capture\");\n }\n else {\n dochandler.main.set.searchButtonText(\"Search\");\n }\n return [2 /*return*/];\n }\n });\n });\n }\n toggle.searchText = searchText;\n})(toggle || (toggle = {}));\n","import * as dochandler from '../dochandler';\nimport * as settings from '../settings';\nimport * as logger from \"../logger\";\n// Open the Donate Page (https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ)\nexport function donate() {\n window.open(\"https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ\");\n}\n// Open the about info page\nexport function aboutInfo() {\n var width = 680;\n var height = 550;\n var left = window.screenX + (window.innerWidth / 2) - (width / 2);\n var top = window.screenY + (window.innerHeight / 2) - (height / 2);\n window.open(\"./pages/about.html\", null, \"width=\".concat(width, \",height=\").concat(height, \",left=\").concat(left, \",top=\").concat(top));\n}\n// Open the settings page\nexport function settingsPage() {\n var width = 420;\n var height = 550;\n var left = window.screenX + (window.innerWidth / 2) - (width / 2);\n var top = window.screenY + (window.innerHeight / 2) - (height / 2);\n var settingsWindow = window.open(\"./pages/settings.html\", \"_blank\", \"width=\".concat(width, \",height=\").concat(height, \",left=\").concat(left, \",top=\").concat(top));\n logger.warn(\"Settings Opened!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn(\"Settings Loaded!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('keyup', function (e) {\n if ((e.which || e.keyCode) === 116) {\n // Prevent F5 key press from refreshing the page\n e.preventDefault();\n }\n });\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('beforeunload', function () {\n // Load the new settings and apply them\n settings.controller.load();\n dochandler.main.toggle.searchText();\n logger.warn(\"Settings Closed!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn(\"Settings Saved!\");\n });\n}\nexport var wiki;\n(function (wiki) {\n // Opens the wiki page for a specific task\n function assignment(i) {\n var side = dochandler.getSide(i);\n var task = dochandler.main.get.elc(\"name\", side).innerHTML;\n if (task)\n window.open(\"https://runescape.wiki/\".concat(task, \"_(Slayer_assignment)\"), \"_blank\");\n }\n wiki.assignment = assignment;\n // Opens the wiki page for a specific creature\n function creature(i) {\n var side = dochandler.getSide(i);\n var creature = dochandler.main.get.elc(\"creatures\", side).value;\n var variant = dochandler.main.get.elc(\"variants\", side).value;\n if (creature && variant)\n window.open(\"https://runescape.wiki/\".concat(creature, \"#\").concat(variant), \"_blank\");\n else if (creature)\n window.open(\"https://runescape.wiki/\".concat(creature), \"_blank\");\n }\n wiki.creature = creature;\n // Opens the wiki page for a specific master\n function master(i, j) {\n var side = dochandler.getSide(i);\n var master = dochandler.main.get.elc(\"masterImage\" + j, side).alt;\n if (master)\n window.open(\"https://runescape.wiki/\".concat(master), \"_blank\");\n }\n wiki.master = master;\n})(wiki || (wiki = {}));\n","import * as dochandler from '../dochandler';\nimport * as settings from '../settings';\n// Show the specific Creature's preview wiki page\nexport function assignmentWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-task-wiki\", side).style.visibility = \"visible\";\n}\n// Show the specific Creature's preview wiki page\nexport function creatureWikiPreview(i) {\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-creature-wiki\", side).style.visibility = \"visible\";\n}\n// Show more Equipment for task\nexport function moreEquip(i) {\n var _a;\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var equipHiddenElement = dochandler.main.get.elc(\"equipHidden\", side);\n if ((_a = equipHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {\n equipHiddenElement.style.visibility = \"visible\";\n }\n}\n// Show more Locations for task\nexport function moreLocations(i) {\n var _a;\n if (settings.controller.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var locationHiddenElement = dochandler.main.get.elc(\"locationHidden\", side);\n if ((_a = locationHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {\n locationHiddenElement.style.visibility = \"visible\";\n }\n}\n","// Add commas into a number if its big enough\nexport function numberWithCommas(n) {\n if (n == null)\n return \"Empty\";\n if (n === -666)\n return \"Error\";\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n// Check if the list contains what you want to find\nexport function listContains(list, find) {\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\n var l = list_1[_i];\n if (decodeHtml(l).toLowerCase() === decodeHtml(find).toLowerCase())\n return true;\n }\n return false;\n}\n// Get new width and height for image based on aspect ratio\nexport function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) {\n var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);\n return { width: srcWidth * ratio, height: srcHeight * ratio };\n}\n// Decode the HTML chars that have been encoded during database downloading\nexport function decodeHtml(html) {\n var txt = document.createElement(\"textarea\");\n txt.innerHTML = html;\n return txt.value;\n}\n","// Private queues and settings\nvar debugQueue = [];\nvar verboseQueue = [];\nvar queueLimit = 50;\nvar debugEnabled = false;\nvar verboseEnabled = false;\n// Set the queue limit for debug and verbose\nexport function setLimit(limit) {\n queueLimit = limit;\n}\n// Enable or disable debug logging\nexport function setDebug(enabled) {\n debugEnabled = enabled;\n if (enabled)\n debug(\"Debug logging enabled\"); // Force Flush the Queue\n}\n// Enable or disable verbose logging\nexport function setVerbose(enabled) {\n verboseEnabled = enabled;\n if (enabled)\n verbose(\"Verbose logging enabled\"); // Force Flush the Queue\n}\n// Public: Log to the normal queue and flush the queue\nexport function log() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.log.apply(console, messages);\n}\n// Public: Log to the warn queue and flush the queue\nexport function warn() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.warn.apply(console, messages);\n}\n// Public: Log to the error queue and flush the queue\nexport function error() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.error.apply(console, messages);\n}\n// Public: Log to the debug queue only if debug is enabled and flush the queue\nexport function debug() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n debugQueue.push(messages.join(' '));\n trimQueue(debugQueue);\n if (debugEnabled)\n flushQueue(debugQueue, \"Debug\");\n}\n// Public: Log to the verbose queue only if verbose is enabled and flush the queue\nexport function verbose() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n verboseQueue.push(messages.join(' '));\n trimQueue(verboseQueue);\n if (verboseEnabled)\n flushQueue(verboseQueue, \"Verbose\");\n}\n// Private: Trim the queue if it exceeds the limit (FIFO: remove first entry)\nfunction trimQueue(queue) {\n if (queue.length > queueLimit)\n queue.shift();\n}\n// Private: Flush and output the entire queue, emptying it afterward\nfunction flushQueue(queue, label) {\n while (queue.length > 0) {\n var message = queue.shift();\n if (label === \"Debug\")\n console.log(\"[\".concat(label, \"] \").concat(message));\n if (label === \"Verbose\")\n console.warn(\"[\".concat(label, \"] \").concat(message));\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from \"./dochandler\";\nimport * as slayer from \"./slayer\";\nimport * as main from \"./dochandler/main\";\nimport * as logger from \"./logger\";\n// Controls all the settings data\nvar SettingsDataController = /** @class */ (function () {\n function SettingsDataController() {\n this.loaded = false;\n this.version = 1;\n this.searchAlgorithim = \"default\";\n this.autoCapture = {\n enabled: true,\n counter: true,\n search: true,\n loopTimer: 500,\n counterTimer: 500,\n searchTimer: 10000,\n dialogTimer: 5000,\n };\n this.ui = {\n style: \"default\",\n limited: false,\n status: false,\n overlay: false,\n overlayTimer: 500,\n historyRetentionCount: 10,\n lookupRetentionCount: 0,\n hideAlt1Warn: false,\n };\n this.showHidden = {\n creatures: false,\n eliteCreatures: false,\n dragonkinCreatures: false,\n godWarsCreatures: false,\n ghorrockCreatures: false,\n heartGielinorCreatures: false,\n monsterCreatures: false,\n newVarrockCreatures: false,\n shadowReefCreatures: false,\n strongholdSecurityCreatures: false,\n summonedCreatures: false,\n templeTrekkingCreatures: false,\n unchartedIslesCreatures: false\n };\n this.default = {\n taskName0: \"waterfiends\",\n taskName1: \"black demons\",\n taskCount0: 777,\n taskCount1: 666\n };\n }\n SettingsDataController.prototype.load = function () {\n return __awaiter(this, void 0, void 0, function () {\n var tempSearchBoolFlip, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // If versioning system exists the load it up so we can use it\n if (window.localStorage.getItem('version') != null)\n this.version = this.decodeVersion(window.localStorage.getItem('version'));\n // We only want to update the versioning system on the first load\n if (!this.loaded) {\n // If Versioning system is missing or outdated then update it\n if (this.version < this.decodeVersion(\"0.0.6\")) {\n logger.warn(\"[Versioning] Versioning System is missing, setting up versioning system.\");\n window.localStorage.removeItem('recent_task_0');\n window.localStorage.removeItem('recent_task_count_0');\n window.localStorage.removeItem('recent_task_1');\n window.localStorage.removeItem('recent_task_count_1');\n this.save();\n }\n // If the versioning system is updating to 0.0.22 then we need to flip the auto-capture-search value due to update\n if (this.version < this.decodeVersion(\"0.0.22\")) {\n logger.warn(\"[Versioning] Versioning System 0.0.22 flipped the auto-capture-search boolean, updating now!\");\n if (window.localStorage.getItem('auto-capture-search') != null) {\n tempSearchBoolFlip = window.localStorage.getItem(\"auto-capture-search\") === \"false\";\n window.localStorage.setItem(\"auto-capture-search\", \"\" + tempSearchBoolFlip);\n }\n // Remove mistake on creating the ui-counter and ui-counterTimer instead of ui-overlay etc...\n if (window.localStorage.getItem('ui-counter') != null)\n window.localStorage.removeItem(\"ui-counter\");\n if (window.localStorage.getItem('ui-counter-timer') != null)\n window.localStorage.removeItem(\"ui-counter-timer\");\n }\n }\n controller.autoCapture.enabled = window.localStorage.getItem(\"auto-capture-enabled\") === \"true\";\n controller.autoCapture.counter = window.localStorage.getItem(\"auto-capture-counter\") === \"true\";\n controller.autoCapture.search = window.localStorage.getItem(\"auto-capture-search\") === \"true\";\n controller.autoCapture.loopTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-loop\"));\n controller.autoCapture.dialogTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-dialog\"));\n controller.autoCapture.counterTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-counter\"));\n controller.autoCapture.searchTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-search\"));\n controller.ui.hideAlt1Warn = window.localStorage.getItem(\"ui-hideAlt1Warn\") === \"true\";\n controller.ui.limited = window.localStorage.getItem(\"ui-limited\") === \"true\";\n controller.ui.status = window.localStorage.getItem(\"ui-status\") === \"true\";\n controller.ui.overlay = window.localStorage.getItem(\"ui-overlay\") === \"true\";\n controller.ui.overlayTimer = parseInt(window.localStorage.getItem(\"ui-overlay-timer\"));\n return [4 /*yield*/, fetch(\"./pages/data/version.json\").then(function (r) { return r.json(); })];\n case 1:\n res = _a.sent();\n if (!this.loaded && this.version < this.decodeVersion(res['version'])) {\n this.version = this.decodeVersion(res['version']);\n this.save();\n }\n // TODO Load history here then reset the UI and load them\n main.reset.single();\n main.reset.double();\n main.reset.reaper();\n main.reset.suggested();\n // If we are hiding the warnings then lets apply that here\n if (controller.ui.hideAlt1Warn)\n dochandler.main.get.elid(\"warning-ui\").style.visibility = \"hidden\";\n if (!(this.default.taskName0 != null && this.default.taskName1 != null)) return [3 /*break*/, 3];\n return [4 /*yield*/, main.set.double({ name: this.default.taskName0, count: this.default.taskCount0 }, { name: this.default.taskName1, count: this.default.taskCount1 })];\n case 2:\n _a.sent();\n return [3 /*break*/, 5];\n case 3:\n if (!(this.default.taskName0 != null && this.default.taskName1 == null)) return [3 /*break*/, 5];\n return [4 /*yield*/, main.set.single({ name: this.default.taskName0, count: this.default.taskCount0 })];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5:\n // Settings Loaded\n logger.log(\"Settings Loaded\");\n this.loaded = true;\n return [2 /*return*/];\n }\n });\n });\n };\n SettingsDataController.prototype.save = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.version > this.decodeVersion(\"0.0.1\"))\n window.localStorage.setItem('version', this.encodeVersion(this.version));\n window.localStorage.setItem(\"auto-capture-enabled\", \"\" + controller.autoCapture.enabled);\n window.localStorage.setItem(\"auto-capture-counter\", \"\" + controller.autoCapture.counter);\n window.localStorage.setItem(\"auto-capture-search\", \"\" + controller.autoCapture.search);\n window.localStorage.setItem(\"auto-capture-timer-loop\", \"\" + controller.autoCapture.loopTimer);\n window.localStorage.setItem(\"auto-capture-timer-dialog\", \"\" + controller.autoCapture.dialogTimer);\n window.localStorage.setItem(\"auto-capture-timer-counter\", \"\" + controller.autoCapture.counterTimer);\n window.localStorage.setItem(\"auto-capture-timer-search\", \"\" + controller.autoCapture.searchTimer);\n window.localStorage.setItem(\"ui-hideAlt1Warn\", \"\" + controller.ui.hideAlt1Warn);\n window.localStorage.setItem(\"ui-limited\", \"\" + controller.ui.limited);\n window.localStorage.setItem(\"ui-status\", \"\" + controller.ui.status);\n window.localStorage.setItem(\"ui-overlay\", \"\" + controller.ui.overlay);\n window.localStorage.setItem(\"ui-overlay-timer\", \"\" + controller.ui.overlayTimer);\n logger.log(\"Settings Saved\");\n return [2 /*return*/];\n });\n });\n };\n SettingsDataController.prototype.decodeVersion = function (version) {\n var versionSplit = version.split(\".\");\n var versionUpper = versionSplit.length > 2 ? parseInt(versionSplit[0]) : 0;\n var versionLower = parseInt(versionSplit.length > 2 ? versionSplit[1] : versionSplit[0]);\n var versionPatch = parseInt(versionSplit.length > 2 ? versionSplit[2] : versionSplit[1]);\n return ((versionUpper * 256 * 256) + (versionLower * 256) + versionPatch);\n };\n SettingsDataController.prototype.encodeVersion = function (version) {\n var versionUpper = version > 256 * 256 ? version / (256 * 256) : 0;\n var versionLower = version > 256 ? (version - (versionUpper * 256 * 256)) / 256 : 0;\n var versionPatch = (version - (versionUpper * 256 * 256) - (versionLower * 256));\n return versionUpper + \".\" + versionLower + \".\" + versionPatch;\n };\n return SettingsDataController;\n}());\nexport { SettingsDataController };\nexport var controller = new SettingsDataController();\n// Change history functions\nexport var change;\n(function (change) {\n change.history = [];\n change.index = 0;\n function addHistory(history) {\n if (!history || !history.tasks || !change.history[change.index])\n return;\n if ((history.type === \"single\" || history.type === \"reaper\") &&\n history.tasks[0].name === change.history[change.index].tasks[0].name)\n return;\n if (history.type === \"double\" &&\n history.tasks[0].name === change.history[change.index].tasks[0].name &&\n history.tasks[1].name === change.history[change.index].tasks[1].name)\n return;\n if (history.type === \"suggestion\" && history.type === change.history[change.index].type)\n return;\n if (change.index + 1 != change.history.length)\n change.history = change.history.slice(0, change.index + 1);\n change.history.push(history);\n change.index = change.history.length - 1;\n controller.save();\n }\n change.addHistory = addHistory;\n function refreshCurrent() {\n if (change.index < 0 || change.index >= change.history.length)\n return;\n main.reset.single();\n main.reset.double();\n main.reset.reaper();\n main.reset.suggested();\n var currentChange = change.history[change.index];\n if (currentChange.type === 'double')\n main.set.double(currentChange.tasks[0], currentChange.tasks[1], true);\n if (currentChange.type === 'single')\n main.set.single(currentChange.tasks[0], true);\n if (currentChange.type === 'reaper')\n main.set.reaper(currentChange.tasks[0], true);\n if (currentChange.type === 'suggestion')\n main.set.suggested(true);\n controller.save();\n }\n change.refreshCurrent = refreshCurrent;\n function goPreviousHistory() {\n if (change.index - 1 < 0)\n return;\n var previousChange = change.history[--change.index];\n if (previousChange.type === 'double')\n main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);\n if (previousChange.type === 'single')\n main.set.single(previousChange.tasks[0], true);\n if (previousChange.type === 'reaper')\n main.set.reaper(previousChange.tasks[0], true);\n if (previousChange.type === 'suggestion')\n main.set.suggested(true);\n controller.save();\n }\n change.goPreviousHistory = goPreviousHistory;\n function goNextHistory() {\n if (change.index + 1 >= change.history.length)\n return;\n var nextChange = change.history[++change.index];\n if (nextChange.type === 'double')\n main.set.double(nextChange.tasks[0], nextChange.tasks[1], true);\n if (nextChange.type === 'single')\n main.set.single(nextChange.tasks[0], true);\n if (nextChange.type === 'reaper')\n main.set.reaper(nextChange.tasks[0], true);\n if (nextChange.type === 'suggestion')\n main.set.suggested(true);\n controller.save();\n }\n change.goNextHistory = goNextHistory;\n})(change || (change = {}));\nexport var search;\n(function (search) {\n var temp = null;\n var history = [];\n var index = 0;\n function addHistory(value) {\n if (!value)\n return;\n history.push(value);\n index = history.length;\n temp = null;\n controller.save();\n }\n search.addHistory = addHistory;\n function getPreviousHistory() {\n tempValue();\n controller.save();\n if (index - 1 < 0)\n return null;\n if (--index === history.length)\n return temp;\n return history[index];\n }\n search.getPreviousHistory = getPreviousHistory;\n function getNextHistory() {\n tempValue();\n controller.save();\n if (index + 1 > history.length + (temp === \"\" ? 0 : 1))\n return null;\n if (++index === history.length + (temp === \"\" ? 0 : 1))\n return \"\";\n if (temp !== \"\" && index === history.length)\n return temp;\n return history[index];\n }\n search.getNextHistory = getNextHistory;\n function tempValue() {\n var currentValue = dochandler.main.get.elid(\"search-info\").value;\n if (temp === null)\n temp = currentValue;\n if (index === history.length && temp !== currentValue)\n temp = currentValue;\n if (index === history.length + 1 && currentValue !== \"\") {\n temp = currentValue;\n --index;\n }\n }\n})(search || (search = {}));\nexport function executeDevTools(value) {\n return __awaiter(this, void 0, void 0, function () {\n var counterData, slayerData, a, a, pos, box, _i, _a, _b, index, option, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (value === \"devTools\") {\n logger.log(\" ~~~ Dev Tools ~ Information Opened ~~~ \");\n alt1.openBrowser(\"https://runeapps.org/forums/viewtopic.php?id=101\");\n return [2 /*return*/];\n }\n logger.log(\" ~~~ Dev Tools ~ Started ~~~ \");\n _c.label = 1;\n case 1:\n _c.trys.push([1, 10, , 11]);\n if (!(value === \"size\")) return [3 /*break*/, 2];\n logger.log(\"Current Size: \".concat(document.body.clientWidth, \", \").concat(document.body.clientHeight));\n return [3 /*break*/, 9];\n case 2:\n if (!(value === \"debug\")) return [3 /*break*/, 3];\n logger.setDebug(true);\n return [3 /*break*/, 9];\n case 3:\n if (!(value === \"verbose\")) return [3 /*break*/, 4];\n logger.setVerbose(true);\n return [3 /*break*/, 9];\n case 4:\n if (!(value === \"counterReader\")) return [3 /*break*/, 6];\n return [4 /*yield*/, slayer.counterReader.read()];\n case 5:\n counterData = _c.sent();\n if (counterData) {\n logger.log(\"The Counter UI Collapsed [\".concat(counterData.collapsed, \"]\"));\n logger.log(\"The Counter UI Old School [\".concat(counterData.OS, \"]\"));\n logger.log(\"The Counter UI Reaper [\".concat(counterData.reaper, \"]\"));\n logger.log(\"The Counter UI Count [\".concat(counterData.count, \"]\"));\n logger.log(\"The Counter UI Task [\".concat(counterData.task, \"]\"));\n }\n else {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read counter data! ~~~ \");\n }\n return [3 /*break*/, 9];\n case 6:\n if (!(value === \"slayerReader\")) return [3 /*break*/, 8];\n return [4 /*yield*/, slayer.slayerReader.read()];\n case 7:\n slayerData = _c.sent();\n if (slayerData) {\n logger.log(\"The Slayer Reader Select Your Own [\".concat(slayerData.selectYourOwn, \"]\"));\n logger.log(\"The Slayer Reader Reaper [\".concat(slayerData.reaper, \"]\"));\n logger.log(\"The Slayer Reader Ticket [\".concat(slayerData.ticket, \"]\"));\n for (a in slayerData.count) {\n logger.log(\"The Slayer Reader Count{\".concat(a, \"} [\").concat(slayerData.count[a], \"]\"));\n }\n for (a in slayerData.task) {\n logger.log(\"The Slayer Reader Task{\".concat(a, \"} [\").concat(slayerData.task[a], \"]\"));\n }\n }\n else {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read slayer data! ~~~ \");\n }\n return [3 /*break*/, 9];\n case 8:\n if (value === \"dialogReader\") {\n logger.log(\"Searching for Dialog...\");\n pos = slayer.slayerReader.dialogReader.find();\n if (!pos) {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot find the Dialog! ~~~ \");\n return [2 /*return*/];\n }\n box = slayer.slayerReader.dialogReader.read();\n if (!box) {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read the Dialog! ~~~ \");\n return [2 /*return*/];\n }\n if (box.title)\n logger.log(\"The Dialog Box Title [\".concat(box.title, \"]\"));\n if (box.text)\n logger.log(\"The Dialog Box Text [\".concat(box.text, \"]\"));\n if (box.opts) {\n logger.log(\"The Dialog Box Options (\".concat(box.opts.length, \") [\").concat(box.opts, \"]\"));\n for (_i = 0, _a = box.opts.entries(); _i < _a.length; _i++) {\n _b = _a[_i], index = _b[0], option = _b[1];\n logger.log(\"\\t\".concat(index + 1, \". \").concat(option.text));\n }\n }\n }\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n e_1 = _c.sent();\n logger.error(\"~~~ Dev Tools ~ Error: Issue Capturing Screen! ~~~ \");\n return [3 /*break*/, 11];\n case 11:\n logger.log(\" ~~~ Dev Tools ~ Finished ~~~ \");\n return [2 /*return*/];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport { SearchAlgorithm } from './SearchAlgorithm';\nimport { SlayerDialogReader } from './SlayerDialogReader';\nimport { UICounterReader } from './UICounterReader';\nimport * as settings from './settings';\nimport * as docHandler from './dochandler';\nimport * as logger from \"./logger\";\n// Setup the readers and search algo\nexport var searchAlgo = new SearchAlgorithm();\nexport var slayerReader = new SlayerDialogReader();\nexport var counterReader = new UICounterReader();\nexport var searchResult = false;\n// Get a timer and setup vars\nvar timer = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); };\nvar loopRunning = false;\n// Check if we can capture the screen\nexport function canCaptureRunescape() {\n return window.alt1 && alt1.rsLinked && alt1.permissionPixel;\n}\n// Capture the screen\nexport function captureRunescape() {\n if (!canCaptureRunescape())\n return null;\n try {\n return a1lib.captureHoldFullRs();\n }\n catch (ex) {\n if (ex.message === \"capturehold failed\")\n logger.warn(\"Capturing screen failed! Is runescape open?\");\n }\n return null;\n}\n// Find a task on the current screen\nexport function findTask(buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var slayerData, counterData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!settings.controller.autoCapture.enabled || loopRunning || searchResult)\n return [2 /*return*/];\n if (!buffer)\n buffer = captureRunescape();\n if (!buffer)\n return [2 /*return*/];\n loopRunning = true;\n docHandler.animate.loadingStop();\n return [4 /*yield*/, slayerReader.read(buffer)];\n case 1:\n slayerData = _a.sent();\n if (!(slayerData && slayerData[0])) return [3 /*break*/, 11];\n docHandler.animate.loading();\n if (!slayerData.selectYourOwn) return [3 /*break*/, 3];\n docHandler.main.set.suggested();\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.autoCapture.dialogTimer)];\n case 2:\n _a.sent();\n loopRunning = false;\n return [2 /*return*/];\n case 3:\n if (!(slayerData.reaper && !slayerData.ticket)) return [3 /*break*/, 5];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: slayerData[0].task, count: slayerData[0].count })];\n case 4:\n _a.sent();\n return [3 /*break*/, 9];\n case 5:\n if (!slayerData.ticket) return [3 /*break*/, 7];\n return [4 /*yield*/, docHandler.main.set.double({ name: slayerData[0].task, count: slayerData[0].count }, { name: slayerData[1].task, count: slayerData[1].count })];\n case 6:\n _a.sent();\n return [3 /*break*/, 9];\n case 7: return [4 /*yield*/, docHandler.main.set.single({ name: slayerData[0].task, count: slayerData[0].count })];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9:\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.autoCapture.dialogTimer)];\n case 10:\n _a.sent();\n loopRunning = false;\n return [3 /*break*/, 21];\n case 11:\n if (!settings.controller.autoCapture.counter) return [3 /*break*/, 20];\n return [4 /*yield*/, counterReader.read(buffer)];\n case 12:\n counterData = _a.sent();\n if (!counterData) return [3 /*break*/, 18];\n docHandler.animate.loading();\n if (!(counterData.reaper && (docHandler.main.reaperLoaded || counterData.task != null))) return [3 /*break*/, 14];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: counterData.task, count: counterData.count })];\n case 13:\n _a.sent();\n return [3 /*break*/, 16];\n case 14:\n if (!(!counterData.reaper && (docHandler.main.singleLoaded || counterData.task != null))) return [3 /*break*/, 16];\n return [4 /*yield*/, docHandler.main.set.single({ name: counterData.task, count: counterData.count })];\n case 15:\n _a.sent();\n _a.label = 16;\n case 16:\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.autoCapture.counterTimer)];\n case 17:\n _a.sent();\n loopRunning = false;\n return [3 /*break*/, 19];\n case 18:\n docHandler.animate.loadingStop();\n loopRunning = false;\n _a.label = 19;\n case 19: return [3 /*break*/, 21];\n case 20:\n docHandler.animate.loadingStop();\n loopRunning = false;\n _a.label = 21;\n case 21: return [2 /*return*/];\n }\n });\n });\n}\n// Search for tasks\nexport function searchTasks(value) {\n return __awaiter(this, void 0, void 0, function () {\n var tool, lookup, tasks, _i, lookup_1, term, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!value) return [3 /*break*/, 2];\n return [4 /*yield*/, docHandler.main.get.searchInput()];\n case 1:\n value = _a.sent();\n _a.label = 2;\n case 2:\n docHandler.main.reset.searchBox();\n settings.search.addHistory(value);\n if (!(value.length == 0 && (searchResult || !settings.controller.autoCapture.enabled))) return [3 /*break*/, 4];\n searchResult = false;\n docHandler.main.toggle.searchText();\n return [4 /*yield*/, findTask()];\n case 3:\n _a.sent();\n return [2 /*return*/];\n case 4:\n if (value.startsWith(\"devTools \")) {\n tool = value.includes(\" \") ? value.substring(value.indexOf(\" \") + 1) : value;\n settings.executeDevTools(tool);\n return [2 /*return*/];\n }\n else if (value.toLowerCase().includes(\"suggest\")) {\n docHandler.main.set.suggested();\n return [2 /*return*/];\n }\n _a.label = 5;\n case 5:\n searchResult = true;\n docHandler.main.toggle.searchText();\n logger.log(\"Searching for: \" + value);\n lookup = value.includes(\"|\") ?\n [value.substring(0, value.indexOf(\"|\")), value.substring(value.indexOf(\"|\") + 1)] :\n [value];\n tasks = [];\n _i = 0, lookup_1 = lookup;\n _a.label = 6;\n case 6:\n if (!(_i < lookup_1.length)) return [3 /*break*/, 9];\n term = lookup_1[_i];\n return [4 /*yield*/, searchAlgo.lookup(term, lookup.length > 1)];\n case 7:\n data = _a.sent();\n if (data) {\n logger.log(\"Search for (Reaper/Slayer Assignment, Alias, or Creature): \" + data.task);\n tasks.push({ name: data.task, reaper: data.reaper });\n }\n _a.label = 8;\n case 8:\n _i++;\n return [3 /*break*/, 6];\n case 9:\n if (!(tasks.length > 1)) return [3 /*break*/, 11];\n return [4 /*yield*/, docHandler.main.set.double({ name: tasks[0].name, count: 1 }, { name: tasks[1].name, count: 1 })];\n case 10:\n _a.sent();\n return [3 /*break*/, 15];\n case 11:\n if (!(tasks.length == 1)) return [3 /*break*/, 15];\n if (!tasks[0].reaper) return [3 /*break*/, 13];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: tasks[0].name, count: 1 })];\n case 12:\n _a.sent();\n return [3 /*break*/, 15];\n case 13: return [4 /*yield*/, docHandler.main.set.single({ name: tasks[0].name, count: 1 })];\n case 14:\n _a.sent();\n _a.label = 15;\n case 15:\n docHandler.animate.loadingStop();\n if (!settings.controller.autoCapture.search) return [3 /*break*/, 17];\n return [4 /*yield*/, timer(settings.controller.autoCapture.searchTimer)];\n case 16:\n _a.sent();\n searchResult = false;\n docHandler.main.toggle.searchText();\n _a.label = 17;\n case 17: return [2 /*return*/];\n }\n });\n });\n}\n","if(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error(\"Cannot find module 'canvas'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;","if(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error(\"Cannot find module 'electron/common'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;","if(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error(\"Cannot find module 'sharp'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sharp\", \"canvas\", \"electron/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"base\"] = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse\n\t\troot[\"A1lib\"] = factory(root[\"sharp\"], root[\"canvas\"], root[\"electron/common\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/base/alt1api.ts\":\n/*!*****************************!*\\\n !*** ./src/base/alt1api.ts ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n/***/ }),\n\n/***/ \"./src/base/declarations.ts\":\n/*!**********************************!*\\\n !*** ./src/base/declarations.ts ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n/***/ }),\n\n/***/ \"./src/base/imagedata-extensions.ts\":\n/*!******************************************!*\\\n !*** ./src/base/imagedata-extensions.ts ***!\n \\******************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageData = void 0;\nconst a1lib = __importStar(__webpack_require__(/*! ./index */ \"./src/base/index.ts\"));\nconst nodeimports = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\n// //TODO revamp this madness a bit?\n// (function () {\n// \tvar globalvar = (typeof self != \"undefined\" ? self : (typeof (global as any) != \"undefined\" ? (global as any) : null)) as any;\n// \t//use the node-canvas version when on node\n// \tif (typeof globalvar.ImageData == \"undefined\") {\n// \t\tlet nodecnv = requireNodeCanvas();\n// \t\tglobalvar.ImageData = nodecnv.ImageData;\n// \t}\n// \tvar fill = typeof globalvar.ImageData == \"undefined\";\n// \t//should never be reach anymore\n// \tvar constr = function (this: any) {\n// \t\tvar i = 0;\n// \t\tvar data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);\n// \t\tvar width = arguments[i++];\n// \t\tvar height = arguments[i++];\n// \t\tif (fill) {\n// \t\t\tif (!data) { data = new Uint8ClampedArray(width * height * 4); }\n// \t\t\tthis.width = width;\n// \t\t\tthis.height = height;\n// \t\t\tthis.data = data;\n// \t\t}\n// \t\telse if (oldconstr) {\n// \t\t\treturn (data ? new oldconstr(data, width, height) : new oldconstr(width, height));\n// \t\t} else {\n// \t\t\tvar canvas = document.createElement('canvas');\n// \t\t\tcanvas.width = width;\n// \t\t\tcanvas.height = height;\n// \t\t\tvar ctx = canvas.getContext(\"2d\")!;\n// \t\t\tvar imageData = ctx.createImageData(width, height);\n// \t\t\tif (data) { imageData.data.set(data); }\n// \t\t\treturn imageData;\n// \t\t}\n// \t}\n// \tvar oldconstr = globalvar.ImageData;\n// \tif (typeof document != \"undefined\") {\n// \t\ttry {\n// \t\t\tnew oldconstr(1, 1);\n// \t\t} catch (e) {\n// \t\t\t//direct constructor call not allowed in ie\n// \t\t\toldconstr = null;\n// \t\t}\n// \t}\n// \tif (!fill) { constr.prototype = globalvar.ImageData.prototype; }\n// \tglobalvar.ImageData = constr;\n// \tImageData = constr as any;\n// })();\n(function () {\n var globalvar = (typeof self != \"undefined\" ? self : (typeof __webpack_require__.g != \"undefined\" ? __webpack_require__.g : null));\n var filltype = typeof globalvar.ImageData == \"undefined\" || typeof globalvar.document == \"undefined\";\n var fillconstr = filltype;\n if (!filltype) {\n var oldconstr = globalvar.ImageData;\n try {\n let data = new Uint8ClampedArray(4);\n data[0] = 1;\n let a = new globalvar.ImageData(data, 1, 1);\n fillconstr = a.data[0] != 1;\n }\n catch (e) {\n fillconstr = true;\n }\n }\n if (fillconstr) {\n var constr = function ImageDataShim() {\n var i = 0;\n var data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);\n var width = arguments[i++];\n var height = arguments[i++];\n if (filltype) {\n if (!data) {\n data = new Uint8ClampedArray(width * height * 4);\n }\n this.width = width;\n this.height = height;\n this.data = data;\n }\n else if (fillconstr) {\n //WARNING This branch of code does not use the same pixel data backing store\n //(problem with wasm, however all wasm browser have a native constructor (unless asm.js is used))\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n var ctx = canvas.getContext(\"2d\");\n var imageData = ctx.createImageData(width, height);\n if (data) {\n imageData.data.set(data);\n }\n return imageData;\n }\n // else {\n // \t//oh no...\n // \t//we need this monstrocity in order to call the native constructor with variable number of args\n // \t//when es5 transpile is enable (that strips the spread operator)\n // \treturn new (Function.prototype.bind.apply(oldconstr, [null,...arguments]));\n // }\n };\n if (!filltype) {\n constr.prototype = globalvar.ImageData.prototype;\n }\n globalvar.ImageData = constr;\n exports.ImageData = constr;\n }\n else {\n exports.ImageData = globalvar.ImageData;\n }\n})();\n//Recast into a drawable imagedata class on all platforms, into a normal browser ImageData on browsers or a node-canvas imagedata on nodejs\nexports.ImageData.prototype.toDrawableData = function () {\n if (typeof document == \"undefined\") {\n return nodeimports.imageDataToDrawable(this);\n }\n else {\n return this;\n }\n};\nexports.ImageData.prototype.putImageData = function (buf, cx, cy) {\n for (var dx = 0; dx < buf.width; dx++) {\n for (var dy = 0; dy < buf.height; dy++) {\n var i1 = (dx + cx) * 4 + (dy + cy) * 4 * this.width;\n var i2 = dx * 4 + dy * 4 * buf.width;\n this.data[i1] = buf.data[i2];\n this.data[i1 + 1] = buf.data[i2 + 1];\n this.data[i1 + 2] = buf.data[i2 + 2];\n this.data[i1 + 3] = buf.data[i2 + 3];\n }\n }\n};\nexports.ImageData.prototype.pixelOffset = function (x, y) {\n return x * 4 + y * this.width * 4;\n};\n//creates a hash of a portion of the buffer used to check for changes\nexports.ImageData.prototype.getPixelHash = function (rect) {\n if (!rect) {\n rect = new a1lib.Rect(0, 0, this.width, this.height);\n }\n var hash = 0;\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n var i = x * 4 + y * 4 * this.width;\n hash = (((hash << 5) - hash) + this.data[i]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 1]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 2]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 3]) | 0;\n }\n }\n return hash;\n};\nexports.ImageData.prototype.clone = function (rect) {\n return this.toImage(rect).getContext(\"2d\").getImageData(0, 0, rect.width, rect.height);\n};\nexports.ImageData.prototype.show = function (x = 5, y = 5, zoom = 1) {\n if (typeof document == \"undefined\") {\n console.error(\"need a document to show an imagedata object\");\n return;\n }\n var imgs = document.getElementsByClassName(\"debugimage\");\n while (imgs.length > exports.ImageData.prototype.show.maxImages) {\n imgs[0].remove();\n }\n var el = this.toImage();\n el.classList.add(\"debugimage\");\n el.style.position = \"absolute\";\n el.style.zIndex = \"1000\";\n el.style.left = x / zoom + \"px\";\n el.style.top = y / zoom + \"px\";\n el.style.background = \"purple\";\n el.style.cursor = \"pointer\";\n el.style.imageRendering = \"pixelated\";\n el.style.outline = \"1px solid #0f0\";\n el.style.width = (this.width == 1 ? 100 : this.width) * zoom + \"px\";\n el.style.height = (this.height == 1 ? 100 : this.height) * zoom + \"px\";\n el.onclick = function () { el.remove(); };\n document.body.appendChild(el);\n return el;\n};\nexports.ImageData.prototype.show.maxImages = 10;\nexports.ImageData.prototype.toImage = function (rect) {\n if (!rect) {\n rect = new a1lib.Rect(0, 0, this.width, this.height);\n }\n if (typeof document != \"undefined\") {\n var el = document.createElement(\"canvas\");\n el.width = rect.width;\n el.height = rect.height;\n }\n else {\n el = nodeimports.createCanvas(rect.width, rect.height);\n }\n var ctx = el.getContext(\"2d\");\n ctx.putImageData(this.toDrawableData(), -rect.x, -rect.y);\n return el;\n};\nexports.ImageData.prototype.getPixel = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return [this.data[i], this.data[i + 1], this.data[i + 2], this.data[i + 3]];\n};\nexports.ImageData.prototype.getPixelValueSum = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return this.data[i] + this.data[i + 1] + this.data[i + 2];\n};\nexports.ImageData.prototype.getPixelInt = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return (this.data[i + 3] << 24) + (this.data[i + 0] << 16) + (this.data[i + 1] << 8) + (this.data[i + 2] << 0);\n};\nexports.ImageData.prototype.getColorDifference = function (x, y, r, g, b, a = 255) {\n var i = x * 4 + y * 4 * this.width;\n return Math.abs(this.data[i] - r) + Math.abs(this.data[i + 1] - g) + Math.abs(this.data[i + 2] - b) * a / 255;\n};\nexports.ImageData.prototype.setPixel = function (x, y, ...color) {\n var r, g, b, a;\n var [r, g, b, a] = (Array.isArray(color[0]) ? color[0] : color);\n var i = x * 4 + y * 4 * this.width;\n this.data[i] = r;\n this.data[i + 1] = g;\n this.data[i + 2] = b;\n this.data[i + 3] = a == undefined ? 255 : a;\n};\nexports.ImageData.prototype.setPixelInt = function (x, y, color) {\n var i = x * 4 + y * 4 * this.width;\n this.data[i] = (color >> 24) & 0xff;\n this.data[i + 1] = (color >> 16) & 0xff;\n this.data[i + 2] = (color >> 8) & 0xff;\n this.data[i + 3] = (color >> 0) & 0xff;\n};\nexports.ImageData.prototype.toFileBytes = function (format, quality) {\n if (typeof HTMLCanvasElement != \"undefined\") {\n return new Promise(d => this.toImage().toBlob(b => {\n var r = new FileReader();\n r.readAsArrayBuffer(b);\n r.onload = () => d(new Uint8Array(r.result));\n }, format, quality));\n }\n else {\n return nodeimports.imageDataToFileBytes(this, format, quality);\n }\n};\nexports.ImageData.prototype.toPngBase64 = function () {\n if (typeof HTMLCanvasElement != \"undefined\") {\n var str = this.toImage().toDataURL(\"image/png\");\n return str.slice(str.indexOf(\",\") + 1);\n }\n else {\n throw new Error(\"synchronous image conversion not supported in nodejs, try using ImageData.prototype.toFileBytes\");\n }\n};\nexports.ImageData.prototype.pixelCompare = function (buf, x = 0, y = 0, max) {\n return a1lib.ImageDetect.simpleCompare(this, buf, x, y, max);\n};\nexports.ImageData.prototype.copyTo = function (target, sourcex, sourcey, width, height, targetx, targety) {\n //convince v8 that these are 31bit uints\n const targetwidth = target.width | 0;\n const thiswidth = this.width | 0;\n const copywidth = width | 0;\n const fastwidth = Math.floor(width / 4) * 4;\n const thisdata = new Int32Array(this.data.buffer, this.data.byteOffset, this.data.byteLength / 4);\n const targetdata = new Int32Array(target.data.buffer, target.data.byteOffset, target.data.byteLength / 4);\n for (let cy = 0; cy < height; cy++) {\n let cx = 0;\n let it = (cx + targetx) + (cy + targety) * targetwidth;\n let is = (cx + sourcex) + (cy + sourcey) * thiswidth;\n //copy 4 pixels per iter (xmm)\n for (; cx < fastwidth; cx += 4) {\n targetdata[it] = thisdata[is];\n targetdata[it + 1] = thisdata[is + 1];\n targetdata[it + 2] = thisdata[is + 2];\n targetdata[it + 3] = thisdata[is + 3];\n it += 4;\n is += 4;\n }\n //copy remainder per pixel\n for (; cx < copywidth; cx++) {\n targetdata[it] = thisdata[is];\n it += 1;\n is += 1;\n }\n }\n};\nif (typeof HTMLImageElement != \"undefined\") {\n HTMLImageElement.prototype.toBuffer = function (x = 0, y = 0, w = this.width, h = this.height) {\n var cnv = document.createElement(\"canvas\");\n cnv.width = w;\n cnv.height = h;\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(this, -x, -y);\n return ctx.getImageData(0, 0, w, h);\n };\n HTMLImageElement.prototype.toCanvas = function (x = 0, y = 0, w = this.width, h = this.height) {\n var cnv = document.createElement(\"canvas\");\n cnv.width = w;\n cnv.height = h;\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(this, -x, -y);\n return cnv;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./src/base/imagedetect.ts\":\n/*!*********************************!*\\\n !*** ./src/base/imagedetect.ts ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDataSet = exports.webpackImages = exports.asyncMap = exports.coldif = exports.simpleCompareRMSE = exports.simpleCompare = exports.findSubbuffer = exports.findSubimage = exports.clearPngColorspace = exports.isPngBuffer = exports.imageDataFromFileBuffer = exports.imageDataFromBase64 = exports.imageDataFromUrl = void 0;\nconst imgref_1 = __webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\");\nconst wapper = __importStar(__webpack_require__(/*! ./wrapper */ \"./src/base/wrapper.ts\"));\nconst nodeimports = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\nconst _1 = __webpack_require__(/*! . */ \"./src/base/index.ts\");\n/**\n* Downloads an image and returns the ImageData\n* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!\n* @param url http(s) or data url to the image\n*/\nasync function imageDataFromUrl(url) {\n if (typeof Image != \"undefined\") {\n var img = new Image();\n img.crossOrigin = \"crossorigin\";\n return await new Promise((done, fail) => {\n img.onload = function () { done(img.toBuffer()); };\n img.onerror = fail;\n img.src = url;\n });\n }\n else {\n var hdr = \"data:image/png;base64,\";\n if (url.startsWith(hdr)) {\n return imageDataFromBase64(url.slice(hdr.length));\n }\n throw new Error(\"loading remote images in nodejs has been disabled, load the raw bytes and use imageDataFromNodeBuffer instead\");\n }\n}\nexports.imageDataFromUrl = imageDataFromUrl;\n/**\n* Loads an ImageData object from a base64 encoded png image\n* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!\n* @param data a base64 encoded png image\n*/\nasync function imageDataFromBase64(data) {\n if (typeof Image != \"undefined\") {\n return imageDataFromUrl(\"data:image/png;base64,\" + data);\n }\n else {\n return nodeimports.imageDataFromBase64(data);\n }\n}\nexports.imageDataFromBase64 = imageDataFromBase64;\n/**\n * Loads an ImageData object directly from a png encoded file buffer\n * This method ensures that png color space headers are taken care off\n * @param data The bytes of a png file\n */\nasync function imageDataFromFileBuffer(data) {\n clearPngColorspace(data);\n if (typeof Image != \"undefined\") {\n let blob = new Blob([data], { type: \"image/png\" });\n let url = URL.createObjectURL(blob);\n let r = await imageDataFromUrl(url);\n URL.revokeObjectURL(url);\n return r;\n }\n else {\n return nodeimports.imageDataFromBuffer(data);\n }\n}\nexports.imageDataFromFileBuffer = imageDataFromFileBuffer;\n/**\n* Checks if a given byte array is a png file (by checking for ?PNG as first 4 bytes)\n* @param bytes Raw bytes of the png file\n*/\nfunction isPngBuffer(bytes) {\n return bytes[0] == 137 && bytes[1] == 80 && bytes[2] == 78 && bytes[3] == 71;\n}\nexports.isPngBuffer = isPngBuffer;\n/**\n* Resets the colorspace data in the png file.\n* This makes sure the browser renders the exact colors in the file instead of filtering it in order to obtain the best real life representation of\n* what it looked like on the authors screen. (this feature is often broken and not supported)\n* For example a round trip printscreen -> open in browser results in different colors than the original\n* @param data Raw bytes of the png file\n*/\nfunction clearPngColorspace(data) {\n if (!isPngBuffer(data)) {\n throw new Error(\"non-png image received\");\n }\n var i = 8;\n while (i < data.length) {\n var length = data[i++] * 0x1000000 + data[i++] * 0x10000 + data[i++] * 0x100 + data[i++];\n var ancillary = !!((data[i] >> 5) & 1);\n var chunkname = String.fromCharCode(data[i], data[i + 1], data[i + 2], data[i + 3]);\n var chunkid = chunkname.toLowerCase();\n if (chunkid != \"trns\" && ancillary) {\n data[i + 0] = \"n\".charCodeAt(0);\n data[i + 1] = \"o\".charCodeAt(0);\n data[i + 2] = \"P\".charCodeAt(0);\n data[i + 3] = \"E\".charCodeAt(0);\n //calculate new chunk checksum\n //http://www.libpng.org/pub/png/spec/1.2/PNG-CRCAppendix.html\n var end = i + 4 + length;\n var crc = 0xffffffff;\n //should be fast enough like this\n var bitcrc = function (bit) {\n for (var k = 0; k < 8; k++) {\n if (bit & 1) {\n bit = 0xedb88320 ^ (bit >>> 1);\n }\n else {\n bit = bit >>> 1;\n }\n }\n return bit;\n };\n for (var a = i; a < end; a++) {\n if (a >= i + 4) {\n data[a] = 0;\n }\n var bit = data[a];\n crc = bitcrc((crc ^ bit) & 0xff) ^ (crc >>> 8);\n }\n crc = crc ^ 0xffffffff;\n //new chunk checksum\n data[i + 4 + length + 0] = (crc >> 24) & 0xff;\n data[i + 4 + length + 1] = (crc >> 16) & 0xff;\n data[i + 4 + length + 2] = (crc >> 8) & 0xff;\n data[i + 4 + length + 3] = (crc >> 0) & 0xff;\n }\n if (chunkname == \"IEND\") {\n break;\n }\n i += 4; //type\n i += length; //data\n i += 4; //crc\n }\n}\nexports.clearPngColorspace = clearPngColorspace;\n/**\n* finds the given needle ImageBuffer in the given haystack ImgRef this function uses the best optimized available\n* code depending on the type of the haystack. It will use fast c# searching if the haystack is an ImgRefBind, js searching\n* is used otherwise.\n* the checklist argument is no longer used and should ignored or null/undefined\n* The optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search the needle. The rectangle should be bigger than the needle\n* @returns An array of points where the needle is found. The array is empty if none are found\n*/\nfunction findSubimage(haystackImgref, needleBuffer, sx = 0, sy = 0, sw = haystackImgref.width, sh = haystackImgref.height) {\n if (!haystackImgref) {\n throw new TypeError();\n }\n if (!needleBuffer) {\n throw new TypeError();\n }\n var max = 30;\n //check if we can do this in alt1\n if (haystackImgref instanceof imgref_1.ImgRefBind && wapper.hasAlt1 && alt1.bindFindSubImg) {\n var needlestr = wapper.encodeImageString(needleBuffer);\n var r = alt1.bindFindSubImg(haystackImgref.handle, needlestr, needleBuffer.width, sx, sy, sw, sh);\n if (!r) {\n throw new wapper.Alt1Error();\n }\n return JSON.parse(r);\n }\n return findSubbuffer(haystackImgref.read(), needleBuffer, sx, sy, sw, sh);\n}\nexports.findSubimage = findSubimage;\n/**\n* Uses js to find the given needle ImageBuffer in the given haystack ImageBuffer. It is better to use the alt1.bind- functions in\n* combination with a1nxt.findsubimg.\n* the optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search.\n* @returns An array of points where the needle is found. The array is empty if none are found\n*/\nfunction findSubbuffer(haystack, needle, sx = 0, sy = 0, sw = haystack.width, sh = haystack.height) {\n var r = [];\n var maxdif = 30;\n var maxresults = 50;\n var needlestride = needle.width * 4;\n var heystackstride = haystack.width * 4;\n //built list of non trans pixel to check\n var checkList = [];\n for (var y = 0; y < needle.height; y++) {\n for (var x = 0; x < needle.width; x++) {\n var i = x * 4 + y * needlestride;\n if (needle.data[i + 3] == 255) {\n checkList.push({ x: x, y: y });\n }\n if (checkList.length == 10) {\n break;\n }\n }\n if (checkList.length == 10) {\n break;\n }\n }\n var cw = (sx + sw) - needle.width;\n var ch = (sy + sh) - needle.height;\n var checklength = checkList.length;\n for (var y = sy; y <= ch; y++) {\n outer: for (var x = sx; x <= cw; x++) {\n for (var a = 0; a < checklength; a++) {\n var i1 = (x + checkList[a].x) * 4 + (y + checkList[a].y) * heystackstride;\n var i2 = checkList[a].x * 4 + checkList[a].y * needlestride;\n var d = 0;\n d = d + Math.abs(haystack.data[i1 + 0] - needle.data[i2 + 0]) | 0;\n d = d + Math.abs(haystack.data[i1 + 1] - needle.data[i2 + 1]) | 0;\n d = d + Math.abs(haystack.data[i1 + 2] - needle.data[i2 + 2]) | 0;\n d *= 255 / needle.data[i2 + 3];\n if (d > maxdif) {\n continue outer;\n }\n }\n if (simpleCompare(haystack, needle, x, y, maxdif) != Infinity) {\n r.push({ x, y });\n if (r.length > maxresults) {\n return r;\n }\n }\n }\n }\n return r;\n}\nexports.findSubbuffer = findSubbuffer;\n/**\n* Compares two images and returns the average color difference per pixel between them\n* @param max The max color difference at any point in the image before short circuiting the function and returning Infinity. set to -1 to always continue.\n* @returns The average color difference per pixel or Infinity if the difference is more than max at any point in the image\n*/\nfunction simpleCompare(bigbuf, checkbuf, x, y, max = 30) {\n if (x < 0 || y < 0) {\n throw new RangeError();\n }\n if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {\n throw new RangeError();\n }\n if (max == -1) {\n max = 255 * 4;\n }\n var dif = 0;\n for (var step = 8; step >= 1; step /= 2) {\n for (var cx = 0; cx < checkbuf.width; cx += step) {\n for (var cy = 0; cy < checkbuf.height; cy += step) {\n var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;\n var i2 = cx * 4 + cy * checkbuf.width * 4;\n var d = 0;\n d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;\n d *= checkbuf.data[i2 + 3] / 255;\n if (step == 1) {\n dif += d;\n }\n if (d > max) {\n return Infinity;\n }\n }\n }\n }\n return dif / checkbuf.width / checkbuf.height;\n}\nexports.simpleCompare = simpleCompare;\n/**\n* Calculates the root mean square error between the two buffers at the given coordinate, this method can be used in situations with significant blur or\n* transparency, it does not bail early on non-matching images like simpleCompare does so it can be expected to be much slower when called often.\n* @returns The root mean square error beteen the images, high single pixel errors are penalized more than consisten low errors. return of 0 means perfect match.\n*/\nfunction simpleCompareRMSE(bigbuf, checkbuf, x, y) {\n if (x < 0 || y < 0) {\n throw new RangeError();\n }\n if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {\n throw new RangeError();\n }\n var dif = 0;\n var numpix = 0;\n for (var cx = 0; cx < checkbuf.width; cx++) {\n for (var cy = 0; cy < checkbuf.height; cy++) {\n var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;\n var i2 = cx * 4 + cy * checkbuf.width * 4;\n var d = 0;\n d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;\n var weight = checkbuf.data[i2 + 3] / 255;\n numpix += weight;\n dif += d * d * weight;\n }\n }\n return Math.sqrt(dif / numpix);\n}\nexports.simpleCompareRMSE = simpleCompareRMSE;\n/**\n* Returns the difference between two colors (scaled to the alpha of the second color)\n*/\nfunction coldif(r1, g1, b1, r2, g2, b2, a2) {\n return (Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2)) * a2 / 255; //only applies alpha for 2nd buffer!\n}\nexports.coldif = coldif;\n/**\n * Turns map of promises into a map that contains the resolved values after loading.\n * @param input\n */\nfunction asyncMap(input) {\n var raw = {};\n var promises = [];\n for (var a in input) {\n if (input.hasOwnProperty(a)) {\n raw[a] = null;\n promises.push(input[a].then(function (a, i) { raw[a] = i; r[a] = i; }.bind(null, a)));\n }\n }\n var r = {};\n var promise = Promise.all(promises).then(() => { r.loaded = true; return r; });\n Object.defineProperty(r, \"loaded\", { enumerable: false, value: false, writable: true });\n Object.defineProperty(r, \"promise\", { enumerable: false, value: promise });\n Object.defineProperty(r, \"raw\", { enumerable: false, value: raw });\n return Object.assign(r, raw);\n}\nexports.asyncMap = asyncMap;\n/**\n* Same as asyncMap, but casts the properties to ImageData in typescript\n*/\nfunction webpackImages(input) {\n return asyncMap(input);\n}\nexports.webpackImages = webpackImages;\nclass ImageDataSet {\n constructor() {\n this.buffers = [];\n }\n matchBest(img, x, y, max) {\n let best = null;\n let bestscore = max;\n for (let a = 0; a < this.buffers.length; a++) {\n let score = img.pixelCompare(this.buffers[a], x, y, bestscore);\n if (isFinite(score) && (bestscore == undefined || score < bestscore)) {\n bestscore = score;\n best = a;\n }\n }\n if (best == null) {\n return null;\n }\n return { index: best, score: bestscore };\n }\n static fromFilmStrip(baseimg, width) {\n if ((baseimg.width % width) != 0) {\n throw new Error(\"slice size does not fit in base img\");\n }\n let r = new ImageDataSet();\n for (let x = 0; x < baseimg.width; x += width) {\n r.buffers.push(baseimg.clone(new _1.Rect(x, 0, width, baseimg.height)));\n }\n return r;\n }\n static fromFilmStripUneven(baseimg, widths) {\n let r = new ImageDataSet();\n let x = 0;\n for (let w of widths) {\n r.buffers.push(baseimg.clone(new _1.Rect(x, 0, w, baseimg.height)));\n x += w;\n if (x > baseimg.width) {\n throw new Error(\"sampling filmstrip outside bounds\");\n }\n }\n if (x != baseimg.width) {\n throw new Error(\"unconsumed pixels left in film strip imagedata\");\n }\n return r;\n }\n static fromAtlas(baseimg, slices) {\n let r = new ImageDataSet();\n for (let slice of slices) {\n r.buffers.push(baseimg.clone(slice));\n }\n return r;\n }\n}\nexports.ImageDataSet = ImageDataSet;\n\n\n/***/ }),\n\n/***/ \"./src/base/imgref.ts\":\n/*!****************************!*\\\n !*** ./src/base/imgref.ts ***!\n \\****************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImgRefData = exports.ImgRefBind = exports.ImgRefCtx = exports.ImgRef = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\n/**\n * Represents an image that might be in different types of memory\n * This is mostly used to represent images still in Alt1 memory that have\n * not been transfered to js yet. Various a1lib api's use this type and\n * choose the most efficient approach based on the memory type\n */\nclass ImgRef {\n constructor(x, y, w, h) {\n this.t = \"none\";\n this.x = x;\n this.y = y;\n this.width = w;\n this.height = h;\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n throw new Error(\"This imgref (\" + this.t + \") does not support toData\");\n }\n findSubimage(needle, sx = 0, sy = 0, w = this.width, h = this.height) {\n return index_1.ImageDetect.findSubimage(this, needle, sx, sy, w, h);\n }\n toData(x = this.x, y = this.y, w = this.width, h = this.height) {\n return this.read(x - this.x, y - this.y, w, h);\n }\n ;\n containsArea(rect) {\n return this.x <= rect.x && this.y <= rect.y && this.x + this.width >= rect.x + rect.width && this.y + this.height >= rect.y + rect.height;\n }\n}\nexports.ImgRef = ImgRef;\n/**\n * Represents an image in js render memory (canvas/image tag)\n */\nclass ImgRefCtx extends ImgRef {\n constructor(img, x = 0, y = 0) {\n if (img instanceof CanvasRenderingContext2D) {\n super(x, y, img.canvas.width, img.canvas.height);\n this.ctx = img;\n }\n else {\n super(x, y, img.width, img.height);\n var cnv = (img instanceof HTMLCanvasElement ? img : img.toCanvas());\n this.ctx = cnv.getContext(\"2d\");\n }\n this.t = \"ctx\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n return this.ctx.getImageData(x, y, w, h);\n }\n}\nexports.ImgRefCtx = ImgRefCtx;\n/**\n * Represents in image in Alt1 memory, This type of image can be searched for subimages\n * very efficiently and transfering the full image to js can be avoided this way\n */\nclass ImgRefBind extends ImgRef {\n constructor(handle, x = 0, y = 0, w = 0, h = 0) {\n super(x, y, w, h);\n this.handle = handle;\n this.t = \"bind\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n return (0, index_1.transferImageData)(this.handle, x, y, w, h);\n }\n}\nexports.ImgRefBind = ImgRefBind;\n/**\n * Represents an image in js memory\n */\nclass ImgRefData extends ImgRef {\n constructor(buf, x = 0, y = 0) {\n super(x, y, buf.width, buf.height);\n this.buf = buf;\n this.t = \"data\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n if (x == 0 && y == 0 && w == this.width && h == this.height) {\n return this.buf;\n }\n var r = new ImageData(w, h);\n for (var b = y; b < y + h; b++) {\n for (var a = x; a < x + w; a++) {\n var i1 = (a - x) * 4 + (b - y) * w * 4;\n var i2 = a * 4 + b * 4 * this.buf.width;\n r.data[i1] = this.buf.data[i2];\n r.data[i1 + 1] = this.buf.data[i2 + 1];\n r.data[i1 + 2] = this.buf.data[i2 + 2];\n r.data[i1 + 3] = this.buf.data[i2 + 3];\n }\n }\n return r;\n }\n}\nexports.ImgRefData = ImgRefData;\n\n\n/***/ }),\n\n/***/ \"./src/base/index.ts\":\n/*!***************************!*\\\n !*** ./src/base/index.ts ***!\n \\***************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDataSet = exports.findSubbuffer = exports.simpleCompare = exports.findSubimage = exports.webpackImages = exports.NodePolyfill = exports.ImageData = exports.Rect = exports.PasteInput = exports.ImageDetect = void 0;\n__webpack_require__(/*! ./declarations */ \"./src/base/declarations.ts\");\nexports.ImageDetect = __importStar(__webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\"));\nexports.PasteInput = __importStar(__webpack_require__(/*! ./pasteinput */ \"./src/base/pasteinput.ts\"));\nvar rect_1 = __webpack_require__(/*! ./rect */ \"./src/base/rect.ts\");\nObject.defineProperty(exports, \"Rect\", ({ enumerable: true, get: function () { return __importDefault(rect_1).default; } }));\nvar imagedata_extensions_1 = __webpack_require__(/*! ./imagedata-extensions */ \"./src/base/imagedata-extensions.ts\");\nObject.defineProperty(exports, \"ImageData\", ({ enumerable: true, get: function () { return imagedata_extensions_1.ImageData; } }));\nexports.NodePolyfill = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\n__exportStar(__webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\"), exports);\n__exportStar(__webpack_require__(/*! ./wrapper */ \"./src/base/wrapper.ts\"), exports);\nvar imagedetect_1 = __webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\");\nObject.defineProperty(exports, \"webpackImages\", ({ enumerable: true, get: function () { return imagedetect_1.webpackImages; } }));\nObject.defineProperty(exports, \"findSubimage\", ({ enumerable: true, get: function () { return imagedetect_1.findSubimage; } }));\nObject.defineProperty(exports, \"simpleCompare\", ({ enumerable: true, get: function () { return imagedetect_1.simpleCompare; } }));\nObject.defineProperty(exports, \"findSubbuffer\", ({ enumerable: true, get: function () { return imagedetect_1.findSubbuffer; } }));\nObject.defineProperty(exports, \"ImageDataSet\", ({ enumerable: true, get: function () { return imagedetect_1.ImageDataSet; } }));\n\n\n/***/ }),\n\n/***/ \"./src/base/nodepolyfill.ts\":\n/*!**********************************!*\\\n !*** ./src/base/nodepolyfill.ts ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n//nodejs and electron polyfills for web api's\n//commented out type info as that breaks webpack with optional dependencies\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.imageDataFromBuffer = exports.imageDataFromBase64 = exports.imageDataToFileBytes = exports.createCanvas = exports.imageDataToDrawable = exports.requireElectronCommon = exports.requireNodeCanvas = exports.requireSharp = exports.polyfillRequire = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\nconst imagedetect_1 = __webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\");\nvar requirefunction = null;\n/**\n * Call this function to let the libs require extra dependencies on nodejs in order\n * to polyfill some browser api's (mostly image compression/decompression)\n * `NodePolifill.polyfillRequire(require);` should solve most cases\n */\nfunction polyfillRequire(requirefn) {\n requirefunction = requirefn;\n}\nexports.polyfillRequire = polyfillRequire;\nfunction requireSharp() {\n try {\n if (requirefunction) {\n return requirefunction(\"sharp\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! sharp */ \"sharp\"); // as typeof import(\"sharp\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireSharp = requireSharp;\nfunction requireNodeCanvas() {\n //attempt to require sharp first, after loading canvas the module sharp fails to load\n requireSharp();\n try {\n if (requirefunction) {\n return requirefunction(\"canvas\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! canvas */ \"canvas\"); // as typeof import(\"sharp\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireNodeCanvas = requireNodeCanvas;\nfunction requireElectronCommon() {\n try {\n if (requirefunction) {\n return requirefunction(\"electron/common\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! electron/common */ \"electron/common\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireElectronCommon = requireElectronCommon;\nfunction imageDataToDrawable(buf) {\n let nodecnv = requireNodeCanvas();\n if (!nodecnv) {\n throw new Error(\"couldn't find built-in canvas or the module 'canvas'\");\n }\n return new nodecnv.ImageData(buf.data, buf.width, buf.height);\n}\nexports.imageDataToDrawable = imageDataToDrawable;\nfunction createCanvas(w, h) {\n let nodecnv = requireNodeCanvas();\n if (!nodecnv) {\n throw new Error(\"couldn't find built-in canvas or the module 'canvas'\");\n }\n return nodecnv.createCanvas(w, h);\n}\nexports.createCanvas = createCanvas;\nfunction flipBGRAtoRGBA(data) {\n for (let i = 0; i < data.length; i += 4) {\n let tmp = data[i + 2];\n data[i + 2] = data[i + 0];\n data[i + 0] = tmp;\n }\n}\nasync function imageDataToFileBytes(buf, format, quality) {\n //use the electron API if we're in electron\n var electronCommon;\n var sharp;\n if (electronCommon = requireElectronCommon()) {\n let nativeImage = electronCommon.nativeImage;\n //need to copy the buffer in order to flip it without destroying the original\n let bufcpy = Buffer.from(buf.data.slice(buf.data.byteOffset, buf.data.byteLength));\n flipBGRAtoRGBA(bufcpy);\n let nativeimg = nativeImage.createFromBitmap(bufcpy, { width: buf.width, height: buf.height });\n return nativeimg.toPNG();\n }\n else if (sharp = requireSharp()) {\n let img = sharp(Buffer.from(buf.data.buffer), { raw: { width: buf.width, height: buf.height, channels: 4 } });\n if (format == \"image/png\") {\n img.png();\n }\n else if (format == \"image/webp\") {\n var opts = { quality: 80 };\n if (typeof quality == \"number\") {\n opts.quality = quality * 100;\n }\n img.webp(opts);\n }\n else {\n throw new Error(\"unknown image format: \" + format);\n }\n return await img.toBuffer({ resolveWithObject: false }).buffer;\n }\n throw new Error(\"coulnd't find build-in image compression methods or the module 'electron/common' or 'sharp'\");\n}\nexports.imageDataToFileBytes = imageDataToFileBytes;\nfunction imageDataFromBase64(base64) {\n return imageDataFromBuffer(Buffer.from(base64, \"base64\"));\n}\nexports.imageDataFromBase64 = imageDataFromBase64;\nasync function imageDataFromBuffer(buffer) {\n (0, imagedetect_1.clearPngColorspace)(buffer);\n //use the electron API if we're in electron\n var electronCommon;\n var nodecnv;\n if (electronCommon = requireElectronCommon()) {\n let nativeImage = electronCommon.nativeImage;\n let img = nativeImage.createFromBuffer(buffer);\n let pixels = img.toBitmap();\n let size = img.getSize();\n let pixbuf = new Uint8ClampedArray(pixels.buffer, pixels.byteOffset, pixels.byteLength);\n flipBGRAtoRGBA(pixbuf);\n return new index_1.ImageData(pixbuf, size.width, size.height);\n }\n else if (nodecnv = requireNodeCanvas()) {\n return new Promise((done, err) => {\n let img = new nodecnv.Image();\n img.onerror = err;\n img.onload = () => {\n var cnv = nodecnv.createCanvas(img.naturalWidth, img.naturalHeight);\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, img.naturalWidth, img.naturalHeight);\n //use our own class\n done(new index_1.ImageData(data.data, data.width, data.height));\n };\n img.src = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n });\n }\n throw new Error(\"couldn't find built-in canvas, module 'electron/common' or the module 'canvas'\");\n}\nexports.imageDataFromBuffer = imageDataFromBuffer;\n\n\n/***/ }),\n\n/***/ \"./src/base/pasteinput.ts\":\n/*!********************************!*\\\n !*** ./src/base/pasteinput.ts ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.fileDialog = exports.start = exports.startDragNDrop = exports.triggerPaste = exports.unlisten = exports.listen = exports.lastref = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\nconst ImageDetect = __importStar(__webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\"));\nvar listeners = [];\nvar started = false;\nvar dndStarted = false;\nvar pasting = false;\nexports.lastref = null;\nfunction listen(func, errorfunc, dragndrop) {\n listeners.push({ cb: func, error: errorfunc });\n if (!started) {\n start();\n }\n if (dragndrop && !dndStarted) {\n startDragNDrop();\n }\n}\nexports.listen = listen;\nfunction unlisten(func) {\n let i = listeners.findIndex(c => c.cb == func);\n if (i != -1) {\n listeners.splice(i, 1);\n }\n}\nexports.unlisten = unlisten;\n/**\n * currently used in multiple document situations (iframe), might be removed in the future\n */\nfunction triggerPaste(img) {\n exports.lastref = img;\n for (var a in listeners) {\n listeners[a].cb(exports.lastref);\n }\n}\nexports.triggerPaste = triggerPaste;\nfunction pasted(img) {\n pasting = false;\n let cnv = img instanceof HTMLCanvasElement ? img : img.toCanvas();\n triggerPaste(new index_1.ImgRefCtx(cnv));\n}\nfunction error(error, mes) {\n var _a, _b;\n pasting = false;\n for (var a in listeners) {\n (_b = (_a = listeners[a]).error) === null || _b === void 0 ? void 0 : _b.call(_a, mes, error);\n }\n}\nfunction startDragNDrop() {\n var getitem = function (items) {\n var foundimage = \"\";\n for (var a = 0; a < items.length; a++) {\n var item = items[a];\n var m = item.type.match(/^image\\/(\\w+)$/);\n if (m) {\n if (m[1] == \"png\") {\n return item;\n }\n else {\n foundimage = m[1];\n }\n }\n }\n if (foundimage) {\n error(\"notpng\", \"The image you uploaded is not a .png image. Other image type have compression noise and can't be used for image detection.\");\n }\n return null;\n };\n window.addEventListener(\"dragover\", function (e) {\n e.preventDefault();\n });\n window.addEventListener(\"drop\", function (e) {\n if (!e.dataTransfer) {\n return;\n }\n var item = getitem(e.dataTransfer.items);\n e.preventDefault();\n if (!item) {\n return;\n }\n fromFile(item.getAsFile());\n });\n}\nexports.startDragNDrop = startDragNDrop;\nfunction start() {\n if (started) {\n return;\n }\n started = true;\n //determine if we have a clipboard api\n //try{a=new Event(\"clipboard\"); a=\"clipboardData\" in a;}\n //catch(e){a=false;}\n var ischrome = !!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edge/);\n //old method breaks after chrome 41, revert to good old user agent sniffing\n //nvm, internet explorer (edge) decided that it wants to be chrome, however fails at delivering\n //turns out this one is interesting, edge is a hybrid between the paste api's\n var apipasted = function (e) {\n if (!e.clipboardData) {\n return;\n }\n for (var a = 0; a < e.clipboardData.items.length; a++) { //loop all data types\n if (e.clipboardData.items[a].type.indexOf(\"image\") != -1) {\n var file = e.clipboardData.items[a].getAsFile();\n if (file) {\n var img = new Image();\n img.src = (window.URL || window.webkitURL).createObjectURL(file);\n if (img.width > 0) {\n pasted(img);\n }\n else {\n img.onload = function () { pasted(img); };\n }\n }\n }\n }\n };\n if (ischrome) {\n document.addEventListener(\"paste\", apipasted);\n }\n else {\n var catcher = document.createElement(\"div\");\n catcher.setAttribute(\"contenteditable\", \"\");\n catcher.className = \"forcehidden\"; //retarded ie safety/bug, cant apply styles using js//TODO i don't even know what's going on\n catcher.onpaste = function (e) {\n if (e.clipboardData && e.clipboardData.items) {\n apipasted(e);\n return;\n }\n setTimeout(function () {\n var b = catcher.children[0];\n if (!b || b.tagName != \"IMG\") {\n return;\n }\n var img = new Image();\n img.src = b.src;\n var a = img.src.match(/^data:([\\w\\/]+);/);\n if (img.width > 0) {\n pasted(img);\n }\n else {\n img.onload = function () { pasted(img); };\n }\n catcher.innerHTML = \"\";\n }, 1);\n };\n document.body.appendChild(catcher);\n }\n //detect if ctrl-v is pressed and focus catcher if needed\n document.addEventListener(\"keydown\", function (e) {\n if (e.target.tagName == \"INPUT\") {\n return;\n }\n if (e.keyCode != \"V\".charCodeAt(0) || !e.ctrlKey) {\n return;\n }\n pasting = true;\n setTimeout(function () {\n if (pasting) {\n error(\"noimg\", \"You pressed Ctrl+V, but no image was pasted by your browser, make sure your clipboard contains an image, and not a link to an image.\");\n }\n }, 1000);\n if (catcher) {\n catcher.focus();\n }\n });\n}\nexports.start = start;\nfunction fileDialog() {\n var fileinput = document.createElement(\"input\");\n fileinput.type = \"file\";\n fileinput.accept = \"image/png\";\n fileinput.onchange = function () { if (fileinput.files && fileinput.files[0]) {\n fromFile(fileinput.files[0]);\n } };\n fileinput.click();\n return fileinput;\n}\nexports.fileDialog = fileDialog;\nfunction fromFile(file) {\n if (!file) {\n return;\n }\n var reader = new FileReader();\n reader.onload = function () {\n var bytearray = new Uint8Array(reader.result);\n if (ImageDetect.isPngBuffer(bytearray)) {\n ImageDetect.clearPngColorspace(bytearray);\n }\n var blob = new Blob([bytearray], { type: \"image/png\" });\n var img = new Image();\n img.onerror = () => error(\"invalidfile\", \"The file you uploaded could not be opened as an image.\");\n var bloburl = URL.createObjectURL(blob);\n img.src = bloburl;\n if (img.width > 0) {\n pasted(img);\n URL.revokeObjectURL(bloburl);\n }\n else {\n img.onload = function () { pasted(img); URL.revokeObjectURL(bloburl); };\n }\n };\n reader.readAsArrayBuffer(file);\n}\n\n\n/***/ }),\n\n/***/ \"./src/base/rect.ts\":\n/*!**************************!*\\\n !*** ./src/base/rect.ts ***!\n \\**************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\n//util class for rectangle maths\n//TODO shit this sucks can we remove it again?\n//more of a shorthand to get {x,y,width,height} than a class\n//kinda starting to like it again\n//TODO remove rant\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n;\n/**\n * Simple rectangle class with some util functions\n */\nclass Rect {\n constructor(x, y, w, h) {\n this.x = x;\n this.y = y;\n this.width = w;\n this.height = h;\n }\n static fromArgs(...args) {\n if (typeof args[0] == \"object\") {\n return new Rect(args[0].x, args[0].y, args[0].width, args[0].height);\n }\n else if (typeof args[0] == \"number\" && args.length >= 4) {\n return new Rect(args[0], args[1], args[2], args[3]);\n }\n else {\n throw new Error(\"invalid rect args\");\n }\n }\n /**\n * Resizes this Rect to include the full size of a given second rectangle\n */\n union(r2) {\n var x = Math.min(this.x, r2.x);\n var y = Math.min(this.y, r2.y);\n this.width = Math.max(this.x + this.width, r2.x + r2.width) - x;\n this.height = Math.max(this.y + this.height, r2.y + r2.height) - y;\n this.x = x;\n this.y = y;\n return this;\n }\n /**\n * Resizes this Rect to include a given point\n */\n includePoint(x, y) {\n this.union(new Rect(x, y, 0, 0));\n }\n /**\n * Grows the rectangle with the given dimensions\n */\n inflate(w, h) {\n this.x -= w;\n this.y -= h;\n this.width += 2 * w;\n this.height += 2 * h;\n }\n /**\n * Resizes this Rect to the area that overlaps a given Rect\n * width and height will be set to 0 if the intersection does not exist\n */\n intersect(r2) {\n if (this.x < r2.x) {\n this.width -= r2.x - this.x;\n this.x = r2.x;\n }\n if (this.y < r2.y) {\n this.height -= r2.y - this.y;\n this.y = r2.y;\n }\n this.width = Math.min(this.x + this.width, r2.x + r2.width) - this.x;\n this.height = Math.min(this.y + this.height, r2.y + r2.height) - this.y;\n if (this.width <= 0 || this.height <= 0) {\n this.width = 0;\n this.height = 0;\n }\n }\n /**\n * Returns wether this Rect has at least one pixel overlap with a given Rect\n */\n overlaps(r2) {\n return this.x < r2.x + r2.width && this.x + this.width > r2.x && this.y < r2.y + r2.height && this.y + this.height > r2.y;\n }\n /**\n * Returns wether a given Rect fits completely inside this Rect\n * @param r2\n */\n contains(r2) {\n return this.x <= r2.x && this.x + this.width >= r2.x + r2.width && this.y <= r2.y && this.y + this.height >= r2.y + r2.height;\n }\n /**\n * Returns wether a given point lies inside this Rect\n */\n containsPoint(x, y) {\n return this.x <= x && this.x + this.width > x && this.y <= y && this.y + this.height > y;\n }\n}\nexports[\"default\"] = Rect;\n\n\n/***/ }),\n\n/***/ \"./src/base/wrapper.ts\":\n/*!*****************************!*\\\n !*** ./src/base/wrapper.ts ***!\n \\*****************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.captureStream = exports.captureMultiAsync = exports.captureAsync = exports.ImageStreamReader = exports.once = exports.removeListener = exports.on = exports.addResizeElement = exports.getMousePosition = exports.hasAlt1Version = exports.resetEnvironment = exports.identifyApp = exports.unmixColor = exports.mixColor = exports.encodeImageString = exports.decodeImageString = exports.transferImageData = exports.captureHoldFullRs = exports.captureHoldScreen = exports.captureHold = exports.capture = exports.getdisplaybounds = exports.requireAlt1 = exports.openbrowser = exports.skinName = exports.hasAlt1 = exports.newestversion = exports.Alt1Error = exports.NoAlt1Error = void 0;\nconst rect_1 = __importDefault(__webpack_require__(/*! ./rect */ \"./src/base/rect.ts\"));\nconst imgref_1 = __webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\");\nconst imagedata_extensions_1 = __webpack_require__(/*! ./imagedata-extensions */ \"./src/base/imagedata-extensions.ts\");\n__webpack_require__(/*! ./alt1api */ \"./src/base/alt1api.ts\");\n/**\n * Thrown when a method is called that can not be used outside of Alt1\n */\nclass NoAlt1Error extends Error {\n constructor() {\n super();\n this.message = \"This method can not be ran outside of Alt1\";\n }\n}\nexports.NoAlt1Error = NoAlt1Error;\n;\n/**\n * Thrown when the Alt1 API returns an invalid result\n * Errors of a different type are throw when internal Alt1 errors occur\n */\nclass Alt1Error extends Error {\n}\nexports.Alt1Error = Alt1Error;\n/**\n * The latest Alt1 version\n */\nexports.newestversion = \"1.5.5\";\n/**\n * Whether the Alt1 API is available\n */\nexports.hasAlt1 = (typeof alt1 != \"undefined\");\n/**\n * The name of the Alt1 interface skin. (Always \"default\" if running in a browser)\n */\nexports.skinName = exports.hasAlt1 ? alt1.skinName : \"default\";\n/**\n * Max number of bytes that can be sent by alt1 in one function\n * Not completely sure why this number is different than window.alt1.maxtranfer\n */\nvar maxtransfer = 4000000;\n/**\n * Open a link in the default browser\n * @deprecated use window.open instead\n */\nfunction openbrowser(url) {\n if (exports.hasAlt1) {\n alt1.openBrowser(url);\n }\n else {\n window.open(url, '_blank');\n }\n}\nexports.openbrowser = openbrowser;\n/**\n * Throw if Alt1 API is not available\n */\nfunction requireAlt1() {\n if (!exports.hasAlt1) {\n throw new NoAlt1Error();\n }\n}\nexports.requireAlt1 = requireAlt1;\n/**\n * Returns an object with a rectangle that spans all screens\n */\nfunction getdisplaybounds() {\n if (!exports.hasAlt1) {\n return false;\n }\n return new rect_1.default(alt1.screenX, alt1.screenY, alt1.screenWidth, alt1.screenHeight);\n}\nexports.getdisplaybounds = getdisplaybounds;\n/**\n * gets an imagebuffer with pixel data about the requested region\n */\nfunction capture(...args) {\n //TODO change null return on error into throw instead (x3)\n if (!exports.hasAlt1) {\n throw new NoAlt1Error();\n }\n var rect = rect_1.default.fromArgs(...args);\n if (alt1.capture) {\n return new imagedata_extensions_1.ImageData(alt1.capture(rect.x, rect.y, rect.width, rect.height), rect.width, rect.height);\n }\n var buf = new imagedata_extensions_1.ImageData(rect.width, rect.height);\n if (rect.width * rect.height * 4 <= maxtransfer) {\n var data = alt1.getRegion(rect.x, rect.y, rect.width, rect.height);\n if (!data) {\n return null;\n }\n decodeImageString(data, buf, 0, 0, rect.width, rect.height);\n }\n else {\n //split up the request to to exceed the single transfer limit (for now)\n var x1 = rect.x;\n var ref = alt1.bindRegion(rect.x, rect.y, rect.width, rect.height);\n if (ref <= 0) {\n return null;\n }\n while (x1 < rect.x + rect.width) {\n var x2 = Math.min(rect.x + rect.width, Math.floor(x1 + (maxtransfer / 4 / rect.height)));\n var data = alt1.bindGetRegion(ref, x1, rect.y, x2 - x1, rect.height);\n if (!data) {\n return null;\n }\n decodeImageString(data, buf, x1 - rect.x, 0, x2 - x1, rect.height);\n x1 = x2;\n }\n }\n return buf;\n}\nexports.capture = capture;\n/**\n * Makes alt1 bind an area of the rs client in memory without sending it to the js client\n * returns an imgref object which can be used to get pixel data using the imgreftobuf function\n * currently only one bind can exist per app and the ref in (v) will always be 1\n */\nfunction captureHold(x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n var r = alt1.bindRegion(x, y, w, h);\n if (r <= 0) {\n throw new Alt1Error(\"capturehold failed\");\n }\n return new imgref_1.ImgRefBind(r, x, y, w, h);\n}\nexports.captureHold = captureHold;\n/**\n * Same as captureHoldRegion, but captures the screen instead of the rs client. it also uses screen coordinates instead and can capture outside of the rs client\n */\nfunction captureHoldScreen(x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n var r = alt1.bindScreenRegion(x, y, w, h);\n if (r <= 0) {\n return false;\n }\n return new imgref_1.ImgRefBind(r, x, y, w, h);\n}\nexports.captureHoldScreen = captureHoldScreen;\n/**\n * bind the full rs window if the rs window can be detected by alt1, otherwise return the full screen\n */\nfunction captureHoldFullRs() {\n return captureHold(0, 0, alt1.rsWidth, alt1.rsHeight);\n}\nexports.captureHoldFullRs = captureHoldFullRs;\n/**\n * returns a subregion from a bound image\n * used internally in imgreftobuf if imgref is a bound image\n * @deprecated This should be handled internall by the imgrefbind.toData method\n */\nfunction transferImageData(handle, x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n if (alt1.bindGetRegionBuffer) {\n return new imagedata_extensions_1.ImageData(alt1.bindGetRegionBuffer(handle, x, y, w, h), w, h);\n }\n var r = new imagedata_extensions_1.ImageData(w, h);\n var x1 = x;\n while (true) { //split up the request to to exceed the single transfer limit (for now)\n var x2 = Math.min(x + w, Math.floor(x1 + (maxtransfer / 4 / h)));\n var a = alt1.bindGetRegion(handle, x1, y, x2 - x1, h);\n if (!a) {\n throw new Alt1Error();\n }\n decodeImageString(a, r, x1 - x, 0, x2 - x1, h);\n x1 = x2;\n if (x1 == x + w) {\n break;\n }\n ;\n }\n return r;\n}\nexports.transferImageData = transferImageData;\n/**\n * decodes a returned string from alt1 to an imagebuffer\n */\nfunction decodeImageString(imagestring, target, x, y, w, h) {\n var bin = atob(imagestring);\n var bytes = target.data;\n w |= 0;\n h |= 0;\n var offset = 4 * x + 4 * y * target.width;\n var target_width = target.width | 0;\n for (var a = 0; a < w; a++) {\n for (var b = 0; b < h; b++) {\n var i1 = (offset + (a * 4 | 0) + (b * target_width * 4 | 0)) | 0;\n var i2 = ((a * 4 | 0) + (b * 4 * w | 0)) | 0;\n bytes[i1 + 0 | 0] = bin.charCodeAt(i2 + 2 | 0); //fix weird red/blue swap in c#\n bytes[i1 + 1 | 0] = bin.charCodeAt(i2 + 1 | 0);\n bytes[i1 + 2 | 0] = bin.charCodeAt(i2 + 0 | 0);\n bytes[i1 + 3 | 0] = bin.charCodeAt(i2 + 3 | 0);\n }\n }\n return target;\n}\nexports.decodeImageString = decodeImageString;\n/**\n * encodes an imagebuffer to a string\n */\nfunction encodeImageString(buf, sx = 0, sy = 0, sw = buf.width, sh = buf.height) {\n var raw = \"\";\n for (var y = sy; y < sy + sh; y++) {\n for (var x = sx; x < sx + sw; x++) {\n var i = 4 * x + 4 * buf.width * y | 0;\n raw += String.fromCharCode(buf.data[i + 2 | 0]);\n raw += String.fromCharCode(buf.data[i + 1 | 0]);\n raw += String.fromCharCode(buf.data[i + 0 | 0]);\n raw += String.fromCharCode(buf.data[i + 3 | 0]);\n }\n }\n return btoa(raw);\n}\nexports.encodeImageString = encodeImageString;\n/**\n * mixes the given color into a single int. This format is used by alt1\n */\nfunction mixColor(r, g, b, a = 255) {\n return (b << 0) + (g << 8) + (r << 16) + (a << 24);\n}\nexports.mixColor = mixColor;\nfunction unmixColor(col) {\n var r = (col >> 16) & 0xff;\n var g = (col >> 8) & 0xff;\n var b = (col >> 0) & 0xff;\n return [r, g, b];\n}\nexports.unmixColor = unmixColor;\nfunction identifyApp(url) {\n if (exports.hasAlt1) {\n alt1.identifyAppUrl(url);\n }\n}\nexports.identifyApp = identifyApp;\nfunction resetEnvironment() {\n exports.hasAlt1 = (typeof alt1 != \"undefined\");\n exports.skinName = exports.hasAlt1 ? alt1.skinName : \"default\";\n}\nexports.resetEnvironment = resetEnvironment;\nfunction convertAlt1Version(str) {\n var a = str.match(/^(\\d+)\\.(\\d+)\\.(\\d+)$/);\n if (!a) {\n throw new RangeError(\"Invalid version string\");\n }\n return (+a[1]) * 1000 * 1000 + (+a[2]) * 1000 + (+a[3]) * 1;\n}\nvar cachedVersionInt = -1;\n/**\n * checks if alt1 is running and at least the given version. versionstr should be a string with the version eg: 1.3.2\n * @param versionstr\n */\nfunction hasAlt1Version(versionstr) {\n if (!exports.hasAlt1) {\n return false;\n }\n if (cachedVersionInt == -1) {\n cachedVersionInt = alt1.versionint;\n }\n return cachedVersionInt >= convertAlt1Version(versionstr);\n}\nexports.hasAlt1Version = hasAlt1Version;\n/**\n * Gets the current cursor position in the game, returns null if the rs window is not active (alt1.rsActive)\n */\nfunction getMousePosition() {\n var pos = alt1.mousePosition;\n if (pos == -1) {\n return null;\n }\n return { x: pos >>> 16, y: pos & 0xFFFF };\n}\nexports.getMousePosition = getMousePosition;\n/**\n * Registers a given HTML element as a frame border, when this element is dragged by the user the Alt1 frame will resize accordingly\n * Use the direction arguements to make a given direction stick to the mouse. eg. Only set left to true to make the element behave as the left border\n * Or set all to true to move the whole window. Not all combinations are permitted\n */\nfunction addResizeElement(el, left, top, right, bot) {\n if (!exports.hasAlt1 || !alt1.userResize) {\n return;\n }\n el.addEventListener(\"mousedown\", function (e) {\n alt1.userResize(left, top, right, bot);\n e.preventDefault();\n });\n}\nexports.addResizeElement = addResizeElement;\n/**\n * Add an event listener\n */\nfunction on(type, listener) {\n if (!exports.hasAlt1) {\n return;\n }\n if (!alt1.events) {\n alt1.events = {};\n }\n if (!alt1.events[type]) {\n alt1.events[type] = [];\n }\n alt1.events[type].push(listener);\n}\nexports.on = on;\n/**\n * Removes an event listener\n */\nfunction removeListener(type, listener) {\n var elist = exports.hasAlt1 && alt1.events && alt1.events[type];\n if (!elist) {\n return;\n }\n var i = elist.indexOf(listener);\n if (i == -1) {\n return;\n }\n elist.splice(i, 1);\n}\nexports.removeListener = removeListener;\n/**\n * Listens for the event to fire once and then stops listening\n * @param event\n * @param cb\n */\nfunction once(type, listener) {\n var fn = (e) => {\n removeListener(type, fn);\n listener(e);\n };\n on(type, fn);\n}\nexports.once = once;\n;\n/**\n * Used to read a set of images from a binary stream returned by the Alt1 API\n */\nclass ImageStreamReader {\n constructor(reader, ...args) {\n this.framebuffer = null;\n this.pos = 0;\n this.reading = false;\n this.closed = false;\n //paused state\n this.pausedindex = -1;\n this.pausedbuffer = null;\n this.streamreader = reader;\n if (args[0] instanceof imagedata_extensions_1.ImageData) {\n this.setFrameBuffer(args[0]);\n }\n else if (typeof args[0] == \"number\") {\n this.setFrameBuffer(new imagedata_extensions_1.ImageData(args[0], args[1]));\n }\n }\n /**\n *\n */\n setFrameBuffer(buffer) {\n if (this.reading) {\n throw new Error(\"can't change framebuffer while reading\");\n }\n this.framebuffer = buffer;\n }\n /**\n * Closes the underlying stream and ends reading\n */\n close() {\n this.streamreader.cancel();\n }\n /**\n * Reads a single image from the stream\n */\n async nextImage() {\n if (this.reading) {\n throw new Error(\"already reading from this stream\");\n }\n if (!this.framebuffer) {\n throw new Error(\"framebuffer not set\");\n }\n this.reading = true;\n var synctime = -Date.now();\n var starttime = Date.now();\n var r = false;\n while (!r) {\n if (this.pausedindex != -1 && this.pausedbuffer) {\n r = this.readChunk(this.pausedindex, this.framebuffer.data, this.pausedbuffer);\n }\n else {\n synctime += Date.now();\n var res = await this.streamreader.read();\n synctime -= Date.now();\n if (res.done) {\n throw new Error(\"Stream closed while reading\");\n }\n var data = res.value;\n r = this.readChunk(0, this.framebuffer.data, data);\n }\n }\n synctime += Date.now();\n //console.log(\"Decoded async image, \" + this.framebuffer.width + \"x\" + this.framebuffer.height + \" time: \" + (Date.now() - starttime) + \"ms (\" + synctime + \"ms main thread)\");\n this.reading = false;\n return this.framebuffer;\n }\n readChunk(i, framedata, buffer) {\n //very hot code, explicit int32 casting with |0 speeds it up by ~ x2\n i = i | 0;\n var framesize = framedata.length | 0;\n var pos = this.pos;\n var datalen = buffer.length | 0;\n //var data32 = new Float64Array(buffer.buffer);\n //var framedata32 = new Float64Array(framedata.buffer);\n //fix possible buffer misalignment\n //align to 16 for extra loop unrolling\n while (i < datalen) {\n //slow loop, fix alignment and other issues\n while (i < datalen && pos < framesize && (pos % 16 != 0 || !((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize))) {\n var rel = pos;\n if (pos % 4 == 0) {\n rel = rel + 2 | 0;\n }\n if (pos % 4 == 2) {\n rel = rel - 2 | 0;\n }\n framedata[rel | 0] = buffer[i | 0];\n i = i + 1 | 0;\n pos = pos + 1 | 0;\n }\n //fast unrolled loop for large chunks i wish js had some sort of memcpy\n if (pos % 16 == 0) {\n while ((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize) {\n framedata[pos + 0 | 0] = buffer[i + 2 | 0];\n framedata[pos + 1 | 0] = buffer[i + 1 | 0];\n framedata[pos + 2 | 0] = buffer[i + 0 | 0];\n framedata[pos + 3 | 0] = buffer[i + 3 | 0];\n framedata[pos + 4 | 0] = buffer[i + 6 | 0];\n framedata[pos + 5 | 0] = buffer[i + 5 | 0];\n framedata[pos + 6 | 0] = buffer[i + 4 | 0];\n framedata[pos + 7 | 0] = buffer[i + 7 | 0];\n framedata[pos + 8 | 0] = buffer[i + 10 | 0];\n framedata[pos + 9 | 0] = buffer[i + 9 | 0];\n framedata[pos + 10 | 0] = buffer[i + 8 | 0];\n framedata[pos + 11 | 0] = buffer[i + 11 | 0];\n framedata[pos + 12 | 0] = buffer[i + 14 | 0];\n framedata[pos + 13 | 0] = buffer[i + 13 | 0];\n framedata[pos + 14 | 0] = buffer[i + 12 | 0];\n framedata[pos + 15 | 0] = buffer[i + 15 | 0];\n //could speed it up another x2 but wouldn't be able to swap r/b swap and possible alignment issues\n //framedata32[pos / 8 + 0 | 0] = data32[i / 8 + 0 | 0];\n //framedata32[pos / 8 + 1 | 0] = data32[i / 8 + 1 | 0];\n //framedata32[pos / 4 + 2 | 0] = data32[i / 4 + 2 | 0];\n //framedata32[pos / 4 + 3 | 0] = data32[i / 4 + 3 | 0];\n pos = pos + 16 | 0;\n i = i + 16 | 0;\n }\n }\n if (pos >= framesize) {\n this.pausedbuffer = null;\n this.pausedindex = -1;\n this.pos = 0;\n if (i != buffer.length - 1) {\n this.pausedbuffer = buffer;\n this.pausedindex = i;\n }\n return true;\n }\n }\n this.pos = pos;\n this.pausedbuffer = null;\n this.pausedindex = -1;\n return false;\n }\n}\nexports.ImageStreamReader = ImageStreamReader;\n/**\n * Asynchronously captures a section of the game screen\n */\nasync function captureAsync(...args) {\n requireAlt1();\n var rect = rect_1.default.fromArgs(...args);\n if (alt1.captureAsync) {\n let img = await alt1.captureAsync(rect.x, rect.y, rect.width, rect.height);\n return new imagedata_extensions_1.ImageData(img, rect.width, rect.height);\n }\n if (!hasAlt1Version(\"1.4.6\")) {\n return capture(rect.x, rect.y, rect.width, rect.height);\n }\n var url = \"https://alt1api/pixel/getregion/\" + encodeURIComponent(JSON.stringify(Object.assign(Object.assign({}, rect), { format: \"raw\", quality: 1 })));\n var res = await fetch(url);\n var imgreader = new ImageStreamReader(res.body.getReader(), rect.width, rect.height);\n return imgreader.nextImage();\n}\nexports.captureAsync = captureAsync;\n/**\n * Asynchronously captures multple area's. This method captures the images in the same render frame if possible\n * @param areas\n */\nasync function captureMultiAsync(areas) {\n requireAlt1();\n var r = {};\n if (alt1.captureMultiAsync) {\n let bufs = await alt1.captureMultiAsync(areas);\n for (let a in areas) {\n if (!bufs[a]) {\n r[a] = null;\n }\n r[a] = new imagedata_extensions_1.ImageData(bufs[a], areas[a].width, areas[a].height);\n }\n return r;\n }\n var capts = [];\n var captids = [];\n for (var id in areas) {\n if (areas[id]) {\n capts.push(areas[id]);\n captids.push(id);\n }\n else {\n r[id] = null;\n }\n }\n if (capts.length == 0) {\n return r;\n }\n if (!hasAlt1Version(\"1.5.1\")) {\n var proms = [];\n for (var a = 0; a < capts.length; a++) {\n proms.push(captureAsync(capts[a]));\n }\n var results = await Promise.all(proms);\n for (var a = 0; a < capts.length; a++) {\n r[captids[a]] = results[a];\n }\n }\n else {\n var res = await fetch(\"https://alt1api/pixel/getregionmulti/\" + encodeURIComponent(JSON.stringify({ areas: capts, format: \"raw\", quality: 1 })));\n var imgreader = new ImageStreamReader(res.body.getReader());\n for (var a = 0; a < capts.length; a++) {\n var capt = capts[a];\n imgreader.setFrameBuffer(new imagedata_extensions_1.ImageData(capt.width, capt.height));\n r[captids[a]] = await imgreader.nextImage();\n }\n }\n return r;\n}\nexports.captureMultiAsync = captureMultiAsync;\n/**\n * Starts capturing a realtime stream of the game. Make sure you keep reading the stream and close it when you're done or Alt1 WILL crash\n * @param framecb Called whenever a new frame is decoded\n * @param errorcb Called whenever an error occurs, the error is rethrown if not defined\n * @param fps Maximum fps of the stream\n */\nfunction captureStream(x, y, width, height, fps, framecb, errorcb) {\n requireAlt1();\n if (!hasAlt1Version(\"1.4.6\")) {\n throw new Alt1Error(\"This function is not supported in this version of Alt1\");\n }\n var url = \"https://alt1api/pixel/streamregion/\" + encodeURIComponent(JSON.stringify({ x, y, width, height, fps, format: \"raw\" }));\n var res = fetch(url).then(async (res) => {\n var reader = new ImageStreamReader(res.body.getReader(), width, height);\n try {\n while (!reader.closed && !state.closed) {\n var img = await reader.nextImage();\n if (!state.closed) {\n framecb(img);\n state.framenr++;\n }\n }\n }\n catch (e) {\n if (!state.closed) {\n reader.close();\n if (errorcb) {\n errorcb(e);\n }\n else {\n throw e;\n }\n }\n }\n if (!reader.closed && state.closed) {\n reader.close();\n }\n });\n var state = {\n x, y, width, height,\n framenr: 0,\n close: () => { state.closed = true; },\n closed: false,\n };\n return state;\n}\nexports.captureStream = captureStream;\n\n\n/***/ }),\n\n/***/ \"canvas\":\n/*!*************************!*\\\n !*** external \"canvas\" ***!\n \\*************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error(\"Cannot find module 'canvas'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;\n\n/***/ }),\n\n/***/ \"electron/common\":\n/*!**********************************!*\\\n !*** external \"electron/common\" ***!\n \\**********************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error(\"Cannot find module 'electron/common'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;\n\n/***/ }),\n\n/***/ \"sharp\":\n/*!************************!*\\\n !*** external \"sharp\" ***!\n \\************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error(\"Cannot find module 'sharp'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/global */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/base/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"alt1/base\"), require(\"alt1/ocr\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"alt1/base\", \"alt1/ocr\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dialog\"] = factory(require(\"alt1/base\"), require(\"alt1/ocr\"));\n\telse\n\t\troot[\"Dialog\"] = factory(root[\"A1lib\"], root[\"OCR\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__, __WEBPACK_EXTERNAL_MODULE_alt1_ocr__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/dialog/imgs/boxtl.data.png\":\n/*!****************************************!*\\\n !*** ./src/dialog/imgs/boxtl.data.png ***!\n \\****************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAx0lEQVQ4T5VRywrCMBBMaytYyMFHDw16CNWDBg8WoWAFpTf//4ecsGENMQ0UhmVmO5PdNEKZru0GVCLEL/cnS/MYwU3/Jo+AFiKbgevrE7bSmArksgk6DumVsrIKOmJ/G8JWGrMvjUBkbgLBhFzufBkB7uBPQKDcKJYR4C39ALhUuqj15J7/KwHIVIfztjWoZXOkmYuVtB4OQAM4GAFUh+UabmelZ0GANXdh+mW83eyoUz/ykeQm0G4g/j+wnC9NNQAl+VNR6y/yyxm6AFlANgAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtl_leg.data.png\":\n/*!********************************************!*\\\n !*** ./src/dialog/imgs/boxtl_leg.data.png ***!\n \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAE0SURBVDhPjZFNTsMwEIVtJ45D05YmLVKBJRISsOIILNiw5QosOXpIKcpPHduFl0wINAHEJ+tpPB6/Gcv8+emRHZIX1TQ6QuBLbs37QNnVxQlj/P+L31yuH+7vZrNptt2QhxSy0vXe6SAMlYrQqshzyiPmt9fny2WslMqyrQr4+vQsTV8m0eTtdRNN582IjGmtob4nrNsLiqBJcjxfxKhGXBblIk6cNVL68AKwQDUCUVuHCsJZR8egrCpkdq0SSEIbb89vhoOZ53vNSYv0JeVpHni16fYCYYztsz10hzDWQEXQulI7Aq266BD0hHYdqC+BVl30CXlDUUZv+Bp9DIrIG4pBxE7XdPAb/bTkK0IVjN/6I1QmVquE9mMGo2KLJdI06xIjBOff72CLn/rr0YOfwVZr/QEeBH9rQlJ0YgAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtr.data.png\":\n/*!****************************************!*\\\n !*** ./src/dialog/imgs/boxtr.data.png ***!\n \\****************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA3UlEQVQ4T6WTwQrCMBBEk9oKigEVFSweLOLF6sFehOYgePP/P2jNrE1ZcJFUD68J2cwkO23NofF0vD0IY1k3VLfveXVu+jWMALVYxzowxtjw+A2YGVtM1WIKl/szjEohlb8NuAWtkMru6sMYJplbkR0vKF9XH5s0kBs0fYgxyJRAM7clV1YMGxB9R4pxAG6J04tlOdwAIm63uzVnoIkk2unRAF+kKpJEg9HEcdAwQA59iJpIEg2kEEa4QbIBNkMYM0Arg0NEC1KM14i/WBVJuPcutHy+YQMw259CiJ5egv+YzBEq3jQAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtr_leg.data.png\":\n/*!********************************************!*\\\n !*** ./src/dialog/imgs/boxtr_leg.data.png ***!\n \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAFgSURBVDhPnZO9TsMwFIWPHZuUpo2g6hswsbMzsbEgMfAKiIUnYOWNWBh4F1CFhFKKojatmx/jY+E2RRWK+KSrm9ycHF//iceHO7tal5hM3tGLDyAkIIVAY+0maxUBjYApDYSwOOgdulqMxXwOAbjKPzk9GUPc315bLTWWZo2mNs69hzhOvIAjKC3A72Q4HOAj+9zUnp5fIG6uzm2WTdFP+si/ZkgGqRcTY4zPKpKo6sbnfjJAsZj79+l0BsmfSbEocHQ8Ql2V0Fq5LmIfNKaYz8x5nvsckEHIKJZLX1z95AC/kTRNN1rpullXNdyab9FKI3JBQvu1EwVCjVBLdgwCwSRQumm1aRsJ6/b5Ly4vzvYKInc23l4n+zv4DTtoj0pUpHzuZMD5hoUMBMNOBmx3Hyt3+DoZhJ3g+Wib8e507oBRltXOto7Ho24GvJVcNHbACGTuXnQy4MhcNGbGdhrAN5b0ly21yuFfAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimg.data.png\":\n/*!******************************************!*\\\n !*** ./src/dialog/imgs/chatimg.data.png ***!\n \\******************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAwUlEQVQYV2OYPGlSV1dXcnJyRmqSqbUdQ3VNNRB5uTkJCwuLKqgxtLS0ACVVFGQ4eQUFpRUZgBxHWytOHl4oX0tLS1lZGaiYkZOXW1CUQVXXGChkbGwsJSUFFGI4YM+fqycmpahqoG8AVMVwxJipUptPUFIOqEtEkJdBT4JPSVYSqBgoCTSSQUVLG8QCms/DCzI/OjrK0syEgYERaDiI7+3lHRwcDNQC5bu6ukKEgLp4RKUZsjPSgEJAfrC/t7GhHgChFSifluVS6gAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimg_leg.data.png\":\n/*!**********************************************!*\\\n !*** ./src/dialog/imgs/chatimg_leg.data.png ***!\n \\**********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEOSURBVChTVY+7SgNBFIZnZ3aTWdCYddVcRBIVREEC2gcsFnwMO9/JxsrGzkbQB1AkleArWJjLXhRhJnNbf9ltcviL/3z/nDMzXjI+Hx0PDoadh6dJI6DGOUKIT6kPenZ6eHv/fDTo7vbbRSF5GCCjoDd3j/v9rThel0sLKoWG2DzN97rxdrwhlFHaCqGNdRAF7e1EUhlrHIQl1sAbGjb/N1aFXgqptYEoD3nx/Yu+QvURXI6+tqtFPcpru1os3my5oBX6tgaEaOtcWbKmTywJGF+rMlA8Cgm9vkry+ed0luXLxo9Q+I12JcSGvc7F+ORt8oE5a32pvEositqeI5fJ6OX1/Ws2TbNFUWR5nv4B2LeYEU2WizoAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimgactive.data.png\":\n/*!************************************************!*\\\n !*** ./src/dialog/imgs/chatimgactive.data.png ***!\n \\************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAApklEQVQYV2Po6upqaWmJjo4CIk1dQ4ZiMLCzNGVgYGQRkGCorqmOjggTEeQF8hm4BRmCg4ONDfVAHAhfWVlZWFgYygciKUVVSVkFoCgnD1jLHkOGZHlWbkFRoBCIf0CdIV+GgZGTF6pLnoNBkJcLqhiIBCXloCwgAprv7eWtraGG4FtZWXq5OQG1QPnGxsaurq5AIRCfhYshKTYKqASoy83RRkVBBgAFhh2w1olrrAAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimgactive_leg.data.png\":\n/*!****************************************************!*\\\n !*** ./src/dialog/imgs/chatimgactive_leg.data.png ***!\n \\****************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEESURBVChTPY4xTgMxEEXtmfFmE1hpRSQECqIIVRBCEanpuABnyImo09FzASokjgAVVUQBURpCSMiKHdt8ZwVf1mj8/veM7dXlxbBfnvTad4/vmSMNwRgjRAJ6fno4uX3IssA5k5KV5BHozeQedK9s5bm0dwmVmfh1OisLAa3rEJV8DCFE7wOBFjsO1AbGBAg0jerkDNTQSL6hyRDrfIjN5f8RRPpjmCw6NEhgjakdKknWJGCnhFj8yKDSfK7IQla2/p+46LBRaTkiNlETwvoYDY2vBx/V6m2x2u5IpxH3j4+Gg4Pnl1mluvSi335TBRwuu/vO+NFZ72m6+FxvlnW99v5L9ReDbXkhpJVqYwAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimghover.data.png\":\n/*!***********************************************!*\\\n !*** ./src/dialog/imgs/chatimghover.data.png ***!\n \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAz0lEQVQYV2M4dfLEjp07W1pamhrrnL38GFavXr10yeKk2ChhYWEpFW2GLVu2dLQ1a2uocfIKiipoMABVRoaFcPLwcguKiiqoMVhZWRob6kmKCgGFBMSkGUztnU2t7VxdXZWVlYFCDP9DhSfbyaloaQMVSklJMfz3YF1sJSylqKqlpQW0gsFOQVhLTRnC4RGVZjAyBymDma/BUF1T7e3lzcDACJQUlFZkSE5OLsjNAmoByoP4YZGR2RlpQCGgLpD+Sb2d0dFR2dnZQC8Y6WkBAPN1NR2AAHfmAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimghover_leg.data.png\":\n/*!***************************************************!*\\\n !*** ./src/dialog/imgs/chatimghover_leg.data.png ***!\n \\***************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEjSURBVChTVc89SwNBEIDh2727fChqFosQLExMY4gIsbOIBLT0B9joX9RKTCOksLESSa1Y5TSa+8rdze7s7jl4lfAUw7sMy7CL8cnx4f5Bt3338FzzubbWcRyPc4/q6Kg/nT7eXA72erurz2xHNCBXnOrt/ex01G2JjSwq6nUeh5Ci67ISR30x7DVXqQVAkmegC+BUOx3xFhilNEmTQgIS3qh79JtWOksKkudQ4TXPWyxCpXWSAQGpK3wZrmmDJqn+4VSryRgkIFXF3doUvldyVtJlf8c5gFbbkh5qa822mz5FUBYRpTJaG359dRYE3/OPKEpgncu0MBJtCMztdtqT8eDl9V0xP0cXFe05BktXiBazzvlkOHuaB8vVVxj/xOkySn4BoaPZbEW+44oAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimg.data.png\":\n/*!**********************************************!*\\\n !*** ./src/dialog/imgs/continueimg.data.png ***!\n \\**********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABTklEQVRIS72PMUsDQRCFB2Jjk85KsPEPmMYmgig2gWAlKWwCIiIihIC1WIpiJZY2SpqgpLCQNDZRAjZWHqmvsVEQ1Ebl8J0D4zIXD5HdgY/lzey7fffoeVD9fFxikpfaP/jLhxLhojy+kPdRjZKokhIvBieqIC+6WcVpkfjdiz5u55P7BR6CgqDu2dbeaQdnGpoxeAcpaT0buBsD/XQ1pwwhoPde2YDX/oxbTxpir5x+sasXt8vZhm/9knL6hR5OJm0YHI2D9c1GdeWH7sG0svmF4uMJA7jbbnPW7YaR98rsC7xMHGBAttvd/pjyeIeQYcD1TtGtB42N8oSAettFBnkgR+SPEIxaytVlc5Qb4oQG7q37FSOjMiibQjwMcZIBnY0RcNiYYqFuA0GtOl0s0/laYSj4D6XdjSBLCLENdQru7W9OeUpGhsd8YGvV6Qu6U2ehlR3eegAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimg_leg.data.png\":\n/*!**************************************************!*\\\n !*** ./src/dialog/imgs/continueimg_leg.data.png ***!\n \\**************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAASPSURBVEhLrVZLaFxVGD7nPubeO5NMZpIQTYfaNn2RREsrbQXbuOnKR4WCiKtCV2JABF24qTvdCK5ciIWudeFCqkuLC6WKQqVmEVsMjUkTyySTec993+t37n/n5CZNShQ/Dof/db7z/efce2f4J+++PDbqsgz0sN2y9a7NYResmIKPgTVgptY26IOpwViz0cnFdur04XFrqJDw64OargZ+ODKQJPaAWr1td5zs1lq+pKpmztBzYaPWYcxvV9cN/v7sa4cr1ulzz6Oitv7As0OqBnzH6ThRr1VPfcbyxfKAqeimWRotwe1126hHGWW3Fft2jwzdyn/42U2ygatvXaAU4iAsl/KwiQTMoqK/deymbNwoY95oBiZvJwGhhAzSk7PUbr1brdZkCkoWVmzR3jOT+1p+Keita/nRRnVpYEDs1+n0YGAWHAkCvVwyXGyw3lbhbstKtBylaEbNFg4wxRc3bn19fSaf97hy5O8H9y6/9+vrLz2naoIE4Lki6skmZJmJTQZB67DCE0XxZFEKcZKdlKdAcHhIm5tfFe1V9o1hJapjrxUG4vZ8P8BsWgZmx3Z1XYMaMihFoDgMpMjFTJVBIMo0TYPxzfd3Pv/giFUq5y02NHKMOnxxZpoKABgAtiMeLKGgNAjZOGbYMGSQXMsySRKaWlmtpu3B6rS7iEpIIkC6j4JIUycDCnp++qjf/PmPj9/cPzRmjIyXZYcXzhxmqo5sTk9vcjdInj0ChNPTRxcWltXzZ6YUzpuNtud5UQZJXwEMWkBBx/U5Z4qiUFDWIEKGBLKbmkJ/ojJ87cbiC5OFKPYVtTf65LFzx/Offjk3MT7EFDWMYjlUNSUHwEDB1N8zsAQaOp2uaM80crWaeIkl3W7DdV0ehX4Y+0GIIYK+F8YctpS1RVPoszhygwjuU+Pl69/+9cYrxcDrdZvL+4+ffPrg4LWvfhcdxhGaTFYLZXJQ5L+hULAcx+XvXLnIrOFWdVlIAZKnZRvQVWrtAsMQbymBig1NdIvGkpjAj7/d/2h2Csbd+bWV9bXbS2a96Zw/dYgqBR7dGpIQ3F3YYzA2NtyoN9WTkwcCp92znfTM+tB4LA4VZ5/5lmSBWwtjRoNF6SqAsqCy/UgW/HRn8erlibxqz99tNZuL9Vb050N29sRBVeG0r6bgoe+/gaGPTUEFBi/ZnYRJSZuVu0M8nVGknjhaCYMgK4UG1KMIvJiznciRxbYURIvlUcC4gvmXuaW3Xy2xwL2/EqG3jY5+a8E4PVXhDI1FIcQmTW4eaHLnJCBLLiUlxyiQLsmcCzEggs+4aO/U5IG2GwoplMCAJiru824BVVJNfxUuD5McUdKVyCMes9W19nihttFouW4Dvf1wL4fekEWK40sV480UTSIC6fKgd4SUhBMRLt180qS48MSliO/hNDi/cmmGVv5fwNnL14nuweT2d7cfwiga4n/Z2elDIpfAiS3MKCBj8z38lyiqvpP5DyjBZy8+qxs5WGEURH76JVB0sY2q7PxbtyOwnAwiIQbp7hFy1Y4QVKrNQnEQBNRnRWrGFsGBG/wD9kSQTvgpZ/YAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimgdown.data.png\":\n/*!**************************************************!*\\\n !*** ./src/dialog/imgs/continueimgdown.data.png ***!\n \\**************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABMklEQVRIS92VoU4DQRCG5wKGNyEo3gB1BtWEYGqaNAGBoQ3BoAiqKVXwDJUEgcAgCQIUBoPgVfg2/2WzGUpqdk40+XqZ3Z3u3Le32bXbQbMc2UaCmj2cbr1dWTSvl4mXC3s82+appsupDmqp3ueNRaN6s+nBaHzCU82Pa59WF9TSihJ9zex7EQgl7s/3cRPEcqNuUGkmRy2tohsIotSTIW/gcurS6f3c9QFf6a8hL+HSKoJatznzPsm7pWyu7FlL+RfmZzdS73BwtNseZ56nOyq9dv6VCerMQwSKZZS+Xj9Hi9wmw73SjSadcQdMOlr4qUYczP+fm3D5VWDapNfPvQelHjE7xyVUJ9173O66ZKNhLWUoNzcaAWqd3vsknFxSgRutjmrZvG34iE9D2zCQmrfNLxl9slarbU3QAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimgdown_leg.data.png\":\n/*!******************************************************!*\\\n !*** ./src/dialog/imgs/continueimgdown_leg.data.png ***!\n \\******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAQQSURBVEhL1VW9bxxFFN/52NvbO59sEic5GZMIEHFkAiICKaRDAlGAlJKGioqShpqejn+ABiEoqFIhkIJEk44miSCRyIcSJXawfT6f7253dueD39xbz62/Ekei4ae5pzdv3rz3fm9m59jHb780N5tFu1GWttKOgDjmlXY4DgsY9nKRQkppaAqkup3JUTXZh0IViFlP3UgalTZZhexvpezyu6ePH4u73QXMc+15ltZBxpxBscNxVnhXQtpo8JkWlljccGVlJ394QpKzZSl3WaZYmjiSV69PO/j+mymMUGCHZ+eFhOwEBIek1GQJGJUCYUlHJaRQPVCwZdTrBzsq2eiVnt7phZOYb6u8HRuEoOWAEBGlkKLyPGk2SQ+AkchU8x2oTP/xoPj2m8+gt9qdR3/f/PLr395alILzJJXkQ6CYSBcShR7VU0PCk5ZI7yRNFF9f8l1Lmg8e/yOWFmfjNM1LheWssEbrPWM0NI4Jbdh4O4+YhTTaqrzAwJR8yAg3X8KEUlHosjTWOGPt6sBeXErKfOzc+MTi2UvL7e9+vjPfjIyxlY9GHEvRkI4iI2ae+yWEhU4ZyRMKLZG+PRyHJWxEqb4qFuWZ8vSSpgQ31EQeewbKrSuT+iuQPRjrU+f8jYU0pTs1w3+8+vDCa3NWS602uy8vg+H3v9ydSyxzzBgXce8Jqhi4+BTKR5zAx7QWDkcBBcFIW8lokHt60CaHsKv0A4E0lP6ZgJsu8AFV02Mtd+Xa6jtLLYbuqhEx/OHXe2COVbhhcOEj1+MTK1ggyYIrHfSnA46jceHpzXQ6w8GuNyrEreuFMigCzQ79BgGaCjl9waad3uFWWv8ezrejK9fWPnpvCXdyfWXtzLnzyy+qn35fIYYAMUSiEKGyOxdYOc3wRWJa54wLQg2iwSMhJJMxz7LS/zHMd2cHm0NUD9dGIlgZafQpjrwirDRcTep7CrCLFGzZ70z0bq1FX31+yfLW9b/+XF/Zunl/Y6DSN07teskEF/TaoIBIVO1BAZAuppkHshBghE4y1EyeeLe2+8rTQ3HErQ7KhD349ivT84OIAeD2xScXoNy7/2R9q9/rjWE5dwJ/A1N6CRfTth6UN5QEWad0GEBKnDk+I7kIBx0Ai8HvaBf9MDSUKSy73Ys+/fDVXJnV1R644Q27sWLOzk3uEm4a27nYjKNuYyOc2oE9nZbEOPbS4Yb+gC3zD6cfkYiaPFZai1dOdmod/C+Bo5PGlYxt5FFHqs3+AO83/Q2CGwF/JYEe1Q3lmfeFh45gl/W3GJRwkuCFgTVM8YXjr51dfr0rW3v/o+sXnUB3GvJ5QZ/ijSdeaq2llPXvDRey0nYQsoQaKHXQgf3l4awqrYZBlrMPzi+00IH/P/Yf0iAr/gXJh0N13Pe/YwAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/index.ts\":\n/*!*****************************!*\\\n !*** ./src/dialog/index.ts ***!\n \\*****************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst a1lib = __importStar(__webpack_require__(/*! alt1/base */ \"alt1/base\"));\nconst OCR = __importStar(__webpack_require__(/*! alt1/ocr */ \"alt1/ocr\"));\nconst base_1 = __webpack_require__(/*! alt1/base */ \"alt1/base\");\nvar imgs_rs3 = (0, base_1.webpackImages)({\n chatimg: __webpack_require__(/*! ./imgs/chatimg.data.png */ \"./src/dialog/imgs/chatimg.data.png\"),\n chatimghover: __webpack_require__(/*! ./imgs/chatimghover.data.png */ \"./src/dialog/imgs/chatimghover.data.png\"),\n chatimgactive: __webpack_require__(/*! ./imgs/chatimgactive.data.png */ \"./src/dialog/imgs/chatimgactive.data.png\"),\n continueimg: __webpack_require__(/*! ./imgs/continueimg.data.png */ \"./src/dialog/imgs/continueimg.data.png\"),\n continueimgdown: __webpack_require__(/*! ./imgs/continueimgdown.data.png */ \"./src/dialog/imgs/continueimgdown.data.png\"),\n boxtl: __webpack_require__(/*! ./imgs/boxtl.data.png */ \"./src/dialog/imgs/boxtl.data.png\"),\n boxtr: __webpack_require__(/*! ./imgs/boxtr.data.png */ \"./src/dialog/imgs/boxtr.data.png\")\n});\nvar imgs_leg = (0, base_1.webpackImages)({\n chatimg: __webpack_require__(/*! ./imgs/chatimg_leg.data.png */ \"./src/dialog/imgs/chatimg_leg.data.png\"),\n chatimghover: __webpack_require__(/*! ./imgs/chatimghover_leg.data.png */ \"./src/dialog/imgs/chatimghover_leg.data.png\"),\n chatimgactive: __webpack_require__(/*! ./imgs/chatimgactive_leg.data.png */ \"./src/dialog/imgs/chatimgactive_leg.data.png\"),\n continueimg: __webpack_require__(/*! ./imgs/continueimg_leg.data.png */ \"./src/dialog/imgs/continueimg_leg.data.png\"),\n continueimgdown: __webpack_require__(/*! ./imgs/continueimgdown_leg.data.png */ \"./src/dialog/imgs/continueimgdown_leg.data.png\"),\n boxtl: __webpack_require__(/*! ./imgs/boxtl_leg.data.png */ \"./src/dialog/imgs/boxtl_leg.data.png\"),\n boxtr: __webpack_require__(/*! ./imgs/boxtr_leg.data.png */ \"./src/dialog/imgs/boxtr_leg.data.png\")\n});\nvar fontmono = __webpack_require__(/*! ../fonts/aa_8px_mono.fontmeta.json */ \"./src/fonts/aa_8px_mono.fontmeta.json\");\nvar fontheavy = __webpack_require__(/*! ../fonts/aa_8px_mono_allcaps.fontmeta.json */ \"./src/fonts/aa_8px_mono_allcaps.fontmeta.json\");\nclass DialogReader {\n constructor() {\n this.pos = null;\n }\n find(imgref) {\n if (!imgref) {\n imgref = a1lib.captureHoldFullRs();\n }\n if (!imgref) {\n return null;\n }\n var boxes = [];\n for (let imgs of [imgs_rs3, imgs_leg]) {\n var pos = imgref.findSubimage(imgs.boxtl);\n for (var a in pos) {\n var p = pos[a];\n if (imgref.findSubimage(imgs.boxtr, p.x + 492, p.y, 16, 16).length != 0) {\n boxes.push(Object.assign(Object.assign({}, p), { legacy: imgs == imgs_leg }));\n }\n }\n }\n if (boxes.length == 0) {\n return false;\n }\n var box = boxes[0];\n if (boxes.length > 1) {\n console.log(\"More than one dialog box found\");\n }\n this.pos = { x: box.x + 1, y: box.y + 1, width: 506, height: 130, legacy: box.legacy };\n return this.pos;\n }\n ensureimg(imgref) {\n if (!this.pos) {\n return null;\n }\n if (imgref && a1lib.Rect.fromArgs(imgref).contains(this.pos)) {\n return imgref;\n }\n return a1lib.captureHold(this.pos.x, this.pos.y, this.pos.width, this.pos.height);\n }\n read(imgref) {\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return false;\n }\n let title = this.readTitle(imgref);\n var r = {\n text: null,\n opts: null,\n title\n };\n if (this.checkDialog(imgref)) {\n r.text = this.readDialog(imgref, true);\n return r;\n }\n else {\n var opts = this.findOptions(imgref);\n if (opts.length != 0) {\n r.opts = this.readOptions(imgref, opts);\n return r;\n }\n else {\n return null;\n }\n }\n }\n readTitle(imgref) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n var buf = imgref.toData(this.pos.x, this.pos.y, this.pos.width, 32);\n //somehow y coord can change, 19 for \"choose and option:\" 18 for npc names\n var pos = OCR.findChar(buf, fontheavy, [255, 203, 5], Math.round(this.pos.width / 2) - 10, 16, 20, 4);\n if (!pos) {\n return \"\";\n }\n var read = OCR.readSmallCapsBackwards(buf, fontheavy, [[255, 203, 5]], Math.round(this.pos.width / 2) - 10, pos.y, 150, 1);\n return read.text.toLowerCase(); //normalize case since we don't actually know the original\n }\n checkDialog(imgref) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n var locs = [];\n let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);\n locs = locs.concat(imgref.findSubimage(imgs.continueimg, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));\n locs = locs.concat(imgref.findSubimage(imgs.continueimgdown, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));\n return locs.length != 0;\n }\n readDialog(imgref, checked) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return null;\n }\n if (!checked) {\n checked = this.checkDialog(imgref);\n }\n if (!checked) {\n return null;\n }\n var lines = [];\n var buf = imgref.toData(this.pos.x, this.pos.y + 33, this.pos.width, 80);\n for (var y = 0; y < buf.height; y++) {\n var hastext = false;\n for (var x = 200; x < 300; x++) {\n var i = x * 4 + y * 4 * buf.width;\n if (buf.data[i] + buf.data[i + 1] + buf.data[i + 2] < 50) {\n hastext = true;\n break;\n }\n }\n if (hastext) {\n var chr = null;\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 192, y + 5, 12, 3);\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 246, y + 5, 12, 3);\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 310, y + 5, 12, 3);\n if (chr) {\n var read = OCR.readLine(buf, fontmono, [0, 0, 0], chr.x, chr.y, true, true);\n if (read.text.length >= 3) {\n lines.push(read.text);\n }\n y = chr.y + 5;\n }\n }\n }\n return lines;\n }\n findOptions(imgref) {\n var locs = [];\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);\n var a = imgref.findSubimage(imgs.chatimg);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: false, active: false });\n }\n var a = imgref.findSubimage(imgs.chatimghover);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: true, active: false });\n }\n var a = imgref.findSubimage(imgs.chatimgactive);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: false, active: true });\n }\n return locs;\n }\n readOptions(imgref, locs) {\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return null;\n }\n if (!this.pos) {\n throw new Error(\"interface not found\");\n }\n var buf = imgref.toData();\n if (!locs) {\n locs = this.findOptions(imgref);\n }\n var bgcol = [150, 135, 105];\n var fontcol = this.pos.legacy ? [255, 255, 255] : [174, 208, 224];\n var r = [];\n for (var a = 0; a < locs.length; a++) {\n var dx = locs[a].x + 30;\n var dy = locs[a].y + 6;\n var checkline = imgref.toData(dx, dy, Math.min(500, imgref.width - a), 1);\n var row = null;\n for (var x = 0; x < checkline.width; x++) {\n var i = x * 4;\n if (row) {\n if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], bgcol[0], bgcol[1], bgcol[2]) < 75) {\n row.width = x + 20;\n break;\n }\n }\n else if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], fontcol[0], fontcol[1], fontcol[2]) < 100) {\n var text = \"\";\n var chr = OCR.findChar(buf, fontmono, fontcol, dx + x + 2 - imgref.x, dy + 3 - imgref.y, 30, 1);\n if (chr) {\n var read = OCR.readLine(buf, fontmono, fontcol, chr.x, chr.y, true, true);\n var text = read.text;\n }\n row = { text: text, x: dx + x, y: dy, width: 200, buttonx: dx - 31, hover: !!locs[a].hover, active: locs[a].active };\n }\n }\n if (row) {\n r.push(row);\n }\n }\n r.sort((a, b) => a.y - b.y);\n return r;\n }\n}\nexports[\"default\"] = DialogReader;\n//TODO get rid of this or make it standard\nfunction coldiff(r1, g1, b1, r2, g2, b2) {\n return Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);\n}\n\n\n/***/ }),\n\n/***/ \"alt1/base\":\n/*!**************************************************************************************************!*\\\n !*** external {\"root\":\"A1lib\",\"commonjs2\":\"alt1/base\",\"commonjs\":\"alt1/base\",\"amd\":\"alt1/base\"} ***!\n \\**************************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;\n\n/***/ }),\n\n/***/ \"alt1/ocr\":\n/*!*********************************************************************************************!*\\\n !*** external {\"root\":\"OCR\",\"commonjs2\":\"alt1/ocr\",\"commonjs\":\"alt1/ocr\",\"amd\":\"alt1/ocr\"} ***!\n \\*********************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_ocr__;\n\n/***/ }),\n\n/***/ \"./src/fonts/aa_8px_mono.fontmeta.json\":\n/*!*********************************************!*\\\n !*** ./src/fonts/aa_8px_mono.fontmeta.json ***!\n \\*********************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('{\"chars\":[{\"width\":7,\"bonus\":75,\"chr\":\"a\",\"pixels\":[0,7,187,1,3,221,1,6,170,1,8,255,2,3,255,2,5,187,2,8,255,3,3,255,3,5,255,3,8,221,4,4,238,4,5,255,4,6,204,4,7,255,4,8,238],\"secondary\":false},{\"width\":7,\"bonus\":105,\"chr\":\"b\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,204,1,4,170,1,7,170,1,8,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,170,4,4,170,4,7,170,5,5,187,5,6,187],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"c\",\"pixels\":[0,5,170,0,6,187,1,4,187,1,7,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,221,4,8,221],\"secondary\":false},{\"width\":7,\"bonus\":105,\"chr\":\"d\",\"pixels\":[0,5,187,0,6,187,1,4,170,1,7,170,1,8,170,2,3,255,2,8,255,3,3,255,3,8,255,4,3,204,4,4,170,4,7,170,4,8,187,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,221,5,7,221,5,8,204],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"e\",\"pixels\":[0,5,187,0,6,170,1,4,187,1,5,255,1,7,204,2,3,255,2,5,255,2,8,255,3,3,255,3,5,255,3,8,255,4,3,187,4,5,255,4,8,221,5,5,204],\"secondary\":false},{\"width\":4,\"bonus\":50,\"chr\":\"f\",\"pixels\":[0,3,204,1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204,2,1,255,2,3,255],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"g\",\"pixels\":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,170,1,11,153,2,3,255,2,8,255,2,11,238,3,3,255,3,8,255,3,11,221,4,3,221,4,7,153,4,8,221,4,10,204,5,3,204,5,4,221,5,5,221,5,6,221,5,7,221,5,8,221,5,9,170],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"h\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,170,1,4,204,2,3,255,3,3,255,4,3,170,4,4,221,4,5,221,4,6,221,4,7,221,4,8,204],\"secondary\":false},{\"width\":3,\"bonus\":35,\"chr\":\"i\",\"pixels\":[0,1,238,0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204],\"secondary\":false},{\"width\":4,\"bonus\":50,\"chr\":\"j\",\"pixels\":[0,11,153,1,11,170,2,1,204,2,3,204,2,4,221,2,5,221,2,6,221,2,7,221,2,8,221,2,9,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"k\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,4,153,2,5,255,2,6,221,3,3,204,3,7,221],\"secondary\":false},{\"width\":3,\"bonus\":40,\"chr\":\"l\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,1,8,255],\"secondary\":false},{\"width\":10,\"bonus\":115,\"chr\":\"m\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,153,4,4,255,4,5,221,4,6,221,4,7,221,4,8,204,5,4,187,6,3,255,7,3,238,8,4,170,8,5,221,8,6,221,8,7,221,8,8,204],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"n\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,238,5,4,170,5,5,221,5,6,221,5,7,221,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":70,\"chr\":\"o\",\"pixels\":[0,5,187,0,6,170,1,4,204,1,7,221,2,3,238,2,8,238,3,3,255,3,8,255,4,3,238,4,8,255,5,4,204,5,7,221,6,5,170,6,6,170],\"secondary\":false},{\"width\":6,\"bonus\":90,\"chr\":\"p\",\"pixels\":[0,3,238,0,4,255,0,5,187,0,6,204,0,7,255,0,8,221,0,9,221,0,10,221,1,3,255,1,8,238,2,3,255,2,8,255,3,3,238,3,8,238,4,4,238,4,5,255,4,6,255,4,7,238],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"q\",\"pixels\":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,153,1,8,170,2,3,255,2,8,255,3,3,238,3,8,238,4,3,255,4,4,255,4,5,187,4,6,187,4,7,255,4,8,238,4,9,221,4,10,221],\"secondary\":false},{\"width\":4,\"bonus\":45,\"chr\":\"r\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,187,1,4,204,2,3,255],\"secondary\":false},{\"width\":6,\"bonus\":50,\"chr\":\"s\",\"pixels\":[0,4,187,1,3,255,1,5,238,1,8,255,2,3,255,2,8,255,3,3,255,3,6,238,3,8,255,4,7,187],\"secondary\":false},{\"width\":5,\"bonus\":45,\"chr\":\"t\",\"pixels\":[1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,170,2,3,255,2,8,238,3,8,153],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"u\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,170,1,8,238,2,8,255,3,8,204,4,3,204,4,4,221,4,5,221,4,6,204,4,7,255,4,8,221],\"secondary\":false},{\"width\":6,\"bonus\":50,\"chr\":\"v\",\"pixels\":[0,3,238,1,5,238,1,6,204,2,7,255,2,8,255,3,5,153,3,6,255,3,7,153,4,3,238,4,4,204],\"secondary\":false},{\"width\":10,\"bonus\":95,\"chr\":\"w\",\"pixels\":[1,3,153,1,4,238,1,5,187,2,6,153,2,7,238,2,8,187,3,6,204,3,7,238,3,8,153,4,3,170,4,4,255,5,4,221,5,5,221,6,7,255,6,8,221,7,6,238,7,7,204,8,3,238,8,4,204],\"secondary\":false},{\"width\":6,\"bonus\":55,\"chr\":\"x\",\"pixels\":[0,8,170,1,3,170,1,4,204,1,7,221,2,5,255,2,6,238,3,4,255,3,6,187,3,7,187,4,3,221,4,8,255],\"secondary\":false},{\"width\":6,\"bonus\":65,\"chr\":\"y\",\"pixels\":[0,3,255,0,4,153,0,11,221,1,5,204,1,6,221,1,11,187,2,7,187,2,8,255,2,9,238,3,6,238,3,7,187,4,3,204,4,4,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"z\",\"pixels\":[0,3,153,0,8,204,1,3,255,1,7,221,1,8,255,2,3,255,2,6,255,2,8,255,3,3,255,3,4,170,3,5,170,3,8,255,4,3,255,4,8,255],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"A\",\"pixels\":[0,8,153,1,6,221,1,7,238,2,3,170,2,4,255,2,5,187,2,6,255,3,1,255,3,2,255,3,6,255,4,2,255,4,3,238,4,6,255,5,5,255,5,6,255,6,7,187,6,8,255],\"secondary\":false},{\"width\":7,\"bonus\":125,\"chr\":\"B\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,4,255,1,8,255,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,1,221,4,4,255,4,5,170,4,8,204,5,2,170,5,3,170,5,6,187,5,7,153],\"secondary\":false},{\"width\":9,\"bonus\":80,\"chr\":\"C\",\"pixels\":[0,4,187,0,5,187,1,2,221,1,3,153,1,6,153,1,7,204,2,1,170,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,170,6,8,170],\"secondary\":false},{\"width\":8,\"bonus\":100,\"chr\":\"D\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,8,255,2,1,255,2,8,255,3,1,255,3,8,255,4,1,204,4,8,204,5,2,221,5,7,221,6,4,187,6,5,187],\"secondary\":false},{\"width\":6,\"bonus\":95,\"chr\":\"E\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,1,8,255,2,1,255,2,5,255,2,8,255,3,1,255,3,5,255,3,8,255,4,1,153,4,8,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"F\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"G\",\"pixels\":[0,4,170,0,5,187,1,2,204,1,3,153,1,7,221,2,1,170,2,8,187,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,238,6,1,170,6,5,255,6,7,153,6,8,170,7,5,153,7,6,221,7,7,221,7,8,204],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"H\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,5,255,3,5,255,4,5,255,5,5,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],\"secondary\":false},{\"width\":4,\"bonus\":60,\"chr\":\"I\",\"pixels\":[0,1,192,0,8,191,1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,2,1,192,2,8,191],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"J\",\"pixels\":[0,6,153,0,7,153,1,8,204,2,1,221,2,8,255,3,1,255,3,8,204,4,1,204,4,2,221,4,3,221,4,4,221,4,5,221,4,6,221,4,7,153],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"K\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,255,2,4,255,3,3,221,3,5,170,3,6,204,4,1,204,4,2,153,4,7,238,4,8,153],\"secondary\":false},{\"width\":6,\"bonus\":60,\"chr\":\"L\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,8,255,2,8,255,3,8,255,4,8,255],\"secondary\":false},{\"width\":9,\"bonus\":130,\"chr\":\"M\",\"pixels\":[0,1,245,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,1,2,170,1,3,225,2,4,207,2,5,190,3,6,232,4,6,232,5,4,207,5,5,190,6,2,170,6,3,224,7,1,245,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255],\"secondary\":false},{\"width\":8,\"bonus\":110,\"chr\":\"N\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,2,255,2,3,221,3,4,187,3,5,187,4,6,221,5,7,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],\"secondary\":false},{\"width\":10,\"bonus\":110,\"chr\":\"O\",\"pixels\":[0,4,187,0,5,170,1,2,204,1,3,153,1,6,170,1,7,204,2,1,153,2,8,153,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,153,6,8,153,7,2,204,7,3,153,7,6,170,7,7,204,8,4,187,8,5,170],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"P\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,4,1,187,4,5,187,5,3,221],\"secondary\":false},{\"width\":9,\"bonus\":100,\"chr\":\"Q\",\"pixels\":[0,4,187,0,5,187,1,2,221,1,6,153,1,7,221,2,1,187,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,238,5,8,238,6,2,204,6,7,255,7,3,255,7,4,204,7,5,221,7,6,255,7,8,204],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"R\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,3,6,187,4,2,238,4,3,204,4,4,255,4,7,238,4,8,170],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"S\",\"pixels\":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,1,255,2,4,170,2,8,255,3,1,255,3,5,255,3,8,255,4,1,170,4,6,221,4,7,238],\"secondary\":false},{\"width\":8,\"bonus\":65,\"chr\":\"T\",\"pixels\":[0,1,255,1,1,255,2,1,255,3,1,255,3,2,221,3,3,221,3,4,221,3,5,221,3,6,221,3,7,221,3,8,204,4,1,255,5,1,255],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"U\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,187,1,7,170,2,8,255,3,8,255,4,8,221,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,255,5,7,238],\"secondary\":false},{\"width\":7,\"bonus\":70,\"chr\":\"V\",\"pixels\":[0,1,255,0,2,187,1,3,153,1,4,255,1,5,153,2,6,187,2,7,238,3,7,255,3,8,204,4,4,204,4,5,238,5,1,170,5,2,255,5,3,153],\"secondary\":false},{\"width\":10,\"bonus\":125,\"chr\":\"W\",\"pixels\":[0,1,255,0,2,221,1,4,187,1,5,255,1,6,204,2,7,255,2,8,255,3,3,153,3,4,238,3,5,221,4,1,255,4,2,255,4,3,153,5,3,170,5,4,238,5,5,204,6,7,255,6,8,255,7,4,153,7,5,238,7,6,238,7,7,153,8,1,238,8,2,238,8,3,153],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"X\",\"pixels\":[0,8,170,1,1,187,1,2,204,1,7,238,2,3,221,2,4,153,2,5,255,2,6,153,3,4,255,3,5,238,4,2,238,4,6,204,4,7,170,5,1,204,5,8,255],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"Y\",\"pixels\":[0,1,170,1,2,238,2,3,153,2,4,255,3,4,221,3,5,204,3,6,221,3,7,221,3,8,204,4,3,255,5,1,238],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"Z\",\"pixels\":[0,8,187,1,1,255,1,7,221,1,8,255,2,1,255,2,5,204,2,8,255,3,1,255,3,4,204,3,8,255,4,1,255,4,2,221,4,8,255,5,1,187,5,8,153],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"0\",\"pixels\":[0,2,153,0,3,221,0,4,255,0,5,255,0,6,238,0,7,170,1,1,187,1,8,204,2,1,187,2,8,187,3,1,221,3,8,204,4,2,170,4,3,255,4,4,187,4,5,187,4,6,238,4,7,170],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"1\",\"pixels\":[1,8,187,2,1,204,2,2,204,2,3,187,2,4,187,2,5,187,2,6,187,2,7,187,2,8,238,3,8,204],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"2\",\"pixels\":[1,8,255,2,1,187,2,6,153,2,8,187,3,1,204,3,5,153,3,8,187,4,1,187,4,2,153,4,4,204,4,8,187],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"3\",\"pixels\":[0,8,204,1,1,187,1,8,187,2,1,187,2,4,187,2,8,204,3,2,221,3,3,204,3,5,204,3,7,170],\"secondary\":false},{\"width\":7,\"bonus\":80,\"chr\":\"4\",\"pixels\":[0,6,238,1,4,187,1,6,187,2,3,170,2,6,187,3,1,187,3,2,153,3,6,204,4,1,187,4,2,187,4,3,187,4,4,187,4,5,187,4,6,238,4,7,187,4,8,187],\"secondary\":false},{\"width\":7,\"bonus\":70,\"chr\":\"5\",\"pixels\":[1,1,238,1,2,187,1,3,187,1,4,187,1,8,204,2,1,187,2,4,187,2,8,187,3,1,187,3,4,204,3,8,204,4,5,238,4,6,187,4,7,221],\"secondary\":false},{\"width\":7,\"bonus\":80,\"chr\":\"6\",\"pixels\":[0,3,170,0,4,255,0,5,255,0,6,238,0,7,153,1,2,187,1,8,187,2,1,204,2,4,187,2,8,187,3,1,187,3,4,204,3,8,187,4,5,221,4,6,255,4,7,187],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"7\",\"pixels\":[0,1,187,1,1,187,1,8,204,2,1,187,2,6,238,2,7,153,3,1,187,3,3,153,3,4,221,4,1,255,4,2,187],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"8\",\"pixels\":[1,2,238,1,3,221,1,6,204,1,7,221,2,1,204,2,4,204,2,5,170,2,8,221,3,1,187,3,4,170,3,8,187,4,1,221,4,4,170,4,5,204,4,8,187,5,2,170,5,3,153,5,6,238,5,7,238],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"9\",\"pixels\":[1,2,221,1,3,187,1,4,238,1,8,153,2,1,204,2,5,221,2,8,187,3,1,187,3,5,187,3,8,204,4,1,187,4,7,170,5,2,153,5,3,238,5,4,255,5,5,255,5,6,187],\"secondary\":false},{\"width\":8,\"bonus\":75,\"chr\":\"%\",\"pixels\":[0,3,255,0,8,255,1,2,255,1,4,255,1,7,255,2,3,255,2,6,255,3,5,255,4,4,255,4,7,255,5,3,255,5,6,255,5,8,255,6,2,255,6,7,255],\"secondary\":false},{\"width\":4,\"bonus\":40,\"chr\":\"/\",\"pixels\":[0,7,153,0,8,238,0,9,221,1,4,187,1,5,238,1,6,170,2,1,221,2,2,221],\"secondary\":false},{\"width\":7,\"bonus\":60,\"chr\":\"+\",\"pixels\":[0,5,221,1,5,255,2,5,255,3,2,153,3,3,221,3,4,221,3,5,255,3,6,221,3,7,221,3,8,204,4,5,255,5,5,255],\"secondary\":false},{\"width\":5,\"bonus\":40,\"chr\":\"?\",\"pixels\":[0,1,170,1,1,255,1,6,221,1,8,255,2,1,255,2,5,170,3,2,255,3,3,221],\"secondary\":false},{\"width\":2,\"bonus\":35,\"chr\":\"!\",\"pixels\":[0,1,170,0,2,187,0,3,187,0,4,187,0,5,187,0,6,170,0,8,255],\"secondary\":false},{\"width\":8,\"bonus\":130,\"chr\":\"@\",\"pixels\":[0,4,255,0,5,255,0,6,221,0,7,255,0,8,187,1,3,221,1,9,238,2,2,221,2,5,255,2,6,238,2,7,255,2,10,153,3,2,255,3,4,255,3,8,204,3,10,187,4,2,238,4,4,255,4,8,255,5,3,238,5,4,255,5,5,221,5,6,221,5,7,221,5,8,238,6,8,221],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"#\",\"pixels\":[0,6,255,1,3,255,1,6,255,1,7,170,1,8,238,2,1,170,2,2,238,2,3,255,2,4,221,2,5,170,2,6,255,3,3,255,3,6,255,4,3,255,4,4,153,4,5,204,4,6,255,4,7,238,4,8,187,5,1,255,5,2,187,5,3,255,5,6,255,6,3,255],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"$\",\"pixels\":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,0,204,2,1,238,2,8,238,2,9,204,3,1,238,3,5,238,3,8,255,4,6,170,4,7,170],\"secondary\":false},{\"width\":6,\"bonus\":40,\"chr\":\"^\",\"pixels\":[0,4,153,0,5,238,1,2,204,1,3,221,2,1,221,2,2,221,3,3,187,3,4,221],\"secondary\":false},{\"width\":6,\"bonus\":20,\"chr\":\"~\",\"pixels\":[1,5,255,2,5,221,3,6,221,4,5,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"&\",\"pixels\":[0,6,187,1,2,238,1,3,255,1,4,187,1,5,187,1,8,187,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,4,255,4,8,187,5,3,204,5,4,255,5,5,221,5,6,187,6,4,153],\"secondary\":false},{\"width\":6,\"bonus\":45,\"chr\":\"*\",\"pixels\":[0,2,170,1,2,170,1,3,204,1,4,255,2,1,204,2,2,238,2,3,255,3,2,170,3,4,153],\"secondary\":false},{\"width\":4,\"bonus\":55,\"chr\":\"(\",\"pixels\":[0,3,173,0,4,239,0,5,253,0,6,230,0,7,171,1,1,194,1,2,204,1,8,204,1,9,191,2,0,210,2,10,216],\"secondary\":false},{\"width\":4,\"bonus\":55,\"chr\":\")\",\"pixels\":[1,0,211,1,10,216,2,1,194,2,2,203,2,8,203,2,9,191,3,3,174,3,4,240,3,5,253,3,6,229,3,7,171],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"_\",\"pixels\":[0,9,153,1,9,255,2,9,255,3,9,255,4,9,255,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":15,\"chr\":\"-\",\"pixels\":[0,5,255,1,5,255,2,5,255],\"secondary\":true},{\"width\":8,\"bonus\":50,\"chr\":\"=\",\"pixels\":[0,4,255,0,6,255,1,4,255,1,6,255,2,4,255,2,6,255,3,4,255,3,6,255,4,4,255,4,6,255],\"secondary\":false},{\"width\":3,\"bonus\":55,\"chr\":\"[\",\"pixels\":[0,0,204,0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,0,238,1,8,238],\"secondary\":false},{\"width\":3,\"bonus\":55,\"chr\":\"]\",\"pixels\":[0,0,238,0,8,238,1,0,204,1,1,221,1,2,221,1,3,221,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204],\"secondary\":false},{\"width\":5,\"bonus\":50,\"chr\":\"{\",\"pixels\":[0,5,153,1,2,170,1,3,221,1,4,221,1,5,204,1,6,255,1,7,221,1,8,170,2,1,238,2,9,238],\"secondary\":false},{\"width\":5,\"bonus\":50,\"chr\":\"}\",\"pixels\":[1,1,238,1,9,238,2,2,170,2,3,221,2,4,221,2,5,204,2,6,255,2,7,221,2,8,170,3,5,153],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\":\",\"pixels\":[1,3,255,1,7,255],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\";\",\"pixels\":[0,9,201,1,3,255,1,7,241,1,8,255],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\"\\\\\"\",\"pixels\":[0,1,255,0,2,255,2,1,255,2,2,255],\"secondary\":true},{\"width\":2,\"bonus\":10,\"chr\":\"\\'\",\"pixels\":[0,1,255,0,2,177],\"secondary\":true},{\"width\":7,\"bonus\":40,\"chr\":\"<\",\"pixels\":[0,5,204,1,5,255,2,4,238,2,6,238,3,4,170,3,6,170,4,3,221,4,7,221],\"secondary\":false},{\"width\":7,\"bonus\":45,\"chr\":\">\",\"pixels\":[0,3,204,0,7,204,1,7,187,2,4,238,2,6,255,3,4,170,3,5,153,3,6,204,4,5,255],\"secondary\":false},{\"width\":5,\"bonus\":35,\"chr\":\"\\\\\\\\\",\"pixels\":[1,1,153,1,2,255,1,3,204,2,5,255,2,6,204,3,8,255,3,9,204],\"secondary\":false},{\"width\":2,\"bonus\":5,\"chr\":\".\",\"pixels\":[0,8,255],\"secondary\":true},{\"width\":3,\"bonus\":15,\"chr\":\",\",\"pixels\":[0,9,205,1,7,205,1,8,255],\"secondary\":true},{\"width\":3,\"bonus\":50,\"chr\":\"|\",\"pixels\":[0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,221,0,9,221,0,10,204],\"secondary\":false}],\"width\":10,\"spacewidth\":3,\"shadow\":false,\"height\":12,\"basey\":8}');\n\n/***/ }),\n\n/***/ \"./src/fonts/aa_8px_mono_allcaps.fontmeta.json\":\n/*!*****************************************************!*\\\n !*** ./src/fonts/aa_8px_mono_allcaps.fontmeta.json ***!\n \\*****************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('{\"chars\":[{\"width\":3,\"bonus\":35,\"chr\":\"!\",\"pixels\":[0,2,170,1,1,221,1,2,255,1,3,221,1,4,187,1,5,170,1,9,204],\"secondary\":false},{\"width\":6,\"bonus\":20,\"chr\":\"\\\\\"\",\"pixels\":[1,2,221,1,3,255,3,2,221,3,3,255],\"secondary\":true},{\"width\":8,\"bonus\":125,\"chr\":\"#\",\"pixels\":[0,7,187,1,4,255,1,7,255,1,10,170,2,3,170,2,4,255,2,5,255,2,6,221,2,7,255,2,8,170,3,4,255,3,7,255,4,4,255,4,5,153,4,7,255,4,8,238,4,9,255,4,10,204,5,2,238,5,3,204,5,4,255,5,5,153,5,7,255,6,4,255,6,7,153],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"$\",\"pixels\":[0,8,187,1,2,255,1,3,255,1,4,221,1,9,238,2,1,187,2,4,255,2,5,204,2,8,170,2,9,255,2,10,221,3,0,187,3,1,238,3,2,187,3,3,170,3,4,153,3,5,255,3,6,221,3,9,221,4,1,221,4,6,255,4,7,255,4,8,255],\"secondary\":false},{\"width\":12,\"bonus\":135,\"chr\":\"%\",\"pixels\":[1,2,255,1,3,255,1,4,221,2,5,153,3,1,153,3,9,187,4,1,170,4,2,255,4,3,255,4,4,221,4,7,238,4,8,204,5,4,153,5,5,238,5,6,153,6,1,153,6,2,187,6,3,204,6,6,221,6,7,255,6,8,255,7,1,153,7,9,187,8,9,187,9,6,221,9,7,255,9,8,255],\"secondary\":false},{\"width\":11,\"bonus\":190,\"chr\":\"&\",\"pixels\":[0,6,187,0,7,255,0,8,170,1,2,204,1,3,255,1,4,153,1,5,238,1,6,170,1,7,187,1,8,255,1,9,153,2,1,170,2,2,153,2,3,153,2,4,255,2,5,187,2,9,238,3,1,221,3,5,238,3,6,170,3,9,255,4,1,238,4,6,238,4,7,153,4,9,204,5,1,187,5,2,187,5,7,255,5,8,204,6,7,170,6,8,255,7,5,238,7,6,255,7,7,170,7,8,170,7,9,221,8,9,238,9,9,153],\"secondary\":false},{\"width\":4,\"bonus\":10,\"chr\":\"\\'\",\"pixels\":[1,2,204,1,3,255],\"secondary\":true},{\"width\":4,\"bonus\":50,\"chr\":\"(\",\"pixels\":[0,3,170,0,4,238,0,5,255,0,6,221,0,7,153,1,1,153,1,2,221,1,3,153,1,7,170,1,8,238],\"secondary\":false},{\"width\":4,\"bonus\":40,\"chr\":\")\",\"pixels\":[1,1,170,1,2,221,1,7,170,1,8,238,2,3,187,2,4,238,2,5,255,2,6,204],\"secondary\":false},{\"width\":5,\"bonus\":25,\"chr\":\"*\",\"pixels\":[1,1,170,1,2,221,1,3,153,2,2,255,2,3,204],\"secondary\":false},{\"width\":8,\"bonus\":45,\"chr\":\"+\",\"pixels\":[1,6,255,2,6,255,3,4,255,3,5,255,3,6,255,3,7,255,3,8,255,4,6,255,5,6,255],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\",\",\"pixels\":[1,8,187,1,9,221],\"secondary\":true},{\"width\":5,\"bonus\":20,\"chr\":\"-\",\"pixels\":[0,7,204,1,7,255,2,7,238,3,7,187],\"secondary\":true},{\"width\":3,\"bonus\":5,\"chr\":\".\",\"pixels\":[0,9,204],\"secondary\":true},{\"width\":7,\"bonus\":40,\"chr\":\"/\",\"pixels\":[0,9,221,1,7,187,1,8,187,2,6,221,3,4,221,4,2,170,4,3,187,5,1,187],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"0\",\"pixels\":[0,6,153,1,3,221,1,4,255,1,5,255,1,6,255,1,7,255,1,8,238,2,2,187,2,8,153,2,9,204,3,2,187,3,9,204,4,2,221,4,9,187,5,3,238,5,4,255,5,5,255,5,6,255,5,7,255,5,8,221,6,5,153],\"secondary\":false},{\"width\":6,\"bonus\":85,\"chr\":\"1\",\"pixels\":[1,3,170,1,9,153,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,3,2,153,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221],\"secondary\":false},{\"width\":8,\"bonus\":100,\"chr\":\"2\",\"pixels\":[1,2,187,1,3,153,1,9,255,2,2,187,2,8,221,2,9,255,3,2,221,3,7,221,3,9,255,4,2,187,4,3,238,4,4,187,4,5,238,4,6,238,4,9,255,5,3,221,5,4,255,5,5,170,5,8,153,5,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"3\",\"pixels\":[0,2,170,0,8,170,0,9,204,1,2,221,1,9,238,2,2,238,2,5,221,2,9,221,3,2,221,3,3,187,3,4,204,3,5,255,3,6,153,3,9,187,4,3,238,4,4,153,4,6,255,4,7,255,4,8,255,5,7,153],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"4\",\"pixels\":[0,7,153,1,6,187,1,7,255,2,5,187,2,7,255,3,4,187,3,7,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,7,255,5,9,204,6,7,221],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"5\",\"pixels\":[0,8,153,0,9,221,1,2,255,1,3,187,1,4,238,1,9,221,2,2,255,2,4,187,2,5,170,2,9,204,3,2,255,3,5,255,3,9,170,4,2,255,4,5,204,4,6,255,4,7,255,4,8,238,5,7,153],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"6\",\"pixels\":[0,7,153,1,4,153,1,5,255,1,6,255,1,7,255,1,8,255,2,4,204,2,9,221,3,3,170,3,5,153,3,9,204,4,2,153,4,5,187,4,9,204,5,6,238,5,7,170,5,8,187,5,9,153,6,6,187,6,7,255,6,8,170],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"7\",\"pixels\":[0,2,204,0,3,187,1,2,255,1,9,187,2,2,255,2,7,238,2,8,255,2,9,170,3,2,255,3,5,221,3,6,204,4,2,255,4,3,204,4,4,170,5,2,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"8\",\"pixels\":[1,3,221,1,4,204,1,6,187,1,7,255,1,8,255,2,2,187,2,4,204,2,5,221,2,6,153,2,9,221,3,2,153,3,5,255,3,9,187,4,2,187,4,5,238,4,6,204,4,9,204,5,2,170,5,3,255,5,4,238,5,6,238,5,7,255,5,8,255,6,7,153],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"9\",\"pixels\":[0,4,153,1,3,255,1,4,255,1,5,255,2,2,187,2,6,153,3,2,204,3,6,153,3,9,153,4,2,221,4,7,153,4,8,204,5,3,255,5,4,255,5,5,255,5,6,255,5,7,187,6,4,153,6,5,153],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\":\",\"pixels\":[0,3,204,0,7,204],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\";\",\"pixels\":[0,2,204,0,6,153,0,7,187,0,8,153],\"secondary\":true},{\"width\":7,\"bonus\":55,\"chr\":\"<\",\"pixels\":[0,6,187,0,7,153,1,6,221,1,7,238,2,5,153,3,5,238,3,8,238,4,5,153,4,8,187,5,4,187,5,9,153],\"secondary\":false},{\"width\":7,\"bonus\":60,\"chr\":\"=\",\"pixels\":[0,5,255,0,8,255,1,5,255,1,8,255,2,5,255,2,8,255,3,5,255,3,8,255,4,5,255,4,8,255,5,5,221,5,8,221],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\">\",\"pixels\":[0,4,204,0,9,170,1,5,170,1,8,187,2,5,238,2,8,221,3,7,153,4,6,238,4,7,238,5,6,153],\"secondary\":false},{\"width\":6,\"bonus\":65,\"chr\":\"?\",\"pixels\":[0,2,153,0,3,187,1,2,221,1,7,221,2,2,238,2,6,238,2,10,204,3,2,204,3,3,221,3,4,204,3,5,255,4,3,238,4,4,221],\"secondary\":false},{\"width\":11,\"bonus\":180,\"chr\":\"@\",\"pixels\":[0,4,187,0,5,255,0,6,255,0,7,238,1,3,170,1,8,204,2,5,187,2,6,238,2,7,187,2,9,204,3,4,204,3,5,153,3,6,153,3,7,204,3,9,204,4,3,153,4,6,153,4,9,187,5,0,153,5,3,221,5,4,170,5,5,238,5,6,255,5,7,187,5,9,170,6,3,221,6,4,153,6,7,238,7,1,153,7,7,170,8,1,170,8,2,153,8,6,170,9,3,187,9,4,221,9,5,170],\"secondary\":false},{\"width\":9,\"bonus\":110,\"chr\":\"A\",\"pixels\":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],\"secondary\":false},{\"width\":7,\"bonus\":150,\"chr\":\"B\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"C\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],\"secondary\":false},{\"width\":10,\"bonus\":165,\"chr\":\"D\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],\"secondary\":false},{\"width\":7,\"bonus\":110,\"chr\":\"E\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,239,3,2,214,3,5,221,3,9,212,4,2,212,4,5,226,4,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"F\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],\"secondary\":false},{\"width\":9,\"bonus\":135,\"chr\":\"G\",\"pixels\":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],\"secondary\":false},{\"width\":10,\"bonus\":175,\"chr\":\"H\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],\"secondary\":false},{\"width\":5,\"bonus\":80,\"chr\":\"I\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],\"secondary\":false},{\"width\":6,\"bonus\":90,\"chr\":\"J\",\"pixels\":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],\"secondary\":false},{\"width\":10,\"bonus\":140,\"chr\":\"K\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"L\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],\"secondary\":false},{\"width\":12,\"bonus\":150,\"chr\":\"M\",\"pixels\":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],\"secondary\":false},{\"width\":10,\"bonus\":130,\"chr\":\"N\",\"pixels\":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],\"secondary\":false},{\"width\":10,\"bonus\":155,\"chr\":\"O\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],\"secondary\":false},{\"width\":8,\"bonus\":130,\"chr\":\"P\",\"pixels\":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,1,238,2,2,153,2,3,153,2,4,153,2,5,170,2,6,153,2,7,153,2,8,153,2,9,221,3,1,204,4,1,238,4,5,187,5,1,153,5,2,255,5,3,255,5,4,255,6,3,153],\"secondary\":false},{\"width\":10,\"bonus\":180,\"chr\":\"Q\",\"pixels\":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],\"secondary\":false},{\"width\":7,\"bonus\":140,\"chr\":\"R\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238],\"secondary\":false},{\"width\":6,\"bonus\":115,\"chr\":\"S\",\"pixels\":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"T\",\"pixels\":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],\"secondary\":false},{\"width\":10,\"bonus\":120,\"chr\":\"U\",\"pixels\":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],\"secondary\":false},{\"width\":10,\"bonus\":90,\"chr\":\"V\",\"pixels\":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],\"secondary\":false},{\"width\":13,\"bonus\":165,\"chr\":\"W\",\"pixels\":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],\"secondary\":false},{\"width\":9,\"bonus\":115,\"chr\":\"X\",\"pixels\":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"Y\",\"pixels\":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"Z\",\"pixels\":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":65,\"chr\":\"[\",\"pixels\":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,187,1,0,187,1,10,170],\"secondary\":false},{\"width\":8,\"bonus\":40,\"chr\":\"\\\\\\\\\",\"pixels\":[1,1,170,1,2,187,2,3,221,3,5,221,4,6,187,4,7,187,5,8,221,6,9,153],\"secondary\":false},{\"width\":5,\"bonus\":65,\"chr\":\"]\",\"pixels\":[1,0,153,1,10,153,2,0,255,2,1,255,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,187],\"secondary\":false},{\"width\":7,\"bonus\":40,\"chr\":\"^\",\"pixels\":[0,5,204,1,3,238,1,4,170,2,1,238,3,1,221,3,2,204,4,3,187,4,4,238],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"_\",\"pixels\":[0,10,221,1,10,221,2,10,221,3,10,221,4,10,221,5,10,221],\"secondary\":false},{\"width\":9,\"bonus\":110,\"chr\":\"a\",\"pixels\":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],\"secondary\":false},{\"width\":7,\"bonus\":150,\"chr\":\"b\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"c\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],\"secondary\":false},{\"width\":10,\"bonus\":165,\"chr\":\"d\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],\"secondary\":false},{\"width\":7,\"bonus\":110,\"chr\":\"e\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,5,221,3,9,221,4,2,238,4,5,238,4,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"f\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],\"secondary\":false},{\"width\":10,\"bonus\":135,\"chr\":\"g\",\"pixels\":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],\"secondary\":false},{\"width\":10,\"bonus\":175,\"chr\":\"h\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],\"secondary\":false},{\"width\":5,\"bonus\":80,\"chr\":\"i\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],\"secondary\":false},{\"width\":5,\"bonus\":90,\"chr\":\"j\",\"pixels\":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],\"secondary\":false},{\"width\":9,\"bonus\":140,\"chr\":\"k\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"l\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],\"secondary\":false},{\"width\":12,\"bonus\":150,\"chr\":\"m\",\"pixels\":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],\"secondary\":false},{\"width\":10,\"bonus\":130,\"chr\":\"n\",\"pixels\":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],\"secondary\":false},{\"width\":10,\"bonus\":155,\"chr\":\"o\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"p\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,170,2,7,153,2,8,153,2,9,221,3,2,221,4,2,221,4,3,204,4,4,153,4,5,221,5,3,221,5,4,221],\"secondary\":false},{\"width\":10,\"bonus\":180,\"chr\":\"q\",\"pixels\":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],\"secondary\":false},{\"width\":9,\"bonus\":145,\"chr\":\"r\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238,7,9,153],\"secondary\":false},{\"width\":6,\"bonus\":115,\"chr\":\"s\",\"pixels\":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"t\",\"pixels\":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],\"secondary\":false},{\"width\":10,\"bonus\":120,\"chr\":\"u\",\"pixels\":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],\"secondary\":false},{\"width\":10,\"bonus\":90,\"chr\":\"v\",\"pixels\":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],\"secondary\":false},{\"width\":13,\"bonus\":165,\"chr\":\"w\",\"pixels\":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],\"secondary\":false},{\"width\":9,\"bonus\":115,\"chr\":\"x\",\"pixels\":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"y\",\"pixels\":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"z\",\"pixels\":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":45,\"chr\":\"{\",\"pixels\":[1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221,2,0,153],\"secondary\":false},{\"width\":2,\"bonus\":60,\"chr\":\"|\",\"pixels\":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,255,0,11,255],\"secondary\":true},{\"width\":4,\"bonus\":45,\"chr\":\"}\",\"pixels\":[0,0,153,1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"~\",\"pixels\":[0,5,221,1,4,255,2,4,187,3,5,187,4,5,255,5,4,204],\"secondary\":false}],\"width\":13,\"spacewidth\":3,\"shadow\":false,\"height\":12,\"basey\":9}');\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/dialog/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"alt1/base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"alt1/base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ocr\"] = factory(require(\"alt1/base\"));\n\telse\n\t\troot[\"OCR\"] = factory(root[\"A1lib\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/ocr/index.ts\":\n/*!**************************!*\\\n !*** ./src/ocr/index.ts ***!\n \\**************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.generatefont = exports.readChar = exports.readSmallCapsBackwards = exports.readLine = exports.getChatColor = exports.GetChatColorMono = exports.findReadLine = exports.findChar = exports.decompose3col = exports.decomposeblack = exports.decompose2col = exports.canblend = exports.unblendTrans = exports.unblendKnownBg = exports.unblendBlackBackground = exports.debugFont = exports.debugout = exports.debug = void 0;\nconst base_1 = __webpack_require__(/*! alt1/base */ \"alt1/base\");\nexports.debug = {\n printcharscores: false,\n trackread: false\n};\nexports.debugout = {};\n/**\n * draws the font definition to a buffer and displays it in the dom for debugging purposes\n * @param font\n */\nfunction debugFont(font) {\n var spacing = font.width + 2;\n var buf = new base_1.ImageData(spacing * font.chars.length, font.height + 1);\n for (var a = 0; a < buf.data.length; a += 4) {\n buf.data[a] = buf.data[a + 1] = buf.data[a + 2] = 0;\n buf.data[a + 3] = 255;\n }\n for (var a = 0; a < font.chars.length; a++) {\n var bx = a * spacing;\n var chr = font.chars[a];\n for (var b = 0; b < chr.pixels.length; b += (font.shadow ? 4 : 3)) {\n buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 2], chr.pixels[b + 2], chr.pixels[b + 2], 255]);\n if (font.shadow) {\n buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 3], 0, 0, 255]);\n }\n }\n }\n buf.show();\n}\nexports.debugFont = debugFont;\nfunction unblendBlackBackground(img, r, g, b) {\n var rimg = new base_1.ImageData(img.width, img.height);\n for (var i = 0; i < img.data.length; i += 4) {\n var col = decomposeblack(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b);\n rimg.data[i + 0] = col[0] * 255;\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendBlackBackground = unblendBlackBackground;\n/**\n * unblends a imagebuffer into match strength with given color\n * the bgimg argument should contain a second image with pixel occluded by the font visible.\n * @param img\n * @param shadow detect black as second color\n * @param bgimg optional second image to\n */\nfunction unblendKnownBg(img, bgimg, shadow, r, g, b) {\n if (bgimg && (img.width != bgimg.width || img.height != bgimg.height)) {\n throw \"bgimg size doesn't match\";\n }\n var rimg = new base_1.ImageData(img.width, img.height);\n var totalerror = 0;\n for (var i = 0; i < img.data.length; i += 4) {\n var col = decompose2col(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b, bgimg.data[i + 0], bgimg.data[i + 1], bgimg.data[i + 2]);\n if (shadow) {\n if (col[2] > 0.01) {\n console.log(\"high error component: \" + (col[2] * 100).toFixed(1) + \"%\");\n }\n totalerror += col[2];\n var m = 1 - col[1] - Math.abs(col[2]); //main color+black=100%-bg-error\n rimg.data[i + 0] = m * 255;\n rimg.data[i + 1] = col[0] / m * 255;\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n else {\n rimg.data[i + 0] = col[0] * 255;\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendKnownBg = unblendKnownBg;\n/**\n * Unblends a font image that is already conpletely isolated to the raw image used ingame. This is the easiest mode for pixel fonts where alpha is 0 or 255, or for extracted font files.\n * @param img\n * @param r\n * @param g\n * @param b\n * @param shadow whether the font has a black shadow\n */\nfunction unblendTrans(img, shadow, r, g, b) {\n var rimg = new base_1.ImageData(img.width, img.height);\n var pxlum = r + g + b;\n for (var i = 0; i < img.data.length; i += 4) {\n if (shadow) {\n var lum = img.data[i + 0] + img.data[i + 1] + img.data[i + 2];\n rimg.data[i + 0] = img.data[i + 3];\n rimg.data[i + 1] = lum / pxlum * 255;\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n else {\n rimg.data[i + 0] = img.data[i + 3];\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendTrans = unblendTrans;\n/**\n * Determised wether color [rgb]m can be a result of a blend with color [rgb]1 that is p (0-1) of the mix\n * It returns the number that the second color has to lie outside of the possible color ranges\n * @param rm resulting color\n * @param r1 first color of the mix (the other color is unknown)\n * @param p the portion of the [rgb]1 in the mix (0-1)\n */\nfunction canblend(rm, gm, bm, r1, g1, b1, p) {\n var m = Math.min(50, p / (1 - p));\n var r = rm + (rm - r1) * m;\n var g = gm + (gm - g1) * m;\n var b = bm + (bm - b1) * m;\n return Math.max(0, -r, -g, -b, r - 255, g - 255, b - 255);\n}\nexports.canblend = canblend;\n/**\n * decomposes a color in 2 given component colors and returns the amount of each color present\n * also return a third (noise) component which is the the amount leftover orthagonal from the 2 given colors\n */\nfunction decompose2col(rp, gp, bp, r1, g1, b1, r2, g2, b2) {\n //get the normal of the error (cross-product of both colors)\n var r3 = g1 * b2 - g2 * b1;\n var g3 = b1 * r2 - b2 * r1;\n var b3 = r1 * g2 - r2 * g1;\n //normalize to length 255\n var norm = 255 / Math.sqrt(r3 * r3 + g3 * g3 + b3 * b3);\n r3 *= norm;\n g3 *= norm;\n b3 *= norm;\n return decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3);\n}\nexports.decompose2col = decompose2col;\n/**\n * decomposes a pixel in a given color component and black and returns what proportion of the second color it contains\n * this is not as formal as decompose 2/3 and only give a \"good enough\" number\n */\nfunction decomposeblack(rp, gp, bp, r1, g1, b1) {\n var dr = Math.abs(rp - r1);\n var dg = Math.abs(gp - g1);\n var db = Math.abs(bp - b1);\n var maxdif = Math.max(dr, dg, db);\n return [1 - maxdif / 255];\n}\nexports.decomposeblack = decomposeblack;\n/**\n * decomposes a color in 3 given component colors and returns the amount of each color present\n */\nfunction decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3) {\n //P=x*C1+y*C2+z*C3\n //assemble as matrix \n //M*w=p\n //get inverse of M\n //dirty written out version of cramer's rule\n var A = g2 * b3 - b2 * g3;\n var B = g3 * b1 - b3 * g1;\n var C = g1 * b2 - b1 * g2;\n var D = b2 * r3 - r2 * b3;\n var E = b3 * r1 - r3 * b1;\n var F = b1 * r2 - r1 * b2;\n var G = r2 * g3 - g2 * r3;\n var H = r3 * g1 - g3 * r1;\n var I = r1 * g2 - g1 * r2;\n var det = r1 * A + g1 * D + b1 * G;\n //M^-1*p=w\n var x = (A * rp + D * gp + G * bp) / det;\n var y = (B * rp + E * gp + H * bp) / det;\n var z = (C * rp + F * gp + I * bp) / det;\n return [x, y, z];\n}\nexports.decompose3col = decompose3col;\n/**\n * brute force to the exact position of the text\n */\nfunction findChar(buffer, font, col, x, y, w, h) {\n if (x < 0) {\n return null;\n }\n if (y - font.basey < 0) {\n return null;\n }\n if (x + w + font.width > buffer.width) {\n return null;\n }\n if (y + h - font.basey + font.height > buffer.height) {\n return null;\n }\n var best = 1000; //TODO finetune score constants\n var bestchar = null;\n for (var cx = x; cx < x + w; cx++) {\n for (var cy = y; cy < y + h; cy++) {\n var chr = readChar(buffer, font, col, cx, cy, false, false);\n if (chr != null && chr.sizescore < best) {\n best = chr.sizescore;\n bestchar = chr;\n }\n }\n }\n return bestchar;\n}\nexports.findChar = findChar;\n/**\n * reads text with unknown exact coord or color. The given coord should be inside the text\n * color selection not implemented yet\n */\nfunction findReadLine(buffer, font, cols, x, y, w = -1, h = -1) {\n if (w == -1) {\n w = font.width + font.spacewidth;\n x -= Math.ceil(w / 2);\n }\n if (h == -1) {\n h = 7;\n y -= 1;\n }\n var chr = null;\n if (cols.length > 1) {\n //TODO use getChatColor() instead for non-mono?\n var sorted = GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols);\n //loop until we have a match (max 2 cols)\n for (var a = 0; a < 2 && a < sorted.length && chr == null; a++) {\n chr = findChar(buffer, font, sorted[a].col, x, y, w, h);\n }\n }\n else {\n chr = findChar(buffer, font, cols[0], x, y, w, h);\n }\n if (chr == null) {\n return { debugArea: { x, y, w, h }, text: \"\", fragments: [] };\n }\n return readLine(buffer, font, cols, chr.x, chr.y, true, true);\n}\nexports.findReadLine = findReadLine;\nfunction GetChatColorMono(buf, rect, colors) {\n var colormap = colors.map(c => ({ col: c, score: 0 }));\n if (rect.x < 0 || rect.y < 0 || rect.x + rect.width > buf.width || rect.y + rect.height > buf.height) {\n return colormap;\n }\n var data = buf.data;\n var maxd = 50;\n for (var colobj of colormap) {\n var score = 0;\n var col = colobj.col;\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n var i = x * 4 + y * 4 * buf.width;\n var d = Math.abs(data[i] - col[0]) + Math.abs(data[i + 1] - col[1]) + Math.abs(data[i + 2] - col[2]);\n if (d < maxd) {\n score += maxd - d;\n }\n }\n }\n colobj.score = score;\n }\n return colormap.sort((a, b) => b.score - a.score);\n}\nexports.GetChatColorMono = GetChatColorMono;\nfunction unblend(r, g, b, R, G, B) {\n var m = Math.sqrt(r * r + g * g + b * b);\n var n = Math.sqrt(R * R + G * G + B * B);\n var x = (r * R + g * G + b * B) / n;\n var y = Math.sqrt(Math.max(0, m * m - x * x));\n var r1 = Math.max(0, (63.75 - y) * 4);\n var r2 = x / n * 255;\n if (r2 > 255) //brighter than refcol\n {\n r1 = Math.max(0, r1 - r2 + 255);\n r2 = 255;\n }\n return [r1, r2];\n}\nfunction getChatColor(buf, rect, colors) {\n var bestscore = -1.0;\n var best = null;\n var b2 = 0.0;\n var data = buf.data;\n for (let col of colors) {\n var score = 0.0;\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n if (x < 0 || x + 1 >= buf.width) {\n continue;\n }\n if (y < 0 || y + 1 >= buf.width) {\n continue;\n }\n let i1 = buf.pixelOffset(x, y);\n let i2 = buf.pixelOffset(x + 1, y + 1);\n var pixel1 = unblend(data[i1 + 0], data[i1 + 1], data[i1 + 2], col[0], col[1], col[2]);\n var pixel2 = unblend(data[i2 + 0], data[i2 + 1], data[i2 + 2], col[0], col[1], col[2]);\n //TODO this is from c# can simplify a bit\n var s = (pixel1[0] / 255 * pixel1[1] / 255) * (pixel2[0] / 255 * (255.0 - pixel2[1]) / 255);\n score += s;\n }\n }\n if (score > bestscore) {\n b2 = bestscore;\n bestscore = score;\n best = col;\n }\n else if (score > b2) {\n b2 = score;\n }\n }\n //Console.WriteLine(\"color: \" + bestcol + \" - \" + (bestscore - b2));\n //bestscore /= rect.width * rect.height;\n return best;\n}\nexports.getChatColor = getChatColor;\n/**\n * reads a line of text with exactly known position and color. y should be the y coord of the text base line, x should be the first pixel of a new character\n */\nfunction readLine(buffer, font, colors, x, y, forward, backward = false) {\n if (typeof colors[0] != \"number\" && colors.length == 1) {\n colors = colors[0];\n }\n var multicol = typeof colors[0] != \"number\";\n var allcolors = multicol ? colors : [colors];\n var detectcolor = function (sx, sy, backward) {\n var w = Math.floor(font.width * 1.5);\n if (backward) {\n sx -= w;\n }\n sy -= font.basey;\n return getChatColor(buffer, { x: sx, y: sy, width: w, height: font.height }, allcolors);\n };\n var fragments = [];\n var x1 = x;\n var x2 = x;\n var maxspaces = (typeof font.maxspaces == \"number\" ? font.maxspaces : 1);\n let fragtext = \"\";\n let fraghadprimary = false;\n var lastcol = null;\n let addfrag = (forward) => {\n if (!fragtext) {\n return;\n }\n let frag = {\n text: fragtext,\n color: lastcol,\n index: 0,\n xstart: x + (forward ? fragstartdx : fragenddx),\n xend: x + (forward ? fragenddx : fragstartdx)\n };\n if (forward) {\n fragments.push(frag);\n }\n else {\n fragments.unshift(frag);\n }\n fragtext = \"\";\n fragstartdx = dx;\n fraghadprimary = false;\n };\n for (var dirforward of [true, false]) {\n //init vars\n if (dirforward && !forward) {\n continue;\n }\n if (!dirforward && !backward) {\n continue;\n }\n var dx = 0;\n var fragstartdx = dx;\n var fragenddx = dx;\n var triedspaces = 0;\n var triedrecol = false;\n var col = multicol ? null : colors;\n while (true) {\n col = col || detectcolor(x + dx, y, !dirforward);\n var chr = (col ? readChar(buffer, font, col, x + dx, y, !dirforward, true) : null);\n if (col == null || chr == null) {\n if (triedspaces < maxspaces) {\n dx += (dirforward ? 1 : -1) * font.spacewidth;\n triedspaces++;\n continue;\n }\n if (multicol && !triedrecol && fraghadprimary) {\n dx -= (dirforward ? 1 : -1) * triedspaces * font.spacewidth;\n triedspaces = 0;\n col = null;\n triedrecol = true;\n continue;\n }\n if (dirforward) {\n x2 = x + dx - font.spacewidth;\n }\n else {\n x1 = x + dx + font.spacewidth;\n }\n break;\n }\n else {\n if (lastcol && (col[0] != lastcol[0] || col[1] != lastcol[1] || col[2] != lastcol[2])) {\n addfrag(dirforward);\n }\n var spaces = \"\";\n for (var a = 0; a < triedspaces; a++) {\n spaces += \" \";\n }\n if (dirforward) {\n fragtext += spaces + chr.chr;\n }\n else {\n fragtext = chr.chr + spaces + fragtext;\n }\n if (!chr.basechar.secondary) {\n fraghadprimary = true;\n }\n triedspaces = 0;\n triedrecol = false;\n dx += (dirforward ? 1 : -1) * chr.basechar.width;\n fragenddx = dx;\n lastcol = col;\n }\n }\n if (lastcol && fraghadprimary) {\n addfrag(dirforward);\n }\n }\n fragments.forEach((f, i) => f.index = i);\n return {\n debugArea: { x: x1, y: y - 9, w: x2 - x1, h: 10 },\n text: fragments.map(f => f.text).join(\"\"),\n fragments\n };\n}\nexports.readLine = readLine;\n/**\n * Reads a line of text that uses a smallcaps font, these fonts can have duplicate chars that only have a different amount of\n * empty space after the char before the next char starts.\n * The coordinates should be near the end of the string, or a rectangle with high 1 containing all points where the string can end.\n */\nfunction readSmallCapsBackwards(buffer, font, cols, x, y, w = -1, h = -1) {\n if (w == -1) {\n w = font.width + font.spacewidth;\n x -= Math.ceil(w / 2);\n }\n if (h == -1) {\n h = 7;\n y -= 1;\n }\n var matchedchar = null;\n var sorted = (cols.length == 1 ? [{ col: cols[0], score: 1 }] : GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols));\n //loop until we have a match (max 2 cols)\n for (var a = 0; a < 2 && a < sorted.length && matchedchar == null; a++) {\n for (var cx = x + w - 1; cx >= x; cx--) {\n var best = 1000; //TODO finetune score constants\n var bestchar = null;\n for (var cy = y; cy < y + h; cy++) {\n var chr = readChar(buffer, font, sorted[a].col, cx, cy, true, false);\n if (chr != null && chr.sizescore < best) {\n best = chr.sizescore;\n bestchar = chr;\n }\n }\n if (bestchar) {\n matchedchar = bestchar;\n break;\n }\n }\n }\n if (matchedchar == null) {\n return { text: \"\", debugArea: { x, y, w, h } };\n }\n return readLine(buffer, font, cols, matchedchar.x, matchedchar.y, false, true);\n}\nexports.readSmallCapsBackwards = readSmallCapsBackwards;\n/**\n * Reads a single character at the exact given location\n * @param x exact x location of the start of the character domain (includes part of the spacing between characters)\n * @param y exact y location of the baseline pixel of the character\n * @param backwards read in backwards direction, the x location should be the first pixel after the character domain in that case\n */\nfunction readChar(buffer, font, col, x, y, backwards, allowSecondary) {\n y -= font.basey;\n var shiftx = 0;\n var shifty = font.basey;\n var shadow = font.shadow;\n var debugobj = null;\n var debugimg = null;\n if (exports.debug.trackread) {\n var name = x + \";\" + y + \" \" + JSON.stringify(col);\n if (!exports.debugout[name]) {\n exports.debugout[name] = [];\n }\n debugobj = exports.debugout[name];\n }\n //===== make sure the full domain is inside the bitmap/buffer ======\n if (y < 0 || y + font.height >= buffer.height) {\n return null;\n }\n if (!backwards) {\n if (x < 0 || x + font.width > buffer.width) {\n return null;\n }\n }\n else {\n if (x - font.width < 0 || x > buffer.width) {\n return null;\n }\n }\n //====== start reading the char ======\n var scores = [];\n for (var chr = 0; chr < font.chars.length; chr++) {\n var chrobj = font.chars[chr];\n if (chrobj.secondary && !allowSecondary) {\n continue;\n }\n scores[chr] = { score: 0, sizescore: 0, chr: chrobj };\n var chrx = (backwards ? x - chrobj.width : x);\n if (exports.debug.trackread) {\n debugimg = new base_1.ImageData(font.width, font.height);\n }\n for (var a = 0; a < chrobj.pixels.length;) {\n var i = (chrx + chrobj.pixels[a]) * 4 + (y + chrobj.pixels[a + 1]) * buffer.width * 4;\n var penalty = 0;\n if (!shadow) {\n penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0], col[1], col[2], chrobj.pixels[a + 2] / 255);\n a += 3;\n }\n else {\n var lum = chrobj.pixels[a + 3] / 255;\n penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0] * lum, col[1] * lum, col[2] * lum, chrobj.pixels[a + 2] / 255);\n a += 4;\n }\n scores[chr].score += Math.max(0, penalty);\n //TODO add compiler flag to this to remove it for performance\n if (debugimg) {\n debugimg.setPixel(chrobj.pixels[a], chrobj.pixels[a + 1], [penalty, penalty, penalty, 255]);\n }\n }\n scores[chr].sizescore = scores[chr].score - chrobj.bonus;\n if (debugobj) {\n debugobj.push({ chr: chrobj.chr, score: scores[chr].sizescore, rawscore: scores[chr].score, img: debugimg });\n }\n }\n scores.sort((a, b) => a.sizescore - b.sizescore);\n if (exports.debug.printcharscores) {\n scores.slice(0, 5).forEach(q => console.log(q.chr.chr, q.score.toFixed(3), q.sizescore.toFixed(3)));\n }\n var winchr = scores[0];\n if (!winchr || winchr.score > 400) {\n return null;\n }\n return { chr: winchr.chr.chr, basechar: winchr.chr, x: x + shiftx, y: y + shifty, score: winchr.score, sizescore: winchr.sizescore };\n}\nexports.readChar = readChar;\n/**\n * Generates a font json description to use in reader functions\n * @param unblended A source image with all characters lined up. The image should be unblended into components using the unblend functions\n * The lowest pixel line of this image is used to mark the location and size of the charecters if the red component is 255 it means there is a character on that pixel column\n * @param chars A string containing all the characters of the image in the same order\n * @param seconds A string with characters that are considered unlikely and should only be detected if no other character is possible.\n * For example the period (.) character matches positive inside many other characters and should be marked as secondary\n * @param bonusses An object that contains bonus scores for certain difficult characters to make the more likely to be red.\n * @param basey The y position of the baseline pixel of the font\n * @param spacewidth the number of pixels a space takes\n * @param treshold minimal color match proportion (0-1) before a pixel is used for the font\n * @param shadow whether this font also uses the black shadow some fonts have. The \"unblended\" image should be unblended correspondingly\n * @returns a javascript object describing the font which is used as input for the different read functions\n */\nfunction generatefont(unblended, chars, seconds, bonusses, basey, spacewidth, treshold, shadow) {\n //settings vars\n treshold *= 255;\n //initial vars\n var miny = unblended.height - 1;\n var maxy = 0;\n var font = { chars: [], width: 0, spacewidth: spacewidth, shadow: shadow, height: 0, basey: 0 };\n var ds = false;\n var chardata = [];\n //index all chars\n for (var dx = 0; dx < unblended.width; dx++) {\n var i = 4 * dx + 4 * unblended.width * (unblended.height - 1);\n if (unblended.data[i] == 255 && unblended.data[i + 3] == 255) {\n if (ds === false) {\n ds = dx;\n }\n }\n else {\n if (ds !== false) {\n //char found, start detection\n var de = dx;\n var char = chars[chardata.length];\n var chr = {\n ds: ds,\n de: de,\n width: de - ds,\n chr: char,\n bonus: (bonusses && bonusses[char]) || 0,\n secondary: seconds.indexOf(chars[chardata.length]) != -1,\n pixels: []\n };\n chardata.push(chr);\n font.width = Math.max(font.width, chr.width);\n for (x = 0; x < de - ds; x++) {\n for (y = 0; y < unblended.height - 1; y++) {\n var i = (x + ds) * 4 + y * unblended.width * 4;\n if (unblended.data[i] >= treshold) {\n miny = Math.min(miny, y);\n maxy = Math.max(maxy, y);\n }\n }\n }\n ds = false;\n }\n }\n }\n font.height = maxy + 1 - miny;\n font.basey = basey - miny;\n //detect all pixels\n for (var a in chardata) {\n var chr = chardata[a];\n for (var x = 0; x < chr.width; x++) {\n for (var y = 0; y < maxy + 1 - miny; y++) {\n var i = (x + chr.ds) * 4 + (y + miny) * unblended.width * 4;\n if (unblended.data[i] >= treshold) {\n chr.pixels.push(x, y);\n chr.pixels.push(unblended.data[i]);\n if (shadow) {\n chr.pixels.push(unblended.data[i + 1]);\n }\n chr.bonus += 5;\n }\n }\n }\n //prevent js from doing the thing with unnecessary output precision\n chr.bonus = +chr.bonus.toFixed(3);\n font.chars.push({ width: chr.width, bonus: chr.bonus, chr: chr.chr, pixels: chr.pixels, secondary: chr.secondary });\n }\n return font;\n}\nexports.generatefont = generatefont;\n\n\n/***/ }),\n\n/***/ \"alt1/base\":\n/*!**************************************************************************************************!*\\\n !*** external {\"root\":\"A1lib\",\"commonjs2\":\"alt1/base\",\"commonjs\":\"alt1/base\",\"amd\":\"alt1/base\"} ***!\n \\**************************************************************************************************/\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/ocr/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from \"./modules/dochandler\";\nimport * as settings from \"./modules/settings\";\nimport * as slayer from \"./modules/slayer\";\nimport * as logger from \"./modules/logger\";\nimport \"./index.html\";\nimport \"./appconfig.json\";\n/* COPYRIGHT NOTICE - DO NOT REMOVE\n 2021 @ Unlishema Dragonsworn\n I have programmed this enitre app myself; however, I must give credit where credit is due.\n \n The credits have been moved into their own file @ https://slayer.unlishema.org/pages/credits.html\n*/\n/*\n ~~~ Slayer Assistant App ~~~\n Features coming in the near future (Also my current TODO List)\n\n ~ Before Release for Sure ~\n Update the about page. (Will need updated again on next release)\n Update the changelog page. (Will need updated again on next release)\n Update the credits page. (Will need updated again on next release)\n\n ~ Coming Next Release ~\n Add ability to load the database through a php file instead of the json (Done, except for reapers.json)\n - Add other features to the database query php even if the app don't use them yet (Coming in the future)\n -- Example: http://slayer.unlishema.org/data/creatures.php?q=Dragon&l=10\n -- l=100 could limit results, d could have it give extra details, q could also be setup for seaching, and so on\n\n ~ Coming Very Soon Maybe even next Release ~\n Add in a status tracking area to keep track of xp/hr, kills/hr, and more (Needs finished)\n Adjust histories to use sessionStorage\n\n ~ Near future Release ~\n Add support for Ushubti\n\n ~ Settings Still needed for the app ~\n Settings:\n - Ability to toggle on and off Debug and Verbose mode\n\n - Ability to toggle all hidden creatures\n -- Ability to toggle sub-classes of hidden creatures like (elite), (dragonkin lab) and such\n\n - Ability to select default loading\n -- Default Task(s) on open and adjust doc based on it (Done, Partially)\n -- Load previous task(s) and adjust doc based on it\n\n - Ability to select defaults for everything (Later On)\n -- Select default creature per task\n -- Select default variant per creature\n\n - Ability to customize the Look N Feel of the Slayer Assistant UI (Way Later On)\n - Ability to select how long to save search history (Way Later On)\n - Ability to select the type of search algo for the app (Maybe Later On)\n\n - Ability to turn off app injection (This will fix issues where a user can't inject into the client) [Need to remember what issue caused me to want this]\n\n*/\nif (window.alt1)\n alt1.identifyAppUrl(\"./appconfig.json\");\n// Initialize the JavaScript for the app\ndocument.addEventListener(\"DOMContentLoaded\", function () { return __awaiter(void 0, void 0, void 0, function () {\n var error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n // Setup the main document and load assignment index\n return [4 /*yield*/, dochandler.main.setup.documentMain()];\n case 1:\n // Setup the main document and load assignment index\n _a.sent();\n // Run the Config Setup Process\n return [4 /*yield*/, settings.controller.load()];\n case 2:\n // Run the Config Setup Process\n _a.sent();\n // Start the capture loop at the configured interval\n setInterval(function () {\n slayer.findTask();\n }, settings.controller.autoCapture.loopTimer);\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n logger.error(\"Initialization error:\", error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n}); });\n// Save settings before closing the app\ndocument.addEventListener(\"beforeunload\", function () { return __awaiter(void 0, void 0, void 0, function () {\n var error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, settings.controller.save()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n logger.error(\"Error saving settings:\", error_2);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n}); });\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/src/modules/SearchAlgorithm.ts b/src/modules/SearchAlgorithm.ts index e174e05..edee8cc 100644 --- a/src/modules/SearchAlgorithm.ts +++ b/src/modules/SearchAlgorithm.ts @@ -11,54 +11,101 @@ export class SearchData { } export class SearchAlgorithm { + private assignmentsCache: { [key: string]: any } = {}; + private reapersCache: { [key: string]: any } = {}; private data: SearchData; constructor() { this.data = new SearchData(); } - // Lookup best possible assignment based on input string public async lookup(lookup: string, skipReaper: boolean = false): Promise { const probabilities: { [key: string]: any } = {}; + this.data = new SearchData(); + // Fetch reapers if not skipping if (!skipReaper) { - const reapersResponse = await fetch("./data/reapers.json"); - const reapers = await reapersResponse.json(); - - for (const a of reapers) { - probabilities[a["index"]] = { - reaper: true, - index: Math.round(this.similarity(a["index"], lookup) * 10000) / 100, - creatures: {} - }; - - for (const b of a["creatures"]) { - probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175; - } - } + const reapers = await this.fetchData("reapers"); + this.calculateProbabilities(reapers, lookup, probabilities, true); } - const assignmentsResponse = await fetch("./data/assignments.json?list"); - const assignments = await assignmentsResponse.json(); + // Fetch assignments + const assignments = await this.fetchData("assignments"); + this.calculateProbabilities(assignments, lookup, probabilities, false); + + // Find the best match + return this.findBestMatch(probabilities); + } - for (const a of assignments) { + private async fetchData(type: "reapers" | "assignments"): Promise { + const cacheKey = type === "reapers" ? "reapersList" : "assignmentsList"; + let data: any; + + if (cacheKey in this[`${type}Cache`]) { + data = this[`${type}Cache`][cacheKey]; + } else { + const response = await fetch(`./data/${type}.json`); + data = await response.json(); + this[`${type}Cache`][cacheKey] = data; + } + + return data; + } + + private calculateProbabilities(data: any[], lookup: string, probabilities: any, isReaper: boolean) { + for (const a of data) { + const indexScore = this.calculateIndexScore(a["index"], lookup); probabilities[a["index"]] = { - reaper: false, - index: Math.round(this.similarity(a["index"], lookup) * 10000) / 125, + reaper: isReaper, + index: indexScore, alias: {}, creatures: {} }; for (const b of a["alias"]) { - probabilities[a["index"]].alias[b] = Math.round(this.similarity(b, lookup) * 10000) / 150; + probabilities[a["index"]].alias[b] = this.calculateIndexScore(b, lookup); } for (const b of a["creatures"]) { - probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175; + probabilities[a["index"]].creatures[b] = this.calculateIndexScore(b, lookup); + } + } + } + + // Calculate index score based on matching logic + private calculateIndexScore(index: string, lookup: string): number { + let score = 0; + + // Normalize input for comparison + const normalizedIndex = index.toLowerCase(); + const normalizedLookup = lookup.toLowerCase(); + + // Exact matches + if (normalizedIndex === normalizedLookup) { + score += 100; // Highest score for exact matches + } else if (normalizedIndex === normalizedLookup + 's') { + score += 90; // High score for plural matches + } else if (normalizedLookup === normalizedIndex.slice(0, -1) && normalizedIndex.endsWith('s')) { + score += 80; // High score for singular form matches + } else { + // Calculate the edit distance + const editDist = this.editDistance(normalizedIndex, normalizedLookup); + + // Close matches within 3 characters + if (editDist <= 3) { + score += 40; // Boost for close matches + } + + // Starts with lookup + if (normalizedIndex.startsWith(normalizedLookup)) { + score += 30; // Boost for prefix matches } } - // Find highest likelihood of the search + return score; + } + + private findBestMatch(probabilities: any): SearchData { for (const key in probabilities) { if (probabilities[key].index > this.data.probability) { this.data.task = key; @@ -66,50 +113,40 @@ export class SearchAlgorithm { this.data.probability = probabilities[key].index; } - if (probabilities[key].alias) { - const aliasKeys = Object.keys(probabilities[key].alias); - for (const aliasKey of aliasKeys) { - if (probabilities[key].alias[aliasKey] > this.data.probability) { - this.data.task = key; - this.data.reaper = probabilities[key].reaper; - this.data.probability = probabilities[key].alias[aliasKey]; - } - } - } - - if (probabilities[key].creatures) { - const creatureKeys = Object.keys(probabilities[key].creatures); - for (const creatureKey of creatureKeys) { - if (probabilities[key].creatures[creatureKey] > this.data.probability) { - this.data.task = key; - this.data.reaper = probabilities[key].reaper; - this.data.probability = probabilities[key].creatures[creatureKey]; - } - } - } + this.checkAliasMatches(probabilities, key); + this.checkCreatureMatches(probabilities, key); } return this.data; } - // Check the similarity of 2 strings - private similarity(s1: string, s2: string): number { - let longer = s1; - let shorter = s2; - - if (s1.length < s2.length) { - longer = s2; - shorter = s1; + private checkAliasMatches(probabilities: any, key: string) { + if (probabilities[key].alias) { + for (const aliasKey of Object.keys(probabilities[key].alias)) { + if (probabilities[key].alias[aliasKey] > this.data.probability) { + this.data.task = key; + this.data.reaper = probabilities[key].reaper; + this.data.probability = probabilities[key].alias[aliasKey]; + } + } } + } - const longerLength = longer.length; - - if (longerLength === 0) return 1.0; + private checkCreatureMatches(probabilities: any, key: string) { + if (probabilities[key].creatures) { + for (const creatureKey of Object.keys(probabilities[key].creatures)) { + const creatureScore = probabilities[key].creatures[creatureKey]; - return (longerLength - this.editDistance(longer, shorter)) / parseFloat('' + longerLength); + // Increase the visibility of creatures but keep them as a lower priority + if (this.data.probability < 10) { // Allow creatures to show up if current probability is low + this.data.task = key; + this.data.reaper = probabilities[key].reaper; + this.data.probability = Math.max(this.data.probability, creatureScore + 20); // Add a base boost for creatures + } + } + } } - // Calculate the edit distance between 2 strings private editDistance(s1: string, s2: string): number { s1 = s1.toLowerCase(); s2 = s2.toLowerCase(); diff --git a/src/modules/dochandler/main.ts b/src/modules/dochandler/main.ts index 0a5a894..341a9c5 100644 --- a/src/modules/dochandler/main.ts +++ b/src/modules/dochandler/main.ts @@ -21,7 +21,7 @@ export namespace get { return document.getElementById(id); } - export function searchInput() { + export async function searchInput() { return (document.querySelector(`input[name='search-info']`)).value; } } @@ -336,10 +336,10 @@ export namespace setup { export namespace toggle { // Toggle if we are capturing screen or searching text - export function searchText() { + export async function searchText() { const searchResult = slayer.searchResult; const autoCaptureEnabled = settings.controller.autoCapture.enabled; - const searchInput = dochandler.main.get.searchInput(); + const searchInput = await dochandler.main.get.searchInput(); if (searchResult || (!autoCaptureEnabled && searchInput === "")) { dochandler.main.set.searchButtonText("Capture"); diff --git a/src/modules/slayer.ts b/src/modules/slayer.ts index d570cd9..b611fda 100644 --- a/src/modules/slayer.ts +++ b/src/modules/slayer.ts @@ -100,7 +100,7 @@ export async function searchTasks(value?: string): Promise { docHandler.main.toggle.searchText(); await findTask(); return; - } else if (value.startsWith("devTools")) { + } else if (value.startsWith("devTools ")) { const tool = value.includes(" ") ? value.substring(value.indexOf(" ") + 1) : value; settings.executeDevTools(tool); return; @@ -111,6 +111,7 @@ export async function searchTasks(value?: string): Promise { searchResult = true; docHandler.main.toggle.searchText(); + logger.log("Searching for: " + value); const lookup = value.includes("|") ? [value.substring(0, value.indexOf("|")), value.substring(value.indexOf("|") + 1)] : [value]; -- 2.43.0