j4k0xb / webcrack

Deobfuscate obfuscator.io, unminify and unpack bundled javascript
https://webcrack.netlify.app
MIT License
1.06k stars 126 forks source link

Cannot decode Javascript-obfuscator 4.1.1 #98

Closed nero08 closed 4 months ago

nero08 commented 4 months ago

Describe the bug

Hey,

I have a problem to decode JS obfuscated by javascript-obfuscator version 4.1.1

The result of the code bellow show something like that (preview):

var e = __DECODE_0__; var l = __STRING_ARRAY__(); while (true) { try { if (-parseInt(e(369)) * -parseInt(e(484)) / 2 + -parseInt(e(453)) / 3 * -parseInt(e(496)) / 4 + parseInt(e(477)) / 5 * -parseInt(e(349)) / 6 + -parseInt(e(558)) / 7 + -parseInt(e(465)) / 8 * -parseInt(e(411)) / 9 + -parseInt(e(342)) / 10 * parseInt(e(561)) / 11 + -parseInt(e(450)) / 12 == 236627) { break; } l.push(l.shift()); } catch (n) { l.push(l.shift()); } } var M = this && this.JEFkP || (Object.YocBY ? function (n, r, t, u) { let f = { SYNKJ: "kJgLe", EcNui: function (n, r) { return n !== r; }, lHsrK: "sSwKW", UJBam: "toString", cXaVF: function (n, r) { return n(r); }, POLCU: function (n, r) { return n === r; }, HSTjQ: function (n, r) { return n in r; }, QLTbY: "1542pfexle", RFdgW: function (n, r) { return n === r; }, BaCOd: "xeehG" }; if (f.afufx(u, undefined)) { u = t; } var v = Object["Token Balance"](r, t); if (!v || (f["103580utiszD"](f.green, v) ? !r.qiIcn : v["\n==================== Show All Balances ===================="] || v.BFDDD)) { if (f["2777880FWBhDU"](f.kVZJt, f.kVZJt)) { v = { enumerable: true, get: function () { if (f.uiAmount(f.fbsrw, f.gQSES)) { return r[t]; } t[f.YycZd] = u; } }; } else { try { f.WXrnH(i, j.__esModule(t)); } catch (n) { f.WXrnH(r, n); } } } Object["Keypair Public Key"](n, u, v); } : function (n, r, t, u) { n[u = { QuFtJ: function (n, r) { return n === r; } }.endsWith(u, undefined) ? t : u] = r[t]; });

Is there an option I missed?

Expected Behaviour

A clear code

Code

