京东登录,有一个参数nloginpwd,是加密字段。

第一步:浏览器抓包

    

第二部:搜索加密字段 js 代码

    

第三部: 下断点

  

  2.

   

  

js代码:

var navigator ={};
var window={};
var Base64={};
var ASN1={};
var Hex={}; (function(a, b) {if (typeof define === "function" &&define.amd) {define(["exports"], b)
}else{if (typeof exports === "object" && typeof exports.nodeName !== "string") {b(module.exports)}else{b(a)}
}
})(this,
function(ap) {
var bE;
var n= 244837814094590;
var aV= ((n & 16777215) == 15715070);
function bf(z, t, L) {if (z !=null) {if ("number" ==typeof z) {this.fromNumber(z, t, L)}else{if (t == null && "string" !=typeof z) {this.fromString(z,256)}else{this.fromString(z, t)}}}
}
function bm() {returnnew bf(null)
}
function a7(bX, t, z, bW, bZ, bY) {while (--bY >=0) {var L= t * this[bX++] + z[bW] +bZ;bZ= Math.floor(L / 67108864);z[bW++] = L & 67108863}returnbZ
}
function a6(bX, b2, b3, bW, b0, t) {var bZ= b2 & 32767,b1= b2 >> 15;while (--t >=0) {var L= this[bX] & 32767;var bY= this[bX++] >> 15;var z= b1 * L + bY *bZ;L= bZ * L + ((z & 32767) << 15) + b3[bW] + (b0 & 1073741823);b0= (L >>> 30) + (z >>> 15) + b1 * bY + (b0 >>> 30);b3[bW++] = L & 1073741823}returnb0
}
function a5(bX, b2, b3, bW, b0, t) {var bZ= b2 & 16383,b1= b2 >> 14;while (--t >=0) {var L= this[bX] & 16383;var bY= this[bX++] >> 14;var z= b1 * L + bY *bZ;L= bZ * L + ((z & 16383) << 14) + b3[bW] +b0;b0= (L >> 28) + (z >> 14) + b1 *bY;b3[bW++] = L & 268435455}returnb0
}if (aV && (navigator.appName == "Microsoft Internet Explorer")) {bf.prototype.am=a6;bE= 30}else{if (aV && (navigator.appName != "Netscape")) {bf.prototype.am=a7;bE= 26}else{bf.prototype.am=a5;bE= 28}
}
bf.prototype.DB=bE;
bf.prototype.DM= ((1 << bE) - 1);
bf.prototype.DV= (1 <<bE);
var bQ= 52;
bf.prototype.FV= Math.pow(2, bQ);
bf.prototype.F1= bQ -bE;
bf.prototype.F2= 2 * bE -bQ;
var a= "0123456789abcdefghijklmnopqrstuvwxyz";
var g=new Array();
var aH, E;
aH= "0".charCodeAt(0);for (E = 0; E <= 9; ++E) {g[aH++] =E
}
aH= "a".charCodeAt(0);for (E = 10; E < 36; ++E) {g[aH++] =E
}
aH= "A".charCodeAt(0);for (E = 10; E < 36; ++E) {g[aH++] =E
}
function Y(t) {returna.charAt(t)
}
function aX(z, t) {var L=g[z.charCodeAt(t)];return (L == null) ? -1: L
}
function d(z) {for (var t = this.t - 1; t >= 0; --t) {z[t]=this[t]}z.t=this.t;z.s=this.s
}
function h(t) {this.t= 1;this.s= (t < 0) ? -1: 0;if (t >0) {this[0]=t}else{if (t < -1) {this[0]= t +this.DV}else{this.t=0}}
}
function bi(t) {var z=bm();z.fromInt(t);returnz
}
function bI(bZ, z) {var bW;if (z == 16) {bW= 4}else{if (z == 8) {bW= 3}else{if (z == 256) {bW= 8}else{if (z == 2) {bW= 1}else{if (z == 32) {bW= 5}else{if (z == 4) {bW= 2}else{this.fromRadix(bZ, z);return}}}}}}this.t=0;this.s=0;var bY=bZ.length,L=false,bX=0;while (--bY >=0) {var t= (bW == 8) ? bZ[bY] & 255: aX(bZ, bY);if (t <0) {if (bZ.charAt(bY) == "-") {L=true}continue}L=false;if (bX ==0) {this[this.t++] =t}else{if (bX + bW >this.DB) {this[this.t- 1] |= (t & ((1 << (this.DB - bX)) - 1)) <<bX;this[this.t++] = (t >> (this.DB -bX))}else{this[this.t- 1] |= t <<bX}}bX+=bW;if (bX >=this.DB) {bX-=this.DB}}if (bW == 8 && (bZ[0] & 128) !=0) {this.s= -1;if (bX >0) {this[this.t- 1] |= ((1 << (this.DB - bX)) - 1) <<bX}}this.clamp();if(L) {bf.ZERO.subTo(this, this)}
}
function bA() {var t= this.s &this.DM;while (this.t > 0 && this[this.t - 1] == t) {--this.t}
}
function u(z) {if (this.s <0) {return "-" +this.negate().toString(z)}var L;if (z == 16) {L= 4}else{if (z == 8) {L= 3}else{if (z == 2) {L= 1}else{if (z == 32) {L= 5}else{if (z == 4) {L= 2}else{returnthis.toRadix(z)}}}}}var bX= (1 << L) - 1,b0,t=false,bY= "",bW=this.t;var bZ= this.DB - (bW * this.DB) %L;if (bW-->0) {if (bZ < this.DB && (b0 = this[bW] >> bZ) >0) {t=true;bY=Y(b0)}while (bW >=0) {if (bZ <L) {b0= (this[bW] & ((1 << bZ) - 1)) << (L -bZ);b0|= this[--bW] >> (bZ += this.DB -L)}else{b0= (this[bW] >> (bZ -= L)) &bX;if (bZ <=0) {bZ+= this.DB; --bW}}if (b0 >0) {t=true}if(t) {bY+=Y(b0)}}}return t ? bY: "0"}
function bC() {var t=bm();bf.ZERO.subTo(this, t);returnt
}
function bB() {return (this.s <0) ? this.negate() : this
}
function bN(t) {var L= this.s -t.s;if (L !=0) {returnL}var z=this.t;L= z -t.t;if (L !=0) {return (this.s < 0) ? -L: L}while (--z >=0) {if ((L = this[z] - t[z]) !=0) {returnL}}return0
}
function q(z) {var bW= 1,L;if ((L = z >>> 16) !=0) {z=L;bW+= 16}if ((L = z >> 8) !=0) {z=L;bW+= 8}if ((L = z >> 4) !=0) {z=L;bW+= 4}if ((L = z >> 2) !=0) {z=L;bW+= 2}if ((L = z >> 1) !=0) {z=L;bW+= 1}returnbW
}
function bt() {if (this.t <=0) {return0}return this.DB * (this.t - 1) + q(this[this.t - 1] ^ (this.s &this.DM))
}
function bv(L, z) {var t;for (t = this.t - 1; t >= 0; --t) {z[t+ L] =this[t]}for (t = L - 1; t >= 0; --t) {z[t]=0}z.t= this.t +L;z.s=this.s
}
function a2(L, z) {for (var t = L; t < this.t; ++t) {z[t- L] =this[t]}z.t= Math.max(this.t -L, 0);z.s=this.s
}
function s(b0, bW) {var z= b0 %this.DB;var t= this.DB -z;var bY= (1 << t) - 1;var bX= Math.floor(b0 /this.DB),bZ= (this.s << z) &this.DM,L;for (L = this.t - 1; L >= 0; --L) {bW[L+ bX + 1] = (this[L] >> t) |bZ;bZ= (this[L] & bY) <<z}for (L = bX - 1; L >= 0; --L) {bW[L]=0}bW[bX]=bZ;bW.t= this.t + bX + 1;bW.s=this.s;bW.clamp()
}
function bT(bZ, bW) {bW.s=this.s;var bX= Math.floor(bZ /this.DB);if (bX >=this.t) {bW.t=0;return}var z= bZ %this.DB;var t= this.DB -z;var bY= (1 << z) - 1;bW[0]= this[bX] >>z;for (var L = bX + 1; L < this.t; ++L) {bW[L- bX - 1] |= (this[L] & bY) <<t;bW[L- bX] = this[L] >>z}if (z >0) {bW[this.t- bX - 1] |= (this.s & bY) <<t}bW.t= this.t -bX;bW.clamp()
}
function bs(z, bW) {var L=0,bX=0,t=Math.min(z.t, this.t);while (L <t) {bX+= this[L] -z[L];bW[L++] = bX &this.DM;bX>>=this.DB}if (z.t <this.t) {bX-=z.s;while (L <this.t) {bX+=this[L];bW[L++] = bX &this.DM;bX>>=this.DB}bX+=this.s}else{bX+=this.s;while (L <z.t) {bX-=z[L];bW[L++] = bX &this.DM;bX>>=this.DB}bX-=z.s}bW.s= (bX < 0) ? -1: 0;if (bX < -1) {bW[L++] = this.DV +bX}else{if (bX >0) {bW[L++] =bX}}bW.t=L;bW.clamp()
}
function bJ(z, bW) {var t=this.abs(),bX=z.abs();var L=t.t;bW.t= L +bX.t;while (--L >=0) {bW[L]=0}for (L = 0; L < bX.t; ++L) {bW[L+ t.t] =t.am(0, bX[L], bW, L, 0, t.t)}bW.s=0;bW.clamp();if (this.s !=z.s) {bf.ZERO.subTo(bW, bW)}
}
function au(L) {var t=this.abs();var z= L.t = 2 *t.t;while (--z >=0) {L[z]=0}for (z = 0; z < t.t - 1; ++z) {var bW= t.am(z, t[z], L, 2 * z, 0, 1);if ((L[z + t.t] += t.am(z + 1, 2 * t[z], L, 2 * z + 1, bW, t.t - z - 1)) >=t.DV) {L[z+ t.t] -=t.DV;L[z+ t.t + 1] = 1}}if (L.t >0) {L[L.t- 1] += t.am(z, t[z], L, 2 * z, 0, 1)}L.s=0;L.clamp()
}
function a9(b3, b0, bZ) {var b9=b3.abs();if (b9.t <=0) {return}var b1=this.abs();if (b1.t <b9.t) {if (b0 !=null) {b0.fromInt(0)}if (bZ !=null) {this.copyTo(bZ)}return}if (bZ ==null) {bZ=bm()}var bX=bm(),z=this.s,b2=b3.s;var b8= this.DB - q(b9[b9.t - 1]);if (b8 >0) {b9.lShiftTo(b8, bX);b1.lShiftTo(b8, bZ)}else{b9.copyTo(bX);b1.copyTo(bZ)}var b5=bX.t;var L= bX[b5 - 1];if (L ==0) {return}var b4= L * (1 << this.F1) + ((b5 > 1) ? bX[b5 - 2] >>this.F2: 0);var cc= this.FV /b4,cb= (1 << this.F1) /b4,ca= 1 <<this.F2;var b7=bZ.t,b6= b7 -b5,bY= (b0 ==null) ? bm() : b0;bX.dlShiftTo(b6, bY);if (bZ.compareTo(bY) >=0) {bZ[bZ.t++] = 1;bZ.subTo(bY, bZ)}bf.ONE.dlShiftTo(b5, bY);bY.subTo(bX, bX);while (bX.t <b5) {bX[bX.t++] =0}while (--b6 >=0) {var bW= (bZ[--b7] == L) ? this.DM: Math.floor(bZ[b7] * cc + (bZ[b7 - 1] + ca) *cb);if ((bZ[b7] += bX.am(0, bW, bZ, b6, 0, b5)) <bW) {bX.dlShiftTo(b6, bY);bZ.subTo(bY, bZ);while (bZ[b7] < --bW) {bZ.subTo(bY, bZ)}}}if (b0 !=null) {bZ.drShiftTo(b5, b0);if (z !=b2) {bf.ZERO.subTo(b0, b0)}}bZ.t=b5;bZ.clamp();if (b8 >0) {bZ.rShiftTo(b8, bZ)}if (z <0) {bf.ZERO.subTo(bZ, bZ)}
}
function bh(t) {var z=bm();this.abs().divRemTo(t, null, z);if (this.s < 0 && z.compareTo(bf.ZERO) >0) {t.subTo(z, z)}returnz
}
function aT(t) {this.m=t
}
function aI(t) {if (t.s < 0 || t.compareTo(this.m) >=0) {returnt.mod(this.m)}else{returnt}
}
function c(t) {returnt
}
function V(t) {t.divRemTo(this.m, null, t)
}
function p(t, L, z) {t.multiplyTo(L, z);this.reduce(z)
}
function aF(t, z) {t.squareTo(z);this.reduce(z)
}
aT.prototype.convert=aI;
aT.prototype.revert=c;
aT.prototype.reduce=V;
aT.prototype.mulTo=p;
aT.prototype.sqrTo=aF;
function ab() {if (this.t < 1) {return0}var t=this[0];if ((t & 1) ==0) {return0}var z= t & 3;z= (z * (2 - (t & 15) * z)) & 15;z= (z * (2 - (t & 255) * z)) & 255;z= (z * (2 - (((t & 65535) * z) & 65535))) & 65535;z= (z * (2 - t * z % this.DV)) %this.DV;return (z > 0) ? this.DV - z: -z
}
function K(t) {this.m=t;this.mp=t.invDigit();this.mpl= this.mp & 32767;this.mph= this.mp >> 15;this.um= (1 << (t.DB - 15)) - 1;this.mt2= 2 *t.t
}
function by(t) {var z=bm();t.abs().dlShiftTo(this.m.t, z);z.divRemTo(this.m, null, z);if (t.s < 0 && z.compareTo(bf.ZERO) >0) {this.m.subTo(z, z)}returnz
}
function bl(t) {var z=bm();t.copyTo(z);this.reduce(z);returnz
}
function bV(t) {while (t.t <=this.mt2) {t[t.t++] =0}for (var L = 0; L < this.m.t; ++L) {var z= t[L] & 32767;var bW= (z * this.mpl + (((z * this.mph + (t[L] >> 15) * this.mpl) & this.um) << 15)) &t.DM;z= L +this.m.t;t[z]+=this.m.am(0, bW, t, L, 0, this.m.t);while (t[z] >=t.DV) {t[z]-=t.DV;t[++z]++}}t.clamp();t.drShiftTo(this.m.t, t);if (t.compareTo(this.m) >=0) {t.subTo(this.m, t)}
}
function ac(t, z) {t.squareTo(z);this.reduce(z)
}
function bz(t, L, z) {t.multiplyTo(L, z);this.reduce(z)
}
K.prototype.convert=by;
K.prototype.revert=bl;
K.prototype.reduce=bV;
K.prototype.mulTo=bz;
K.prototype.sqrTo=ac;
function ad() {return ((this.t > 0) ? (this[0] & 1) : this.s) ==0
}
function am(b0, b1) {if (b0 > 4294967295 || b0 < 1) {returnbf.ONE}var bZ=bm(),L=bm(),bY=b1.convert(this),bX= q(b0) - 1;bY.copyTo(bZ);while (--bX >=0) {b1.sqrTo(bZ, L);if ((b0 & (1 << bX)) >0) {b1.mulTo(L, bY, bZ)}else{var bW=bZ;bZ=L;L=bW}}returnb1.revert(bZ)
}
function aG(L, t) {var bW;if (L < 256 ||t.isEven()) {bW=new aT(t)}else{bW=new K(t)}returnthis.exp(L, bW)
}
bf.prototype.copyTo=d;
bf.prototype.fromInt=h;
bf.prototype.fromString=bI;
bf.prototype.clamp=bA;
bf.prototype.dlShiftTo=bv;
bf.prototype.drShiftTo=a2;
bf.prototype.lShiftTo=s;
bf.prototype.rShiftTo=bT;
bf.prototype.subTo=bs;
bf.prototype.multiplyTo=bJ;
bf.prototype.squareTo=au;
bf.prototype.divRemTo=a9;
bf.prototype.invDigit=ab;
bf.prototype.isEven=ad;
bf.prototype.exp=am;
bf.prototype.toString=u;
bf.prototype.negate=bC;
bf.prototype.abs=bB;
bf.prototype.compareTo=bN;
bf.prototype.bitLength=bt;
bf.prototype.mod=bh;
bf.prototype.modPowInt=aG;
bf.ZERO=bi(0);
bf.ONE= bi(1);
function f() {var t=bm();this.copyTo(t);returnt
}
function b() {if (this.s <0) {if (this.t == 1) {return this[0] -this.DV}else{if (this.t ==0) {return - 1}}}else{if (this.t == 1) {returnthis[0]}else{if (this.t ==0) {return0}}}return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) |this[0]
}
function bF() {return (this.t == 0) ? this.s: (this[0] << 24) >> 24}
function ag() {return (this.t == 0) ? this.s: (this[0] << 16) >> 16}
function aU(t) {return Math.floor(Math.LN2 * this.DB /Math.log(t))
}
function aZ() {if (this.s <0) {return - 1}else{if (this.t <= 0 || (this.t == 1 && this[0] <=0)) {return0}else{return 1}}
}
function I(t) {if (t ==null) {t= 10}if (this.signum() == 0 || t < 2 || t > 36) {return "0"}var bW=this.chunkSize(t);var L=Math.pow(t, bW);var bZ=bi(L),b0=bm(),bY=bm(),bX= "";this.divRemTo(bZ, b0, bY);while (b0.signum() >0) {bX= (L + bY.intValue()).toString(t).substr(1) +bX;b0.divRemTo(bZ, b0, bY)}return bY.intValue().toString(t) +bX
}
function av(b1, bY) {this.fromInt(0);if (bY ==null) {bY= 10}var bW=this.chunkSize(bY);var bX=Math.pow(bY, bW),L=false,t=0,b0=0;for (var z = 0; z < b1.length; ++z) {var bZ=aX(b1, z);if (bZ <0) {if (b1.charAt(z) == "-" && this.signum() ==0) {L=true}continue}b0= bY * b0 +bZ;if (++t >=bW) {this.dMultiply(bX);this.dAddOffset(b0, 0);t=0;b0=0}}if (t >0) {this.dMultiply(Math.pow(bY, t));this.dAddOffset(b0, 0)}if(L) {bf.ZERO.subTo(this, this)}
}
function aP(bW, L, bY) {if ("number" ==typeof L) {if (bW < 2) {this.fromInt(1)}else{this.fromNumber(bW, bY);if (!this.testBit(bW - 1)) {this.bitwiseTo(bf.ONE.shiftLeft(bW- 1), ak, this)}if(this.isEven()) {this.dAddOffset(1, 0)}while(!this.isProbablePrime(L)) {this.dAddOffset(2, 0);if (this.bitLength() >bW) {this.subTo(bf.ONE.shiftLeft(bW- 1), this)}}}}else{var z=new Array(),bX= bW & 7;z.length= (bW >> 3) + 1;L.nextBytes(z);if (bX >0) {z[0]&= ((1 << bX) - 1)}else{z[0]=0}this.fromString(z,256)}
}
function aK() {var z=this.t,L=new Array();L[0]=this.s;var bW= this.DB - (z * this.DB) % 8,bX,t=0;if (z-->0) {if (bW < this.DB && (bX = this[z] >> bW) != (this.s & this.DM) >>bW) {L[t++] = bX | (this.s << (this.DB -bW))}while (z >=0) {if (bW < 8) {bX= (this[z] & ((1 << bW) - 1)) << (8 -bW);bX|= this[--z] >> (bW += this.DB - 8)}else{bX= (this[z] >> (bW -= 8)) & 255;if (bW <=0) {bW+= this.DB; --z}}if ((bX & 128) !=0) {bX|= -256}if (t == 0 && (this.s & 128) != (bX & 128)) {++t}if (t > 0 || bX !=this.s) {L[t++] =bX}}}returnL
}
function bG(t) {return (this.compareTo(t) ==0)
}
function W(t) {return (this.compareTo(t) <0) ? this: t
}
function bu(t) {return (this.compareTo(t) >0) ? this: t
}
function aJ(z, bY, bW) {var L, bX, t=Math.min(z.t, this.t);for (L = 0; L < t; ++L) {bW[L]=bY(this[L], z[L])}if (z.t <this.t) {bX= z.s &this.DM;for (L = t; L < this.t; ++L) {bW[L]=bY(this[L], bX)}bW.t=this.t}else{bX= this.s &this.DM;for (L = t; L < z.t; ++L) {bW[L]=bY(bX, z[L])}bW.t=z.t}bW.s=bY(this.s, z.s);bW.clamp()
}
function o(t, z) {return t &z
}
function bO(t) {var z=bm();this.bitwiseTo(t, o, z);returnz
}
function ak(t, z) {return t |z
}
function aS(t) {var z=bm();this.bitwiseTo(t, ak, z);returnz
}
function aa(t, z) {return t ^z
}
function B(t) {var z=bm();this.bitwiseTo(t, aa, z);returnz
}
function i(t, z) {return t & ~z
}
function aD(t) {var z=bm();this.bitwiseTo(t, i, z);returnz
}
function T() {var z=bm();for (var t = 0; t < this.t; ++t) {z[t]= this.DM & ~this[t]}z.t=this.t;z.s= ~this.s;returnz
}
function aN(z) {var t=bm();if (z <0) {this.rShiftTo(-z, t)}else{this.lShiftTo(z, t)}returnt
}
function R(z) {var t=bm();if (z <0) {this.lShiftTo(-z, t)}else{this.rShiftTo(z, t)}returnt
}
function bc(t) {if (t ==0) {return - 1}var z=0;if ((t & 65535) ==0) {t>>= 16;z+= 16}if ((t & 255) ==0) {t>>= 8;z+= 8}if ((t & 15) ==0) {t>>= 4;z+= 4}if ((t & 3) ==0) {t>>= 2;z+= 2}if ((t & 1) == 0) {++z}returnz
}
function aq() {for (var t = 0; t < this.t; ++t) {if (this[t] !=0) {return t * this.DB +bc(this[t])}}if (this.s <0) {return this.t *this.DB}return - 1}
function bj(t) {var z=0;while (t !=0) {t&= t - 1; ++z}returnz
}
function ao() {var L=0,t= this.s &this.DM;for (var z = 0; z < this.t; ++z) {L+= bj(this[z] ^t)}returnL
}
function aL(z) {var t= Math.floor(z /this.DB);if (t >=this.t) {return (this.s !=0)}return ((this[t] & (1 << (z % this.DB))) !=0)
}
function U(L, z) {var t=bf.ONE.shiftLeft(L);this.bitwiseTo(t, z, t);returnt
}
function a1(t) {returnthis.changeBit(t, ak)
}
function ah(t) {returnthis.changeBit(t, i)
}
function aO(t) {returnthis.changeBit(t, aa)
}
function S(z, bW) {var L=0,bX=0,t=Math.min(z.t, this.t);while (L <t) {bX+= this[L] +z[L];bW[L++] = bX &this.DM;bX>>=this.DB}if (z.t <this.t) {bX+=z.s;while (L <this.t) {bX+=this[L];bW[L++] = bX &this.DM;bX>>=this.DB}bX+=this.s}else{bX+=this.s;while (L <z.t) {bX+=z[L];bW[L++] = bX &this.DM;bX>>=this.DB}bX+=z.s}bW.s= (bX < 0) ? -1: 0;if (bX >0) {bW[L++] =bX}else{if (bX < -1) {bW[L++] = this.DV +bX}}bW.t=L;bW.clamp()
}
function bg(t) {var z=bm();this.addTo(t, z);returnz
}
function aA(t) {var z=bm();this.subTo(t, z);returnz
}
function bH(t) {var z=bm();this.multiplyTo(t, z);returnz
}
function bU() {var t=bm();this.squareTo(t);returnt
}
function bd(t) {var z=bm();this.divRemTo(t, z, null);returnz
}
function bP(t) {var z=bm();this.divRemTo(t, null, z);returnz
}
function bk(t) {var L=bm(),z=bm();this.divRemTo(t, L, z);returnnew Array(L, z)
}
function e(t) {this[this.t]= this.am(0, t - 1, this, 0, 0, this.t); ++this.t;this.clamp()
}
function aR(z, t) {if (z ==0) {return}while (this.t <=t) {this[this.t++] =0}this[t]+=z;while (this[t] >=this.DV) {this[t]-=this.DV;if (++t >=this.t) {this[this.t++] =0}++this[t]}
}
function Z() {}
function bw(t) {returnt
}
function bK(t, L, z) {t.multiplyTo(L, z)
}
function ai(t, z) {t.squareTo(z)
}
Z.prototype.convert=bw;
Z.prototype.revert=bw;
Z.prototype.mulTo=bK;
Z.prototype.sqrTo=ai;
function Q(t) {returnthis.exp(t, new Z())
}
function aQ(t, bX, bW) {var L= Math.min(this.t +t.t, bX);bW.s=0;bW.t=L;while (L >0) {bW[--L] =0}var z;for (z = bW.t - this.t; L < z; ++L) {bW[L+ this.t] =this.am(0, t[L], bW, L, 0, this.t)}for (z = Math.min(t.t, bX); L < z; ++L) {this.am(0, t[L], bW, L, 0, bX-L)}bW.clamp()
}
function a0(t, bW, L) {--bW;var z= L.t = this.t + t.t -bW;L.s=0;while (--z >=0) {L[z]=0}for (z = Math.max(bW - this.t, 0); z < t.t; ++z) {L[this.t+ z - bW] = this.am(bW - z, t[z], L, 0, 0, this.t + z -bW)}L.clamp();L.drShiftTo(1, L)
}
function bR(t) {this.r2=bm();this.q3=bm();bf.ONE.dlShiftTo(2 *t.t, this.r2);this.mu=this.r2.divide(t);this.m=t
}
function H(t) {if (t.s < 0 || t.t > 2 *this.m.t) {returnt.mod(this.m)}else{if (t.compareTo(this.m) <0) {returnt}else{var z=bm();t.copyTo(z);this.reduce(z);returnz}}
}
function bM(t) {returnt
}
function D(t) {t.drShiftTo(this.m.t- 1, this.r2);if (t.t > this.m.t + 1) {t.t= this.m.t + 1;t.clamp()}this.mu.multiplyUpperTo(this.r2, this.m.t+ 1, this.q3);this.m.multiplyLowerTo(this.q3, this.m.t+ 1, this.r2);while (t.compareTo(this.r2) <0) {t.dAddOffset(1, this.m.t + 1)}t.subTo(this.r2, t);while (t.compareTo(this.m) >=0) {t.subTo(this.m, t)}
}
function aM(t, z) {t.squareTo(z);this.reduce(z)
}
function x(t, L, z) {t.multiplyTo(L, z);this.reduce(z)
}
bR.prototype.convert=H;
bR.prototype.revert=bM;
bR.prototype.reduce=D;
bR.prototype.mulTo=x;
bR.prototype.sqrTo=aM;
function N(b4, bZ) {var b2=b4.bitLength(),b0,bW= bi(1),b7;if (b2 <=0) {returnbW}else{if (b2 < 18) {b0= 1}else{if (b2 < 48) {b0= 3}else{if (b2 < 144) {b0= 4}else{if (b2 < 768) {b0= 5}else{b0= 6}}}}}if (b2 < 8) {b7=new aT(bZ)}else{if(bZ.isEven()) {b7=new bR(bZ)}else{b7=new K(bZ)}}var b3=new Array(),bY= 3,b5= b0 - 1,L= (1 << b0) - 1;b3[1] =b7.convert(this);if (b0 > 1) {var ca=bm();b7.sqrTo(b3[1], ca);while (bY <=L) {b3[bY]=bm();b7.mulTo(ca, b3[bY- 2], b3[bY]);bY+= 2}}var b1= b4.t - 1,b8, b6=true,bX=bm(),b9;b2= q(b4[b1]) - 1;while (b1 >=0) {if (b2 >=b5) {b8= (b4[b1] >> (b2 - b5)) &L}else{b8= (b4[b1] & ((1 << (b2 + 1)) - 1)) << (b5 -b2);if (b1 >0) {b8|= b4[b1 - 1] >> (this.DB + b2 -b5)}}bY=b0;while ((b8 & 1) ==0) {b8>>= 1; --bY}if ((b2 -= bY) <0) {b2+= this.DB; --b1}if(b6) {b3[b8].copyTo(bW);b6=false}else{while (bY > 1) {b7.sqrTo(bW, bX);b7.sqrTo(bX, bW);bY-= 2}if (bY >0) {b7.sqrTo(bW, bX)}else{b9=bW;bW=bX;bX=b9}b7.mulTo(bX, b3[b8], bW)}while (b1 >= 0 && (b4[b1] & (1 << b2)) ==0) {b7.sqrTo(bW, bX);b9=bW;bW=bX;bX=b9;if (--b2 <0) {b2= this.DB - 1; --b1}}}returnb7.revert(bW)
}
function aB(L) {var z= (this.s <0) ? this.negate() : this.clone();var bZ= (L.s <0) ? L.negate() : L.clone();if (z.compareTo(bZ) <0) {var bX=z;z=bZ;bZ=bX}var bW=z.getLowestSetBit(),bY=bZ.getLowestSetBit();if (bY <0) {returnz}if (bW <bY) {bY=bW}if (bY >0) {z.rShiftTo(bY, z);bZ.rShiftTo(bY, bZ)}while (z.signum() >0) {if ((bW = z.getLowestSetBit()) >0) {z.rShiftTo(bW, z)}if ((bW = bZ.getLowestSetBit()) >0) {bZ.rShiftTo(bW, bZ)}if (z.compareTo(bZ) >=0) {z.subTo(bZ, z);z.rShiftTo(1, z)}else{bZ.subTo(z, bZ);bZ.rShiftTo(1, bZ)}}if (bY >0) {bZ.lShiftTo(bY, bZ)}returnbZ
}
function aj(bW) {if (bW <=0) {return0}var L= this.DV %bW,z= (this.s < 0) ? bW - 1: 0;if (this.t >0) {if (L ==0) {z= this[0] %bW}else{for (var t = this.t - 1; t >= 0; --t) {z= (L * z + this[t]) %bW}}}returnz
}
function bS(z) {var bY=z.isEven();if ((this.isEven() && bY) || z.signum() ==0) {returnbf.ZERO}var bX=z.clone(),bW=this.clone();var L= bi(1),t=bi(0),b0=bi(0),bZ= bi(1);while (bX.signum() !=0) {while(bX.isEven()) {bX.rShiftTo(1, bX);if(bY) {if (!L.isEven() ||!t.isEven()) {L.addTo(this, L);t.subTo(z, t)}L.rShiftTo(1, L)}else{if(!t.isEven()) {t.subTo(z, t)}}t.rShiftTo(1, t)}while(bW.isEven()) {bW.rShiftTo(1, bW);if(bY) {if (!b0.isEven() ||!bZ.isEven()) {b0.addTo(this, b0);bZ.subTo(z, bZ)}b0.rShiftTo(1, b0)}else{if(!bZ.isEven()) {bZ.subTo(z, bZ)}}bZ.rShiftTo(1, bZ)}if (bX.compareTo(bW) >=0) {bX.subTo(bW, bX);if(bY) {L.subTo(b0, L)}t.subTo(bZ, t)}else{bW.subTo(bX, bW);if(bY) {b0.subTo(L, b0)}bZ.subTo(t, bZ)}}if (bW.compareTo(bf.ONE) !=0) {returnbf.ZERO}if (bZ.compareTo(z) >=0) {returnbZ.subtract(z)}if (bZ.signum() <0) {bZ.addTo(z, bZ)}else{returnbZ}if (bZ.signum() <0) {returnbZ.add(z)}else{returnbZ}
}
var az= [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];
var k= (1 << 26) / az[az.length - 1];
function bL(bY) {var bX, L=this.abs();if (L.t == 1 && L[0] <= az[az.length - 1]) {for (bX = 0; bX < az.length; ++bX) {if (L[0] ==az[bX]) {returntrue}}returnfalse}if(L.isEven()) {returnfalse}bX= 1;while (bX <az.length) {var z=az[bX],bW= bX + 1;while (bW < az.length && z <k) {z*= az[bW++]}z=L.modInt(z);while (bX <bW) {if (z % az[bX++] ==0) {returnfalse}}}returnL.millerRabin(bY)
}
function aE(bY) {var bZ=this.subtract(bf.ONE);var L=bZ.getLowestSetBit();if (L <=0) {returnfalse}var b0=bZ.shiftRight(L);bY= (bY + 1) >> 1;if (bY >az.length) {bY=az.length}var z=bm();for (var bX = 0; bX < bY; ++bX) {z.fromInt(az[Math.floor(Math.random()*az.length)]);var b1=z.modPow(b0, this);if (b1.compareTo(bf.ONE) != 0 && b1.compareTo(bZ) !=0) {var bW= 1;while (bW++<L && b1.compareTo(bZ) !=0) {b1= b1.modPowInt(2, this);if (b1.compareTo(bf.ONE) ==0) {returnfalse}}if (b1.compareTo(bZ) !=0) {returnfalse}}}returntrue
}
bf.prototype.chunkSize=aU;
bf.prototype.toRadix=I;
bf.prototype.fromRadix=av;
bf.prototype.fromNumber=aP;
bf.prototype.bitwiseTo=aJ;
bf.prototype.changeBit=U;
bf.prototype.addTo=S;
bf.prototype.dMultiply=e;
bf.prototype.dAddOffset=aR;
bf.prototype.multiplyLowerTo=aQ;
bf.prototype.multiplyUpperTo=a0;
bf.prototype.modInt=aj;
bf.prototype.millerRabin=aE;
bf.prototype.clone=f;
bf.prototype.intValue=b;
bf.prototype.byteValue=bF;
bf.prototype.shortValue=ag;
bf.prototype.signum=aZ;
bf.prototype.toByteArray=aK;
bf.prototype.equals=bG;
bf.prototype.min=W;
bf.prototype.max=bu;
bf.prototype.and =bO;
bf.prototype.or =aS;
bf.prototype.xor=B;
bf.prototype.andNot=aD;
bf.prototype.not =T;
bf.prototype.shiftLeft=aN;
bf.prototype.shiftRight=R;
bf.prototype.getLowestSetBit=aq;
bf.prototype.bitCount=ao;
bf.prototype.testBit=aL;
bf.prototype.setBit=a1;
bf.prototype.clearBit=ah;
bf.prototype.flipBit=aO;
bf.prototype.add=bg;
bf.prototype.subtract=aA;
bf.prototype.multiply=bH;
bf.prototype.divide=bd;
bf.prototype.remainder=bP;
bf.prototype.divideAndRemainder=bk;
bf.prototype.modPow=N;
bf.prototype.modInverse=bS;
bf.prototype.pow=Q;
bf.prototype.gcd=aB;
bf.prototype.isProbablePrime=bL;
bf.prototype.square=bU;
function bp() {this.i=0;this.j=0;this.S=new Array()
}
function af(bX) {var bW, z, L;for (bW = 0; bW < 256; ++bW) {this.S[bW]=bW}z=0;for (bW = 0; bW < 256; ++bW) {z= (z + this.S[bW] + bX[bW % bX.length]) & 255;L=this.S[bW];this.S[bW]=this.S[z];this.S[z]=L}this.i=0;this.j=0
}
function be() {var z;this.i= (this.i + 1) & 255;this.j= (this.j + this.S[this.i]) & 255;z=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=z;return this.S[(z + this.S[this.i]) & 255]
}
bp.prototype.init=af;
bp.prototype.next=be;
function P() {returnnew bp()
}
var y= 256;
var j;
var l;
var C;if (l ==null) {l=new Array();C=0;var ba;if (window.crypto &&window.crypto.getRandomValues) {var a8= new Uint32Array(256);window.crypto.getRandomValues(a8);for (ba = 0; ba < a8.length; ++ba) {l[C++] = a8[ba] & 255}}var F=function(z) {this.count= this.count ||0;if (this.count >= 256 || C >=y) {if(window.removeEventListener) {window.removeEventListener("mousemove", F, false)}else{if(window.detachEvent) {window.detachEvent("onmousemove", F)}}return}try{var t= z.x +z.y;l[C++] = t & 255;this.count+= 1} catch(L) {}};if(window.addEventListener) {window.addEventListener("mousemove", F, false)}else{if(window.attachEvent) {window.attachEvent("onmousemove", F)}}
}
function bb() {if (j ==null) {j=P();while (C <y) {var t= Math.floor(65536 *Math.random());l[C++] = t & 255}j.init(l);for (C = 0; C < l.length; ++C) {l[C]=0}C=0}returnj.next()
}
function aY(z) {var t;for (t = 0; t < z.length; ++t) {z[t]=bb()}
}
function G() {}
G.prototype.nextBytes=aY;
function w(z, t) {returnnew bf(z, t)
}
function m(L, bW) {var t= "";var z=0;while (z + bW <L.length) {t+= L.substring(z, z + bW) + "\n";z+=bW}return t +L.substring(z, L.length)
}
function br(t) {if (t < 16) {return "0" + t.toString(16)}else{return t.toString(16)}
}
function bD(bW, bZ) {if (bZ < bW.length + 11) {console.error("Message too long for RSA");returnnull}var bY=new Array();var L= bW.length - 1;while (L >= 0 && bZ >0) {var bX= bW.charCodeAt(L--);if (bX < 128) {bY[--bZ] =bX}else{if ((bX > 127) && (bX < 2048)) {bY[--bZ] = (bX & 63) | 128;bY[--bZ] = (bX >> 6) | 192}else{bY[--bZ] = (bX & 63) | 128;bY[--bZ] = ((bX >> 6) & 63) | 128;bY[--bZ] = (bX >> 12) | 224}}}bY[--bZ] =0;var z=new G();var t=new Array();while (bZ > 2) {t[0]=0;while (t[0] ==0) {z.nextBytes(t)}bY[--bZ] =t[0]}bY[--bZ] = 2;bY[--bZ] =0;returnnew bf(bY)
}
function A() {this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null
}
function an(z, t) {if (z != null && t != null && z.length > 0 && t.length >0) {this.n= w(z, 16);this.e= parseInt(t, 16)}else{console.error("Invalid RSA public key")}
}
function bq(t) {returnt.modPowInt(this.e, this.n)
}
function al(L) {var t= bD(L, (this.n.bitLength() + 7) >> 3);if (t ==null) {returnnull}var bW=this.doPublic(t);if (bW ==null) {returnnull}var z= bW.toString(16);if ((z.length & 1) ==0) {returnz}else{return "0" +z}
}
A.prototype.doPublic=bq;
A.prototype.setPublic=an;
A.prototype.encrypt=al;
function bo(bW, bY) {var t=bW.toByteArray();var L=0;while (L < t.length && t[L] == 0) {++L}if (t.length - L != bY - 1 || t[L] != 2) {returnnull}++L;while (t[L] !=0) {if (++L >=t.length) {returnnull}}var z= "";while (++L <t.length) {var bX= t[L] & 255;if (bX < 128) {z+=String.fromCharCode(bX)}else{if ((bX > 191) && (bX < 224)) {z+= String.fromCharCode(((bX & 31) << 6) | (t[L + 1] & 63)); ++L}else{z+= String.fromCharCode(((bX & 15) << 12) | ((t[L + 1] & 63) << 6) | (t[L + 2] & 63));L+= 2}}}returnz
}
function aC(L, t, z) {if (L != null && t != null && L.length > 0 && t.length >0) {this.n= w(L, 16);this.e= parseInt(t, 16);this.d= w(z, 16)}else{console.error("Invalid RSA private key")}
}
function O(bZ, bW, bX, L, z, t, b0, bY) {if (bZ != null && bW != null && bZ.length > 0 && bW.length >0) {this.n= w(bZ, 16);this.e= parseInt(bW, 16);this.d= w(bX, 16);this.p= w(L, 16);this.q= w(z, 16);this.dmp1= w(t, 16);this.dmq1= w(b0, 16);this.coeff= w(bY, 16)}else{console.error("Invalid RSA private key")}
}
function ax(L, b2) {var z=new G();var bZ= L >> 1;this.e= parseInt(b2, 16);var bW= new bf(b2, 16);for(;;) {for(;;) {this.p= new bf(L - bZ, 1, z);if (this.p.subtract(bf.ONE).gcd(bW).compareTo(bf.ONE) == 0 && this.p.isProbablePrime(10)) {break}}for(;;) {this.q= new bf(bZ, 1, z);if (this.q.subtract(bf.ONE).gcd(bW).compareTo(bf.ONE) == 0 && this.q.isProbablePrime(10)) {break}}if (this.p.compareTo(this.q) <=0) {var b1=this.p;this.p=this.q;this.q=b1}var b0=this.p.subtract(bf.ONE);var bX=this.q.subtract(bf.ONE);var bY=b0.multiply(bX);if (bY.gcd(bW).compareTo(bf.ONE) ==0) {this.n=this.p.multiply(this.q);this.d=bW.modInverse(bY);this.dmp1=this.d.mod(b0);this.dmq1=this.d.mod(bX);this.coeff=this.q.modInverse(this.p);break}}
}
function ay(t) {if (this.p == null || this.q ==null) {returnt.modPow(this.d, this.n)}var L=t.mod(this.p).modPow(this.dmp1, this.p);var z=t.mod(this.q).modPow(this.dmq1, this.q);while (L.compareTo(z) <0) {L=L.add(this.p)}returnL.subtract(z).multiply(this.coeff).mod(this.p).multiply(this.q).add(z)
}
function r(z) {var L= w(z, 16);var t=this.doPrivate(L);if (t ==null) {returnnull}return bo(t, (this.n.bitLength() + 7) >> 3)
}
A.prototype.doPrivate=ay;
A.prototype.setPrivate=aC;
A.prototype.setPrivateEx=O;
A.prototype.generate=ax;
A.prototype.decrypt=r; (function() {var z=function(b3, b1, b2) {var bZ=new G();var bW= b3 >> 1;this.e= parseInt(b1, 16);var bY= new bf(b1, 16);var b0=this;var bX=function() {var b5=function() {if (b0.p.compareTo(b0.q) <=0) {var b8=b0.p;b0.p=b0.q;b0.q=b8}var ca=b0.p.subtract(bf.ONE);var b7=b0.q.subtract(bf.ONE);var b9=ca.multiply(b7);if (b9.gcd(bY).compareTo(bf.ONE) ==0) {b0.n=b0.p.multiply(b0.q);b0.d=bY.modInverse(b9);b0.dmp1=b0.d.mod(ca);b0.dmq1=b0.d.mod(b7);b0.coeff=b0.q.modInverse(b0.p);setTimeout(function() {b2()},0)}else{setTimeout(bX, 0)}};var b6=function() {b0.q=bm();b0.q.fromNumberAsync(bW,1, bZ,function() {b0.q.subtract(bf.ONE).gcda(bY,function(b7) {if (b7.compareTo(bf.ONE) == 0 && b0.q.isProbablePrime(10)) {setTimeout(b5, 0)}else{setTimeout(b6, 0)}})})};var b4=function() {b0.p=bm();b0.p.fromNumberAsync(b3- bW, 1, bZ,function() {b0.p.subtract(bf.ONE).gcda(bY,function(b7) {if (b7.compareTo(bf.ONE) == 0 && b0.p.isProbablePrime(10)) {setTimeout(b6, 0)}else{setTimeout(b4, 0)}})})};setTimeout(b4, 0)};setTimeout(bX, 0)};A.prototype.generateAsync=z;var t=function(bX, b3) {var bW= (this.s <0) ? this.negate() : this.clone();var b2= (bX.s <0) ? bX.negate() : bX.clone();if (bW.compareTo(b2) <0) {var bZ=bW;bW=b2;b2=bZ}var bY=bW.getLowestSetBit(),b0=b2.getLowestSetBit();if (b0 <0) {b3(bW);return}if (bY <b0) {b0=bY}if (b0 >0) {bW.rShiftTo(b0, bW);b2.rShiftTo(b0, b2)}var b1=function() {if ((bY = bW.getLowestSetBit()) >0) {bW.rShiftTo(bY, bW)}if ((bY = b2.getLowestSetBit()) >0) {b2.rShiftTo(bY, b2)}if (bW.compareTo(b2) >=0) {bW.subTo(b2, bW);bW.rShiftTo(1, bW)}else{b2.subTo(bW, b2);b2.rShiftTo(1, b2)}if (! (bW.signum() >0)) {if (b0 >0) {b2.lShiftTo(b0, b2)}setTimeout(function() {b3(b2)},0)}else{setTimeout(b1, 0)}};setTimeout(b1,10)};bf.prototype.gcda=t;var L=function(b0, bX, b3, b2) {if ("number" ==typeof bX) {if (b0 < 2) {this.fromInt(1)}else{this.fromNumber(b0, b3);if (!this.testBit(b0 - 1)) {this.bitwiseTo(bf.ONE.shiftLeft(b0- 1), ak, this)}if(this.isEven()) {this.dAddOffset(1, 0)}var bZ=this;var bY=function() {bZ.dAddOffset(2, 0);if (bZ.bitLength() >b0) {bZ.subTo(bf.ONE.shiftLeft(b0- 1), bZ)}if(bZ.isProbablePrime(bX)) {setTimeout(function() {b2()},0)}else{setTimeout(bY, 0)}};setTimeout(bY, 0)}}else{var bW=new Array(),b1= b0 & 7;bW.length= (b0 >> 3) + 1;bX.nextBytes(bW);if (b1 >0) {bW[0]&= ((1 << b1) - 1)}else{bW[0]=0}this.fromString(bW,256)}};bf.prototype.fromNumberAsync=L
})();
var a4= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var J= "=";
function ae(L) {var z;var bW;var t= "";for (z = 0; z + 3 <= L.length; z += 3) {bW= parseInt(L.substring(z, z + 3), 16);t+= a4.charAt(bW >> 6) + a4.charAt(bW & 63)}if (z + 1 ==L.length) {bW= parseInt(L.substring(z, z + 1), 16);t+= a4.charAt(bW << 2)}else{if (z + 2 ==L.length) {bW= parseInt(L.substring(z, z + 2), 16);t+= a4.charAt(bW >> 2) + a4.charAt((bW & 3) << 4)}}while ((t.length & 3) >0) {t+=J}returnt
}
function aW(bX) {var L= "";var bW;var t=0;var z;for (bW = 0; bW < bX.length; ++bW) {if (bX.charAt(bW) ==J) {break}v=a4.indexOf(bX.charAt(bW));if (v <0) {continue}if (t ==0) {L+= Y(v >> 2);z= v & 3;t= 1}else{if (t == 1) {L+= Y((z << 2) | (v >> 4));z= v & 15;t= 2}else{if (t == 2) {L+=Y(z);L+= Y(v >> 2);z= v & 3;t= 3}else{L+= Y((z << 2) | (v >> 4));L+= Y(v & 15);t=0}}}}if (t == 1) {L+= Y(z << 2)}returnL
}
function M(bW) {var L=aW(bW);var z;var t=new Array();for (z = 0; 2 * z < L.length; ++z) {t[z]= parseInt(L.substring(2 * z, 2 * z + 2), 16)}returnt
};
var at= at ||{};
at.env= at.env ||{};
var bn=at,
aw=Object.prototype,
ar= "[object Function]",
X= ["toString", "valueOf"];
at.env.parseUA=function(bW) {var bX=function(b1) {var b2=0;return parseFloat(b1.replace(/\./g,function() {return (b2++==1) ? "": "."}))},b0=navigator,bZ={ie: 0,opera: 0,gecko: 0,webkit: 0,chrome: 0,mobile: null,air: 0,ipad: 0,iphone: 0,ipod: 0,ios: null,android: 0,webos: 0,caja: b0&&b0.cajaVersion,secure: false,os: null},L= bW || (navigator &&navigator.userAgent),bY= window &&window.location,z= bY &&bY.href,t;bZ.secure= z && (z.toLowerCase().indexOf("https") ===0);if(L) {if ((/windows|win32/i).test(L)) {bZ.os= "windows"}else{if ((/macintosh/i).test(L)) {bZ.os= "macintosh"}else{if ((/rhino/i).test(L)) {bZ.os= "rhino"}}}if ((/KHTML/).test(L)) {bZ.webkit= 1}t= L.match(/AppleWebKit\/([^\s]*)/);if (t && t[1]) {bZ.webkit= bX(t[1]);if (/ Mobile\//.test(L)) {bZ.mobile= "Apple";t= L.match(/OS ([^\s]*)/);if (t && t[1]) {t= bX(t[1].replace("_", "."))}bZ.ios=t;bZ.ipad= bZ.ipod = bZ.iphone =0;t= L.match(/iPad|iPod|iPhone/);if (t &&t[0]) {bZ[t[0].toLowerCase()]=bZ.ios}}else{t= L.match(/NokiaN[^\/]*|Android \d\.\d|webOS\/\d\.\d/);if(t) {bZ.mobile=t[0]}if (/webOS/.test(L)) {bZ.mobile= "WebOS";t= L.match(/webOS\/([^\s]*);/);if (t && t[1]) {bZ.webos= bX(t[1])}}if (/ Android/.test(L)) {bZ.mobile= "Android";t= L.match(/Android ([^\s]*);/);if (t && t[1]) {bZ.android= bX(t[1])}}}t= L.match(/Chrome\/([^\s]*)/);if (t && t[1]) {bZ.chrome= bX(t[1])}else{t= L.match(/AdobeAIR\/([^\s]*)/);if(t) {bZ.air=t[0]}}}if(!bZ.webkit) {t= L.match(/Opera[\s\/]([^\s]*)/);if (t && t[1]) {bZ.opera= bX(t[1]);t= L.match(/Version\/([^\s]*)/);if (t && t[1]) {bZ.opera= bX(t[1])}t= L.match(/Opera Mini[^;]*/);if(t) {bZ.mobile=t[0]}}else{t= L.match(/MSIE\s([^;]*)/);if (t && t[1]) {bZ.ie= bX(t[1])}else{t= L.match(/Gecko\/([^\s]*)/);if(t) {bZ.gecko= 1;t= L.match(/rv:([^\s\)]*)/);if (t && t[1]) {bZ.gecko= bX(t[1])}}}}}}returnbZ
};
at.env.ua=at.env.parseUA();
at.isFunction=function(t) {return (typeof t === "function") || aw.toString.apply(t) ===ar
};
at._IEEnumFix=(at.env.ua.ie) ?
function(L, z) {var t, bX, bW;for (t = 0; t < X.length; t = t + 1) {bX=X[t];bW=z[bX];if (bn.isFunction(bW) && bW !=aw[bX]) {L[bX]=bW}}
}: function() {};
at.extend=function(bW, bX, L) {if (!bX ||!bW) {throw new Error("extend failed, please check that all dependencies are included.")}var z=function() {},t;z.prototype=bX.prototype;bW.prototype=new z();bW.prototype.constructor=bW;bW.superclass=bX.prototype;if (bX.prototype.constructor ==aw.constructor) {bX.prototype.constructor=bX}if(L) {for (t inL) {if(bn.hasOwnProperty(L, t)) {bW.prototype[t]=L[t]}}bn._IEEnumFix(bW.prototype, L)}
};if (typeof KJUR == "undefined" ||!KJUR) {KJUR={}
}if (typeof KJUR.asn1 == "undefined" ||!KJUR.asn1) {KJUR.asn1={}
}
KJUR.asn1.ASN1Util=new
function() {this.integerToByteHex=function(t) {var z= t.toString(16);if ((z.length % 2) == 1) {z= "0" +z}returnz};this.bigIntToMinTwosComplementsHex=function(b0) {var bY= b0.toString(16);if (bY.substr(0, 1) != "-") {if (bY.length % 2 == 1) {bY= "0" +bY}else{if (!bY.match(/^[0-7]/)) {bY= "00" +bY}}}else{var t= bY.substr(1);var bX=t.length;if (bX % 2 == 1) {bX+= 1}else{if (!bY.match(/^[0-7]/)) {bX+= 2}}var bZ= "";for (var bW = 0; bW < bX; bW++) {bZ+= "f"}var L= new bf(bZ, 16);var z=L.xor(b0).add(bf.ONE);bY= z.toString(16).replace(/^-/, "")}returnbY};this.getPEMStringFromHex=function(t, z) {var bX=CryptoJS.enc.Hex.parse(t);var L=CryptoJS.enc.Base64.stringify(bX);var bW= L.replace(/(.{64})/g, "$1\r\n");bW= bW.replace(/\r\n$/, "");return "-----BEGIN" + z + "-----\r\n" + bW + "\r\n-----END" + z + "-----\r\n"}
};
KJUR.asn1.ASN1Object=function() {var L=true;var z=null;var bW= "00";var bX= "00";var t= "";this.getLengthHexFromValue=function() {if (typeof this.hV == "undefined" || this.hV ==null) {throw"this.hV is null or undefined."}if (this.hV.length % 2 == 1) {throw"value hex must be even length: n=" + t.length + ",v=" +this.hV}var b1= this.hV.length / 2;var b0= b1.toString(16);if (b0.length % 2 == 1) {b0= "0" +b0}if (b1 < 128) {returnb0}else{var bZ= b0.length / 2;if (bZ > 15) {throw"ASN.1 length too long to represent by 8x: n =" + b1.toString(16)}var bY= 128 +bZ;return bY.toString(16) +b0}};this.getEncodedHex=function() {if (this.hTLV == null ||this.isModified) {this.hV=this.getFreshValueHex();this.hL=this.getLengthHexFromValue();this.hTLV= this.hT + this.hL +this.hV;this.isModified=false}returnthis.hTLV};this.getValueHex=function() {this.getEncodedHex();returnthis.hV};this.getFreshValueHex=function() {return ""}
};
KJUR.asn1.DERAbstractString=function(L) {KJUR.asn1.DERAbstractString.superclass.constructor.call(this);var z=null;var t=null;this.getString=function() {returnthis.s};this.setString=function(bW) {this.hTLV=null;this.isModified=true;this.s=bW;this.hV=stohex(this.s)};this.setStringHex=function(bW) {this.hTLV=null;this.isModified=true;this.s=null;this.hV=bW};this.getFreshValueHex=function() {returnthis.hV};if (typeof L != "undefined") {if (typeof L.str != "undefined") {this.setString(L.str)}else{if (typeof L.hex != "undefined") {this.setStringHex(L.hex)}}}
};
at.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);
KJUR.asn1.DERAbstractTime=function(L) {KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);var z=null;var t=null;this.localDateToUTC=function(bX) {utc= bX.getTime() + (bX.getTimezoneOffset() * 60000);var bW=new Date(utc);returnbW};this.formatDate=function(b1, b3) {var bW=this.zeroPadding;var b2=this.localDateToUTC(b1);var b4=String(b2.getFullYear());if (b3 == "utc") {b4= b4.substr(2, 2)}var b0= bW(String(b2.getMonth() + 1), 2);var b5= bW(String(b2.getDate()), 2);var bX= bW(String(b2.getHours()), 2);var bY= bW(String(b2.getMinutes()), 2);var bZ= bW(String(b2.getSeconds()), 2);return b4 + b0 + b5 + bX + bY + bZ + "Z"};this.zeroPadding=function(bX, bW) {if (bX.length >=bW) {returnbX}return new Array(bW - bX.length + 1).join("0") +bX};this.getString=function() {returnthis.s};this.setString=function(bW) {this.hTLV=null;this.isModified=true;this.s=bW;this.hV=stohex(this.s)};this.setByDateValue=function(b0, b2, bX, bW, bY, bZ) {var b1= new Date(Date.UTC(b0, b2 - 1, bX, bW, bY, bZ, 0));this.setByDate(b1)};this.getFreshValueHex=function() {returnthis.hV}
};
at.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);
KJUR.asn1.DERAbstractStructured=function(z) {KJUR.asn1.DERAbstractString.superclass.constructor.call(this);var t=null;this.setByASN1ObjectArray=function(L) {this.hTLV=null;this.isModified=true;this.asn1Array=L};this.appendASN1Object=function(L) {this.hTLV=null;this.isModified=true;this.asn1Array.push(L)};this.asn1Array=new Array();if (typeof z != "undefined") {if (typeof z.array != "undefined") {this.asn1Array=z.array}}
};
at.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);
KJUR.asn1.DERBoolean=function() {KJUR.asn1.DERBoolean.superclass.constructor.call(this);this.hT= "01";this.hTLV= "0101ff"};
at.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);
KJUR.asn1.DERInteger=function(t) {KJUR.asn1.DERInteger.superclass.constructor.call(this);this.hT= "02";this.setByBigInteger=function(z) {this.hTLV=null;this.isModified=true;this.hV=KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(z)};this.setByInteger=function(L) {var z= new bf(String(L), 10);this.setByBigInteger(z)};this.setValueHex=function(z) {this.hV=z};this.getFreshValueHex=function() {returnthis.hV};if (typeof t != "undefined") {if (typeof t.bigint != "undefined") {this.setByBigInteger(t.bigint)}else{if (typeof t["int"] != "undefined") {this.setByInteger(t["int"])}else{if (typeof t.hex != "undefined") {this.setValueHex(t.hex)}}}}
};
at.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);
KJUR.asn1.DERBitString=function(t) {KJUR.asn1.DERBitString.superclass.constructor.call(this);this.hT= "03";this.setHexValueIncludingUnusedBits=function(z) {this.hTLV=null;this.isModified=true;this.hV=z};this.setUnusedBitsAndHexValue=function(z, bW) {if (z < 0 || 7 <z) {throw"unused bits shall be from 0 to 7: u =" +z}var L= "0" +z;this.hTLV=null;this.isModified=true;this.hV= L +bW};this.setByBinaryString=function(bW) {bW= bW.replace(/0+$/, "");var bX= 8 - bW.length % 8;if (bX == 8) {bX=0}for (var bY = 0; bY <= bX; bY++) {bW+= "0"}var bZ= "";for (var bY = 0; bY < bW.length - 1; bY += 8) {var L= bW.substr(bY, 8);var z= parseInt(L, 2).toString(16);if (z.length == 1) {z= "0" +z}bZ+=z}this.hTLV=null;this.isModified=true;this.hV= "0" + bX +bZ};this.setByBooleanArray=function(bW) {var L= "";for (var z = 0; z < bW.length; z++) {if (bW[z] ==true) {L+= "1"}else{L+= "0"}}this.setByBinaryString(L)};this.newFalseArray=function(bW) {var z=new Array(bW);for (var L = 0; L < bW; L++) {z[L]=false}returnz};this.getFreshValueHex=function() {returnthis.hV};if (typeof t != "undefined") {if (typeof t.hex != "undefined") {this.setHexValueIncludingUnusedBits(t.hex)}else{if (typeof t.bin != "undefined") {this.setByBinaryString(t.bin)}else{if (typeof t.array != "undefined") {this.setByBooleanArray(t.array)}}}}
};
at.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);
KJUR.asn1.DEROctetString=function(t) {KJUR.asn1.DEROctetString.superclass.constructor.call(this, t);this.hT= "04"};
at.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);
KJUR.asn1.DERNull=function() {KJUR.asn1.DERNull.superclass.constructor.call(this);this.hT= "05";this.hTLV= "0500"};
at.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);
KJUR.asn1.DERObjectIdentifier=function(L) {var z=function(bW) {var bX= bW.toString(16);if (bX.length == 1) {bX= "0" +bX}returnbX};var t=function(b1) {var b0= "";var bX= new bf(b1, 10);var bW= bX.toString(2);var bY= 7 - bW.length % 7;if (bY == 7) {bY=0}var b3= "";for (var bZ = 0; bZ < bY; bZ++) {b3+= "0"}bW= b3 +bW;for (var bZ = 0; bZ < bW.length - 1; bZ += 7) {var b2= bW.substr(bZ, 7);if (bZ != bW.length - 7) {b2= "1" +b2}b0+= z(parseInt(b2, 2))}returnb0};KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);this.hT= "06";this.setValueHex=function(bW) {this.hTLV=null;this.isModified=true;this.s=null;this.hV=bW};this.setValueOidString=function(bY) {if (!bY.match(/^[0-9.]+$/)) {throw"malformed oid string:" +bY}var bZ= "";var bW= bY.split(".");var b0= parseInt(bW[0]) * 40 + parseInt(bW[1]);bZ+=z(b0);bW.splice(0,2);for (var bX = 0; bX < bW.length; bX++) {bZ+=t(bW[bX])}this.hTLV=null;this.isModified=true;this.s=null;this.hV=bZ};this.setValueName=function(bX) {if (typeof KJUR.asn1.x509.OID.name2oidList[bX] != "undefined") {var bW=KJUR.asn1.x509.OID.name2oidList[bX];this.setValueOidString(bW)}else{throw"DERObjectIdentifier oidName undefined:" +bX}};this.getFreshValueHex=function() {returnthis.hV};if (typeof L != "undefined") {if (typeof L.oid != "undefined") {this.setValueOidString(L.oid)}else{if (typeof L.hex != "undefined") {this.setValueHex(L.hex)}else{if (typeof L.name != "undefined") {this.setValueName(L.name)}}}}
};
at.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);
KJUR.asn1.DERUTF8String=function(t) {KJUR.asn1.DERUTF8String.superclass.constructor.call(this, t);this.hT= "0c"};
at.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);
KJUR.asn1.DERNumericString=function(t) {KJUR.asn1.DERNumericString.superclass.constructor.call(this, t);this.hT= "12"};
at.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);
KJUR.asn1.DERPrintableString=function(t) {KJUR.asn1.DERPrintableString.superclass.constructor.call(this, t);this.hT= "13"};
at.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);
KJUR.asn1.DERTeletexString=function(t) {KJUR.asn1.DERTeletexString.superclass.constructor.call(this, t);this.hT= "14"};
at.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);
KJUR.asn1.DERIA5String=function(t) {KJUR.asn1.DERIA5String.superclass.constructor.call(this, t);this.hT= "16"};
at.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);
KJUR.asn1.DERUTCTime=function(t) {KJUR.asn1.DERUTCTime.superclass.constructor.call(this, t);this.hT= "17";this.setByDate=function(z) {this.hTLV=null;this.isModified=true;this.date=z;this.s= this.formatDate(this.date, "utc");this.hV=stohex(this.s)};if (typeof t != "undefined") {if (typeof t.str != "undefined") {this.setString(t.str)}else{if (typeof t.hex != "undefined") {this.setStringHex(t.hex)}else{if (typeof t.date != "undefined") {this.setByDate(t.date)}}}}
};
at.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);
KJUR.asn1.DERGeneralizedTime=function(t) {KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, t);this.hT= "18";this.setByDate=function(z) {this.hTLV=null;this.isModified=true;this.date=z;this.s= this.formatDate(this.date, "gen");this.hV=stohex(this.s)};if (typeof t != "undefined") {if (typeof t.str != "undefined") {this.setString(t.str)}else{if (typeof t.hex != "undefined") {this.setStringHex(t.hex)}else{if (typeof t.date != "undefined") {this.setByDate(t.date)}}}}
};
at.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);
KJUR.asn1.DERSequence=function(t) {KJUR.asn1.DERSequence.superclass.constructor.call(this, t);this.hT= "30";this.getFreshValueHex=function() {var L= "";for (var z = 0; z < this.asn1Array.length; z++) {var bW=this.asn1Array[z];L+=bW.getEncodedHex()}this.hV=L;returnthis.hV}
};
at.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);
KJUR.asn1.DERSet=function(t) {KJUR.asn1.DERSet.superclass.constructor.call(this, t);this.hT= "31";this.getFreshValueHex=function() {var z=new Array();for (var L = 0; L < this.asn1Array.length; L++) {var bW=this.asn1Array[L];z.push(bW.getEncodedHex())}z.sort();this.hV= z.join("");returnthis.hV}
};
at.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);
KJUR.asn1.DERTaggedObject=function(t) {KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);this.hT= "a0";this.hV= "";this.isExplicit=true;this.asn1Object=null;this.setASN1Object=function(z, L, bW) {this.hT=L;this.isExplicit=z;this.asn1Object=bW;if(this.isExplicit) {this.hV=this.asn1Object.getEncodedHex();this.hTLV=null;this.isModified=true}else{this.hV=null;this.hTLV=bW.getEncodedHex();this.hTLV= this.hTLV.replace(/^../, L);this.isModified=false}};this.getFreshValueHex=function() {returnthis.hV};if (typeof t != "undefined") {if (typeof t.tag != "undefined") {this.hT=t.tag}if (typeof t.explicit != "undefined") {this.isExplicit=t.explicit}if (typeof t.obj != "undefined") {this.asn1Object=t.obj;this.setASN1Object(this.isExplicit, this.hT, this.asn1Object)}}
};
at.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object); (function(z) {var t={},L;t.decode=function(bW) {var bY;if (L ===z) {var bZ= "0123456789ABCDEF",b3= "\f\n\r\t\u00A0\u2028\u2029";L=[];for (bY = 0; bY < 16; ++bY) {L[bZ.charAt(bY)]=bY}bZ=bZ.toLowerCase();for (bY = 10; bY < 16; ++bY) {L[bZ.charAt(bY)]=bY}for (bY = 0; bY < b3.length; ++bY) {L[b3.charAt(bY)]= -1}}var bX=[],b0=0,b2=0;for (bY = 0; bY < bW.length; ++bY) {var b1=bW.charAt(bY);if (b1 == "=") {break}b1=L[b1];if (b1 == -1) {continue}if (b1 ===z) {throw"Illegal character at offset" +bY}b0|=b1;if (++b2 >= 2) {bX[bX.length]=b0;b0=0;b2=0}else{b0<<= 4}}if(b2) {throw"Hex encoding incomplete: 4 bits missing"}returnbX};Hex=t
})(); (function(z) {var t={},L;t.decode=function(bW) {var bZ;if (L ===z) {var bY= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b3= "= \f\n\r\t\u00A0\u2028\u2029";L=[];for (bZ = 0; bZ < 64; ++bZ) {L[bY.charAt(bZ)]=bZ}for (bZ = 0; bZ < b3.length; ++bZ) {L[b3.charAt(bZ)]= -1}}var bX=[];var b0=0,b2=0;for (bZ = 0; bZ < bW.length; ++bZ) {var b1=bW.charAt(bZ);if (b1 == "=") {break}b1=L[b1];if (b1 == -1) {continue}if (b1 ===z) {throw"Illegal character at offset" +bZ}b0|=b1;if (++b2 >= 4) {bX[bX.length]= (b0 >> 16);bX[bX.length]= (b0 >> 8) & 255;bX[bX.length]= b0 & 255;b0=0;b2=0}else{b0<<= 6}}switch (b2) {case1:throw"Base64 encoding incomplete: at least 2 bits missing";case2:bX[bX.length]= (b0 >> 10);break;case3:bX[bX.length]= (b0 >> 16);bX[bX.length]= (b0 >> 8) & 255;break}returnbX};t.re= /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/;t.unarmor=function(bX) {var bW= t.re.exec(bX);if(bW) {if (bW[1]) {bX= bW[1]}else{if (bW[2]) {bX= bW[2]}else{throw"RegExp out of sync"}}}returnt.decode(bX)};Base64=t
})(); (function(bY) {var z= 100,t= "\u2026",L={tag: function(b0, b1) {var bZ=document.createElement(b0);bZ.className=b1;returnbZ},text: function(bZ) {returndocument.createTextNode(bZ)}};function bX(bZ, b0) {if(bZ instanceof bX) {this.enc=bZ.enc;this.pos=bZ.pos}else{this.enc=bZ;this.pos=b0}}bX.prototype.get=function(bZ) {if (bZ ===bY) {bZ= this.pos++}if (bZ >=this.enc.length) {throw"Requesting byte offset" + bZ + "on a stream of length" +this.enc.length}returnthis.enc[bZ]};bX.prototype.hexDigits= "0123456789ABCDEF";bX.prototype.hexByte=function(bZ) {return this.hexDigits.charAt((bZ >> 4) & 15) + this.hexDigits.charAt(bZ & 15)};bX.prototype.hexDump=function(b3, bZ, b0) {var b2= "";for (var b1 = b3; b1 < bZ; ++b1) {b2+=this.hexByte(this.get(b1));if (b0 !==true) {switch (b1& 15) {case7:b2+= "  ";break;case15:b2+= "\n";break;default:b2+= " "}}}returnb2};bX.prototype.parseStringISO=function(b2, bZ) {var b1= "";for (var b0 = b2; b0 < bZ; ++b0) {b1+=String.fromCharCode(this.get(b0))}returnb1};bX.prototype.parseStringUTF=function(b3, bZ) {var b1= "";for (var b0 = b3; b0 <bZ;) {var b2= this.get(b0++);if (b2 < 128) {b1+=String.fromCharCode(b2)}else{if ((b2 > 191) && (b2 < 224)) {b1+= String.fromCharCode(((b2 & 31) << 6) | (this.get(b0++) & 63))}else{b1+= String.fromCharCode(((b2 & 15) << 12) | ((this.get(b0++) & 63) << 6) | (this.get(b0++) & 63))}}}returnb1};bX.prototype.parseStringBMP=function(b4, b0) {var b3= "";for (var b2 = b4; b2 < b0; b2 += 2) {var bZ=this.get(b2);var b1= this.get(b2 + 1);b3+= String.fromCharCode((bZ << 8) +b1)}returnb3};bX.prototype.reTime= /^((?:1[89]|2\d)?\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;bX.prototype.parseTime=function(b2, b0) {var b1=this.parseStringISO(b2, b0),bZ= this.reTime.exec(b1);if(!bZ) {return "Unrecognized time:" +b1}b1= bZ[1] + "-" + bZ[2] + "-" + bZ[3] + " " + bZ[4];if (bZ[5]) {b1+= ":" + bZ[5];if (bZ[6]) {b1+= ":" + bZ[6];if (bZ[7]) {b1+= "." + bZ[7]}}}if (bZ[8]) {b1+= "UTC";if (bZ[8] != "Z") {b1+= bZ[8];if (bZ[9]) {b1+= ":" + bZ[9]}}}returnb1};bX.prototype.parseInteger=function(b4, b0) {var bZ= b0 -b4;if (bZ > 4) {bZ<<= 3;var b2=this.get(b4);if (b2 ===0) {bZ-= 8}else{while (b2 < 128) {b2<<= 1; --bZ}}return "(" + bZ + "bit)"}var b3=0;for (var b1 = b4; b1 < b0; ++b1) {b3= (b3 << 8) |this.get(b1)}returnb3};bX.prototype.parseBitString=function(bZ, b0) {var b4=this.get(bZ),b2= ((b0 - bZ - 1) << 3) -b4,b7= "(" + b2 + "bit)";if (b2 <= 20) {var b6=b4;b7+= " ";for (var b3 = b0 - 1; b3 > bZ; --b3) {var b5=this.get(b3);for (var b1 = b6; b1 < 8; ++b1) {b7+= (b5 >> b1) & 1 ? "1": "0"}b6=0}}returnb7};bX.prototype.parseOctetString=function(b3, b0) {var bZ= b0 -b3,b2= "(" + bZ + "byte)";if (bZ >z) {b0= b3 +z}for (var b1 = b3; b1 < b0; ++b1) {b2+=this.hexByte(this.get(b1))}if (bZ >z) {b2+=t}returnb2};bX.prototype.parseOID=function(b6, b0) {var b3= "",b5=0,b4=0;for (var b2 = b6; b2 < b0; ++b2) {var b1=this.get(b2);b5= (b5 << 7) | (b1 & 127);b4+= 7;if (! (b1 & 128)) {if (b3 === "") {var bZ= b5 < 80 ? b5 < 40 ? 0 : 1 : 2;b3= bZ + "." + (b5 - bZ * 40)}else{b3+= "." + ((b4 >= 31) ? "bigint": b5)}b5= b4 =0}}returnb3};function bW(b2, b3, b1, bZ, b0) {this.stream=b2;this.header=b3;this.length=b1;this.tag=bZ;this.sub=b0}bW.prototype.typeName=function() {if (this.tag ===bY) {return "unknown"}var b1= this.tag >> 6,bZ= (this.tag >> 5) & 1,b0= this.tag & 31;switch (b1) {case 0:switch (b0) {case 0:return "EOC";case1:return "BOOLEAN";case2:return "INTEGER";case3:return "BIT_STRING";case4:return "OCTET_STRING";case5:return "NULL";case6:return "OBJECT_IDENTIFIER";case7:return "ObjectDescriptor";case8:return "EXTERNAL";case9:return "REAL";case10:return "ENUMERATED";case11:return "EMBEDDED_PDV";case12:return "UTF8String";case16:return "SEQUENCE";case17:return "SET";case18:return "NumericString";case19:return "PrintableString";case20:return "TeletexString";case21:return "VideotexString";case22:return "IA5String";case23:return "UTCTime";case24:return "GeneralizedTime";case25:return "GraphicString";case26:return "VisibleString";case27:return "GeneralString";case28:return "UniversalString";case30:return "BMPString";default:return "Universal_" + b0.toString(16)}case1:return "Application_" + b0.toString(16);case2:return "[" + b0 + "]";case3:return "Private_" + b0.toString(16)}};bW.prototype.reSeemsASCII= /^[ -~]+$/;bW.prototype.content=function() {if (this.tag ===bY) {returnnull}var b3= this.tag >> 6,b0= this.tag & 31,b2=this.posContent(),bZ=Math.abs(this.length);if (b3 !==0) {if (this.sub !==null) {return "(" + this.sub.length + "elem)"}var b1= this.stream.parseStringISO(b2, b2 +Math.min(bZ, z));if(this.reSeemsASCII.test(b1)) {return b1.substring(0, 2 * z) + ((b1.length > 2 * z) ? t: "")}else{return this.stream.parseOctetString(b2, b2 +bZ)}}switch (b0) {case1:return (this.stream.get(b2) === 0) ? "false": "true";case2:return this.stream.parseInteger(b2, b2 +bZ);case3:return this.sub ? "(" + this.sub.length + "elem)": this.stream.parseBitString(b2, b2 +bZ);case4:return this.sub ? "(" + this.sub.length + "elem)": this.stream.parseOctetString(b2, b2 +bZ);case6:return this.stream.parseOID(b2, b2 +bZ);case16:case17:return "(" + this.sub.length + "elem)";case12:return this.stream.parseStringUTF(b2, b2 +bZ);case18:case19:case20:case21:case22:case26:return this.stream.parseStringISO(b2, b2 +bZ);case30:return this.stream.parseStringBMP(b2, b2 +bZ);case23:case24:return this.stream.parseTime(b2, b2 +bZ)}returnnull};bW.prototype.toString=function() {return this.typeName() + "@" + this.stream.pos + "[header:" + this.header + ",length:" + this.length + ",sub:" + ((this.sub === null) ? "null": this.sub.length) + "]"};bW.prototype.print =function(b0) {if (b0 ===bY) {b0= ""}document.writeln(b0+this);if (this.sub !==null) {b0+= "  ";for (var b1 =0,bZ= this.sub.length; b1 < bZ; ++b1) {this.sub[b1].print(b0)}}};bW.prototype.toPrettyString=function(b0) {if (b0 ===bY) {b0= ""}var b2= b0 + this.typeName() + "@" +this.stream.pos;if (this.length >=0) {b2+= "+"}b2+=this.length;if (this.tag & 32) {b2+= "(constructed)"}else{if (((this.tag == 3) || (this.tag == 4)) && (this.sub !==null)) {b2+= "(encapsulates)"}}b2+= "\n";if (this.sub !==null) {b0+= "  ";for (var b1 =0,bZ= this.sub.length; b1 < bZ; ++b1) {b2+=this.sub[b1].toPrettyString(b0)}}returnb2};bW.prototype.toDOM=function() {var b0= L.tag("div", "node");b0.asn1=this;var b6= L.tag("div", "head");var b8= this.typeName().replace(/_/g, " ");b6.innerHTML=b8;var b4=this.content();if (b4 !==null) {b4= String(b4).replace(/</g, "&lt;");var b3= L.tag("span", "preview");b3.appendChild(L.text(b4));b6.appendChild(b3)}b0.appendChild(b6);this.node=b0;this.head=b6;var b7= L.tag("div", "value");b8= "Offset:" + this.stream.pos + "<br/>";b8+= "Length:" + this.header + "+";if (this.length >=0) {b8+=this.length}else{b8+= ( - this.length) + "(undefined)"}if (this.tag & 32) {b8+= "<br/>(constructed)"}else{if (((this.tag == 3) || (this.tag == 4)) && (this.sub !==null)) {b8+= "<br/>(encapsulates)"}}if (b4 !==null) {b8+= "<br/>Value:<br/><b>" + b4 + "</b>";if ((typeof oids === "object") && (this.tag == 6)) {var b1=oids[b4];if(b1) {if(b1.d) {b8+= "<br/>" +b1.d}if(b1.c) {b8+= "<br/>" +b1.c}if(b1.w) {b8+= "<br/>(warning!)"}}}}b7.innerHTML=b8;b0.appendChild(b7);var bZ= L.tag("div", "sub");if (this.sub !==null) {for (var b2 =0,b5= this.sub.length; b2 < b5; ++b2) {bZ.appendChild(this.sub[b2].toDOM())}}b0.appendChild(bZ);b6.onclick=function() {b0.className= (b0.className == "node collapsed") ? "node": "node collapsed"};returnb0};bW.prototype.posStart=function() {returnthis.stream.pos};bW.prototype.posContent=function() {return this.stream.pos +this.header};bW.prototype.posEnd=function() {return this.stream.pos + this.header +Math.abs(this.length)};bW.prototype.fakeHover=function(bZ) {this.node.className+= "hover";if(bZ) {this.head.className+= "hover"}};bW.prototype.fakeOut=function(b0) {var bZ= / ?hover/;this.node.className= this.node.className.replace(bZ, "");if(b0) {this.head.className= this.head.className.replace(bZ, "")}};bW.prototype.toHexDOM_sub=function(b2, b1, b3, b4, bZ) {if (b4 >=bZ) {return}var b0= L.tag("span", b1);b0.appendChild(L.text(b3.hexDump(b4, bZ)));b2.appendChild(b0)};bW.prototype.toHexDOM=function(b0) {var b3= L.tag("span", "hex");if (b0 ===bY) {b0=b3}this.head.hexNode=b3;this.head.onmouseover=function() {this.hexNode.className= "hexCurrent"};this.head.onmouseout=function() {this.hexNode.className= "hex"};b3.asn1=this;b3.onmouseover=function() {var b5=!b0.selected;if(b5) {b0.selected=this.asn1;this.className= "hexCurrent"}this.asn1.fakeHover(b5)};b3.onmouseout=function() {var b5= (b0.selected ==this.asn1);this.asn1.fakeOut(b5);if(b5) {b0.selected=null;this.className= "hex"}};this.toHexDOM_sub(b3,"tag", this.stream, this.posStart(), this.posStart() + 1);this.toHexDOM_sub(b3, (this.length>= 0) ? "dlen": "ulen", this.stream, this.posStart() + 1, this.posContent());if (this.sub ===null) {b3.appendChild(L.text(this.stream.hexDump(this.posContent(), this.posEnd())))}else{if (this.sub.length >0) {var b4=this.sub[0];var b2= this.sub[this.sub.length - 1];this.toHexDOM_sub(b3,"intro", this.stream, this.posContent(), b4.posStart());for (var b1 =0,bZ= this.sub.length; b1 < bZ; ++b1) {b3.appendChild(this.sub[b1].toHexDOM(b0))}this.toHexDOM_sub(b3,"outro", this.stream, b2.posEnd(), this.posEnd())}}returnb3};bW.prototype.toHexString=function(bZ) {returnthis.stream.hexDump(this.posStart(), this.posEnd(), true)};bW.decodeLength=function(b2) {var b0=b2.get(),bZ= b0 & 127;if (bZ ==b0) {returnbZ}if (bZ > 3) {throw"Length over 24 bits not supported at position" + (b2.pos - 1)}if (bZ ===0) {return - 1}b0=0;for (var b1 = 0; b1 < bZ; ++b1) {b0= (b0 << 8) |b2.get()}returnb0};bW.hasContent=function(b0, bZ, b5) {if (b0 & 32) {returntrue}if ((b0 < 3) || (b0 > 4)) {returnfalse}var b4=new bX(b5);if (b0 == 3) {b4.get()}var b3=b4.get();if ((b3 >> 6) & 1) {returnfalse}try{var b2=bW.decodeLength(b4);return ((b4.pos - b5.pos) + b2 ==bZ)} catch(b1) {returnfalse}};bW.decode=function(b6) {if(! (b6 instanceof bX)) {b6=new bX(b6, 0)}var b5=new bX(b6),b8=b6.get(),b3=bW.decodeLength(b6),b2= b6.pos -b5.pos,bZ=null;if(bW.hasContent(b8, b3, b6)) {var b0=b6.pos;if (b8 == 3) {b6.get()}bZ=[];if (b3 >=0) {var b1= b0 +b3;while (b6.pos <b1) {bZ[bZ.length]=bW.decode(b6)}if (b6.pos !=b1) {throw"Content size is not correct for container starting at offset" +b0}}else{try{for(;;) {var b7=bW.decode(b6);if (b7.tag ===0) {break}bZ[bZ.length]=b7}b3= b0 -b6.pos} catch(b4) {throw"Exception while decoding undefined length content:" +b4}}}else{b6.pos+=b3}returnnew bW(b5, b2, b3, b8, bZ)};bW.test=function() {var b4=[{value: [39],expected:39},{value: [129, 201],expected:201},{value: [131, 254, 220, 186],expected:16702650}];for (var b1 =0,bZ= b4.length; b1 < bZ; ++b1) {var b3=0,b2=new bX(b4[b1].value, 0),b0=bW.decodeLength(b2);if (b0 !=b4[b1].expected) {document.write("In test[" + b1 + "] expected" + b4[b1].expected + "got" + b0 + "\n")}}};ASN1=bW
})();
ASN1.prototype.getHexStringValue=function() {var t=this.toHexString();var L= this.header * 2;var z= this.length * 2;returnt.substr(L, z)
};
A.prototype.parseKey=function(b1) {try{var b6=0;var bW=0;var t= /^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/;var b5=t.test(b1) ? Hex.decode(b1) : Base64.unarmor(b1);var bX=ASN1.decode(b5);if (bX.sub.length === 3) {bX= bX.sub[2].sub[0]}if (bX.sub.length === 9) {b6= bX.sub[1].getHexStringValue();this.n= w(b6, 16);bW= bX.sub[2].getHexStringValue();this.e= parseInt(bW, 16);var z= bX.sub[3].getHexStringValue();this.d= w(z, 16);var b0= bX.sub[4].getHexStringValue();this.p= w(b0, 16);var bZ= bX.sub[5].getHexStringValue();this.q= w(bZ, 16);var b3= bX.sub[6].getHexStringValue();this.dmp1= w(b3, 16);var b2= bX.sub[7].getHexStringValue();this.dmq1= w(b2, 16);var L= bX.sub[8].getHexStringValue();this.coeff= w(L, 16)}else{if (bX.sub.length === 2) {var b7= bX.sub[1];var bY=b7.sub[0];b6=bY.sub[0].getHexStringValue();this.n= w(b6, 16);bW= bY.sub[1].getHexStringValue();this.e= parseInt(bW, 16)}else{returnfalse}}returntrue} catch(b4) {returnfalse}
};
A.prototype.getPrivateBaseKey=function() {var z={array: [new KJUR.asn1.DERInteger({"int": 0}), new KJUR.asn1.DERInteger({bigint: this.n}), new KJUR.asn1.DERInteger({"int": this.e}), new KJUR.asn1.DERInteger({bigint: this.d}), new KJUR.asn1.DERInteger({bigint: this.p}), new KJUR.asn1.DERInteger({bigint: this.q}), new KJUR.asn1.DERInteger({bigint: this.dmp1}), new KJUR.asn1.DERInteger({bigint: this.dmq1}), new KJUR.asn1.DERInteger({bigint: this.coeff})]};var t=new KJUR.asn1.DERSequence(z);returnt.getEncodedHex()
};
A.prototype.getPrivateBaseKeyB64=function() {returnae(this.getPrivateBaseKey())
};
A.prototype.getPublicBaseKey=function() {var L={array: [new KJUR.asn1.DERObjectIdentifier({oid:"1.2.840.113549.1.1.1"}), new KJUR.asn1.DERNull()]};var t=new KJUR.asn1.DERSequence(L);L={array: [new KJUR.asn1.DERInteger({bigint: this.n}), new KJUR.asn1.DERInteger({"int": this.e})]};var bX=new KJUR.asn1.DERSequence(L);L={hex:"00" +bX.getEncodedHex()};var bW=new KJUR.asn1.DERBitString(L);L={array: [t, bW]};var z=new KJUR.asn1.DERSequence(L);returnz.getEncodedHex()
};
A.prototype.getPublicBaseKeyB64=function() {returnae(this.getPublicBaseKey())
};
A.prototype.wordwrap=function(L, t) {t= t || 64;if(!L) {returnL}var z= "(.{1," + t + "})( +|$\n?)|(.{1," + t + "})";return L.match(RegExp(z, "g")).join("\n")
};
A.prototype.getPrivateKey=function() {var t= "-----BEGIN RSA PRIVATE KEY-----\n";t+= this.wordwrap(this.getPrivateBaseKeyB64()) + "\n";t+= "-----END RSA PRIVATE KEY-----";returnt
};
A.prototype.getPublicKey=function() {var t= "-----BEGIN PUBLIC KEY-----\n";t+= this.wordwrap(this.getPublicBaseKeyB64()) + "\n";t+= "-----END PUBLIC KEY-----";returnt
};
A.prototype.hasPublicKeyProperty=function(t) {t= t ||{};return (t.hasOwnProperty("n") && t.hasOwnProperty("e"))
};
A.prototype.hasPrivateKeyProperty=function(t) {t= t ||{};return (t.hasOwnProperty("n") && t.hasOwnProperty("e") && t.hasOwnProperty("d") && t.hasOwnProperty("p") && t.hasOwnProperty("q") && t.hasOwnProperty("dmp1") && t.hasOwnProperty("dmq1") && t.hasOwnProperty("coeff"))
};
A.prototype.parsePropertiesFrom=function(t) {this.n=t.n;this.e=t.e;if (t.hasOwnProperty("d")) {this.d=t.d;this.p=t.p;this.q=t.q;this.dmp1=t.dmp1;this.dmq1=t.dmq1;this.coeff=t.coeff}
};
var bx=function(t) {A.call(this);if(t) {if (typeof t === "string") {this.parseKey(t)}else{if (this.hasPrivateKeyProperty(t) ||this.hasPublicKeyProperty(t)) {this.parsePropertiesFrom(t)}}}
};
bx.prototype=new A();
bx.prototype.constructor=bx;
var a3=function(t) {t= t ||{};this.default_key_size= parseInt(t.default_key_size) || 1024;this.default_public_exponent= t.default_public_exponent || "010001";this.log= t.log ||false;this.key=null
};
a3.prototype.setKey=function(t) {if (this.log &&this.key) {console.warn("A key was already set, overriding existing.")}this.key=new bx(t)
};
a3.prototype.setPrivateKey=function(t) {this.setKey(t)
};
a3.prototype.setPublicKey=function(t) {this.setKey(t)
};
a3.prototype.decrypt=function(t) {try{returnthis.getKey().decrypt(aW(t))} catch(z) {returnfalse}
};
a3.prototype.encrypt=function(t) {try{returnae(this.getKey().encrypt(t))} catch(z) {returnfalse}
};
a3.prototype.getKey=function(t) {if(!this.key) {this.key=new bx();if (t && {}.toString.call(t) === "[object Function]") {this.key.generateAsync(this.default_key_size, this.default_public_exponent, t);return}this.key.generate(this.default_key_size, this.default_public_exponent)}returnthis.key
};
a3.prototype.getPrivateKey=function() {returnthis.getKey().getPrivateKey()
};
a3.prototype.getPrivateKeyB64=function() {returnthis.getKey().getPrivateBaseKeyB64()
};
a3.prototype.getPublicKey=function() {returnthis.getKey().getPublicKey()
};
a3.prototype.getPublicKeyB64=function() {returnthis.getKey().getPublicBaseKeyB64()
};
a3.version= "2.3.1";
ap.JSEncrypt=a3
});
function getEntryptPwd(pwd) {
var pubKey= "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7kw8r6tq43pwApYvkJ5laljaN9BZb21TAIfT/vexbobzH7Q8SUdP5uDPXEBKzOjx2L28y7Xs1d9v3tdPfKI2LR7PAzWBmDMn8riHrDDNpUpJnlAGUqJG9ooPn8j7YNpcxCa1iybOlc2kEhmJn5uwoanQq+CA6agNkqly2H4j6wIDAQAB";
var encrypt=new JSEncrypt();
encrypt.setPublicKey(pubKey);returnencrypt.encrypt(pwd);
};

