1
0
Fork 0
satnogs-db/db/static/lib/gpredict.js/dist/gpredict.min.js

2 lines
35 KiB
JavaScript

"use strict";function get_orbit_type(s){return geostationary(s)?ORBIT_TYPE_GEO:decayed(s)?ORBIT_TYPE_DECAYED:ORBIT_TYPE_UNKNOWN}function geostationary(s){return fabs(s.meanmo-1.0027)<2e-4}function decayed(s){return s.jul_epoch+(16.666666-s.meanmo)/(10*fabs(s.tle.xndt2o/(twopi/xmnpda/xmnpda)))<s.jul_utc}function has_aos(s,e){var t=0,a=0,p=0,o=!1;return 0==s.meanmo?o=!1:(t=s.tle.xincl,t>=pio2&&(t=pi-t),a=331.25*Math.exp(Math.log(1440/s.meanmo)*(2/3)),p=a*(1+s.tle.eo)-xkmper,o=acos(xkmper/(p+xkmper))+t>fabs(e.lat*de2ra)),o}function Convert_Satellite_Data(s,e){e.sat_name=s[0],e.catnr=s[1].substr(2,5),e.idesg=s[1].substr(9,8),e.epoch=s[1].substr(18,14),e.epoch_year=s[1].substr(18,2),e.epoch_year+=2e3,e.epoch_day=s[1].substr(20,3),e.epoch_fod=s[1].substr(23,9),e.xndt2o=s[1].substr(33,10),e.xndd6o=s[1].substr(44,1)+"."+s[1].substr(45,5)+"E"+s[1].substr(50,2),e.bstar=s[1].substr(53,1)+"."+s[1].substr(54,5)+"E"+s[1].substr(59,2),e.elset=s[1].substr(64,4),e.xincl=s[2].substr(8,8),e.xnodeo=s[2].substr(17,8),e.eo="."+s[2].substr(26,7),e.omegao=s[2].substr(34,8),e.xmo=s[2].substr(43,8),e.xno=s[2].substr(52,10),e.revnum=s[2].substr(63,5)}function select_ephemeris(s){var e,t,a,p,o,d,i,r,n;s.tle.xnodeo*=de2ra,s.tle.omegao*=de2ra,s.tle.xmo*=de2ra,s.tle.xincl*=de2ra,d=twopi/xmnpda/xmnpda,s.meanmo=s.tle.xno,s.tle.xno=s.tle.xno*d*xmnpda,s.tle.xndt2o*=d,s.tle.xndd6o=s.tle.xndd6o*d/xmnpda,s.tle.bstar/=ae,a=xke/s.tle.xno,p=tothrd,i=pow(a,p),n=cos(s.tle.xincl),a=1-s.tle.eo*s.tle.eo,d=1.5*ck2*(n*n*3-1)/pow(a,1.5),r=d/(i*i),e=i*(1-r*(.5*tothrd+r*(1.654320987654321*r+1))),o=d/(e*e),t=s.tle.xno/(o+1),twopi/t/xmnpda>=.15625?s.flags|=DEEP_SPACE_EPHEM_FLAG:s.flags&=~DEEP_SPACE_EPHEM_FLAG}function tle_t(){this.epoch=0,this.epoch_year=0,this.epoch_day=0,this.epoch_fod=0,this.xndt2o=0,this.xndd6o=0,this.bstar=0,this.xincl=0,this.xnodeo=0,this.eo=0,this.omegao=0,this.xmo=0,this.xno=0,this.catnr=0,this.elset=0,this.revnum=0,this.sat_name="",this.idesg="",this.status=OP_STAT_UNKNOWN,this.xincl1=0,this.xnodeo1=0,this.omegao1=0}function Geodetic_t(){this.lat=0,this.lon=0,this.alt=0,this.theta=0}function vector_t(){this.x=0,this.y=0,this.z=0,this.w=0}function obs_set_t(){this.az=0,this.el=0,this.range=0,this.range_rate=0}function obs_astro_t(){this.ra=0,this.dec=0}function deep_arg_t(){this.eosq=0,this.sinio=0,this.cosio=0,this.betao=0,this.aodp=0,this.theta2=0,this.sing=0,this.cosg=0,this.betao2=0,this.xmdot=0,this.omgdot=0,this.xnodot=0,this.xnodp=0,this.xll=0,this.omgadf=0,this.xnode=0,this.em=0,this.xinc=0,this.xn=0,this.t=0,this.ds50=0}function sgpsdp_static_t(){this.aodp=0,this.aycof=0,this.c1=0,this.c4=0,this.c5=0,this.cosio=0,this.d2=0,this.d3=0,this.d4=0,this.delmo=0,this.omgcof=0,this.eta=0,this.omgdot=0,this.sinio=0,this.xnodp=0,this.sinmo=0,this.t2cof=0,this.t3cof=0,this.t4cof=0,this.t5cof=0,this.x1mth2=0,this.x3thm1=0,this.x7thm1=0,this.xmcof=0,this.xmdot=0,this.xnodcf=0,this.xnodot=0,this.xlcof=0}function deep_static_t(){this.thgr=0,this.xnq=0,this.xqncl=0,this.omegaq=0,this.zmol=0,this.zmos=0,this.savtsn=0,this.ee2=0,this.e3=0,this.xi2=0,this.xl2=0,this.xl3=0,this.xl4=0,this.xgh2=0,this.xgh3=0,this.xgh4=0,this.xh2=0,this.xh3=0,this.sse=0,this.ssi=0,this.ssg=0,this.xi3=0,this.se2=0,this.si2=0,this.sl2=0,this.sgh2=0,this.sh2=0,this.se3=0,this.si3=0,this.sl3=0,this.sgh3=0,this.sh3=0,this.sl4=0,this.sgh4=0,this.ssl=0,this.ssh=0,this.d3210=0,this.d3222=0,this.d4410=0,this.d4422=0,this.d5220=0,this.d5232=0,this.d5421=0,this.d5433=0,this.del1=0,this.del2=0,this.del3=0,this.fasx2=0,this.fasx4=0,this.fasx6=0,this.xlamo=0,this.xfact=0,this.xni=0,this.atime=0,this.stepp=0,this.stepn=0,this.step2=0,this.preep=0,this.pl=0,this.sghs=0,this.xli=0,this.d2201=0,this.d2211=0,this.sghl=0,this.sh1=0,this.pinc=0,this.pe=0,this.shs=0,this.zsingl=0,this.zcosgl=0,this.zsinhl=0,this.zcoshl=0,this.zsinil=0,this.zcosil=0}function Sat_t(){this.name="",this.nickname="",this.website="",this.tle=new tle_t,this.flags=0,this.sgps=new sgpsdp_static_t,this.dps=new deep_static_t,this.deep_arg=new deep_arg_t,this.pos=new vector_t,this.vel=new vector_t,this.bearing=new obs_set_t,this.astro=new obs_astro_t,this.jul_epoch=0,this.jul_utc=0,this.tsince=0,this.aos=0,this.los=0,this.az=0,this.el=0,this.range=0,this.range_rate=0,this.ra=0,this.dec=0,this.ssplat=0,this.ssplon=0,this.alt=0,this.velo=0,this.ma=0,this.footprint=0,this.phase=0,this.meanmo=0,this.orbit=0,this.otype=ORBIT_TYPE_UNKNOWN}function SGP4(s,e){var t,a,p,o,d,i,r,n,g,_,l,h,c,x,f,m,u,M,E,T,A,z,S,q,b,O,w,I,L,F,P,v,y,D,G,C,N,R,k,Y,U,j,B,H,V,Z,W,K,J,X,Q,$,ss,es,ts,as,ps,os,ds,is,rs,ns,gs,_s,ls,hs,cs,xs,fs,ms,us,Ms,Es,Ts,As,zs,Ss,qs,bs,Os,ws,Is,Ls,Fs,Ps,vs,ys,Ds,Gs,Cs,Ns,Rs,ks,Ys;~s.flags&SGP4_INITIALIZED_FLAG&&(s.flags|=SGP4_INITIALIZED_FLAG,_s=pow(xke/s.tle.xno,tothrd),s.sgps.cosio=Math.cos(s.tle.xincl),Ns=s.sgps.cosio*s.sgps.cosio,s.sgps.x3thm1=3*Ns-1,Ss=s.tle.eo*s.tle.eo,xs=1-Ss,cs=Math.sqrt(xs),Ts=1.5*ck2*s.sgps.x3thm1/(_s*_s*cs*xs),hs=_s*(1-Ts*(.5*tothrd+Ts*(1+134/81*Ts))),As=1.5*ck2*s.sgps.x3thm1/(hs*hs*cs*xs),s.sgps.xnodp=s.tle.xno/(1+As),s.sgps.aodp=hs/(1-As),s.sgps.aodp*(1-s.tle.eo)/ae<220/xkmper+ae?s.flags|=SIMPLE_FLAG:s.flags&=~SIMPLE_FLAG,Ls=__s__,Is=qoms2t,bs=(s.sgps.aodp*(1-s.tle.eo)-ae)*xkmper,bs<156&&(Ls=bs<=98?20:bs-78,Is=pow((120-Ls)*ae/xkmper,4),Ls=Ls/xkmper+ae),Os=1/(s.sgps.aodp*s.sgps.aodp*xs*xs),ks=1/(s.sgps.aodp-Ls),s.sgps.eta=s.sgps.aodp*s.tle.eo*ks,qs=s.sgps.eta*s.sgps.eta,zs=s.tle.eo*s.sgps.eta,ws=fabs(1-qs),Ms=Is*pow(ks,4),Es=Ms/pow(ws,3.5),ms=Es*s.sgps.xnodp*(s.sgps.aodp*(1+1.5*qs+zs*(4+qs))+.75*ck2*ks/ws*s.sgps.x3thm1*(8+3*qs*(8+qs))),s.sgps.c1=ms*s.tle.bstar,s.sgps.sinio=Math.sin(s.tle.xincl),ls=-xj3/ck2*pow(ae,3),us=Ms*ks*ls*s.sgps.xnodp*ae*s.sgps.sinio/s.tle.eo,s.sgps.x1mth2=1-Ns,s.sgps.c4=2*s.sgps.xnodp*Es*s.sgps.aodp*xs*(s.sgps.eta*(2+.5*qs)+s.tle.eo*(.5+2*qs)-2*ck2*ks/(s.sgps.aodp*ws)*(-3*s.sgps.x3thm1*(1-2*zs+qs*(1.5-.5*zs))+.75*s.sgps.x1mth2*(2*qs-zs*(1+qs))*Math.cos(2*s.tle.omegao))),s.sgps.c5=2*Es*s.sgps.aodp*xs*(1+2.75*(qs+zs)+zs*qs),Rs=Ns*Ns,Ps=3*ck2*Os*s.sgps.xnodp,vs=Ps*ck2*Os,ys=1.25*ck4*Os*Os*s.sgps.xnodp,s.sgps.xmdot=s.sgps.xnodp+.5*Ps*cs*s.sgps.x3thm1+.0625*vs*cs*(13-78*Ns+137*Rs),C=1-5*Ns,s.sgps.omgdot=-.5*Ps*C+.0625*vs*(7-114*Ns+395*Rs)+ys*(3-36*Ns+49*Rs),N=-Ps*s.sgps.cosio,s.sgps.xnodot=N+(.5*vs*(4-19*Ns)+2*ys*(3-7*Ns))*s.sgps.cosio,s.sgps.omgcof=s.tle.bstar*us*Math.cos(s.tle.omegao),s.sgps.xmcof=-tothrd*Ms*s.tle.bstar*ae/zs,s.sgps.xnodcf=3.5*xs*N*s.sgps.c1,s.sgps.t2cof=1.5*s.sgps.c1,s.sgps.xlcof=.125*ls*s.sgps.sinio*(3+5*s.sgps.cosio)/(1+s.sgps.cosio),s.sgps.aycof=.25*ls*s.sgps.sinio,s.sgps.delmo=pow(1+s.sgps.eta*Math.cos(s.tle.xmo),3),s.sgps.sinmo=Math.sin(s.tle.xmo),s.sgps.x7thm1=7*Ns-1,~s.flags&SIMPLE_FLAG&&(fs=s.sgps.c1*s.sgps.c1,s.sgps.d2=4*s.sgps.aodp*ks*fs,Fs=s.sgps.d2*ks*s.sgps.c1/3,s.sgps.d3=(17*s.sgps.aodp+Ls)*Fs,s.sgps.d4=.5*Fs*s.sgps.aodp*ks*(221*s.sgps.aodp+31*Ls)*s.sgps.c1,s.sgps.t3cof=s.sgps.d2+2*fs,s.sgps.t4cof=.25*(3*s.sgps.d3+s.sgps.c1*(12*s.sgps.d2+10*fs)),s.sgps.t5cof=.2*(3*s.sgps.d4+12*s.sgps.c1*s.sgps.d3+6*s.sgps.d2*s.sgps.d2+15*fs*(2*s.sgps.d2+fs)))),gs=s.tle.xmo+s.sgps.xmdot*e,ns=s.tle.omegao+s.sgps.omgdot*e,rs=s.tle.xnodeo+s.sgps.xnodot*e,is=ns,ds=gs,os=e*e,ps=rs+s.sgps.xnodcf*os,as=1-s.sgps.c1*e,ts=s.tle.bstar*s.sgps.c4*e,es=s.sgps.t2cof*os,~s.flags&SIMPLE_FLAG&&(ss=s.sgps.omgcof*e,$=s.sgps.xmcof*(pow(1+s.sgps.eta*Math.cos(gs),3)-s.sgps.delmo),Fs=ss+$,ds=gs+Fs,is=ns-Fs,Q=os*e,R=e*Q,as=as-s.sgps.d2*os-s.sgps.d3*Q-s.sgps.d4*R,ts+=s.tle.bstar*s.sgps.c5*(sin(ds)-s.sgps.sinmo),es=es+s.sgps.t3cof*Q+R*(s.sgps.t4cof+e*s.sgps.t5cof)),X=s.sgps.aodp*pow(as,2),J=s.tle.eo-ts,K=ds+is+ps+s.sgps.xnodp*es,W=Math.sqrt(1-J*J),Z=xke/pow(X,1.5),V=J*Math.cos(is),Fs=1/(X*W*W),H=Fs*s.sgps.xlcof*V,B=Fs*s.sgps.aycof,j=K+H,U=J*Math.sin(is)+B,Y=FMod2p(j-ps),vs=Y,Ys=0;do{if(k=Math.sin(vs),G=Math.cos(vs),ys=V*k,Ds=U*G,Gs=V*G,Cs=U*k,D=(Y-Ds+ys-vs)/(1-Gs-Cs)+vs,fabs(D-vs)<=e6a)break;vs=D}while(Ys++<10);y=Gs+Cs,v=ys-Ds,P=V*V+U*U,Fs=1-P,F=X*Fs,L=X*(1-y),Ps=1/L,I=xke*Math.sqrt(X)*v*Ps,w=xke*Math.sqrt(F)*Ps,vs=X*Ps,O=Math.sqrt(Fs),ys=1/(1+O),b=vs*(G-V+U*v*ys),q=vs*(k-U-V*v*ys),S=AcTan(q,b),z=2*q*b,A=2*b*b-1,Fs=1/F,Ps=ck2*Fs,vs=Ps*Fs,T=L*(1-1.5*vs*O*s.sgps.x3thm1)+.5*Ps*s.sgps.x1mth2*A,E=S-.25*vs*s.sgps.x7thm1*z,M=ps+1.5*vs*s.sgps.cosio*z,u=s.tle.xincl+1.5*vs*s.sgps.cosio*s.sgps.sinio*A,m=I-Z*Ps*s.sgps.x1mth2*z,p=w+Z*Ps*(s.sgps.x1mth2*A+1.5*s.sgps.x3thm1),a=Math.sin(E),t=Math.cos(E),f=Math.sin(u),x=Math.cos(u),c=Math.sin(M),h=Math.cos(M),l=-c*x,_=h*x,r=l*a+h*t,n=_*a+c*t,g=f*a,o=l*t-h*a,d=_*t-c*a,i=f*t,s.pos.x=T*r,s.pos.y=T*n,s.pos.z=T*g,s.vel.x=m*r+p*o,s.vel.y=m*n+p*d,s.vel.z=m*g+p*i,s.phase=j-ps-ns+twopi,s.phase<0&&(s.phase+=twopi),s.phase=FMod2p(s.phase),s.tle.omegao1=is,s.tle.xincl1=u,s.tle.xnodeo1=M}function SDP4(s,e){var t,a,p,o,d,i,r,n,g,_,l,h,c,x,f,m,u,M,E,T,A,z,S,q,b,O,w,I,L,F,P,v,y,D,G,C,N,R,k,Y,U,j,B,H,V,Z,W,K,J,X,Q,$,ss,es,ts,as,ps,os,ds,is,rs,ns,gs,_s,ls,hs,cs,xs,fs,ms,us,Ms,Es,Ts,As,zs,Ss,qs,bs,Os;~s.flags&SDP4_INITIALIZED_FLAG&&(s.flags|=SDP4_INITIALIZED_FLAG,ss=pow(xke/s.tle.xno,tothrd),s.deep_arg.cosio=Math.cos(s.tle.xincl),s.deep_arg.theta2=s.deep_arg.cosio*s.deep_arg.cosio,s.sgps.x3thm1=3*s.deep_arg.theta2-1,s.deep_arg.eosq=s.tle.eo*s.tle.eo,s.deep_arg.betao2=1-s.deep_arg.eosq,s.deep_arg.betao=Math.sqrt(s.deep_arg.betao2),rs=1.5*ck2*s.sgps.x3thm1/(ss*ss*s.deep_arg.betao*s.deep_arg.betao2),ts=ss*(1-rs*(.5*tothrd+rs*(1+134/81*rs))),gs=1.5*ck2*s.sgps.x3thm1/(ts*ts*s.deep_arg.betao*s.deep_arg.betao2),s.deep_arg.xnodp=s.tle.xno/(1+gs),s.deep_arg.aodp=ts/(1-gs),us=__s__,ms=qoms2t,cs=(s.deep_arg.aodp*(1-s.tle.eo)-ae)*xkmper,cs<156&&(us=cs<=98?20:cs-78,ms=pow((120-us)*ae/xkmper,4),us=us/xkmper+ae),Ms=1/(s.deep_arg.aodp*s.deep_arg.aodp*s.deep_arg.betao2*s.deep_arg.betao2),s.deep_arg.sing=Math.sin(s.tle.omegao),s.deep_arg.cosg=Math.cos(s.tle.omegao),fs=1/(s.deep_arg.aodp-us),ls=s.deep_arg.aodp*s.tle.eo*fs,hs=ls*ls,_s=s.tle.eo*ls,xs=fabs(1-hs),ps=ms*pow(fs,4),os=ps/pow(xs,3.5),as=os*s.deep_arg.xnodp*(s.deep_arg.aodp*(1+1.5*hs+_s*(4+hs))+.75*ck2*fs/xs*s.sgps.x3thm1*(8+3*hs*(8+hs))),s.sgps.c1=s.tle.bstar*as,s.deep_arg.sinio=Math.sin(s.tle.xincl),es=-xj3/ck2*pow(ae,3),s.sgps.x1mth2=1-s.deep_arg.theta2,s.sgps.c4=2*s.deep_arg.xnodp*os*s.deep_arg.aodp*s.deep_arg.betao2*(ls*(2+.5*hs)+s.tle.eo*(.5+2*hs)-2*ck2*fs/(s.deep_arg.aodp*xs)*(-3*s.sgps.x3thm1*(1-2*_s+hs*(1.5-.5*_s))+.75*s.sgps.x1mth2*(2*hs-_s*(1+hs))*Math.cos(2*s.tle.omegao))),T=s.deep_arg.theta2*s.deep_arg.theta2,As=3*ck2*Ms*s.deep_arg.xnodp,zs=As*ck2*Ms,Ss=1.25*ck4*Ms*Ms*s.deep_arg.xnodp,s.deep_arg.xmdot=s.deep_arg.xnodp+.5*As*s.deep_arg.betao*s.sgps.x3thm1+.0625*zs*s.deep_arg.betao*(13-78*s.deep_arg.theta2+137*T),ds=1-5*s.deep_arg.theta2,s.deep_arg.omgdot=-.5*As*ds+.0625*zs*(7-114*s.deep_arg.theta2+395*T)+Ss*(3-36*s.deep_arg.theta2+49*T),is=-As*s.deep_arg.cosio,s.deep_arg.xnodot=is+(.5*zs*(4-19*s.deep_arg.theta2)+2*Ss*(3-7*s.deep_arg.theta2))*s.deep_arg.cosio,s.sgps.xnodcf=3.5*s.deep_arg.betao2*is*s.sgps.c1,s.sgps.t2cof=1.5*s.sgps.c1,s.sgps.xlcof=.125*es*s.deep_arg.sinio*(3+5*s.deep_arg.cosio)/(1+s.deep_arg.cosio),s.sgps.aycof=.25*es*s.deep_arg.sinio,s.sgps.x7thm1=7*s.deep_arg.theta2-1,Deep(dpinit,s)),W=s.tle.xmo+s.deep_arg.xmdot*e,s.deep_arg.omgadf=s.tle.omegao+s.deep_arg.omgdot*e,X=s.tle.xnodeo+s.deep_arg.xnodot*e,D=e*e,s.deep_arg.xnode=X+s.sgps.xnodcf*D,Ts=1-s.sgps.c1*e,v=s.tle.bstar*s.sgps.c4*e,y=s.sgps.t2cof*D,s.deep_arg.xn=s.deep_arg.xnodp,s.deep_arg.xll=W,s.deep_arg.t=e,Deep(dpsec,s),W=s.deep_arg.xll,a=pow(xke/s.deep_arg.xn,tothrd)*Ts*Ts,s.deep_arg.em=s.deep_arg.em-v,Z=W+s.deep_arg.xnodp*y,s.deep_arg.xll=Z,Deep(dpper,s),Z=s.deep_arg.xll,H=Z+s.deep_arg.omgadf+s.deep_arg.xnode,i=Math.sqrt(1-s.deep_arg.em*s.deep_arg.em),s.deep_arg.xn=xke/pow(a,1.5),p=s.deep_arg.em*Math.cos(s.deep_arg.omgadf),Es=1/(a*i*i),$=Es*s.sgps.xlcof*p,d=Es*s.sgps.aycof,V=H+$,o=s.deep_arg.em*Math.sin(s.deep_arg.omgadf)+d,n=FMod2p(V-s.deep_arg.xnode),zs=n,t=0;do{if(w=Math.sin(zs),_=Math.cos(zs),Ss=p*w,qs=o*_,bs=p*_,Os=o*w,u=(n-qs+Ss-zs)/(1-bs-Os)+zs,fabs(u-zs)<=e6a)break;zs=u}while(t++<10);f=bs+Os,M=Ss-qs,m=p*p+o*o,Es=1-m,E=a*Es,ns=a*(1-f),As=1/ns,A=xke*Math.sqrt(a)*M*As,S=xke*Math.sqrt(E)*As,zs=a*As,r=Math.sqrt(Es),Ss=1/(1+r),c=zs*(_-p+o*M*Ss),F=zs*(w-o-p*M*Ss),G=AcTan(F,c),O=2*F*c,g=2*c*c-1,Es=1/E,As=ck2*Es,zs=As*Es,b=ns*(1-1.5*zs*r*s.sgps.x3thm1)+.5*As*s.sgps.x1mth2*g,C=G-.25*zs*s.sgps.x7thm1*O,Q=s.deep_arg.xnode+1.5*zs*s.deep_arg.cosio*O,B=s.deep_arg.xinc+1.5*zs*s.deep_arg.cosio*s.deep_arg.sinio*g,z=A-s.deep_arg.xn*As*s.sgps.x1mth2*O,q=S+s.deep_arg.xn*As*(s.sgps.x1mth2*g+1.5*s.sgps.x3thm1),P=Math.sin(C),x=Math.cos(C),I=Math.sin(B),l=Math.cos(B),L=Math.sin(Q),h=Math.cos(Q),K=-L*l,J=h*l,N=K*P+h*x,R=J*P+L*x,k=I*P,Y=K*x-h*P,U=J*x-L*P,j=I*x,s.pos.x=b*N,s.pos.y=b*R,s.pos.z=b*k,s.vel.x=z*N+q*Y,s.vel.y=z*R+q*U,s.vel.z=z*k+q*j,s.phase=V-s.deep_arg.xnode-s.deep_arg.omgadf+twopi,s.phase<0&&(s.phase+=twopi),s.phase=FMod2p(s.phase),s.tle.omegao1=s.deep_arg.omgadf,s.tle.xincl1=s.deep_arg.xinc,s.tle.xnodeo1=s.deep_arg.xnode}function Deep(s,e){var t,a,p,o,d,i,r,n,g,_,l,h,c,x,f,m,u,M,E,T,A,z,S,q,b,O,w,I,L,F,P,v,y,D,G,C,N,R,k,Y,U,j,B,H,V,Z,W,K,J,X,Q,$,ss,es,ts,as,ps,os,ds,is,rs,ns,gs,_s,ls,hs,cs,xs,fs,ms,us,Ms,Es,Ts,As,zs,Ss,qs,bs,Os,ws,Is,Ls,Fs,Ps,vs,ys,Ds,Gs,Cs,Ns,Rs,ks,Ys,Us,js,Bs,Hs,Vs,Zs,Ws,Ks,Js,Xs,Qs,$s,se,ee,te,ae,pe,oe,de,ie,re,ne,ge,_e,le,he,ce,xe,fe,me,ue,Me,Ee,Te,Ae=0,ze=0;switch(s){case dpinit:for(e.dps.thgr=ThetaG(e.tle.epoch,e.deep_arg),N=e.tle.eo,e.dps.xnq=e.deep_arg.xnodp,c=1/e.deep_arg.aodp,e.dps.xqncl=e.tle.xincl,Vs=e.tle.xmo,$s=e.deep_arg.omgdot+e.deep_arg.xnodot,qs=Math.sin(e.tle.xnodeo),L=Math.cos(e.tle.xnodeo),e.dps.omegaq=e.tle.omegao,e.dps.preep=0,A=e.deep_arg.ds50+18261.5,A!=e.dps.preep&&(e.dps.preep=A,Js=4.523602-.00092422029*A,Fs=Math.sin(Js),F=Math.cos(Js),e.dps.zcosil=.91375164-.03568096*F,e.dps.zsinil=Math.sqrt(1-e.dps.zcosil*e.dps.zcosil),e.dps.zsinhl=.089683511*Fs/e.dps.zsinil,e.dps.zcoshl=Math.sqrt(1-e.dps.zsinhl*e.dps.zsinhl),b=4.7199672+.2299715*A,Ss=5.8351514+.001944368*A,e.dps.zmol=FMod2p(b-Ss),v=.39785416*Fs/e.dps.zsinil,y=e.dps.zcoshl*F+.91744867*e.dps.zsinhl*Fs,v=AcTan(v,y),v=Ss+v-Js,e.dps.zcosgl=Math.cos(v),e.dps.zsingl=Math.sin(v),e.dps.zmos=6.2565837+.017201977*A,e.dps.zmos=FMod2p(e.dps.zmos)),e.dps.savtsn=1e20,Me=zcosgs,fe=zsings,Te=zcosis,ue=zsinis,Ee=L,me=qs,O=c1ss,xe=zns,le=zes,zmo=e.dps.zmos,Xs=1/e.dps.xnq;t=Me*Ee+fe*Te*me,p=-fe*Ee+Me*Te*me,r=-Me*me+fe*Te*Ee,n=fe*ue,g=fe*me+Me*Te*Ee,_=Me*ue,a=e.deep_arg.cosio*r+e.deep_arg.sinio*n,o=e.deep_arg.cosio*g+e.deep_arg.sinio*_,d=-e.deep_arg.sinio*r+e.deep_arg.cosio*n,i=-e.deep_arg.sinio*g+e.deep_arg.cosio*_,ys=t*e.deep_arg.cosg+a*e.deep_arg.sing,Ds=p*e.deep_arg.cosg+o*e.deep_arg.sing,Ns=-t*e.deep_arg.sing+a*e.deep_arg.cosg,Rs=-p*e.deep_arg.sing+o*e.deep_arg.cosg,ks=d*e.deep_arg.sing,Ys=i*e.deep_arg.sing,Us=d*e.deep_arg.cosg,js=i*e.deep_arg.cosg,ne=12*ys*ys-3*Ns*Ns,ge=24*ys*Ds-6*Ns*Rs,_e=12*Ds*Ds-3*Rs*Rs,se=3*(t*t+a*a)+ne*e.deep_arg.eosq,pe=6*(t*p+a*o)+ge*e.deep_arg.eosq,re=3*(p*p+o*o)+_e*e.deep_arg.eosq,ee=-6*t*d+e.deep_arg.eosq*(-24*ys*Us-6*Ns*ks),te=-6*(t*i+p*d)+e.deep_arg.eosq*(-24*(Ds*Us+ys*js)-6*(Ns*Ys+Rs*ks)),ae=-6*p*i+e.deep_arg.eosq*(-24*Ds*js-6*Rs*Ys),oe=6*a*d+e.deep_arg.eosq*(24*ys*ks-6*Ns*Us),de=6*(o*d+a*i)+e.deep_arg.eosq*(24*(Ds*ks+ys*Ys)-6*(Rs*Us+Ns*js)),ie=6*o*i+e.deep_arg.eosq*(24*Ds*Ys-6*Rs*js),se=se+se+e.deep_arg.betao2*ne,pe=pe+pe+e.deep_arg.betao2*ge,re=re+re+e.deep_arg.betao2*_e,ds=O*Xs,os=-.5*ds/e.deep_arg.betao,is=ds*e.deep_arg.betao,ps=-15*N*is,rs=ys*Ns+Ds*Rs,ns=Ds*Ns+ys*Rs,gs=Ds*Rs-ys*Ns,_s=ps*xe*rs,E=os*xe*(ee+ae),ws=-xe*ds*(se+re-14-6*e.deep_arg.eosq),x=is*xe*(ne+_e-6),M=-xe*os*(oe+ie),e.dps.xqncl<.052359877&&(M=0),e.dps.ee2=2*ps*ns,e.dps.e3=2*ps*gs,e.dps.xi2=2*os*te,e.dps.xi3=2*os*(ae-ee),e.dps.xl2=-2*ds*pe,e.dps.xl3=-2*ds*(re-se),e.dps.xl4=-2*ds*(-21-9*e.deep_arg.eosq)*le,e.dps.xgh2=2*is*ge,e.dps.xgh3=2*is*(_e-ne),e.dps.xgh4=-18*is*le,e.dps.xh2=-2*os*de,e.dps.xh3=-2*os*(ie-oe),!(e.flags&LUNAR_TERMS_DONE_FLAG);)e.dps.sse=_s,e.dps.ssi=E,e.dps.ssl=ws,e.dps.ssh=M/e.deep_arg.sinio,e.dps.ssg=x-e.deep_arg.cosio*e.dps.ssh,e.dps.se2=e.dps.ee2,e.dps.si2=e.dps.xi2,e.dps.sl2=e.dps.xl2,e.dps.sgh2=e.dps.xgh2,e.dps.sh2=e.dps.xh2,e.dps.se3=e.dps.e3,e.dps.si3=e.dps.xi3,e.dps.sl3=e.dps.xl3,e.dps.sgh3=e.dps.xgh3,e.dps.sh3=e.dps.xh3,e.dps.sl4=e.dps.xl4,e.dps.sgh4=e.dps.xgh4,Me=e.dps.zcosgl,fe=e.dps.zsingl,Te=e.dps.zcosil,ue=e.dps.zsinil,Ee=e.dps.zcoshl*L+e.dps.zsinhl*qs,me=qs*e.dps.zcoshl-L*e.dps.zsinhl,xe=znl,O=c1l,le=zel,zmo=e.dps.zmol,e.flags|=LUNAR_TERMS_DONE_FLAG;if(e.dps.sse=e.dps.sse+_s,e.dps.ssi=e.dps.ssi+E,e.dps.ssl=e.dps.ssl+ws,e.dps.ssg=e.dps.ssg+x-e.deep_arg.cosio/e.deep_arg.sinio*M,e.dps.ssh=e.dps.ssh+M/e.deep_arg.sinio,e.flags&=~RESONANCE_FLAG,e.flags&=~SYNCHRONOUS_FLAG,e.dps.xnq<.0052359877&&e.dps.xnq>.0034906585)e.flags|=RESONANCE_FLAG,e.flags|=SYNCHRONOUS_FLAG,$=1+e.deep_arg.eosq*(-2.5+.8125*e.deep_arg.eosq),fs=1+2*e.deep_arg.eosq,xs=1+e.deep_arg.eosq*(-6+6.60937*e.deep_arg.eosq),k=.75*(1+e.deep_arg.cosio)*(1+e.deep_arg.cosio),j=.9375*e.deep_arg.sinio*e.deep_arg.sinio*(1+3*e.deep_arg.cosio)-.75*(1+e.deep_arg.cosio),V=1+e.deep_arg.cosio,V*=1.875*V*V,e.dps.del1=3*e.dps.xnq*e.dps.xnq*c*c,e.dps.del2=2*e.dps.del1*k*$*q22,e.dps.del3=3*e.dps.del1*V*xs*q33*c,e.dps.del1=e.dps.del1*j*fs*q31*c,e.dps.fasx2=.13130908,e.dps.fasx4=2.8843198,e.dps.fasx6=.37448087,e.dps.xlamo=Vs+e.tle.xnodeo+e.tle.omegao-e.dps.thgr,q=e.deep_arg.xmdot+$s-thdt,q=q+e.dps.ssl+e.dps.ssg+e.dps.ssh;else{if(e.dps.xnq<.00826||e.dps.xnq>.00924)return;if(N<.5)return;e.flags|=RESONANCE_FLAG,C=N*e.deep_arg.eosq,ss=-.306-.44*(N-.64),N<=.65?(es=3.616-13.247*N+16.29*e.deep_arg.eosq,fs=117.39*N-19.302-228.419*e.deep_arg.eosq+156.591*C,ms=109.7927*N-18.9068-214.6334*e.deep_arg.eosq+146.5816*C,us=242.694*N-41.122-471.094*e.deep_arg.eosq+313.953*C,Ms=841.88*N-146.407-1629.014*e.deep_arg.eosq+1083.435*C,Es=3017.977*N-532.114-5740*e.deep_arg.eosq+3708.276*C):(es=331.819*N-72.099-508.738*e.deep_arg.eosq+266.724*C,fs=1582.851*N-346.844-2415.925*e.deep_arg.eosq+1246.113*C,ms=1554.908*N-342.585-2366.899*e.deep_arg.eosq+1215.972*C,us=4758.686*N-1052.797-7193.992*e.deep_arg.eosq+3651.957*C,Ms=16178.11*N-3581.69-24462.77*e.deep_arg.eosq+12422.52*C,Es=N<=.715?1464.74-4664.75*N+3763.64*e.deep_arg.eosq:29936.92*N-5149.66-54087.36*e.deep_arg.eosq+31324.56*C),N<.7?(zs=4988.61*N-919.2277-9064.77*e.deep_arg.eosq+5542.21*C,Ts=4568.6173*N-822.71072-8491.4146*e.deep_arg.eosq+5337.524*C,As=4690.25*N-853.666-8624.77*e.deep_arg.eosq+5341.4*C):(zs=161616.52*N-37995.78-229838.2*e.deep_arg.eosq+109377.94*C,Ts=218913.95*N-51752.104-309468.16*e.deep_arg.eosq+146349.42*C,As=170470.89*N-40023.88-242699.48*e.deep_arg.eosq+115605.82*C),f=e.deep_arg.sinio*e.deep_arg.sinio,k=.75*(1+2*e.deep_arg.cosio+e.deep_arg.theta2),Y=1.5*f,B=1.875*e.deep_arg.sinio*(1-2*e.deep_arg.cosio-3*e.deep_arg.theta2),P=-1.875*e.deep_arg.sinio*(1+2*e.deep_arg.cosio-3*e.deep_arg.theta2),Z=35*f*k,W=39.375*f*f,K=9.84375*e.deep_arg.sinio*(f*(1-2*e.deep_arg.cosio-5*e.deep_arg.theta2)+.33333333*(-2+4*e.deep_arg.cosio+6*e.deep_arg.theta2)),J=e.deep_arg.sinio*(4.92187512*f*(-2-4*e.deep_arg.cosio+10*e.deep_arg.theta2)+6.56250012*(1+2*e.deep_arg.cosio-3*e.deep_arg.theta2)),X=29.53125*e.deep_arg.sinio*(2-8*e.deep_arg.cosio+e.deep_arg.theta2*(-12+8*e.deep_arg.cosio+10*e.deep_arg.theta2)),Q=29.53125*e.deep_arg.sinio*(-2-8*e.deep_arg.cosio+e.deep_arg.theta2*(12+8*e.deep_arg.cosio-10*e.deep_arg.theta2)),Ks=e.dps.xnq*e.dps.xnq,l=c*c,vs=3*Ks*l,Ps=vs*root22,e.dps.d2201=Ps*k*ss,e.dps.d2211=Ps*Y*es,vs*=c,Ps=vs*root32,e.dps.d3210=Ps*B*fs,e.dps.d3222=Ps*P*ms,vs*=c,Ps=2*vs*root44,e.dps.d4410=Ps*Z*us,e.dps.d4422=Ps*W*Ms,vs*=c,Ps=vs*root52,e.dps.d5220=Ps*K*Es,e.dps.d5232=Ps*J*As,Ps=2*vs*root54,e.dps.d5421=Ps*X*Ts,e.dps.d5433=Ps*Q*zs,e.dps.xlamo=Vs+e.tle.xnodeo+e.tle.xnodeo-e.dps.thgr-e.dps.thgr,q=e.deep_arg.xmdot+e.deep_arg.xnodot+e.deep_arg.xnodot-thdt-thdt,q=q+e.dps.ssl+e.dps.ssh+e.dps.ssh}return e.dps.xfact=q-e.dps.xnq,e.dps.xli=e.dps.xlamo,e.dps.xni=e.dps.xnq,e.dps.atime=0,e.dps.stepp=720,e.dps.stepn=-720,void(e.dps.step2=259200);case dpsec:if(e.deep_arg.xll=e.deep_arg.xll+e.dps.ssl*e.deep_arg.t,e.deep_arg.omgadf=e.deep_arg.omgadf+e.dps.ssg*e.deep_arg.t,e.deep_arg.xnode=e.deep_arg.xnode+e.dps.ssh*e.deep_arg.t,e.deep_arg.em=e.tle.eo+e.dps.sse*e.deep_arg.t,e.deep_arg.xinc=e.tle.xincl+e.dps.ssi*e.deep_arg.t,e.deep_arg.xinc<0&&(e.deep_arg.xinc=-e.deep_arg.xinc,e.deep_arg.xnode=e.deep_arg.xnode+pi,e.deep_arg.omgadf=e.deep_arg.omgadf-pi),~e.flags&RESONANCE_FLAG)return;do{0==e.dps.atime||e.deep_arg.t>=0&&e.dps.atime<0||e.deep_arg.t<0&&e.dps.atime>=0?(Ae=e.deep_arg.t>=0?e.dps.stepp:e.dps.stepn,e.dps.atime=0,e.dps.xni=e.dps.xnq,e.dps.xli=e.dps.xlamo):fabs(e.deep_arg.t)>=fabs(e.dps.atime)&&(Ae=e.deep_arg.t>0?e.dps.stepp:e.dps.stepn);do{fabs(e.deep_arg.t-e.dps.atime)>=e.dps.stepp?(e.flags|=DO_LOOP_FLAG,e.flags&=~EPOCH_RESTART_FLAG):(ze=e.deep_arg.t-e.dps.atime,e.flags&=~DO_LOOP_FLAG),fabs(e.deep_arg.t)<fabs(e.dps.atime)&&(Ae=e.deep_arg.t>=0?e.dps.stepn:e.dps.stepp,e.flags|=DO_LOOP_FLAG|EPOCH_RESTART_FLAG),e.flags&SYNCHRONOUS_FLAG?(Ws=e.dps.del1*Math.sin(e.dps.xli-e.dps.fasx2)+e.dps.del2*Math.sin(2*(e.dps.xli-e.dps.fasx4))+e.dps.del3*Math.sin(3*(e.dps.xli-e.dps.fasx6)),Zs=e.dps.del1*Math.cos(e.dps.xli-e.dps.fasx2)+2*e.dps.del2*Math.cos(2*(e.dps.xli-e.dps.fasx4))+3*e.dps.del3*Math.cos(3*(e.dps.xli-e.dps.fasx6))):(Qs=e.dps.omegaq+e.deep_arg.omgdot*e.dps.atime,Cs=Qs+Qs,Gs=e.dps.xli+e.dps.xli,Ws=e.dps.d2201*Math.sin(Cs+e.dps.xli-g22)+e.dps.d2211*Math.sin(e.dps.xli-g22)+e.dps.d3210*Math.sin(Qs+e.dps.xli-g32)+e.dps.d3222*Math.sin(-Qs+e.dps.xli-g32)+e.dps.d4410*Math.sin(Cs+Gs-g44)+e.dps.d4422*Math.sin(Gs-g44)+e.dps.d5220*Math.sin(Qs+e.dps.xli-g52)+e.dps.d5232*Math.sin(-Qs+e.dps.xli-g52)+e.dps.d5421*Math.sin(Qs+Gs-g54)+e.dps.d5433*Math.sin(-Qs+Gs-g54),Zs=e.dps.d2201*Math.cos(Cs+e.dps.xli-g22)+e.dps.d2211*Math.cos(e.dps.xli-g22)+e.dps.d3210*Math.cos(Qs+e.dps.xli-g32)+e.dps.d3222*Math.cos(-Qs+e.dps.xli-g32)+e.dps.d5220*Math.cos(Qs+e.dps.xli-g52)+e.dps.d5232*Math.cos(-Qs+e.dps.xli-g52)+2*(e.dps.d4410*Math.cos(Cs+Gs-g44)+e.dps.d4422*Math.cos(Gs-g44)+e.dps.d5421*Math.cos(Qs+Gs-g54)+e.dps.d5433*Math.cos(-Qs+Gs-g54))),Hs=e.dps.xni+e.dps.xfact,Zs*=Hs,e.flags&DO_LOOP_FLAG&&(e.dps.xli=e.dps.xli+Hs*Ae+Ws*e.dps.step2,e.dps.xni=e.dps.xni+Ws*Ae+Zs*e.dps.step2,e.dps.atime=e.dps.atime+Ae)}while(e.flags&DO_LOOP_FLAG&&~e.flags&EPOCH_RESTART_FLAG)}while(e.flags&DO_LOOP_FLAG&&e.flags&EPOCH_RESTART_FLAG);return e.deep_arg.xn=e.dps.xni+Ws*ze+Zs*ze*ze*.5,Bs=e.dps.xli+Hs*ze+Ws*ze*ze*.5,Ps=-e.deep_arg.xnode+e.dps.thgr+e.deep_arg.t*thdt,void(~e.flags&SYNCHRONOUS_FLAG?e.deep_arg.xll=Bs+Ps+Ps:e.deep_arg.xll=Bs-e.deep_arg.omgadf+Ps);case dpper:return m=Math.sin(e.deep_arg.xinc),w=Math.cos(e.deep_arg.xinc),fabs(e.dps.savtsn-e.deep_arg.t)>=30&&(e.dps.savtsn=e.deep_arg.t,ce=e.dps.zmos+zns*e.deep_arg.t,he=ce+2*zes*Math.sin(ce),bs=Math.sin(he),R=.5*bs*bs-.25,U=-.5*bs*Math.cos(he),hs=e.dps.se2*R+e.dps.se3*U,Os=e.dps.si2*R+e.dps.si3*U,Ls=e.dps.sl2*R+e.dps.sl3*U+e.dps.sl4*bs,e.dps.sghs=e.dps.sgh2*R+e.dps.sgh3*U+e.dps.sgh4*bs,e.dps.shs=e.dps.sh2*R+e.dps.sh3*U,ce=e.dps.zmol+znl*e.deep_arg.t,he=ce+2*zel*Math.sin(ce),bs=Math.sin(he),R=.5*bs*bs-.25,U=-.5*bs*Math.cos(he),ls=e.dps.ee2*R+e.dps.e3*U,T=e.dps.xi2*R+e.dps.xi3*U,Is=e.dps.xl2*R+e.dps.xl3*U+e.dps.xl4*bs,e.dps.sghl=e.dps.xgh2*R+e.dps.xgh3*U+e.dps.xgh4*bs,e.dps.sh1=e.dps.xh2*R+e.dps.xh3*U,e.dps.pe=hs+ls,e.dps.pinc=Os+T,e.dps.pl=Ls+Is),ts=e.dps.sghs+e.dps.sghl,as=e.dps.shs+e.dps.sh1,e.deep_arg.xinc=e.deep_arg.xinc+e.dps.pinc,e.deep_arg.em=e.deep_arg.em+e.dps.pe,void(e.dps.xqncl>=.2?(as/=e.deep_arg.sinio,ts-=e.deep_arg.cosio*as,e.deep_arg.omgadf=e.deep_arg.omgadf+ts,e.deep_arg.xnode=e.deep_arg.xnode+as,e.deep_arg.xll=e.deep_arg.xll+e.dps.pl):(u=Math.sin(e.deep_arg.xnode),I=Math.cos(e.deep_arg.xnode),h=m*u,z=m*I,S=as*I+e.dps.pinc*w*u,D=-as*u+e.dps.pinc*w*I,h+=S,z+=D,e.deep_arg.xnode=FMod2p(e.deep_arg.xnode),cs=e.deep_arg.xll+e.deep_arg.omgadf+w*e.deep_arg.xnode,G=e.dps.pl+ts-e.dps.pinc*e.deep_arg.xnode*m,cs+=G,H=e.deep_arg.xnode,e.deep_arg.xnode=AcTan(h,z),fabs(H-e.deep_arg.xnode)>pi&&(e.deep_arg.xnode<H?e.deep_arg.xnode+=twopi:e.deep_arg.xnode-=twopi),e.deep_arg.xll=e.deep_arg.xll+e.dps.pl,e.deep_arg.omgadf=cs-e.deep_arg.xll-Math.cos(e.deep_arg.xinc)*e.deep_arg.xnode))}}function isFlagSet(s){return Flags&s}function isFlagClear(s){return~Flags&s}function SetFlag(s){Flags|=s}function ClearFlag(s){Flags&=~s}function pass_t(){this.satname="",this.sat=null,this.aos=0,this.tca=0,this.los=0,this.max_el=0,this.aos_az=0,this.los_az=0,this.orbit=0,this.maxel_az=0,this.details=new Array}function pass_detail_t(){this.time=0,this.pos=new vector_t,this.vel=new vector_t,this.velo=0,this.az=0,this.el=0,this.range=0,this.range_rate=0,this.lat=0,this.lon=0,this.alt=0,this.ma=0,this.phase=0,this.footprint=0,this.orbit=0}function predict_calc(s,e,t){var a=new obs_set_t,p=new Geodetic_t,o=new Geodetic_t,d=0;for(o.lon=e.lon*de2ra,o.lat=e.lat*de2ra,o.alt=e.alt/1e3,o.theta=0,s.jul_utc=t,s.tsince=(s.jul_utc-s.jul_epoch)*xmnpda,s.flags&DEEP_SPACE_EPHEM_FLAG?SDP4(s,s.tsince):SGP4(s,s.tsince),Convert_Sat_State(s.pos,s.vel),Magnitude(s.vel),s.velo=s.vel.w,Calculate_Obs(s.jul_utc,s.pos,s.vel,o,a),Calculate_LatLonAlt(s.jul_utc,s.pos,p);p.lon<-pi;)p.lon+=twopi;for(;p.lon>pi;)p.lon-=twopi;s.az=degrees(a.az),s.el=degrees(a.el),s.range=a.range,s.range_rate=a.range_rate,s.ssplat=degrees(p.lat),s.ssplon=degrees(p.lon),s.alt=p.alt,s.ma=degrees(s.phase),s.ma*=256/360,s.phase=degrees(s.phase),s.footprint=12756.33*acos(xkmper/(xkmper+s.alt)),d=s.jul_utc-s.jul_epoch,s.orbit=floor((s.tle.xno*xmnpda/twopi+d*s.tle.bstar*ae)*d+s.tle.xmo/twopi)+s.tle.revnum-1}function find_aos(s,e,t,a){var p=t,o=0;if(predict_calc(s,e,t),s.otype==ORBIT_TYPE_GEO||s.otype==ORBIT_TYPE_DECAYED||!has_aos(s,e))return 0;if(s.el>0&&(p=find_los(s,e,t,a)+.014),p<.1)return 0;if(predict_calc(s,e,p),a>0){for(;s.el<-1&&p<=t+a;)p-=35e-5*(s.el*(s.alt/8400+.46)-2),predict_calc(s,e,p);for(;0==o&&p<=t+a;)fabs(s.el)<.005?o=p:(p-=s.el*sqrt(s.alt)/53e4,predict_calc(s,e,p))}else{for(;s.el<-1;)p-=35e-5*(s.el*(s.alt/8400+.46)-2),predict_calc(s,e,p);for(;0==o;)fabs(s.el)<.005?o=p:(p-=s.el*sqrt(s.alt)/53e4,predict_calc(s,e,p))}return o}function find_los(s,e,t,a){var p=t,o=0;if(predict_calc(s,e,t),s.otype==ORBIT_TYPE_GEO||s.otype==ORBIT_TYPE_DECAYED||!has_aos(s,e))return 0;if(s.el<0&&(p=find_aos(s,e,t,a)+.001),p<.01)return 0;if(predict_calc(s,e,p),a>0){for(;s.el>=1&&p<=t+a;)p+=cos((s.el-1)*de2ra)*sqrt(s.alt)/25e3,predict_calc(s,e,p);for(;0==o&&p<=t+a;)p+=s.el*sqrt(s.alt)/502500,predict_calc(s,e,p),fabs(s.el)<.005&&(o=p)}else{for(;s.el>=1;)p+=cos((s.el-1)*de2ra)*sqrt(s.alt)/25e3,predict_calc(s,e,p);for(;0==o;)p+=s.el*sqrt(s.alt)/502500,predict_calc(s,e,p),fabs(s.el)<.005&&(o=p)}return o}function find_prev_aos(s,e,t){var a=t;if(predict_calc(s,e,t),s.otype==ORBIT_TYPE_GEO||s.otype==ORBIT_TYPE_DECAYED||!has_aos(s,e))return 0;for(;s.el>=0;)a-=5e-4,predict_calc(s,e,a);return a}function get_next_passes(s,e,t,a){return get_passes(s,e,julian_date(new Date),t,a)}function get_pass(s,e,t,a,p){var o,d,i=0,r=0,n=0,g=0,_=0,l=t,h=0,c=0,x=!1,f=0;for(h=SAT_CFG_INT_PRED_RESOLUTION/86400;!x;)if(n=find_los(s,e,l,a),i=find_aos(s,e,l,a),i>n&&(i=find_prev_aos(s,e,l)),0==i)x=!0;else if(a>0&&i>t+a)x=!0;else{for(g=n-i,_=g/SAT_CFG_INT_PRED_NUM_ENTRIES,_<h&&(_=h),p=new pass_t,p.sat=s,p.aos=i,p.los=n,p.satname=s.nickname,o=p.aos;o<=p.los;o+=_)predict_calc(s,e,o),o==p.aos&&(p.aos_az=s.az,p.orbit=s.orbit),d=new pass_detail_t,d.time=o,d.pos.x=s.pos.x,d.pos.y=s.pos.y,d.pos.z=s.pos.z,d.pos.w=s.pos.w,d.vel.x=s.vel.x,d.vel.y=s.vel.y,d.vel.z=s.vel.z,d.vel.w=s.vel.w,d.velo=s.velo,d.az=s.az,d.el=s.el,d.range=s.range,d.range_rate=s.range_rate,d.lat=s.ssplat,d.lon=s.ssplon,d.alt=s.alt,d.ma=s.ma,d.phase=s.phase,d.footprint=s.footprint,d.orbit=s.orbit,p.details.push(d),s.el>c&&(c=s.el,r=o,p.maxel_az=s.az);predict_calc(s,e,p.los),p.los_az=s.az,p.max_el=c,p.tca=r,c>=SAT_CFG_INT_PRED_MIN_EL?x=!0:(x=!1,l=n+.014,p=null),f++}return p}function get_passes(s,e,t,a,p){var o,d,i,r=new Array;for(0==p&&(p=100),i=t,d=0;d<p;d++)o=get_pass(s,e,i,a),null!=o?(r.push(o),i=o.los+.014,a>0&&i>=t+a&&(d=p)):d=p;return r}function julian_date_of_Epoch(s){var e,t;return e=Int(.001*s),t=1e3*Frac(.001*s),e+=e<57?2e3:1900,julian_date_of_Year(e)+t}function Epoch_Time(s){var e,t,a=new tm;return Calendar_Date(s,a),e=a.getUTCFullYear()%100,t=Frac(s+.5),1e3*e+DOY(a.getUTCFullYear(),a.getUTCMonth()+1,a.getUTCDate())+t}function DOY(s,e,t){var a,p,o=new Array(31,28,31,30,31,30,31,31,30,31,30,31);for(p=0,a=0;a<e-1;a++)p+=o[a];return p+=t,s%4==0&&(s%100!=0||s%400==0)&&e>2&&p++,p}function Fraction_of_Day(s,e,t){return(s+(e+t/60)/60)/24}function Calendar_Date(s,e){var t,a,p,o,d,i,r,n,g,_,l,h;h=.5/secday/1e3,n=Frac(s+.5),n+h>=1&&(s+=h,n=0),t=Round(s),t<2299161?p=t:(g=Int((t-1867216.25)/36524.25),p=t+1+g-Int(g/4)),o=p+1524,d=Int((o-122.1)/365.25),i=Int(365.25*d),r=Int((o-i)/30.6001),_=o-i-Int(30.6001*r)+n,a=Round(r<13.5?r-1:r-13),l=a>2.5?d-4716:d-4715,e.setUTCFullYear(Int(l)),e.setUTCMonth(a-1),e.setUTCDate(floor(_))}function Time_of_Day(s,e){var t,a,p,o;o=Frac(s-.5)*secday,o=Round(o),t=floor(o/3600),o-=3600*t,24==t&&(t=0),a=floor(o/60),p=o-60*a,e.setUTCHours(t),e.setUTCMinutes(a),e.setUTCSeconds(p)}function julian_date(s){return julian_date_of_Year(s.getUTCFullYear())+DOY(s.getUTCFullYear(),s.getUTCMonth()+1,s.getUTCDate())+Fraction_of_Day(s.getUTCHours(),s.getUTCMinutes(),s.getUTCSeconds())}function Date_Time(s){return new Date(864e5*(s-2440587.5))}function Delta_ET(s){return 26.465+.747622*(s-1950)+1.886913*sin(twopi*(s-1975)/33)}function julian_date_of_Year(s){var e,t,a;return s-=1,a=Int(s/100),e=a,a=Int(e/4),t=2-e+a,a=Int(365.25*s),a+=Int(428.4014),a+1720994.5+t}function ThetaG(s,e){var t,a,p,o,d,i;return t=Int(.001*s),a=1e3*Frac(.001*s),t+=t<57?2e3:1900,p=Frac(a),a=Int(a),o=julian_date_of_Year(t)+a,d=(o-2451545)/36525,i=24110.54841+d*(8640184.812866+d*(.093104-62e-7*d)),i=Modulus(i+secday*omega_E*p,secday),twopi*i/secday,e.ds50=o-2433281.5+p,FMod2p(6.3003880987*e.ds50+1.72944494)}function ThetaG_JD(s){var e,t,a;return e=Frac(s+.5),s-=e,t=(s-2451545)/36525,a=24110.54841+t*(8640184.812866+t*(.093104-62e-7*t)),a=Modulus(a+secday*omega_E*e,secday),twopi*a/secday}function Calculate_User_PosVel(s,e,t,a){var p,o,d;e.theta=(ThetaG_JD(s)+e.lon)%twopi,p=1/Math.sqrt(1+__f*(__f-2)*Sqr(sin(e.lat))),o=Sqr(1-__f)*p,d=(xkmper*p+e.alt)*Math.cos(e.lat),t.x=d*Math.cos(e.theta),t.y=d*Math.sin(e.theta),t.z=(xkmper*o+e.alt)*Math.sin(e.lat),a.x=-mfactor*t.y,a.y=mfactor*t.x,a.z=0,Magnitude(t),Magnitude(a)}function Calculate_LatLonAlt(s,e,t){var a,p,o,d;t.theta=AcTan(e.y,e.x),t.lon=FMod2p(t.theta-ThetaG_JD(s)),a=sqrt(Sqr(e.x)+Sqr(e.y)),p=__f*(2-__f),t.lat=AcTan(e.z,a);do{o=t.lat,d=1/sqrt(1-p*Sqr(sin(o))),t.lat=AcTan(e.z+xkmper*d*p*Math.sin(o),a)}while(fabs(t.lat-o)>=1e-10);t.alt=a/Math.cos(t.lat)-xkmper*d,t.lat>pio2&&(t.lat-=twopi)}function Calculate_Obs(s,e,t,a,p){var o,d,i,r,n,g,_,l,h,c=new vector_t,x=new vector_t,f=new vector_t,m=new vector_t;Calculate_User_PosVel(s,a,c,x),f.x=e.x-c.x,f.y=e.y-c.y,f.z=e.z-c.z,m.x=t.x-x.x,m.y=t.y-x.y,m.z=t.z-x.z,Magnitude(f),o=Math.sin(a.lat),d=Math.cos(a.lat),i=Math.sin(a.theta),r=Math.cos(a.theta),_=o*r*f.x+o*i*f.y-d*f.z,l=-i*f.x+r*f.y,h=d*r*f.x+d*i*f.y+o*f.z,g=atan(-l/_),_>0&&(g+=pi),g<0&&(g+=twopi),n=ArcSin(h/f.w),p.az=g,p.el=n,p.range=f.w,p.range_rate=Dot(f,m)/f.w,p.el>=0?SetFlag(VISIBLE_FLAG):(p.el=n,ClearFlag(VISIBLE_FLAG))}function Calculate_RADec_and_Obs(s,e,t,a,p){var o,d,i,r,n,g,_,l,h,c,x,f,m,u,M,E,T,A,z,S,q,b,O,w,I,L,F=new obs_set_t;Calculate_Obs(s,e,t,a,F),_=F.az,l=F.el,o=a.lat,d=FMod2p(ThetaG_JD(s)+a.lon),i=Math.sin(d),r=Math.cos(d),n=Math.sin(o),g=Math.cos(o),h=-cos(_)*Math.cos(l),c=Math.sin(_)*Math.cos(l),x=Math.sin(l),f=n*r,m=-i,u=r*g,M=n*i,E=r,T=i*g,A=-g,z=0,S=n,q=f*h+m*c+u*x,b=M*h+E*c+T*x,O=A*h+z*c+S*x,p.dec=ArcSin(O),w=sqrt(1-Sqr(O)),I=b/w,L=q/w,p.ra=AcTan(I,L),p.ra=FMod2p(p.ra)}function gtk_sat_data_read_sat(s,e){Convert_Satellite_Data(s,e.tle),e.name=e.tle.sat_name.trim(),e.nickname=e.name,e.flags=0,select_ephemeris(e),e.jul_utc=0,e.tsince=0,e.az=0,e.el=0,e.range=0,e.range_rate=0,
e.ra=0,e.dec=0,e.ssplat=0,e.ssplon=0,e.alt=0,e.velo=0,e.ma=0,e.footprint=0,e.phase=0,e.aos=0,e.los=0,gtk_sat_data_init_sat(e)}function gtk_sat_data_init_sat(s){var e,t,a=new Geodetic_t;for(e=julian_date_of_Epoch(s.tle.epoch),s.jul_epoch=e,s.flags&DEEP_SPACE_EPHEM_FLAG?SDP4(s,0):SGP4(s,0),Convert_Sat_State(s.pos,s.vel),Magnitude(s.vel),s.velo=s.vel.w,Calculate_LatLonAlt(e,s.pos,a);a.lon<-pi;)a.lon+=twopi;for(;a.lon>pi;)a.lon-=twopi;s.ssplat=degrees(a.lat),s.ssplon=degrees(a.lon),s.alt=a.alt,s.ma=degrees(s.phase),s.ma*=256/360,s.footprint=2*xkmper*acos(xkmper/s.pos.w),t=0,s.orbit=floor((s.tle.xno*xmnpda/twopi+t*s.tle.bstar*ae)*t+s.tle.xmo/twopi)+s.tle.revnum-1,s.otype=get_orbit_type(s)}function qth_t(){this.lat=0,this.lon=0,this.alt=0}function Sign(s){return s>0?1:s<0?-1:0}function Sqr(s){return s*s}function Cube(s){return s*s*s}function radians(s){return s*de2ra}function degrees(s){return s/de2ra}function arccos(s,e){if(s&&e){if(e>0)return Math.acos(s/e);if(e<0)return pi+Math.acos(s/e)}return 0}function Magnitude(s){s.w=sqrt(Sqr(s.x)+Sqr(s.y)+Sqr(s.z))}function Vec_Add(s,e,t){t.x=s.x+e.x,t.y=s.y+e.y,t.z=s.z+e.z,Magnitude(t)}function Vec_Sub(s,e,t){t.x=s.x-e.x,t.y=s.y-e.y,t.z=s.z-e.z,Magnitude(t)}function Scalar_Multiply(s,e,t){t.x=s*e.x,t.y=s*e.y,t.z=s*e.z,t.w=fabs(s)*e.w}function Scale_Vector(s,e){e.x*=s,e.y*=s,e.z*=s,Magnitude(e)}function Dot(s,e){return s.x*e.x+s.y*e.y+s.z*e.z}function Angle(s,e){return Magnitude(s),Magnitude(e),ArcCos(Dot(s,e)/(s.w*e.w))}function Cross(s,e,t){t.x=s.y*e.z-s.z*e.y,t.y=s.z*e.x-s.x*e.z,t.z=s.x*e.y-s.y*e.x,Magnitude(t)}function Normalize(s){s.x/=s.w,s.y/=s.w,s.z/=s.w}function FMod2p(s){return s%twopi}function Modulus(s,e){return s%e}function Frac(s){return s-floor(s)}function Convert_Sat_State(s,e){Scale_Vector(xkmper,s),Scale_Vector(xkmper*xmnpda/secday,e)}var ORBIT_TYPE_UNKNOWN=0,ORBIT_TYPE_LEO=1,ORBIT_TYPE_ICO=2,ORBIT_TYPE_GEO=3,ORBIT_TYPE_GSO=4,ORBIT_TYPE_MOLNIYA=5,ORBIT_TYPE_TUNDRA=6,ORBIT_TYPE_POLAR=7,ORBIT_TYPE_SUNSYNC=8,ORBIT_TYPE_DECAYED=9,OP_STAT_UNKNOWN=0,OP_STAT_OPERATIONAL=1,OP_STAT_NONOP=2,OP_STAT_PARTIAL=3,OP_STAT_STDBY=4,OP_STAT_SPARE=5,OP_STAT_EXTENDED=6,de2ra=.0174532925,pi=3.1415926535898,pio2=1.5707963267949,x3pio2=4.71238898,twopi=6.2831853071796,e6a=1e-6,tothrd=.66666667,xj2=.0010826158,xj3=-253881e-11,xj4=-165597e-11,xke=.0743669161,xkmper=6378.135,xmnpda=1440,ae=1,ck2=.0005413079,ck4=6.209887e-7,__f=.003352779,ge=398600.8,__s__=1.012229,qoms2t=1.880279e-9,secday=86400,omega_E=1.0027379,omega_ER=6.3003879,zns=119459e-10,c1ss=29864797e-13,zes=.01675,znl=.00015835218,c1l=4.7968065e-7,zel=.0549,zcosis=.91744867,zsinis=.39785416,zsings=-.98088458,zcosgs=.1945905,zcoshs=1,zsinhs=0,q22=17891679e-13,q31=21460748e-13,q33=2.2123015e-7,g22=5.7686396,g32=.95240898,g44=1.8014998,g52=1.050833,g54=4.4108898,root22=17891679e-13,root32=3.7393792e-7,root44=7.3636953e-9,root52=1.1428639e-7,root54=2.1765803e-9,thdt=.0043752691,rho=.15696615,mfactor=7292115e-11,__sr__=696e3,AU=149597870,dpinit=1,dpsec=2,dpper=3,CR=10,LF=13,ALL_FLAGS=-1,SGP_INITIALIZED_FLAG=1,SGP4_INITIALIZED_FLAG=2,SDP4_INITIALIZED_FLAG=4,SGP8_INITIALIZED_FLAG=8,SDP8_INITIALIZED_FLAG=16,SIMPLE_FLAG=32,DEEP_SPACE_EPHEM_FLAG=64,LUNAR_TERMS_DONE_FLAG=128,NEW_EPHEMERIS_FLAG=256,DO_LOOP_FLAG=512,RESONANCE_FLAG=1024,SYNCHRONOUS_FLAG=2048,EPOCH_RESTART_FLAG=4096,VISIBLE_FLAG=8192,SAT_ECLIPSED_FLAG=16384,Flags=0,sin=Math.sin,cos=Math.cos,sqrt=Math.sqrt,floor=Math.floor,pow=Math.pow,fabs=Math.abs,acos=Math.acos,asin=Math.asin,atan=Math.atan,ArcSin=Math.asin,ArcCos=Math.acos,AcTan=Math.atan2,Round=Math.round,Int=Math.floor;