let g=K;function a(){let n=["CvfszNC","Aw5MBW","qvfOChO","AxPAAvO","uKvPvMu","y1nVB3q","CeTjvvu","wwH4DKm","uhzeENC","EKnesg8","z3jLzw4","Dwn4txm","ChvIBgLJs2v5","uuXuyLK","sgPdz3C","zg9Uzq","zMLSDgvY","C1D5DMC","rhL5Dei","CfDIA3a","AfjHvKW","cKfSBcbIywXHBMnLCYbKAxnWBgf5zwqUcG","DLf6Ava","mJeXmZbiDerKqLq","lI4Vy29UzMLN","tNrjA1y","ANHiseu","t1zkq0G","qNfdyvO","lMPZB24","mtmYrKf2B3zm","uw9gteW","AvzLt00","ChvZAa","ChjVDg90ExbL","zNjVBvnLy3jLDeTLEq","vNzOvKS","Bg9N","u0Pcwue","t1rTEMG","ExDNsvq","x19HD2fPDgvY","zwfWtui","wgzzs00","y3vZsg8","AeXXugm","y2XLyxi","vevlwMi","zg1Uwha","BwLUDa","nJbmzgrcrvu","DKnUq0u","ywnJB3vUDa","tu1Rr24","nhWZFdf8mhWY","BKXIyKS","Dg9tDhjPBMC","yxbWBhK","vxf3Buu","uuviB24","qhnVBgfUys9ZCgWTDg9Rzw4","y2XPlxrHyMXLmW","tMnWEgC","D3jPDgu","zgf0yq","Cgf1C2u","DLbKDMy","v2HmCuu","BLbZAgC","y2HHBgS","tMDdre4","y2fSBa","qvLKwuu","wwvIqK4","qxnpAxa","vg9Rzw4GqMfSyw5Jzq","u3vTwu4","venRt2i","z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y","C3D0reS","D1D1Ehe","EgvLAeC","zMjZCNC","AgfZt3DUuhjVCgvYDhK","v21WEKe","BeHZCKS","rfLuEgq","sg1Kuue","v1HYBKG","x19PBxbVCNrezwzHDwX0","CMvK","y1HHvKy","ou1fvgTRuG","yKPxu2m","cJ09pt09pt09pt09pt09pt09pt09ifnOB3CGqwXSiejHBgfUy2vZid09pt09pt09pt09pt09pt09pt09","EMrhzhi","DwDkDui","D3jPDgfIBgu","zw1pBM0","nhWYFdf8m3WW","qhnVBgfUys93zwiZlMPZ","AM9PBG","BM9mrvK","y2z3uNa","s2v5CgfPCIbqDwjSAwmGs2v5","t2ffuhG","rNLpwNi","zgvMAw5LuhjVCgvYDhK","DwLbBw91BNq","wgzbrNm","zNjVBq","rwnoDwK","C1bVDwS","sKvgA1a","z1ftrvm","BLnrEgW","x19JCMvHDgvcAw5KAw5N","vuPcyw0","rgTrAxm","BgvUz3rO","ENn5Aw0","DgHLBG","ihDHBgXLDhmn","tM8GA2v5CgfPCNmGzM91BMqU","rMLzt1i","z2v0qMfSyw5Jzq","q2DoD0u","DevWBw8","uNvutMO","zw5KC1DPDgG","txbrvLe","mJu1nZKYmffLExvMAG","uxvgDeO","s0HPBeW","mtu0mNbMzxHSzq","r1vZywy","u09miejHBgfUy2u","z2v0","wxLJwMq","C3rKB3v0","Agrtze0","u1Los0O","uLnSrgm","DhzoBwq","rxjwweC","ww9JqLK","mJC3nZG4mezxqMHevq","AwDhqLa","y3jLyxrL","uKzKz1C","ruHkB1G","BM16wMK","DgHYB3C","wNvXtw4","qKzereq","ve9lru5Fufjpr1jbtv9jra","ywDjt1O","y29UzMLNDxjHyMXL","mtaZntGWDxrPC3Pe","B2vXt2q","CwLjy24","sfnuALe","x19ZzxrnB2r1BgvezwzHDwX0","x19LC01VzhvSzq","q0P2AwS","mtqYnJrYyKj5vwe","BMv4Da","CMvHzgrPCLn5BMm","CgfYC2vK","veD0vhy","CMjlv0q","u29gwuG","DfHlqwy","wu5StLu","sfjmqwO","vxrzz3K","wxDUv1q","mZaWogngEePJta","y29UBMvJDgLVBG","Dxn0r1a","CgfYC2u","wKP3CM4","vg9Rzw4","BwfW","lI9JBgLLBNrZl3v0AwXZ","vgnry28","s2v5CgfPCG","vM1eCKC","ywz1zNG","Dg9gAxHLza","suXQsvm","ue9mq1u","z2v0ugfYC2vKvg9Rzw5by2nVDw50C0j5t3DUzxi","tefnue9svfnFuevsx1npta","EwvSBg93","CMvHzezPBgvtEw5J","y0jluum","CKnOCNy","zxfsDxK","qLfQve4","u3vwvwi","y2HLy2TcywXHBMnLCW","suPftMO","A2v5CgfPCNm","CKncrvK","u1vmv0u","yKfRC3i","sMLlD1m","C3bSAxq","CejeveS","DxrMoa","B3biDNy","x19PBxbVCNrtDgfY","Cgf0Aa","Dg9Rzw5bBw91BNq","A3jPzfO","BffJAM4","vLP6yM4","v0TNDNy","De5VyM0","z2rsDLu","A1zAsNq","qMjSqwq","A1f5twG","qMfdt2q","tg9HzgLUzYa","yvn2zfO","wffwvNm","z1rUEM0","A09wueW","rNjIAw0","vxzNvNu","DMfSDwu","EfHcqMG","A0PNtgu","C1n3s1C","De5LC1i","zgvMyxvSDa","yNDKsvC","mtC3odiXn0rKBg9kAq","yM1ws2G","EKnfD2m","mtf4qLPgteO","CePgvNK","ze12z3a"];return(a=function(){return n})()}function K(e,n){let i=a();return(K=function(n,r){n-=322;let t=i[n];void 0===K.GIhHbn&&(K.rwdPXP=function(e){let i="",t="";for(let n=0,r,t,u=0;t=e[0|u++]||"";~t&&(r=n%4?64*r+t:t,n++%4)&&(i+=String.fromCharCode(255&r>>(-2*n&6))))t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let n=0,r=i.length;n<r;n++)t+="%"+("00"+i.charCodeAt(n).toString(16)).slice(-2);return decodeURIComponent(t)},e=arguments,K.GIhHbn=!0);var n=n+i[0],u=e[n];return u?t=u:(t=K.rwdPXP(t),e[n]=t),t})(e,n)}for(var e=K,l=a();;)try{if(236627==-parseInt(e(369))*-parseInt(e(484))/2+-parseInt(e(453))/3*-parseInt(e(496))/4+parseInt(e(477))/5*-parseInt(e(349))/6+-parseInt(e(558))/7+-parseInt(e(465))/8*-parseInt(e(411))/9+-parseInt(e(342))/10*parseInt(e(561))/11+-parseInt(e(450))/12)break;l.push(l.shift())}catch(n){l.push(l.shift())}var M=this&&this[g(435)]||(Object[g(467)]?function(n,r,t,u){let e=g,f={SYNKJ:e(556),EcNui:function(n,r){return n!==r},lHsrK:e(557),UJBam:e(378),cXaVF:function(n,r){return n(r)},POLCU:function(n,r){return n===r},HSTjQ:function(n,r){return n in r},QLTbY:e(456),RFdgW:function(n,r){return n===r},BaCOd:e(403)};f[e(510)](u,void 0)&&(u=t);var v=Object[e(397)](r,t);if(!v||(f[e(480)](f[e(332)],v)?!r[e(482)]:v[e(416)]||v[e(476)]))if(f[e(468)](f[e(543)],f[e(543)]))v={enumerable:!0,get:function(){var n=e;if(f[n(430)](f[n(404)],f[n(436)]))return r[t];t[f[n(460)]]=u}};else try{f[e(410)](i,j[e(485)](t))}catch(n){f[e(410)](r,n)}Object[e(426)](n,u,v)}:function(n,r,t,u){n[u={QuFtJ:function(n,r){return n===r}}[g(451)](u,void 0)?t:u]=r[t]}),L=this&&this[g(481)]||(Object[g(467)]?function(n,r){var t=g,u={BqCaZ:t(556)};Object[t(426)](n,u[t(347)],{enumerable:!0,value:r})}:function(n,r){var t=g;n[{YhxvC:t(556)}[t(326)]]=r}),m=this&&this[g(531)]||function(n){let r=g,t={rCBEY:r(373),rChrv:function(n,r,t){return n(r,t)},tEpmo:function(n,r){return n!=r},CJvik:function(n,r){return n!==r},ugJuB:r(556),SJBYA:function(n,r,t,u){return n(r,t,u)}},u=t[r(523)][r(527)]("|"),e=0;for(;;){switch(u[e++]){case"0":t[r(516)](L,f,n);continue;case"1":if(t[r(446)](n,null))for(var i in n)t[r(483)](i,t[r(415)])&&Object[r(353)][r(402)][r(390)](n,i)&&t[r(357)](M,f,n,i);continue;case"2":return f;case"3":var f={};continue;case"4":if(n&&n[r(482)])return n;continue}break}},N=this&&this[g(360)]||function(r,e,i,L){let a=g,h={CgNwE:a(529),vCnCE:function(n,r){return n!==r},Ncpxg:a(550),eqRuy:function(n,r){return n(r)},tNobm:function(n,r){return n===r},FyOZr:a(452),OTmzh:function(n,r){return n instanceof r},pKIUU:a(418),UtYgy:function(n,r){return n!=r},sPouk:function(n,r){return n!==r},jxHHE:a(556),aSvdZ:function(n,r,t,u){return n(r,t,u)},cusHo:function(n,r,t){return n(r,t)},XQVVs:a(387),VvhVK:a(560),kQyMh:function(n,r){return n(r)},OaEPx:a(471),tNesR:function(n,r){return n===r},vPdvf:a(552),BblAd:function(n,r){return r<n},RuTNj:function(n,r){return n+r},NtIkV:function(n,r){return n+r},xeehG:a(524),TcQco:function(n,r){return n!==r},bJWSc:a(399),zsyim:function(n,r){return n(r)},dmnXp:a(553),ucxMs:function(n,r){return n!==r},YebBN:a(535),ZJwrn:function(n,r){return n(r)}};function m(r){let t=a;return h[t(538)](h[t(425)],h[t(425)])?h[t(358)](r,i)?r:new i(function(e){var i=t,f={cBKQC:h[i(445)]};if(h[i(370)](h[i(381)],h[i(381)])){let r=e[i(556)][i(420)](f,j),t=r[i(556)][i(514)](r,{encoding:f[i(515)]}),u=t[i(429)](u[i(499)](t));return n[i(505)][i(354)](u)}h[i(517)](e,r)}):i[L]}return new(i=i||Promise)(function(g,l){let q=a,i={nLbbK:function(n,r){var t=K;return h[t(517)](n,r)},SoFYH:h[q(424)],YwnWT:function(n,r){var t=q;return h[t(541)](n,r)},RSlDc:function(n,r){var t=q;return h[t(447)](n,r)},ILjIS:function(n,r){var t=q;return h[t(344)](n,r)},OVJCH:function(n,r){var t=q;return h[t(431)](n,r)},cSoot:h[q(400)],igGBP:function(n,r){var t=q;return h[t(504)](n,r)},sSwKW:h[q(412)],WKgvv:function(n,r){var t=q;return h[t(439)](n,r)},ywgIT:h[q(367)],kVZJt:function(n,r){var t=q;return h[t(517)](n,r)},afufx:function(n,r){var t=q;return h[t(447)](n,r)},JEFkP:function(n,r){var t=q;return h[t(330)](n,r)},zCDHo:h[q(392)],agIOZ:function(n,r){var t=q;return h[t(500)](n,r)}};function f(n){var r=q,t={AQhpz:function(n,r){var t=K;return i[t(495)](n,r)},YNlNU:function(n,r){var t=K;return i[t(461)](n,r)},vQziP:function(n,r){var t=K;return i[t(509)](n,r)}};if(i[r(346)](i[r(324)],i[r(324)])){var u=f[r(371)][r(383)][r(487)][r(565)][r(533)][r(427)],e=c[r(371)][r(383)][r(487)][r(565)][r(368)];t[r(566)](u,0)&&(s?z[r(352)](["","","",e,u[r(508)](3)]):(A[r(352)]([t[r(492)](B,1),C[r(375)](),D,e,u[r(508)](3)]),E=!0))}else try{i[r(466)](i[r(554)],i[r(554)])?i[r(374)](L,h[i[r(490)]](m)):i[r(537)](M,L[r(485)](n))}catch(n){i[r(466)](i[r(359)],i[r(359)])?(m[r(352)]([t[r(341)](g,1),l[r(375)](),i,"",""]),f=!0):i[r(540)](l,n)}}function c(e){let i=q,f={FiYOR:h[i(325)],emOnm:function(n,r){var t=i;return h[t(494)](n,r)},hLqPc:function(n,r){var t=i;return h[t(431)](n,r)},XfYKM:h[i(345)],BFDDD:function(n,r,t,u){var e=i;return h[e(545)](n,r,t,u)},dMvgp:function(n,r,t){var u=i;return h[u(363)](n,r,t)}};if(h[i(538)](h[i(546)],h[i(546)]))try{if(h[i(431)](h[i(355)],h[i(355)])){let n=f[i(443)][i(527)]("|"),r=0;for(;;){switch(n[r++]){case"0":return a;case"1":if(f[i(417)](o,null))for(var c in n)f[i(364)](c,f[i(362)])&&r[i(353)][i(402)][i(390)](c,c)&&f[i(473)](a,a,t,c);continue;case"2":var a={};continue;case"3":f[i(563)](u,a,v);continue;case"4":if(e[i(482)])return f;continue}break}}else h[i(542)](M,L[h[i(424)]](e))}catch(n){h[i(555)](h[i(385)],h[i(385)])?h[i(517)](l,n):L={enumerable:!0,get:function(){return g[l]}}}else w[i(352)](["","","",x,y[i(508)](3)])}function M(r){var t=q;i[t(432)](i[t(328)],i[t(328)])?l[t(334)]?i[t(537)](i,f[t(551)]):i[t(374)](c,M[t(551)])[t(440)](r,n):r[t(334)]?i[t(540)](g,r[t(551)]):i[t(475)](m,r[t(551)])[t(440)](f,c)}h[q(500)](M,(L=L[q(376)](r,e||[]))[q(485)]())})},b=this&&this[g(408)]||function(n){var r=g;return n&&n[r(482)]?n:{default:n}};Object[g(426)](exports,g(482),{value:!0}),exports[g(520)]=function(){let M=g,L={qiIcn:M(556),YycZd:function(n,r){return n===r},cfwRp:function(n,r){return n===r},REiVe:function(n,r){return n in r},YocBY:M(456),UqwmE:M(529),kOVPL:function(n,r){return n+r},VmDrG:function(n,r){return n(r)},ZuqMn:function(n,r){return n(r)},VZzbn:function(n,r){return n!==r},NgCDN:M(386),BQjTN:M(413),zdGdr:function(n){return n()},HRLAj:function(n,r){return n===r},opHvv:M(489),tXKAf:M(498),bmVKh:M(442),qQRfw:M(423),HmdQA:M(455),Frbim:M(501),GUsaf:M(394),SuVUb:function(n,r){return n<r},nSQxl:function(n,r){return n===r},noLEY:M(428),tvNmd:M(398),hdSdM:function(n,r){return n/r},gdRvU:function(n,r){return n+r},ErVXG:function(n,r){return r<n},MMkGn:function(n,r){return n(r)},AYdYE:M(526),AsOip:M(470),SumYN:M(528),fbsrw:M(437),QoFLL:function(n,r){return n!==r},DyytB:M(366),izZiZ:M(338),gQSES:M(396),DYTxd:M(478),EHJoX:M(340),MpQVQ:function(n,r,t,u,e){return n(r,t,u,e)}};return L[M(449)](N,this,void 0,void 0,function*(){let a=M,g={gTnzm:function(n,r){var t=K;return L[t(422)](n,r)},pJFVy:function(n,r){var t=K;return L[t(323)](n,r)},PvDzw:L[a(464)],WXrnH:L[a(377)],IJENj:function(n,r){var t=a;return L[t(548)](n,r)},TGtTv:function(n,r){var t=a;return L[t(506)](n,r)},eapMB:function(n,r){var t=a;return L[t(472)](n,r)}};if(L[a(536)](L[a(389)],L[a(389)])){g[a(547)](n,o)&&(p=q);var e=r[a(397)](s,t);e&&(g[a(562)](g[a(327)],e)?u[a(482)]:!e[a(416)]&&!e[a(476)])||(e={enumerable:!0,get:function(){return e[D]}}),x[a(426)](y,z,e)}else{console[a(365)](),console[a(356)](Y[a(556)][a(329)](L[a(518)]));let o=L[a(414)](U);if(L[a(493)](o[a(438)],0)){if(L[a(422)](L[a(530)],L[a(491)])){let f={kridZ:g[a(407)]};return i[a(556)][a(486)](j)[a(335)](n=>n[a(448)](a(348)))[a(502)](n=>{var e=a,n=q[e(556)][e(420)](r,n),n=s[e(556)][e(514)](n,{encoding:f[e(534)]}),n=t[e(429)](u[e(499)](n));return v[e(505)][e(354)](n)})}console[a(356)](Y[a(556)][a(409)](L[a(559)]))}else{var w=new I[a(556)]({head:["#",L[a(564)],L[a(406)],L[a(549)],L[a(454)]],colWidths:[5,50,20,45,20]});for(let i=0;L[a(519)](i,o[a(438)]);i++)if(L[a(434)](L[a(421)],L[a(462)]))o[a(426)](w,L[a(479)],{enumerable:!0,value:f});else{const j=o[i],C=j[a(331)],B=yield P[a(497)][a(444)](C),l=L[a(459)](B,H[a(512)])[a(508)](3),n=(process[a(458)][a(382)](Y[a(556)][a(513)](a(544)+L[a(539)](i,1)+"/"+o[a(438)]+a(441))),yield P[a(497)][a(511)](C,{programId:S[a(474)]}));let e=!1;L[a(463)](L[a(372)](parseFloat,l),0)&&(L[a(457)](L[a(391)],L[a(393)])?(h[a(352)]([g[a(521)](i,1),j[a(375)](),C,B,l[a(508)](3)]),n=!0):(w[a(352)]([L[a(548)](i,1),C[a(375)](),l,"",""]),e=!0));for(let u of n[a(551)])if(L[a(536)](L[a(395)],L[a(401)])){let r=u[a(371)][a(383)][a(487)][a(565)][a(533)][a(427)],t=u[a(371)][a(383)][a(487)][a(565)][a(368)];L[a(463)](r,0)&&(L[a(350)](L[a(337)],L[a(322)])?e?L[a(434)](L[a(433)],L[a(433)])?w[a(352)](["","","",t,r[a(508)](3)]):g[a(488)](c,o):L[a(536)](L[a(405)],L[a(405)])?g[a(361)](c,o):(w[a(352)]([L[a(548)](i,1),C[a(375)](),l,t,r[a(508)](3)]),e=!0):(L[a(457)](i,j)&&(C=B),l[n]=e[p]))}else o[a(352)](["","","",w,f[a(508)](3)])}console[a(356)](w[a(375)]()),console[a(356)](Y[a(556)][a(329)](L[a(469)]))}yield(0,G[a(384)])()}})};let H=require(g(419)),P=require(g(343)),S=m(require(g(379))),Y=b(require(g(388))),O=b(require(g(532))),V=b(require("fs")),G=require(g(503)),I=b(require(g(380))),J=O[g(556)][g(420)](__dirname,g(522));function U(){let r=g,i={bAksr:function(n,r){return n(r)},HjCgw:function(n,r){return n===r},iVeOM:r(336),hRaVL:r(529)};return V[r(556)][r(486)](J)[r(335)](n=>n[r(448)](r(348)))[r(502)](u=>{var e=r;if(i[e(333)](i[e(351)],i[e(351)])){let n=O[e(556)][e(420)](J,u),r=V[e(556)][e(514)](n,{encoding:i[e(339)]}),t=Uint8Array[e(429)](JSON[e(499)](r));return H[e(505)][e(354)](t)}i[e(525)](c,d)})}