View Code

运行结果:

  

  

转载于:https://www.cnblogs.com/xuchunlin/p/11424155.html

京东js加密 nloginpwd 破解相关推荐

  1. Python之爬虫-- js加密(破解有道词典加密的算法)

    js加密 有的反爬虫策略采用js对需要传输的数据进行加密处理(通常是取md5值) 经过加密,传输的就是密文,但是 加密函数或者过程一定是在浏览器完成,也就是一定会把代码(js代码)暴露给使用者 通过阅 ...

  2. 爬虫之js加密参数破解步骤分析-百度翻译移动版sign值的获取

    百度翻译sign值的获取 前言语 请求参数分析 动态分析参数生成方式 定位参数生成的位置 断点调试 使用python生成sign 第一种方式-读懂js代码,翻译成python 使用执行js的包 前言语 ...

  3. 爬虫之js加密参数破解练习-百度指数爬虫(附完整源码)

    百度指数爬虫 前言 分析 查看响应体 找到加密的代码块 python实现解密过程 完整代码 前言 完整源码如因环境问题无法运行(没有安装node环境),将解密部分换成python(已在博客中附上)即可 ...

  4. 爬虫破解js加密破解(二) 有道词典js加密参数 sign破解

    在爬虫过程中,经常给服务器造成压力(比如耗尽CPU,内存,带宽等),为了减少不必要的访问(比如爬虫),网页开发者就发明了反爬虫技术. 常见的反爬虫技术有封ip,user_agent,字体库,js加密, ...

  5. 爬虫入门经典(二十) | 破解JS加密之有道翻译

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  6. 纯手工解密几大在线js加密网站(1)

    0x0.开头 最近闲来无事,来看一下目前网络上哪家加密工具的强度最高的.本人技术有限,最终结果不能代表什么,大家有遇到什么其他的js加密技术破解难题的,也可以一起互相讨论,也可以问我,知无不言. 0x ...

  7. web主题公园版权信息破解:script.js加密文件

    很多人会使用web主题公园网站的免费worldpress主题,但它的主题又都被加了版权信息,故意让人找不到版权信息的修改位置. 你如果去footer.php里面删除版权信息(技术支持:web主题公园) ...

  8. 13-爬虫之js加密,解密,混淆,逆向破解思路

    url:https://www.aqistudy.cn/apinew/aqistudyapi.php 分析思路: 原图 现图 1,我们点击查询按钮后发现抓取到了2个一样的数据包,包含请求url和pos ...

  9. 使用selenium进行密码破解(绕过账号密码JS加密)

    经常碰到网站,账号密码通过js加密后进行提交.通过burp拦截抓到的账号密码是加密后的,所以无法通过burp instruder进行破解.只能模拟浏览器填写表单并点击登录按钮进行破解.于是想到了自动化 ...