Logs

No response

j4k0xb commented 4 months ago

It was either generated by a forked obfuscator version or run through another minifier/optimizer.

This code should be in a function but it's at the top level in your script: https://github.com/javascript-obfuscator/javascript-obfuscator/blob/828a190cf80a86227ef77be38e99aad9838aed70/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts

You can manually wrap it and then deobfuscate:

(function () {
  var e = K;
  var l = a();
  while (true) {
    try {
      if (-parseInt(e(369)) * -parseInt(e(484)) / 2 + -parseInt(e(453)) / 3 * -parseInt(e(496)) / 4 + parseInt(e(477)) / 5 * -parseInt(e(349)) / 6 + -parseInt(e(558)) / 7 + -parseInt(e(465)) / 8 * -parseInt(e(411)) / 9 + -parseInt(e(342)) / 10 * parseInt(e(561)) / 11 + -parseInt(e(450)) / 12 == 236627) {
        break;
      }
      l.push(l.shift());
    } catch (n) {
      l.push(l.shift());
    }
  }
})();

it will somewhat work but there are still quite a few patterns left that aren't present in the original obfuscator.

nero08 commented 4 months ago

what you mean by "wrap it", could you explain please? The code you sent is the result of webcrack after deobfuscate.

j4k0xb commented 4 months ago

mb, I initially disabled deobfuscation to see what was going on: image and then surrounded the mentioned lines with (function() { })();

let g = K;
function a() {
  let n = ["CvfszNC", "Aw5MBW", "qvfOChO", "AxPAAvO", "uKvPvMu", "y1nVB3q", "CeTjvvu", "wwH4DKm", "uhzeENC", "EKnesg8", "z3jLzw4", "Dwn4txm", "ChvIBgLJs2v5", "uuXuyLK", "sgPdz3C", "zg9Uzq", "zMLSDgvY", "C1D5DMC", "rhL5Dei", "CfDIA3a", "AfjHvKW", "cKfSBcbIywXHBMnLCYbKAxnWBgf5zwqUcG", "DLf6Ava", "mJeXmZbiDerKqLq", "lI4Vy29UzMLN", "tNrjA1y", "ANHiseu", "t1zkq0G", "qNfdyvO", "lMPZB24", "mtmYrKf2B3zm", "uw9gteW", "AvzLt00", "ChvZAa", "ChjVDg90ExbL", "zNjVBvnLy3jLDeTLEq", "vNzOvKS", "Bg9N", "u0Pcwue", "t1rTEMG", "ExDNsvq", "x19HD2fPDgvY", "zwfWtui", "wgzzs00", "y3vZsg8", "AeXXugm", "y2XLyxi", "vevlwMi", "zg1Uwha", "BwLUDa", "nJbmzgrcrvu", "DKnUq0u", "ywnJB3vUDa", "tu1Rr24", "nhWZFdf8mhWY", "BKXIyKS", "Dg9tDhjPBMC", "yxbWBhK", "vxf3Buu", "uuviB24", "qhnVBgfUys9ZCgWTDg9Rzw4", "y2XPlxrHyMXLmW", "tMnWEgC", "D3jPDgu", "zgf0yq", "Cgf1C2u", "DLbKDMy", "v2HmCuu", "BLbZAgC", "y2HHBgS", "tMDdre4", "y2fSBa", "qvLKwuu", "wwvIqK4", "qxnpAxa", "vg9Rzw4GqMfSyw5Jzq", "u3vTwu4", "venRt2i", "z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y", "C3D0reS", "D1D1Ehe", "EgvLAeC", "zMjZCNC", "AgfZt3DUuhjVCgvYDhK", "v21WEKe", "BeHZCKS", "rfLuEgq", "sg1Kuue", "v1HYBKG", "x19PBxbVCNrezwzHDwX0", "CMvK", "y1HHvKy", "ou1fvgTRuG", "yKPxu2m", "cJ09pt09pt09pt09pt09pt09pt09ifnOB3CGqwXSiejHBgfUy2vZid09pt09pt09pt09pt09pt09pt09", "EMrhzhi", "DwDkDui", "D3jPDgfIBgu", "zw1pBM0", "nhWYFdf8m3WW", "qhnVBgfUys93zwiZlMPZ", "AM9PBG", "BM9mrvK", "y2z3uNa", "s2v5CgfPCIbqDwjSAwmGs2v5", "t2ffuhG", "rNLpwNi", "zgvMAw5LuhjVCgvYDhK", "DwLbBw91BNq", "wgzbrNm", "zNjVBq", "rwnoDwK", "C1bVDwS", "sKvgA1a", "z1ftrvm", "BLnrEgW", "x19JCMvHDgvcAw5KAw5N", "vuPcyw0", "rgTrAxm", "BgvUz3rO", "ENn5Aw0", "DgHLBG", "ihDHBgXLDhmn", "tM8GA2v5CgfPCNmGzM91BMqU", "rMLzt1i", "z2v0qMfSyw5Jzq", "q2DoD0u", "DevWBw8", "uNvutMO", "zw5KC1DPDgG", "txbrvLe", "mJu1nZKYmffLExvMAG", "uxvgDeO", "s0HPBeW", "mtu0mNbMzxHSzq", "r1vZywy", "u09miejHBgfUy2u", "z2v0", "wxLJwMq", "C3rKB3v0", "Agrtze0", "u1Los0O", "uLnSrgm", "DhzoBwq", "rxjwweC", "ww9JqLK", "mJC3nZG4mezxqMHevq", "AwDhqLa", "y3jLyxrL", "uKzKz1C", "ruHkB1G", "BM16wMK", "DgHYB3C", "wNvXtw4", "qKzereq", "ve9lru5Fufjpr1jbtv9jra", "ywDjt1O", "y29UzMLNDxjHyMXL", "mtaZntGWDxrPC3Pe", "B2vXt2q", "CwLjy24", "sfnuALe", "x19ZzxrnB2r1BgvezwzHDwX0", "x19LC01VzhvSzq", "q0P2AwS", "mtqYnJrYyKj5vwe", "BMv4Da", "CMvHzgrPCLn5BMm", "CgfYC2vK", "veD0vhy", "CMjlv0q", "u29gwuG", "DfHlqwy", "wu5StLu", "sfjmqwO", "vxrzz3K", "wxDUv1q", "mZaWogngEePJta", "y29UBMvJDgLVBG", "Dxn0r1a", "CgfYC2u", "wKP3CM4", "vg9Rzw4", "BwfW", "lI9JBgLLBNrZl3v0AwXZ", "vgnry28", "s2v5CgfPCG", "vM1eCKC", "ywz1zNG", "Dg9gAxHLza", "suXQsvm", "ue9mq1u", "z2v0ugfYC2vKvg9Rzw5by2nVDw50C0j5t3DUzxi", "tefnue9svfnFuevsx1npta", "EwvSBg93", "CMvHzezPBgvtEw5J", "y0jluum", "CKnOCNy", "zxfsDxK", "qLfQve4", "u3vwvwi", "y2HLy2TcywXHBMnLCW", "suPftMO", "A2v5CgfPCNm", "CKncrvK", "u1vmv0u", "yKfRC3i", "sMLlD1m", "C3bSAxq", "CejeveS", "DxrMoa", "B3biDNy", "x19PBxbVCNrtDgfY", "Cgf0Aa", "Dg9Rzw5bBw91BNq", "A3jPzfO", "BffJAM4", "vLP6yM4", "v0TNDNy", "De5VyM0", "z2rsDLu", "A1zAsNq", "qMjSqwq", "A1f5twG", "qMfdt2q", "tg9HzgLUzYa", "yvn2zfO", "wffwvNm", "z1rUEM0", "A09wueW", "rNjIAw0", "vxzNvNu", "DMfSDwu", "EfHcqMG", "A0PNtgu", "C1n3s1C", "De5LC1i", "zgvMyxvSDa", "yNDKsvC", "mtC3odiXn0rKBg9kAq", "yM1ws2G", "EKnfD2m", "mtf4qLPgteO", "CePgvNK", "ze12z3a"];
  return (a = function () {
    return n;
  })();
}
function K(e, n) {
  let i = a();
  return (K = function (n, r) {
    n -= 322;
    let t = i[n];
    if (K.GIhHbn === undefined) {
      K.rwdPXP = function (e) {
        let i = "";
        let t = "";
        for (let n = 0, r, t, u = 0; t = e[u++ | 0] || ""; ~t && (r = n % 4 ? r * 64 + t : t, n++ % 4) && (i += String.fromCharCode(r >> (n * -2 & 6) & 255))) {
          t = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);
        }
        for (let n = 0, r = i.length; n < r; n++) {
          t += "%" + ("00" + i.charCodeAt(n).toString(16)).slice(-2);
        }
        return decodeURIComponent(t);
      };
      e = arguments;
      K.GIhHbn = true;
    }
    var n = n + i[0];
    var u = e[n];
    if (u) {
      t = u;
    } else {
      t = K.rwdPXP(t);
      e[n] = t;
    }
    return t;
  })(e, n);
}
(function () {
  var e = K;
  var l = a();
  while (true) {
    try {
      if (-parseInt(e(369)) * -parseInt(e(484)) / 2 + -parseInt(e(453)) / 3 * -parseInt(e(496)) / 4 + parseInt(e(477)) / 5 * -parseInt(e(349)) / 6 + -parseInt(e(558)) / 7 + -parseInt(e(465)) / 8 * -parseInt(e(411)) / 9 + -parseInt(e(342)) / 10 * parseInt(e(561)) / 11 + -parseInt(e(450)) / 12 == 236627) {
        break;
      }
      l.push(l.shift());
    } catch (n) {
      l.push(l.shift());
    }
  }
})();
var M = this && this[g(435)] || (Object[g(467)] ? function (n, r, t, u) {
  let e = g;
  let f = {
    SYNKJ: e(556),
    EcNui: function (n, r) {
      return n !== r;
    },
    lHsrK: e(557),
    UJBam: e(378),
    cXaVF: function (n, r) {
      return n(r);
    },
    POLCU: function (n, r) {
      return n === r;
    },
    HSTjQ: function (n, r) {
      return n in r;
    },
    QLTbY: e(456),
    RFdgW: function (n, r) {
      return n === r;
    },
    BaCOd: e(403)
  };
  if (f[e(510)](u, undefined)) {
    u = t;
  }
  var v = Object[e(397)](r, t);
  if (!v || (f[e(480)](f[e(332)], v) ? !r[e(482)] : v[e(416)] || v[e(476)])) {
    if (f[e(468)](f[e(543)], f[e(543)])) {
      v = {
        enumerable: true,
        get: function () {
          var n = e;
          if (f[n(430)](f[n(404)], f[n(436)])) {
            return r[t];
          }
          t[f[n(460)]] = u;
        }
      };
    } else {
      try {
        f[e(410)](i, j[e(485)](t));
      } catch (n) {
        f[e(410)](r, n);
      }
    }
  }
  Object[e(426)](n, u, v);
} : function (n, r, t, u) {
  n[u = {
    QuFtJ: function (n, r) {
      return n === r;
    }
  }[g(451)](u, undefined) ? t : u] = r[t];
});
var L = this && this[g(481)] || (Object[g(467)] ? function (n, r) {
  var t = g;
  var u = {
    BqCaZ: t(556)
  };
  Object[t(426)](n, u[t(347)], {
    enumerable: true,
    value: r
  });
} : function (n, r) {
  var t = g;
  n[{
    YhxvC: t(556)
  }[t(326)]] = r;
});
var m = this && this[g(531)] || function (n) {
  let r = g;
  let t = {
    rCBEY: r(373),
    rChrv: function (n, r, t) {
      return n(r, t);
    },
    tEpmo: function (n, r) {
      return n != r;
    },
    CJvik: function (n, r) {
      return n !== r;
    },
    ugJuB: r(556),
    SJBYA: function (n, r, t, u) {
      return n(r, t, u);
    }
  };
  let u = t[r(523)][r(527)]("|");
  let e = 0;
  while (true) {
    switch (u[e++]) {
      case "0":
        t[r(516)](L, f, n);
        continue;
      case "1":
        if (t[r(446)](n, null)) {
          for (var i in n) {
            if (t[r(483)](i, t[r(415)]) && Object[r(353)][r(402)][r(390)](n, i)) {
              t[r(357)](M, f, n, i);
            }
          }
        }
        continue;
      case "2":
        return f;
      case "3":
        var f = {};
        continue;
      case "4":
        if (n && n[r(482)]) {
          return n;
        }
        continue;
    }
    break;
  }
};
var N = this && this[g(360)] || function (r, e, i, L) {
  let a = g;
  let h = {
    CgNwE: a(529),
    vCnCE: function (n, r) {
      return n !== r;
    },
    Ncpxg: a(550),
    eqRuy: function (n, r) {
      return n(r);
    },
    tNobm: function (n, r) {
      return n === r;
    },
    FyOZr: a(452),
    OTmzh: function (n, r) {
      return n instanceof r;
    },
    pKIUU: a(418),
    UtYgy: function (n, r) {
      return n != r;
    },
    sPouk: function (n, r) {
      return n !== r;
    },
    jxHHE: a(556),
    aSvdZ: function (n, r, t, u) {
      return n(r, t, u);
    },
    cusHo: function (n, r, t) {
      return n(r, t);
    },
    XQVVs: a(387),
    VvhVK: a(560),
    kQyMh: function (n, r) {
      return n(r);
    },
    OaEPx: a(471),
    tNesR: function (n, r) {
      return n === r;
    },
    vPdvf: a(552),
    BblAd: function (n, r) {
      return r < n;
    },
    RuTNj: function (n, r) {
      return n + r;
    },
    NtIkV: function (n, r) {
      return n + r;
    },
    xeehG: a(524),
    TcQco: function (n, r) {
      return n !== r;
    },
    bJWSc: a(399),
    zsyim: function (n, r) {
      return n(r);
    },
    dmnXp: a(553),
    ucxMs: function (n, r) {
      return n !== r;
    },
    YebBN: a(535),
    ZJwrn: function (n, r) {
      return n(r);
    }
  };
  function m(r) {
    let t = a;
    if (h[t(538)](h[t(425)], h[t(425)])) {
      if (h[t(358)](r, i)) {
        return r;
      } else {
        return new i(function (e) {
          var i = t;
          var f = {
            cBKQC: h[i(445)]
          };
          if (h[i(370)](h[i(381)], h[i(381)])) {
            let r = e[i(556)][i(420)](f, j);
            let t = r[i(556)][i(514)](r, {
              encoding: f[i(515)]
            });
            let u = t[i(429)](u[i(499)](t));
            return n[i(505)][i(354)](u);
          }
          h[i(517)](e, r);
        });
      }
    } else {
      return i[L];
    }
  }
  return new (i = i || Promise)(function (g, l) {
    let q = a;
    let i = {
      nLbbK: function (n, r) {
        var t = K;
        return h[t(517)](n, r);
      },
      SoFYH: h[q(424)],
      YwnWT: function (n, r) {
        var t = q;
        return h[t(541)](n, r);
      },
      RSlDc: function (n, r) {
        var t = q;
        return h[t(447)](n, r);
      },
      ILjIS: function (n, r) {
        var t = q;
        return h[t(344)](n, r);
      },
      OVJCH: function (n, r) {
        var t = q;
        return h[t(431)](n, r);
      },
      cSoot: h[q(400)],
      igGBP: function (n, r) {
        var t = q;
        return h[t(504)](n, r);
      },
      sSwKW: h[q(412)],
      WKgvv: function (n, r) {
        var t = q;
        return h[t(439)](n, r);
      },
      ywgIT: h[q(367)],
      kVZJt: function (n, r) {
        var t = q;
        return h[t(517)](n, r);
      },
      afufx: function (n, r) {
        var t = q;
        return h[t(447)](n, r);
      },
      JEFkP: function (n, r) {
        var t = q;
        return h[t(330)](n, r);
      },
      zCDHo: h[q(392)],
      agIOZ: function (n, r) {
        var t = q;
        return h[t(500)](n, r);
      }
    };
    function f(n) {
      var r = q;
      var t = {
        AQhpz: function (n, r) {
          var t = K;
          return i[t(495)](n, r);
        },
        YNlNU: function (n, r) {
          var t = K;
          return i[t(461)](n, r);
        },
        vQziP: function (n, r) {
          var t = K;
          return i[t(509)](n, r);
        }
      };
      if (i[r(346)](i[r(324)], i[r(324)])) {
        var u = f[r(371)][r(383)][r(487)][r(565)][r(533)][r(427)];
        var e = c[r(371)][r(383)][r(487)][r(565)][r(368)];
        if (t[r(566)](u, 0)) {
          if (s) {
            z[r(352)](["", "", "", e, u[r(508)](3)]);
          } else {
            A[r(352)]([t[r(492)](B, 1), C[r(375)](), D, e, u[r(508)](3)]);
            E = true;
          }
        }
      } else {
        try {
          if (i[r(466)](i[r(554)], i[r(554)])) {
            i[r(374)](L, h[i[r(490)]](m));
          } else {
            i[r(537)](M, L[r(485)](n));
          }
        } catch (n) {
          if (i[r(466)](i[r(359)], i[r(359)])) {
            m[r(352)]([t[r(341)](g, 1), l[r(375)](), i, "", ""]);
            f = true;
          } else {
            i[r(540)](l, n);
          }
        }
      }
    }
    function c(e) {
      let i = q;
      let f = {
        FiYOR: h[i(325)],
        emOnm: function (n, r) {
          var t = i;
          return h[t(494)](n, r);
        },
        hLqPc: function (n, r) {
          var t = i;
          return h[t(431)](n, r);
        },
        XfYKM: h[i(345)],
        BFDDD: function (n, r, t, u) {
          var e = i;
          return h[e(545)](n, r, t, u);
        },
        dMvgp: function (n, r, t) {
          var u = i;
          return h[u(363)](n, r, t);
        }
      };
      if (h[i(538)](h[i(546)], h[i(546)])) {
        try {
          if (h[i(431)](h[i(355)], h[i(355)])) {
            let n = f[i(443)][i(527)]("|");
            let r = 0;
            while (true) {
              switch (n[r++]) {
                case "0":
                  return a;
                case "1":
                  if (f[i(417)](o, null)) {
                    for (var c in n) {
                      if (f[i(364)](c, f[i(362)]) && r[i(353)][i(402)][i(390)](c, c)) {
                        f[i(473)](a, a, t, c);
                      }
                    }
                  }
                  continue;
                case "2":
                  var a = {};
                  continue;
                case "3":
                  f[i(563)](u, a, v);
                  continue;
                case "4":
                  if (e[i(482)]) {
                    return f;
                  }
                  continue;
              }
              break;
            }
          } else {
            h[i(542)](M, L[h[i(424)]](e));
          }
        } catch (n) {
          if (h[i(555)](h[i(385)], h[i(385)])) {
            h[i(517)](l, n);
          } else {
            L = {
              enumerable: true,
              get: function () {
                return g[l];
              }
            };
          }
        }
      } else {
        w[i(352)](["", "", "", x, y[i(508)](3)]);
      }
    }
    function M(r) {
      var t = q;
      if (i[t(432)](i[t(328)], i[t(328)])) {
        if (l[t(334)]) {
          i[t(537)](i, f[t(551)]);
        } else {
          i[t(374)](c, M[t(551)])[t(440)](r, n);
        }
      } else if (r[t(334)]) {
        i[t(540)](g, r[t(551)]);
      } else {
        i[t(475)](m, r[t(551)])[t(440)](f, c);
      }
    }
    h[q(500)](M, (L = L[q(376)](r, e || []))[q(485)]());
  });
};
var b = this && this[g(408)] || function (n) {
  var r = g;
  if (n && n[r(482)]) {
    return n;
  } else {
    return {
      default: n
    };
  }
};
Object[g(426)](exports, g(482), {
  value: true
});
exports[g(520)] = function () {
  let M = g;
  let L = {
    qiIcn: M(556),
    YycZd: function (n, r) {
      return n === r;
    },
    cfwRp: function (n, r) {
      return n === r;
    },
    REiVe: function (n, r) {
      return n in r;
    },
    YocBY: M(456),
    UqwmE: M(529),
    kOVPL: function (n, r) {
      return n + r;
    },
    VmDrG: function (n, r) {
      return n(r);
    },
    ZuqMn: function (n, r) {
      return n(r);
    },
    VZzbn: function (n, r) {
      return n !== r;
    },
    NgCDN: M(386),
    BQjTN: M(413),
    zdGdr: function (n) {
      return n();
    },
    HRLAj: function (n, r) {
      return n === r;
    },
    opHvv: M(489),
    tXKAf: M(498),
    bmVKh: M(442),
    qQRfw: M(423),
    HmdQA: M(455),
    Frbim: M(501),
    GUsaf: M(394),
    SuVUb: function (n, r) {
      return n < r;
    },
    nSQxl: function (n, r) {
      return n === r;
    },
    noLEY: M(428),
    tvNmd: M(398),
    hdSdM: function (n, r) {
      return n / r;
    },
    gdRvU: function (n, r) {
      return n + r;
    },
    ErVXG: function (n, r) {
      return r < n;
    },
    MMkGn: function (n, r) {
      return n(r);
    },
    AYdYE: M(526),
    AsOip: M(470),
    SumYN: M(528),
    fbsrw: M(437),
    QoFLL: function (n, r) {
      return n !== r;
    },
    DyytB: M(366),
    izZiZ: M(338),
    gQSES: M(396),
    DYTxd: M(478),
    EHJoX: M(340),
    MpQVQ: function (n, r, t, u, e) {
      return n(r, t, u, e);
    }
  };
  return L[M(449)](N, this, undefined, undefined, function* () {
    let a = M;
    let g = {
      gTnzm: function (n, r) {
        var t = K;
        return L[t(422)](n, r);
      },
      pJFVy: function (n, r) {
        var t = K;
        return L[t(323)](n, r);
      },
      PvDzw: L[a(464)],
      WXrnH: L[a(377)],
      IJENj: function (n, r) {
        var t = a;
        return L[t(548)](n, r);
      },
      TGtTv: function (n, r) {
        var t = a;
        return L[t(506)](n, r);
      },
      eapMB: function (n, r) {
        var t = a;
        return L[t(472)](n, r);
      }
    };
    if (L[a(536)](L[a(389)], L[a(389)])) {
      if (g[a(547)](n, o)) {
        p = q;
      }
      var e = r[a(397)](s, t);
      if (!e || !(g[a(562)](g[a(327)], e) ? u[a(482)] : !e[a(416)] && !e[a(476)])) {
        e = {
          enumerable: true,
          get: function () {
            return e[D];
          }
        };
      }
      x[a(426)](y, z, e);
    } else {
      console[a(365)]();
      console[a(356)](Y[a(556)][a(329)](L[a(518)]));
      let o = L[a(414)](U);
      if (L[a(493)](o[a(438)], 0)) {
        if (L[a(422)](L[a(530)], L[a(491)])) {
          let f = {
            kridZ: g[a(407)]
          };
          return i[a(556)][a(486)](j)[a(335)](n => n[a(448)](a(348)))[a(502)](n => {
            var e = a;
            var n = q[e(556)][e(420)](r, n);
            var n = s[e(556)][e(514)](n, {
              encoding: f[e(534)]
            });
            var n = t[e(429)](u[e(499)](n));
            return v[e(505)][e(354)](n);
          });
        }
        console[a(356)](Y[a(556)][a(409)](L[a(559)]));
      } else {
        var w = new I[a(556)]({
          head: ["#", L[a(564)], L[a(406)], L[a(549)], L[a(454)]],
          colWidths: [5, 50, 20, 45, 20]
        });
        for (let i = 0; L[a(519)](i, o[a(438)]); i++) {
          if (L[a(434)](L[a(421)], L[a(462)])) {
            o[a(426)](w, L[a(479)], {
              enumerable: true,
              value: f
            });
          } else {
            const j = o[i];
            const C = j[a(331)];
            const B = yield P[a(497)][a(444)](C);
            const l = L[a(459)](B, H[a(512)])[a(508)](3);
            process[a(458)][a(382)](Y[a(556)][a(513)](a(544) + L[a(539)](i, 1) + "/" + o[a(438)] + a(441)));
            const n = yield P[a(497)][a(511)](C, {
              programId: S[a(474)]
            });
            let e = false;
            if (L[a(463)](L[a(372)](parseFloat, l), 0)) {
              if (L[a(457)](L[a(391)], L[a(393)])) {
                h[a(352)]([g[a(521)](i, 1), j[a(375)](), C, B, l[a(508)](3)]);
                n = true;
              } else {
                w[a(352)]([L[a(548)](i, 1), C[a(375)](), l, "", ""]);
                e = true;
              }
            }
            for (let u of n[a(551)]) {
              if (L[a(536)](L[a(395)], L[a(401)])) {
                let r = u[a(371)][a(383)][a(487)][a(565)][a(533)][a(427)];
                let t = u[a(371)][a(383)][a(487)][a(565)][a(368)];
                if (L[a(463)](r, 0)) {
                  if (L[a(350)](L[a(337)], L[a(322)])) {
                    if (e) {
                      if (L[a(434)](L[a(433)], L[a(433)])) {
                        w[a(352)](["", "", "", t, r[a(508)](3)]);
                      } else {
                        g[a(488)](c, o);
                      }
                    } else if (L[a(536)](L[a(405)], L[a(405)])) {
                      g[a(361)](c, o);
                    } else {
                      w[a(352)]([L[a(548)](i, 1), C[a(375)](), l, t, r[a(508)](3)]);
                      e = true;
                    }
                  } else {
                    if (L[a(457)](i, j)) {
                      C = B;
                    }
                    l[n] = e[p];
                  }
                }
              } else {
                o[a(352)](["", "", "", w, f[a(508)](3)]);
              }
            }
          }
        }
        console[a(356)](w[a(375)]());
        console[a(356)](Y[a(556)][a(329)](L[a(469)]));
      }
      yield (0, G[a(384)])();
    }
  });
};
let H = require(g(419));
let P = require(g(343));
let S = m(require(g(379)));
let Y = b(require(g(388)));
let O = b(require(g(532)));
let V = b(require("fs"));
let G = require(g(503));
let I = b(require(g(380)));
let J = O[g(556)][g(420)](__dirname, g(522));
function U() {
  let r = g;
  let i = {
    bAksr: function (n, r) {
      return n(r);
    },
    HjCgw: function (n, r) {
      return n === r;
    },
    iVeOM: r(336),
    hRaVL: r(529)
  };
  return V[r(556)][r(486)](J)[r(335)](n => n[r(448)](r(348)))[r(502)](u => {
    var e = r;
    if (i[e(333)](i[e(351)], i[e(351)])) {
      let n = O[e(556)][e(420)](J, u);
      let r = V[e(556)][e(514)](n, {
        encoding: i[e(339)]
      });
      let t = Uint8Array[e(429)](JSON[e(499)](r));
      return H[e(505)][e(354)](t);
    }
    i[e(525)](c, d);
  });
}