最新文章

  1. 报名即将关闭丨AAAI 2020论文预讲会
  2. H5页面与ios交互返回上一级
  3. 分布式计算互相sayhello
  4. Java Spring研究之initHandlerMappings - MavenSandbox debug
  5. 【Python3 SelectKBest 调用personer出现的错误】
  6. postman提交文件及get、post请求
  7. 怎么把图片上的字去掉_视频片头怎么减掉,电脑如何剪切掉视频的开头「视频批量剪辑」...
  8. Python爬虫编程实践 Task04
  9. 31、Arrays数组排序(续)——自定义排序
  10. android 如何把.swf作为开机动画,win10系统将PPT幻灯片转为SWF动画的操作方法
  11. 如何在matlab中产生瞬态信号,基于小波分析的微弱信号检测及其在Matlab中的仿真...
  12. 利用TreeWalk提高网速及其在vista中的安装方法
  13. jquery.fly.js实现添加购物车效果、实现抛物线运动
  14. BackTrack5里使用OpenVAS
  15. Python–cookbook–1.数据结构与算法
  16. OpenLayers官方示例详解七之图层的最小、最大分辨率(Layer Min/Max Resolution)
  17. 前后端分离,解决Spring Cloud GateWay + Nacos使用lb请求报503错误以及403跨域问题
  18. 2020年房价趋势_2020年的9种网页设计趋势
  19. 楚留香服务器维护3月8,楚留香手游3月8日更新了什么_3月8日更新内容介绍_3DM手游...
  20. Java基于ssm开发的校园超市系统超市商城源码超市网站

热门文章

  1. 华为电脑linux装win7不用u盘,华为huawei matebook d笔记本使用u启动u盘安装win7系统教程...
  2. 怎么安装w7计算机系统安装,图解如何安装win7系统
  3. iOS学习—截屏/屏幕获取的监测
  4. urlencode 与urldecode 函数字符编码原理详解
  5. canal简介及canal部署、TCP原理和使用介绍
  6. 附件、文件的加密解密方法
  7. 利用:before和:after伪类制作类似微信对话框
  8. 问题:OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one...
  9. 树莓派-树莓派系统的备份与还原(4)
  10. swift 与 oc 有哪些区别