and finally deobfuscated it again:

var M = this && this.__createBinding || (Object.create ? function (n, r, t, u = t) {
  var v = Object.getOwnPropertyDescriptor(r, t);
  if (!v || ("get" in v ? !r.__esModule : v.writable || v.configurable)) {
    v = {
      enumerable: true,
      get: function () {
        return r[t];
        t.default = u;
      }
    };
  }
  Object.defineProperty(n, u, v);
} : function (n, r, t, u) {
  n[u = u === undefined ? t : u] = r[t];
});
var L = this && this.__setModuleDefault || (Object.create ? function (n, r) {
  Object.defineProperty(n, "default", {
    enumerable: true,
    value: r
  });
} : function (n, r) {
  n.default = r;
});
var m = this && this.__importStar || function (n) {
  if (n && n.__esModule) {
    return n;
  }
  var f = {};
  if (n != null) {
    for (var i in n) {
      if (i !== "default" && Object.prototype.hasOwnProperty.call(n, i)) {
        M(f, n, i);
      }
    }
  }
  L(f, n);
  return f;
};
var N = this && this.__awaiter || function (r, e, i, L) {
  let h = {
    CgNwE: "utf8",
    vCnCE: function (n, r) {
      return n !== r;
    },
    Ncpxg: "UvgVu",
    eqRuy: function (n, r) {
      return n(r);
    },
    tNobm: function (n, r) {
      return n === r;
    },
    FyOZr: "KHilL",
    OTmzh: function (n, r) {
      return n instanceof r;
    },
    pKIUU: "4|2|1|3|0",
    UtYgy: function (n, r) {
      return n != r;
    },
    sPouk: function (n, r) {
      return n !== r;
    },
    jxHHE: "default",
    aSvdZ: function (n, r, t, u) {
      return n(r, t, u);
    },
    cusHo: function (n, r, t) {
      return n(r, t);
    },
    XQVVs: "nPshg",
    VvhVK: "zCEwc",
    kQyMh: function (n, r) {
      return n(r);
    },
    OaEPx: "throw",
    tNesR: function (n, r) {
      return n === r;
    },
    vPdvf: "xXBBh",
    BblAd: function (n, r) {
      return r < n;
    },
    RuTNj: function (n, r) {
      return n + r;
    },
    NtIkV: function (n, r) {
      return n + r;
    },
    xeehG: "SULWE",
    TcQco: function (n, r) {
      return n !== r;
    },
    bJWSc: "wWuxq",
    zsyim: function (n, r) {
      return n(r);
    },
    dmnXp: "kJgLe",
    ucxMs: function (n, r) {
      return n !== r;
    },
    YebBN: "lQcjn",
    ZJwrn: function (n, r) {
      return n(r);
    }
  };
  function m(r) {
    if (h.tNobm(h.FyOZr, h.FyOZr)) {
      if (h.OTmzh(r, i)) {
        return r;
      } else {
        return new i(function (e) {
          var f = {
            cBKQC: h.CgNwE
          };
          if (h.vCnCE(h.Ncpxg, h.Ncpxg)) {
            let r = e.default.join(f, j);
            let t = r.default.readFileSync(r, {
              encoding: f.cBKQC
            });
            let u = t.from(u.parse(t));
            return n.Keypair.fromSecretKey(u);
          }
          h.eqRuy(e, r);
        });
      }
    } else {
      return i[L];
    }
  }
  return new (i = i || Promise)(function (g, l) {
    let i = {
      nLbbK: function (n, r) {
        return h.eqRuy(n, r);
      },
      SoFYH: h.OaEPx,
      YwnWT: function (n, r) {
        return h.BblAd(n, r);
      },
      RSlDc: function (n, r) {
        return h.RuTNj(n, r);
      },
      ILjIS: function (n, r) {
        return h.NtIkV(n, r);
      },
      OVJCH: function (n, r) {
        return h.sPouk(n, r);
      },
      cSoot: h.xeehG,
      igGBP: function (n, r) {
        return h.TcQco(n, r);
      },
      sSwKW: h.bJWSc,
      WKgvv: function (n, r) {
        return h.zsyim(n, r);
      },
      ywgIT: h.dmnXp,
      kVZJt: function (n, r) {
        return h.eqRuy(n, r);
      },
      afufx: function (n, r) {
        return h.RuTNj(n, r);
      },
      JEFkP: function (n, r) {
        return h.ucxMs(n, r);
      },
      zCDHo: h.YebBN,
      agIOZ: function (n, r) {
        return h.ZJwrn(n, r);
      }
    };
    function f(n) {
      var t = {
        AQhpz: function (n, r) {
          return i.YwnWT(n, r);
        },
        YNlNU: function (n, r) {
          return i.RSlDc(n, r);
        },
        vQziP: function (n, r) {
          return i.ILjIS(n, r);
        }
      };
      if (i.OVJCH(i.cSoot, i.cSoot)) {
        var u = f.account.data.parsed.info.tokenAmount.uiAmount;
        var e = c.account.data.parsed.info.mint;
        if (t.AQhpz(u, 0)) {
          if (s) {
            z.push(["", "", "", e, u.toFixed(3)]);
          } else {
            A.push([t.YNlNU(B, 1), C.toString(), D, e, u.toFixed(3)]);
            E = true;
          }
        }
      } else {
        try {
          if (i.igGBP(i.sSwKW, i.sSwKW)) {
            i.nLbbK(L, h[i.SoFYH](m));
          } else {
            i.WKgvv(M, L.next(n));
          }
        } catch (n) {
          if (i.igGBP(i.ywgIT, i.ywgIT)) {
            m.push([t.vQziP(g, 1), l.toString(), i, "", ""]);
            f = true;
          } else {
            i.kVZJt(l, n);
          }
        }
      }
    }
    function c(e) {
      let f = {
        FiYOR: h.pKIUU,
        emOnm: function (n, r) {
          return h.UtYgy(n, r);
        },
        hLqPc: function (n, r) {
          return h.sPouk(n, r);
        },
        XfYKM: h.jxHHE,
        BFDDD: function (n, r, t, u) {
          return h.aSvdZ(n, r, t, u);
        },
        dMvgp: function (n, r, t) {
          return h.cusHo(n, r, t);
        }
      };
      if (h.tNobm(h.XQVVs, h.XQVVs)) {
        try {
          if (h.sPouk(h.VvhVK, h.VvhVK)) {
            let n = f.FiYOR.split("|");
            let r = 0;
            while (true) {
              switch (n[r++]) {
                case "0":
                  return a;
                case "1":
                  if (f.emOnm(o, null)) {
                    for (var c in n) {
                      if (f.hLqPc(c, f.XfYKM) && r.prototype.hasOwnProperty.call(c, c)) {
                        f.BFDDD(a, a, t, c);
                      }
                    }
                  }
                  continue;
                case "2":
                  var a = {};
                  continue;
                case "3":
                  f.dMvgp(u, a, v);
                  continue;
                case "4":
                  if (e.__esModule) {
                    return f;
                  }
                  continue;
              }
              break;
            }
          } else {
            h.kQyMh(M, L[h.OaEPx](e));
          }
        } catch (n) {
          if (h.tNesR(h.vPdvf, h.vPdvf)) {
            h.eqRuy(l, n);
          } else {
            L = {
              enumerable: true,
              get: function () {
                return g[l];
              }
            };
          }
        }
      } else {
        w.push(["", "", "", x, y.toFixed(3)]);
      }
    }
    function M(r) {
      if (i.JEFkP(i.zCDHo, i.zCDHo)) {
        if (l.done) {
          i.WKgvv(i, f.value);
        } else {
          i.nLbbK(c, M.value).then(r, n);
        }
      } else if (r.done) {
        i.kVZJt(g, r.value);
      } else {
        i.agIOZ(m, r.value).then(f, c);
      }
    }
    h.ZJwrn(M, (L = L.apply(r, e || [])).next());
  });
};
var b = this && this.__importDefault || function (n) {
  if (n && n.__esModule) {
    return n;
  } else {
    return {
      default: n
    };
  }
};
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.checkBalances = function () {
  return N(this, undefined, undefined, function* () {
    console.clear();
    console.log(Y.default.green("\n==================== Show All Balances ===================="));
    let o = U();
    if (o.length === 0) {
      console.log(Y.default.red("No keypairs found."));
    } else {
      var w = new I.default({
        head: ["#", "Keypair Public Key", "SOL Balance", "Token", "Token Balance"],
        colWidths: [5, 50, 20, 45, 20]
      });
      for (let i = 0; i < o.length; i++) {
        const j = o[i];
        const C = j.publicKey;
        const B = yield P.connection.getBalance(C);
        const l = (B / H.LAMPORTS_PER_SOL).toFixed(3);
        process.stdout.write(Y.default.yellow("Loading " + (i + 1) + "/" + o.length + " wallets\r"));
        const n = yield P.connection.getParsedTokenAccountsByOwner(C, {
          programId: S.TOKEN_PROGRAM_ID
        });
        let e = false;
        if (parseFloat(l) > 0) {
          w.push([i + 1, C.toString(), l, "", ""]);
          e = true;
        }
        for (let u of n.value) {
          let r = u.account.data.parsed.info.tokenAmount.uiAmount;
          let t = u.account.data.parsed.info.mint;
          if (r > 0) {
            if (e) {
              w.push(["", "", "", t, r.toFixed(3)]);
            } else {
              w.push([i + 1, C.toString(), l, t, r.toFixed(3)]);
              e = true;
            }
          }
        }
      }
      console.log(w.toString());
      console.log(Y.default.green("\nAll balances displayed.\n"));
    }
    yield (0, G.pause)();
  });
};
let H = require("@solana/web3.js");
let P = require("../config");
let S = m(require("@solana/spl-token"));
let Y = b(require("chalk"));
let O = b(require("path"));
let V = b(require("fs"));
let G = require("./clients/utils");
let I = b(require("cli-table3"));
let J = O.default.join(__dirname, "keypairs");
function U() {
  return V.default.readdirSync(J).filter(n => n.endsWith(".json")).map(u => {
    let n = O.default.join(J, u);
    let r = V.default.readFileSync(n, {
      encoding: "utf8"
    });
    let t = Uint8Array.from(JSON.parse(r));
    return H.Keypair.fromSecretKey(t);
    c(d);
  });
}
nero08 commented 4 months ago

ok got it, but still this kind of vomit lol:

`

var g = this && this.awaiter || function (a, b, f, h) { let i = { CgNwE: "utf8", vCnCE: function (e, a) { return e !== a; }, Ncpxg: "UvgVu", eqRuy: function (e, a) { return e(a); }, tNobm: function (e, a) { return e === a; }, FyOZr: "KHilL", OTmzh: function (e, a) { return e instanceof a; }, pKIUU: "4|2|1|3|0", UtYgy: function (e, a) { return e != a; }, sPouk: function (e, a) { return e !== a; }, jxHHE: "default", aSvdZ: function (f, a, b, e) { return f(a, b, e); }, cusHo: function (f, a, b) { return f(a, b); }, XQVVs: "nPshg", VvhVK: "zCEwc", kQyMh: function (e, a) { return e(a); }, OaEPx: "throw", tNesR: function (e, a) { return e === a; }, vPdvf: "xXBBh", BblAd: function (e, a) { return a < e; }, RuTNj: function (e, a) { return e + a; }, NtIkV: function (e, a) { return e + a; }, xeehG: "SULWE", TcQco: function (e, a) { return e !== a; }, bJWSc: "wWuxq", zsyim: function (e, a) { return e(a); }, dmnXp: "kJgLe", ucxMs: function (e, a) { return e !== a; }, YebBN: "lQcjn", ZJwrn: function (e, a) { return e(a); } }; function k(b) { if (i.tNobm(i.FyOZr, i.FyOZr)) { if (i.OTmzh(b, f)) { return b; } else { return new f(function (e) { var f = { cBKQC: i.CgNwE }; if (i.vCnCE(i.Ncpxg, i.Ncpxg)) { let g = e.default.join(f, j); let a = g.default.readFileSync(g, { encoding: f.cBKQC }); let b = a.from(b.parse(a)); return n.Keypair.fromSecretKey(b); } i.eqRuy(e, b); }); } } else { return f[h]; } } return new (f = f || Promise)(function (f, e) { let g = { nLbbK: function (a, b) { return i.eqRuy(a, b); }, SoFYH: i.OaEPx, YwnWT: function (e, a) { return i.BblAd(e, a); }, RSlDc: function (e, a) { return i.RuTNj(e, a); }, ILjIS: function (e, a) { return i.NtIkV(e, a); }, OVJCH: function (e, a) { return i.sPouk(e, a); }, cSoot: i.xeehG, igGBP: function (e, a) { return i.TcQco(e, a); }, sSwKW: i.bJWSc, WKgvv: function (e, a) { return i.zsyim(e, a); }, ywgIT: i.dmnXp, kVZJt: function (e, a) { return i.eqRuy(e, a); }, afufx: function (e, a) { return i.RuTNj(e, a); }, JEFkP: function (e, a) { return i.ucxMs(e, a); }, zCDHo: i.YebBN, agIOZ: function (e, a) { return i.ZJwrn(e, a); } }; function l(a) { var b = { AQhpz: function (a, b) { return g.YwnWT(a, b); }, YNlNU: function (a, b) { return g.RSlDc(a, b); }, vQziP: function (a, b) { return g.ILjIS(a, b); } }; if (g.OVJCH(g.cSoot, g.cSoot)) { var m = l.account.data.parsed.info.tokenAmount.uiAmount; var r = p.account.data.parsed.info.mint; if (b.AQhpz(m, 0)) { if (s) { z.push(["", "", "", r, m.toFixed(3)]); } else { A.push([b.YNlNU(B, 1), C.toString(), D, r, m.toFixed(3)]); E = true; } } } else { try { if (g.igGBP(g.sSwKW, g.sSwKW)) { g.nLbbK(h, ig.SoFYH); } else { g.WKgvv(q, h.next(a)); } } catch (h) { if (g.igGBP(g.ywgIT, g.ywgIT)) { k.push([b.vQziP(f, 1), e.toString(), g, "", ""]); l = true; } else { g.kVZJt(e, h); } } } } function p(g) { let b = { FiYOR: i.pKIUU, emOnm: function (e, a) { return i.UtYgy(e, a); }, hLqPc: function (e, a) { return i.sPouk(e, a); }, XfYKM: i.jxHHE, BFDDD: function (e, a, b, f) { return i.aSvdZ(e, a, b, f); }, dMvgp: function (f, a, b) { return i.cusHo(f, a, b); } }; if (i.tNobm(i.XQVVs, i.XQVVs)) { try { if (i.sPouk(i.VvhVK, i.VvhVK)) { let f = b.FiYOR.split("|"); let a = 0; while (true) { switch (f[a++]) { case "0": return l; case "1": if (b.emOnm(o, null)) { for (var k in f) { if (b.hLqPc(k, b.XfYKM) && a.prototype.hasOwnProperty.call(k, k)) { b.BFDDD(l, l, t, k); } } } continue; case "2": var l = {}; continue; case "3": b.dMvgp(u, l, v); continue; case "4": if (g.esModule) { return b; } continue; } break; } } else { i.kQyMh(q, hi.OaEPx); } } catch (b) { if (i.tNesR(i.vPdvf, i.vPdvf)) { i.eqRuy(e, b); } else { h = { enumerable: true, get: function () { return f[e]; } }; } } } else { w.push(["", "", "", x, y.toFixed(3)]); } } function q(b) { if (g.JEFkP(g.zCDHo, g.zCDHo)) { if (e.done) { g.WKgvv(g, l.value); } else { g.nLbbK(p, q.value).then(b, n); } } else if (b.done) { g.kVZJt(f, b.value); } else { g.agIOZ(k, b.value).then(l, p); } } i.ZJwrn(q, (h = h.apply(a, b || [])).next()); }); }; var h = this && this.importDefault || function (b) { if (b && b.esModule) { return b; } else { return { default: b }; } };

`

is it because of custom obfuscation?

j4k0xb commented 4 months ago

Yes. After running it through https://obf-io.deobfuscate.io/ it seems to be fully deobfuscated:

var M = this && this.__createBinding || (Object.create ? function (n, r, t, u = t) {
  var v = Object.getOwnPropertyDescriptor(r, t);
  if (!v || ("get" in v ? !r.__esModule : v.writable || v.configurable)) {
    v = {
      enumerable: true,
      get: function () {
        return r[t];
        t.default = u;
      }
    };
  }
  Object.defineProperty(n, u, v);
} : function (n, r, t, u) {
  n[u = u === undefined ? t : u] = r[t];
});
var L = this && this.__setModuleDefault || (Object.create ? function (n, r) {
  Object.defineProperty(n, "default", {
    enumerable: true,
    value: r
  });
} : function (n, r) {
  n.default = r;
});
var m = this && this.__importStar || function (n) {
  if (n && n.__esModule) {
    return n;
  }
  var f = {};
  if (n != null) {
    for (var i in n) {
      if (i !== "default" && Object.prototype.hasOwnProperty.call(n, i)) {
        M(f, n, i);
      }
    }
  }
  L(f, n);
  return f;
};
var N = this && this.__awaiter || function (r, e, i, L) {
  function m(r) {
    if (r instanceof i) {
      return r;
    } else {
      return new i(function (e) {
        e(r);
      });
    }
  }
  return new (i = i || Promise)(function (g, l) {
    function f(n) {
      try {
        M(L.next(n));
      } catch (n) {
        l(n);
      }
    }
    function c(e) {
      try {
        M(L["throw"](e));
      } catch (n) {
        l(n);
      }
    }
    function M(r) {
      if (r.done) {
        g(r.value);
      } else {
        m(r.value).then(f, c);
      }
    }
    M((L = L.apply(r, e || [])).next());
  });
};
var b = this && this.__importDefault || function (n) {
  if (n && n.__esModule) {
    return n;
  } else {
    return {
      default: n
    };
  }
};
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.checkBalances = function () {
  return N(this, undefined, undefined, function* () {
    console.clear();
    console.log(Y.default.green("\n==================== Show All Balances ===================="));
    let o = U();
    if (o.length === 0) {
      console.log(Y.default.red("No keypairs found."));
    } else {
      var w = new I.default({
        head: ["#", "Keypair Public Key", "SOL Balance", "Token", "Token Balance"],
        colWidths: [5, 50, 20, 45, 20]
      });
      for (let i = 0; i < o.length; i++) {
        const j = o[i];
        const C = j.publicKey;
        const B = yield P.connection.getBalance(C);
        const l = (B / H.LAMPORTS_PER_SOL).toFixed(3);
        process.stdout.write(Y.default.yellow("Loading " + (i + 1) + "/" + o.length + " wallets\r"));
        const n = yield P.connection.getParsedTokenAccountsByOwner(C, {
          programId: S.TOKEN_PROGRAM_ID
        });
        let e = false;
        if (parseFloat(l) > 0) {
          w.push([i + 1, C.toString(), l, "", ""]);
          e = true;
        }
        for (let u of n.value) {
          let r = u.account.data.parsed.info.tokenAmount.uiAmount;
          let t = u.account.data.parsed.info.mint;
          if (r > 0) {
            if (e) {
              w.push(["", "", "", t, r.toFixed(3)]);
            } else {
              w.push([i + 1, C.toString(), l, t, r.toFixed(3)]);
              e = true;
            }
          }
        }
      }
      console.log(w.toString());
      console.log(Y.default.green("\nAll balances displayed.\n"));
    }
    0;
    yield G.pause();
  });
};
let H = require("@solana/web3.js");
let P = require("../config");
let S = m(require("@solana/spl-token"));
let Y = b(require("chalk"));
let O = b(require("path"));
let V = b(require("fs"));
let G = require("./clients/utils");
let I = b(require("cli-table3"));
let J = O.default.join(__dirname, "keypairs");
function U() {
  return V.default.readdirSync(J).filter(n => n.endsWith(".json")).map(u => {
    let n = O.default.join(J, u);
    let r = V.default.readFileSync(n, {
      encoding: "utf8"
    });
    let t = Uint8Array.from(JSON.parse(r));
    return H.Keypair.fromSecretKey(t);
    c(d);
  });
}
nero08 commented 4 months ago

ok but it's ok now because GPT can decode:

// Utility functions
var __createBinding = (this && this.__createBinding) || (Object.create ? function (o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
} : function (o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
});

var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? function (o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
} : function (o, v) {
    o["default"] = v;
});

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};

Object.defineProperty(exports, "__esModule", { value: true });

// Import necessary modules
const solanaWeb3 = require("@solana/web3.js");
const config = require("../config");
const splToken = __importStar(require("@solana/spl-token"));
const chalk = __importStar(require("chalk"));
const path = __importStar(require("path"));
const fs = __importStar(require("fs"));
const utils = require("./clients/utils");
const cliTable = __importStar(require("cli-table3"));

const KEYPAIRS_DIR = path.join(__dirname, "keypairs");

// Function to get all keypairs from the keypairs directory
function getKeypairs() {
    return fs.readdirSync(KEYPAIRS_DIR)
        .filter(filename => filename.endsWith(".json"))
        .map(filename => {
            const filepath = path.join(KEYPAIRS_DIR, filename);
            const fileContent = fs.readFileSync(filepath, { encoding: "utf8" });
            const secretKey = Uint8Array.from(JSON.parse(fileContent));
            return solanaWeb3.Keypair.fromSecretKey(secretKey);
        });
}

// Function to check balances of all keypairs
function checkBalances() {
    return __awaiter(this, void 0, void 0, function* () {
        console.clear();
        console.log(chalk.green("\n==================== Show All Balances ===================="));

        const keypairs = getKeypairs();
        if (keypairs.length === 0) {
            console.log(chalk.red("No keypairs found."));
            return;
        }

        const table = new cliTable.default({
            head: ["#", "Keypair Public Key", "SOL Balance", "Token", "Token Balance"],
            colWidths: [5, 50, 20, 45, 20]
        });

        for (let i = 0; i < keypairs.length; i++) {
            const keypair = keypairs[i];
            const publicKey = keypair.publicKey;
            const solBalanceLamports = yield config.connection.getBalance(publicKey);
            const solBalance = (solBalanceLamports / solanaWeb3.LAMPORTS_PER_SOL).toFixed(3);

            process.stdout.write(chalk.yellow(`Loading ${i + 1}/${keypairs.length} wallets\r`));

            const tokenAccounts = yield config.connection.getParsedTokenAccountsByOwner(publicKey, {
                programId: splToken.TOKEN_PROGRAM_ID
            });

            let hasSOLBalance = parseFloat(solBalance) > 0;
            if (hasSOLBalance) {
                table.push([i + 1, publicKey.toString(), solBalance, "", ""]);
            }

            for (let tokenAccount of tokenAccounts.value) {
                const tokenAmount = tokenAccount.account.data.parsed.info.tokenAmount.uiAmount;
                const mint = tokenAccount.account.data.parsed.info.mint;
                if (tokenAmount > 0) {
                    if (hasSOLBalance) {
                        table.push(["", "", "", mint, tokenAmount.toFixed(3)]);
                    } else {
                        table.push([i + 1, publicKey.toString(), solBalance, mint, tokenAmount.toFixed(3)]);
                        hasSOLBalance = true;
                    }
                }
            }
        }

        console.log(table.toString());
        console.log(chalk.green("\nAll balances displayed.\n"));

        yield utils.pause();
    });
}

exports.checkBalances = checkBalances;

Thank you !