当前位置: 首页 > news >正文

DX算法还原

早在之前作者就写过一篇关于顶象的滑块验证,潦潦草草几句话就带过了。

出于互相学习的想法,给了一个大学生,奈何不讲武德把源码甩群里了,虽然在大佬们眼里不难,

不过拿着别人的东西乱传还是不太好。自认倒霉,大表哥们互相学习学习。文末作者留下还原的案

例,大表哥们可以拿去研究研究。

网址:https://www.dingxiang-inc.com/business/captcha

其实可以看到顶象官方的验证方式还是挺多的,这里说明一下,除了顶象定制版,大部分基本用官方的这一套都能行。 这里就以滑块来说一说。

具体流程:第一次:c1请求(注册ck)第二次:c1请求(返回有效const_id,这也就是下一步图片请求中的参数c)第三步:https://cap.dingxiang-inc.com/api/a(获取图片以及sid等后续加密用到的值)第四步:https://cap.dingxiang-inc.com/api/v1(验证)

这里作者提一句,一般关于顶象的东西,补环境还是来得快点,基本_dx下都包含所有的逻辑,补完套来用就好。

具体分析:

第一次c1请求:

第二次c1请求:

        此处的长的Param参数跟顶象接入id,第一次返回的data有关。

 具体的分析流程在index.js里,感兴趣的大表哥可以去断个点跟一跟。作者去扣过逻辑,值得注意的问题是,顶象的js每天变两次,所以要扣逻辑的话还是保存一份本地来搞,或者不刷新页面。

这里我就直接给出dom补的方案获取有效const_id

const {JSDOM} = require('jsdom');
const jsdom = new JSDOM('<!doctype html><html><body></body></html>', {url: "https://flights.sda.cn/login?redirect=%2F%2Fnew.sda.cn"
});
const jsdom_window = jsdom.window;// 固定变量
/*Date.prototype.getTime = function () {return 1663520336000;
}
Date.now = function chen_date_now() {return new Date().getTime();
}
Math.random = function () {return 0.16601174644686956;
}if (Function.prototype.originalToString == undefined) {Function.prototype.originalToString = Function.prototype.toString;
}
Function.prototype.toString = function () {let originalToString = this.originalToString();if (originalToString.indexOf("this instanceof") >= 0) {return "function F(c){var u=t[40];if(!(this instanceof F))return new F(c);this[[h,v,u].join(r[4])]=O,this[o[40]]=[],this[a[37]]=[],this[e[46]]=null,this[a[38]]=null,(0,L[i[43]])(c)&&c(D(this[n[48]],this),D(this[o[41]],this))}";} else {return originalToString;}
}
*/var _json = JSON;function get_data(appId) {var origin = jsdom_window.XMLHttpRequest.prototype.open;jsdom_window.XMLHttpRequest.prototype.open = function (...args) {args[2] = false;this['timeout'] = 0;return origin.apply(this, args);}// jsdom_window.XMLHttpRequest.prototype._send = jsdom_window.XMLHttpRequest.prototype.send;// jsdom_window.XMLHttpRequest.prototype.send = function () {//     this._send();// }let data = "";// window基础var eventObj = {};var window = {"Symbol": function (a, b, c, d, e, f, g) {return undefined;},"location": {"href": "https://flights.sda.cn/login?redirect=%2F%2Fnew.sda.cn","protocol": "https:"},"Object": Object,"Array": Array,"encodeURIComponent": encodeURIComponent,"document": {"head": {"appendChild": function () {},"removeChild": function () {debugger;}},"body": {"scrollLeft": 0,"appendChild": function (a, b, c, d, e, f, g) {debugger;},"removeChild": function (a, b, c, d, e, f, g) {debugger;}},"createElement": function (a, b, c, d, e, f, g) {if (a == 'canvas') {return {"getContext": function (a, b, c, d, e, f, g) {if (a == "2d") {return {"fillRect": function (a, b, c, d, e, f, g) {},"fillText": function (a, b, c, d, e, f, g) {},"arc": function () {},"stroke": function () {}}}},"toDataURL": function my_toDataURL() {},"webgl": function () {},"experimental-webgl": function () {}}} else {}},"createEvent": function (a, b, c, d, e, f, g) {// debugger;},"documentElement": {"scrollLeft": 0,"getAttribute": function (a, b, c, d, e, f, g) {// debugger;}},"readyState": "interactive","addEventListener": function (a, b, c, d, e, f, g) {eventObj[a] = b;},"referrer": "","createEvent": function (a, b, c, d, e, f, g) {if (a == "TouchEvent") {throw DOMException("Failed to execute 'createEvent' on 'Document': The provided event type ('TouchEvent') is invalid.");}debugger;},"implementation": {"hasFeature": function (a, b, c, d, e, f, g) {if (a == "MouseEvents" && b == "2.0") {return true;}debugger;}},"getElementById": function (a, b, c, d, e, f, g) {debugger;}},"RegExp": RegExp,"XMLHttpRequest": jsdom_window.XMLHttpRequest,"Date": Date,// "_dx": {//     "inSDK": false,//     "Captcha": function (a, b, c, d, e, f, g) {//         debugger;//     },//     "UA": {}// },"Math": Math,"String": String,"isNaN": isNaN,"outerHeight": 1040,"innerHeight": 937,"outerWidth": 1920,"innerWidth": 1920,"parseInt": parseInt,"screenLeft": 0,"screenTop": 40,"encodeURIComponent": encodeURIComponent,"localStorage": {"getItem": function (a, b, c, d, e, f, g) {// console.log("localStorage.getItem ", a, b, c);return undefined;}, "setItem": function (a, b, c, d, e, f, g) {// console.log("localStorage.setItem ", a, b, c);}},"sessionStorage": {"getItem": function (a, b, c, d, e, f, g) {// console.log("sessionStorage.getItem ", a, b, c)return undefined;},"setItem": function (a, b, c, d, e, f, g) {// console.log("sessionStorage.setItem ", a, b, c);}},"Error": function (a, b, c, d, e, f, g) {// debugger;},"Math": Math,"Image": function (a, b, c, d, e, f, g) {// debugger;return {};},"isNaN": isNaN,"JSON": {"parse": function (a) {console.log(a);data = data + "###" + a;var result = _json.parse(a);return result;}},"devicePixelRatio": 1,"indexedDB": {},"openDatabase": function (a, b, c, d, e, f, g) {debugger;},"WebGLRenderingContext": function (a, b, c, d, e, f, g) {debugger;},"history": {"length": 2},"Float32Array": Float32Array,"unescape": unescape,"eval": eval,"performance": {"timing": {"domContentLoadedEventEnd": 1632072660783},"getEntriesByName": function (a, b, c, d, e, f, g) {debugger;}},"decodeURIComponent": decodeURIComponent,"isFinite": function (a, b, c, d, e, f, g) {// debugger;},"setTimeout": function (a, b, c, e, d) {a();}};// navigatorlet Navigator = function () {}Navigator.prototype.userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36";Navigator.prototype.platform = "Win32";Navigator.prototype.webdriver = false;Navigator.prototype.deviceMemory = 8;Navigator.prototype.hardwareConcurrency = 16;Navigator.prototype.maxTouchPoints = 0;Navigator.prototype.language = "zh-CN";Navigator.prototype.productSub = "20030107";Navigator.prototype.languages = ["zh-CN"];Navigator.prototype.cookieEnabled = true;Navigator.prototype.plugins = {};window.navigator = new Navigator();let Screen = function () {}Screen.prototype.width = 1920;Screen.prototype.height = 1080;Screen.prototype.availWidth = 1920;Screen.prototype.availHeight = 1040;Screen.prototype.colorDepth = 24;window.screen = new Screen();with (window) {//index.js}var _Format_2176 = {"appId": appId,"timeout": 3000,"iframeUrl": "https://cdn.dingxiang-inc.com/ctu-group/constid-js/messager.html","iframeOrign": "https://cdn.dingxiang-inc.com"}window._dx._ConstID_Private(_Format_2176, function () {});return data;
}var data = get_data('c08872185674ff1787fead6dbac18146');
console.log(data);

有喜欢扣js的大表哥可以参考这个去扣c1两个包中的Params,一长一短,兄弟们太短了可不太行哦,

 拒绝颜色从我做起,

 哈哈哈,正事要紧,需要的话看看下面这个哇。

var h={"lid": "a008fb6cd80be29981f8fec28e8edfb1c68e00dfc82c6281b4b898d05e1db89d6543e0dc","lidType": 1,"cache": true,"can": "981ca80af415f5c9fb420b3cf8fc233d","web": "e11de126215c6cca83f1fc404ed1e5e3","gi": "Google Inc. (NVIDIA);ANGLE (NVIDIA, NVIDIA GeForce GT 1030 Direct3D11 vs_5_0 ps_5_0, D3D11-30.0.15.1215)","pr": 1,"dm": 8,"cc": "unknown","hc": 12,"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36","np": "Win32","lug": "zh-CN","ce": 1,"ts": "0;false;false","timezone": "Asia/Shanghai","to": -480,"ls": 1,"ss": 1,"ind": 1,"ab": 0,"od": 1,"cd": 24,"res": "1920;1080","ar": "1920;1050","vs": "1920;150","ws": "1920;1050","rp": "PDF Viewer;Chrome PDF Viewer;Chromium PDF Viewer;Microsoft Edge PDF Viewer;WebKit built-in PDF","adb": false,"hl": 3,"cl": 17,"st": 41904,"ct": 11290,"hlb": false,"hll": false,"hlo": false,"hlr": false,"db": 1,"sm": 0,"appKey": "dxdxdxtest2017keyc3e83b6940835"
};
var result='2940#X8m8rKK15ojqNsAvpfPzCkF8QntgdepvonAMrUkJpZNKLsRTqfwSLpw40SE29JDao4JVLsG4qbzCVsi17ZwcdkAv0ZzSLUG6G5pbEstFqQlKdHgYXXQLnhWjuR8KXAZdH2IXjFUtosi7QFFex+UyQX8XiFsgGuRto0ilSAegGivEGmhY+SS/E0tluFhYWAsVJ02/SCRgWzxqmFnuXYrafr4cTd9HUroqDLoiUX5gjRCkk87Qjj8PfaXNa6uTO8myaRXufuZMmrm0rtMor5+jiYVQsIwe8NrZl2ajTXyi+I4SONhAO2yStU4jTXyi+I4SOgTjY8xSMNCz8tLeYYNZlKQjiIcjO/6cT/FPkndelgNcMNac82qQiK/eT/ZZeh0ciVD38gJcMNac7iaum//uOJ/uOfac76hjm2X17ZPjr5p8YXX1XTZkXW1MY8XUT1MoT343eo9QwJdpw/8iXX4l3uaV6/nuY2m79+jm5bzGQQALtlkil5hMzqKFxBYOb7FgEBLfcosEVKFZBWkAo4ENrshFebHC9HwWzJN4gORjxohF7xibEspISx1zCqByeFE9K4D9AHYkBQqOBvBVAGihVkzsxIAorGlISxigEsqn0viAyGFrrJJ1bvNtCGhjeOqSEr2XjY4vUToCX98b/NmhWXVXj62B8LTojV/JDDCGnc3UXXfLfN/LUwXFXmRRxbRNwUGJ7fFEL0NfSg6yts0JBmXX1p1dGqvaKRdmq8P3L8c85t7s/v7pLE8ljQam38XvKV6yKB7WFkqb3rX1s647sR8B32X1pjxdXCrjuXXPud584uOoDT/XmEyTIhyoqMfXmxdtcehU0MWXmtvLOYnqIL8fXm1QdGevqbPw200vKWsw2B0sqTyX33Xv3PxjuPcwfauTm24H6VX+XXgDDY2DAmWnEmL5lXCnKmWkXmmS8yTSjMaGjXaqjrOqXX4SPXmcORrG+6n+PhgC1T3LsL2bhzfSjVoSvt7eYP2shwu8nLVpU6ZGvTynaY5BvAonHXQsIaXEFh57fd/yYma6ZY/QFdCbi82Y1TWUj6oU/hrWXyQgPh5x3937h2aIsEfBOLu6kRoLHN/4XX07921Tu4omycphXC5XmCujfMPTA83Xm5FrLiq/xOnYXXxLFLxuJdcBDzu7X2XigGicgK0r5UFS588XYBnyTFRtoCRoTP2Im8XsuDVTHabcXNnUHTr1XXpjRI2Qr5fI+gtQq2WXYKRvd4URAbHXd4s/YXX1XTIjXWu7Y8X1T1qQT3W1YrXx+Cc1vEr6Rz3F6E2X/E5PYVINTrMqhX4CYmOUIXf4W3Q/fuxPmNo1R6S=';
function hc(i) {for (var a = [3, 2, 4, 0, 1], u = 0; true; ) {switch (a[u++]) {case 0:for (var c = 0; c < i.length; c++) {var s = i.charCodeAt(c), f = s ^ d;d = s,v += String.fromCharCode(f)}continue;case 1:return v;case 2:var v = '';continue;case 3:if (!i)return '';continue;case 4:var d = 61380;continue}break}
};
var k_function_list=[function(i) {for (var a = 'c', u = 'h', c = 'd', s = "A", f = '', v = 56737, w = 0; w < i['length']; w++) {var m = i['charCodeAt'](w) ^ v;v = m,f += String['fromCharCode'](m & 255)}return f},function(t) {for (var a = '', u = "NxMLsN8Ng7lA", c = 32, s = 0; s < t["length"]; s++) {var f = t["charCodeAt"](s);c = (c + 3) % u["length"],f ^= u["charCodeAt"](c),a += String["fromCharCode"](f & 255)}return a},function(i) {for (var a = '', u = 8, c = 7, s = 221, f = 0; f < i['length']; f++) {s = ((s << u ^ s) & 240) + (s >> c),a += String['fromCharCode']((i['charCodeAt'](f) ^ s) & 255)}return a},function(n) {for (var e = '', i = 5, a = 18657, u = 0; u < n['length']; u++) {var c = n['charCodeAt'](u), s = (c >> i) + (c << 8 - i) + a & 255;e += String['fromCharCode'](s)}return e},function(t) {for (var r = '', i = '2359', a =0; a < t['length']; a++) {var u = t['charCodeAt'](a) ^ i;i = u,r += String['fromCharCode'](u & 255)}return r},//4function(i) {for (var a = "vPV$", u = '', c = 6, s = 3, f = 0; f < i['length']; f++) {var v = i['charCodeAt'](f) - c & 255, d = (v >> s) + (v << 8 - s) & 255;u += String['fromCharCode'](d)}return u},function(i) {for (var a = '', u = '891', c = 4, s = 7, f = u, v =0; v < i['length']; v++) {f = ((f << c ^ f) & 240) + (f >> s),a += String['fromCharCode']((i["charCodeAt"](v) ^ f) & 255)}return a},function(e) {for (var i = "vWS3", a = '', u = 2, c = 5, s = 0; s < e["length"]; s++) {var f = e["charCodeAt"](s) - u & 255, v = (f >> c) + (f << 8 - c) & 255;a += String['fromCharCode'](v)}return a},//7function(n) {for (var i = '', a = 3, u =5, c = 0; c < n["length"]; c++) {var s = n["charCodeAt"](c), f = (s >> a) + (s << u) & 255;i += String["fromCharCode"](f)}return i},function(i) {for (var a = [0, 1, 4, 2, 5, 3], u = 0; true; ) {switch (a[u++]) {case 0:var c = 'c', s = 'h', f = 'e', v = "ar", d = "de";continue;case 1:var l ="";continue;case 2:var j = 0;continue;case 3:return l;case 4:var h = "Hx6Vcs7S5x";continue;case 5:for (var p = 0; p < i["length"]; p++) {var g = i["length"](p);g ^= h["charCodeAt"](j),++j >= h["length"] && (j = 0),l += String["fromCharCode"](g & 255)}continue}break}},function(e) {for (var i = '', a = 72439, u = 0; u < e["length"]; u++) {var c = e["charCodeAt"](u) ^ a;a = c,i += String["fromCharCode"](c & 255)}return i},function(i) {for (var a = [2, 1, 5, 0, 4, 3], u = 0; true; ) {switch (a[u++]) {case 0:var c = j;continue;case 1:var s = "";continue;case 2:var f = "fromCha", v = "rCode";continue;case 3:return s;case 4:for (var d = 0; d < i["length"]; d++) {var l = i["charCodeAt"](d) ^ c;c = l,s += String["fromCharCode"](l & 255)}continue;case 5:var j = 67845;continue}break}},//11function(i) {for (var a = [5, 0, 1, 2, 4, 3], u = 0; true; ) {switch (a[u++]) {case 0:var c = '';continue;case 1:var s = "NS7SN5gd5U8ls";continue;case 2:var f = 0;continue;case 3:return c;case 4:for (var v = 0; v < i['length']; v++) {var d = i["charCodeAt"](v);d ^= s["charCodeAt"](f),++f >= s["length"] && (f = 0),c += String["fromCharCode"](d & 255)}continue;case 5:var l = "絷", j = "?", h = "?", p = "?";continue}break}},function(r) {for (var i = "n", a = "g", u = "", c = 115, s = 6, f = 0; f < r["length"]; f++) {var v = c ^ r["charCodeAt"](f);u += String["fromCharCode"]((v >> s ^ r["charCodeAt"](f)) & 255)}return u},function(i) {for (var a = 'c', u = "h", c = "a", s = "d", f = "A", v = "", d = 241, l = 0; l < i["length"]; l++) {var j = (i["charCodeAt"](l) ^ d) & 255;v += String["fromCharCode"](j),d = j}return v},function(n) {for (var i = "", a = 2755, u = 451, c = 0; c < n['length']; c++) {var s = n["charCodeAt"](c) ^ u;u = u * c % 256 + a,i += String["fromCharCode"](s & 255)}return i},//15function(t) {for (var i = "len", a = "", u = 3, c = 29111, s = 0; s < t["length"]; s++) {var f = t["charCodeAt"](s), v = (f >> u) + (f << 8 - u) + c & 255;a += String["fromCharCode"](v)}return a},function(e) {for (var r = '', i = 208, a = 4, u = 0; u < e['length']; u++) {var c = i ^ e[pc(o[505])](u);r += String["fromCharCode"]((c >> a ^ e["charCodeAt"](u)) & 255)}return r},function(i) {for (var a = '', u = 167, c = 3, s = 4, f = u, v = 0; v < i['length']; v++) {f = ((f << c ^ f) & 240) + (f >> s),a += String["fromCharCode"]((i["charCodeAt"](v) ^ f) & 255)}return a},function(e) {for (var i = "len", a = "", u = 98357, c = 0; c < e['length']; c++) {var s = e["charCodeAt"](c) ^ u;u = s,a += String["fromCharCode"](s & 255)}return a},function(o) {for (var i = '', a = 3, u = 47589, c = 0; c < o['length']; c++) {var s = o["charCodeAt"](c), f = (s >> a) + (s << 8 - a) + u & 255;i += String["fromCharCode"](f)}return i},//20function(e) {for (var i = '', a = 3519, u = 0; u < e['length']; u++) {var c = (e["charCodeAt"](u) ^ a) & 255;i += String["fromCharCode"](c),a = c}return i},function(e) {for (var t = "eAt", i = "", a = 237, u = 8, c = 0; c < e['length']; c++) {var s = a ^ e["charCodeAt"](c);i += String["fromCharCode"]((s >> u ^ e["charCodeAt"](c)) & 255)}return i},function(i) {for (var a = [3, 1, 2, 4, 0], u = 0; true; ) {switch (a[u++]) {case 0:return f;case 1:var c = 143;continue;case 2:var s = c;continue;case 3:var f = "";continue;case 4:for (var v = 0; v < i["length"]; v++) {var d = (i["charCodeAt"](v) ^ s) & 255;f += String["fromCharCode"](d),s = d}continue}break}},function(e) {for (var i = '', a = "bhbXy6HJSaj67jk", u = 0; u < e['length']; u++) {var c = e["charCodeAt"](u) ^ a["charCodeAt"](u % a["length"]);i += String["fromCharCode"](c & 255)}return i},function(i) {for (var a = "", u = 4, c = 16373, s = 0; s < i['length']; s++) {var f = i["charCodeAt"](s), v = (f >> u) + (f << 8 - u) + c & 255;a += String["fromCharCode"](v)}return a},//25function(i) {for (var a = '', u = "J6Br59Hf7NgK", c = 44, s =0; s < i['length']; s++) {var f = i["charCodeAt"](s);c = (c + 4) % u["length"],f ^= u["charCodeAt"](c),a += String["fromCharCode"](f & 255)}return a},function(i) {for (var a = "", u = "KX8Mkg9GJK", c = 36, s =0; s < i["length"]; s++) {var f = i["charCodeAt"](s);c = (c + 1) % u["length"],f ^= u["charCodeAt"](c),a += String["fromCharCode"](f & 255)}return a},function(i) {for (var a = "", u = 2, c = 5, s = 367, f = 0; f < i['length']; f++) {s = ((s << u ^ s) & 240) + (s >> c),a += String["fromCharCode"]((i["charCodeAt"](f) ^ s) & 255)}return a},function(i) {for (var a = [3, 2, 4, 0, 1], u = 0; true; ) {switch (a[u++]) {case 0:for (var c = 0; c < i['length']; c++) {var s = i["charCodeAt"](c), f = (s >> d) + (s << v) & 255;l += String["fromCharCode"](f)}continue;case 1:return l;case 2:var v = 3;continue;case 3:var d = 5;continue;case 4:var l = "";continue}break}}
];
function dc(i) {for (var a = [1, 3, 0, 2, 4, 5], u = 0; true; ) {switch (a[u++]) {case 0:var c = "V587";continue;case 1:if (!i)return '';continue;case 2:var s = 68232;continue;case 3:var f = '';continue;case 4:for (var v = 0; v < i.length; v++) {var d = i.charCodeAt(v);s = (s + '') % c.length,d ^= c.charCodeAt(s),f += String.fromCharCode(d)}continue;case 5:return f}break}
}
function pc(o) {if (!o)return '';var i = [];o = o.split(",");for (var a = 0; a < o.length; a++)i.push(String.fromCharCode(parseInt(o[a], 16)));return i.join('')
}
var C={"stringifyJSON":function(i, a, u) {var c = '6', p = 'd', g = '2', w = '5', m = '2';if (M = '',I = dc(''),typeof u === pc(['6', "e", ",", "7", "5", ",", c, p, ",", "6", g, ",", "6", w, ",", "7", m].join('')))for (var y = 0; y < u; y += 1)I += " ";elsetypeof u === 'string' && (I = u);// if (L = a,// a && typeof a !== "function" && ((typeof a === "undefined" ? "undefined" : T(a)) !== o[8] || typeof a[e[114]] !== o[384]))//     throw new Error(dc([Ii, Di, h].join(r[4])));return '"'+JSON.stringify(i)+'"'}
};
var O = function(r, i) {function T(n) {return [v(n, 8), v(n, 0)]};function v(t, o, i) {return t >> o & Math['pow'](2, (typeof i === 'undefined' ? 1 : i) * 8) -1};function A(t) {for (var r = '', i = 0; i < t['length']; i++)r += String['fromCharCode'](t[i]);return r};var a = "co", u = "nc";return (0, A)([r]["concat"]((0, T)(i['length']))) + i
};
function end_code(o, u) {for (var c, s, f, l, d, v, h, g = '', p = 0; p < o.length; )c = o["charCodeAt"](p++),s = o["charCodeAt"](p++),f = o["charCodeAt"](p++),l = c >> 2,d = (c & 3) << 4 | s >> 4,v = (s & 15) << 2 | f >> 6,h = f & 63,isNaN(s) ? v = h = 64 : isNaN(f) && (h = 64),g = g + u.charAt(l) + u.charAt(d) + u.charAt(v) + u.charAt(h);return "2941#"+g
};
gRYsJOBH=function(i) {var a = 'le', u = 'th', c = "e", j = "6e,76,69,73,", h = "49,5a,55,46,", p = "53,78,6c,65,", g = "32,4d,74,77,", w = "56,39,4e,64,", m = "67,62,4b,42,", y = '', b = 30, S = 0;for (var E in i) {var _, x = S % b, A = k_function_list[x], T = (0, C['stringifyJSON'])(((_ = {})[E] = i[E], _));y += O(x + 1, A(T['slice'](1, -1))),S++}return  end_code(y, "XmYj3u1PnvisIZUF8ThR/a6DfO+kW4JHrCELycAzSxleoQp02MtwV9Nd57qGgbKB=")
};var o=["",57484,1,3,4,0,"object","S","te","n","ma","??","??????????????","e","?","p","\ude9f\udefc\ude88","pa",":","r","lp","d","fillRec","m","f","j","y","t","l","hardwareCon","htt","ng","ins","6e","windowSi","6f","o","5,58","1,58",",45,","\udeb0\udee6\ude83\udef1\ude85\udee0","\udec9\udeb1\ude9a\udeef\ude81\udee8","eBuff","Loc","pus","h","_UNIFORM_VEC","\u0019t","E","pre","expo","rts","?","a","s","u","a cl","K","callbac","da","__es","ion","ect","??????????????????????????????????","undefin","lla","??","67,65","\udefe\ude91","v","b","\b\u0007","aW","M\u0005","\n\u000f","\b\u0001","cti","joi","pro","\udee9\ude80\udeed","exte","\udef8\ude80\udef4\ude91","SA}\u0005zv","DEFAULT_SE","_Const","??","ch","fr","g","\udef1\ude94\udefa","de","eAt",52,"rm","ay","\udeed\ude9f\udef0\ude84\udeeb\ude9f\udee6\ude96\udef3","Function","length",false,"slice",2,"htgnel","\udefa","onload","onerror","function","gth",true,"getHours","fromCharCode","th","c","ct",5,6,"apply","prototype","_state","_value","gE3TKX8","_reason","defer","reject","ca","__esModule","ce","dnt","dm","hlb","\udeed\ude9f\udef0","??","^B8VL^9[","toString","?","=","push","pop","substring","stringifyJSON",8,"protocol","TRACK_APPID","//","\u0017B2\\\\\u00185\u0007","https://eventreport.dingxiang-inc.com","call","asyncCounter","?","options",7,"ime","69,73,54,68,65,6e,61,62,6c,65","value","noitcnuFsi","promise","\udee6\ude95"," ","P","getContext","si","\ude03","clo","width","style",10,"isPointInPath","VX",125,62,"fillText",45,"noitarepOetisopmoClabolg","beginPath",100,50,"closePath","fill",75,"deviceMemory","geolocation",1500,60000,"gps","ud","\u0014","us","platform","64,65,","[X9^QR","67,65,74,54,69,6d,65","timi","defaultStr","createElement","&nbsp;","adsbox","getElementsByClassName","????","noituloseRliava","availHeight","body","innerWidth","ze",",7",",4","2,","7,","sessionStorage","indexedDB","DateTimeFormat","nt","\udefc\ude88\udefc\ude8e\udee7\ude85","\ude8e\udee1\ude93\udefe\udeb1\uded7","AY_","BUF","??","\\WY","B_A","BITS","]","~{","AG","webgl","en","4d,4","\udeb9\ude82\udef4\ude9b\udef2\ude96","IN","get","D","_","77,","65,","clearColor","ge","58,5","getExtension","WEBKIT_EXT_texture_filter_anisotropic","createShader","useProgram","TRIANGLE_STRIP","toDataURL","getSupportedExtensions","??????????????????????????????","ALIASED_LINE_WIDTH_RANGE","getParameter","getContextAttributes","webgl max render buffer size:","MAX_VERTEX_UNIFORM_VECTORS","webgl max viewport dims:","MAX_VIEWPORT_DIMS","RENDERER","retemaraPteg","webgl vendor:","webgl unmasked vendor:","webgl unmasked renderer:","6a,6f,69,6e","~","V","67,","each","MEDIUM","getShaderPrecisionFormat","precision ","?","ight","\udef2\ude87\udef3\ude96\udee4\udeac\udec9\udea0\udec7\udeaf\udedb",")$","refo","toLowerCase","IE",37,"indexO","o^8QW@%\u0015","Windows","mac","Other","??????","indexOf","Linux","Android","availWidth","\udeed\ude88\udefa\ude9c\udef3\ude81\udeec\ude8d\udee3\ude80\udee5","B","N",",69,70,74,5f,66,6e","iver","webdriver","__selenium_evaluate","revird","test","join","00000000000000000000000000000000","withCredentials","ty","Cann","the","?","O","sO","er","ot c","ns","\u001bth","se","?","L","mix","checkOptions","domReady","Pro","epytotorp","epyt","STATE_MAP","???????????","resolve","data","64,65,74,65,63,74","MsqsqO","status","0","one","\udefa\ude9f\udeeb\udeae\udec2\udea7\udeca\udeaf\udec1\udeb5\udec6\ude84\udefd\udea9\udec8\udeaf\udee1\ude80\udeed\ude88",30,"\udee8\ude9a\udef6","&","jsonp timeout","ta","73,65,74,52,65,71,75,65,73,74,48,65,61,6","ha",29,"od","??","dataType","Accept","????","random",1223,"JSON","65,72,72,6f,72","responseText","type","method","headers","wn","KC$\\VP","gh3FuX2@TR","\udeb5\ude99\udeb0\udecc\udee4\udeb8\udee3\ude9f\udee4\udecd\udeb1\ude99\udee4\ude98\udec5\udeec\ude90\udeb2\ude9a\udea5\ude9f\udec4\ude9a\udeb8\udee4\udeb8\udee4\ude96\udeca","J","Invalid JSON: ","otor","obj","????????????????????????","???","i","rebm","4a,53,4f,4e,2e,73,74,72,69,6e,67,69,66,79",16,"cal","toJSON","[object Array]",",\n","[","{\n","Object",35,"set",365,"toUTC",60,"(?:(?:=([^;]*))|;|$)","getTime","; secure","CJ","name","\udeee\ude9a\udee8\ude81\udeef\ude88\udee1\ude87\udefe\udeb4\udee7\udea8\udee6","replace","fl\nFdB\u0010p~q\nMy\u0007\u000b\u001eDl\nFdB\u0010p~q\nMy\u0007\u000b\u001e\u001c","\\","0\u0018","{i","M\u0007","\u000f\u0007","^j","noitcnuf","undefined","undef","74,6f,4a,53,4f,4e","VB:Y","[\n","7b","???","remove","_M","tStr","5","6",",","Y[:","\\V\"T","???????","constructor","expor",32,909522486,1549556828,"concat",512,9,1732584193,606105819,1200080426,1473231341,12,17,1990404162,165796510,38016083,14,11,1530992060,13,76029189,640364487,15,21,2054922799,"charCodeAt","MY2P^^8P\\","YG&Y","ri","languag","\udef3\ude96","?????","FP","\udea0","userAgent","supportLocalStorage","noituloser","availResolution","viewportSize","startTime","navigator","support","????","end","nd","74,","initialize","shift","70,","????????","ys","exports",47,"St","hasLiedResolution","hasLiedLanguages","hasLiedOs",22,3421,"cha",64,"charAt","{X8FL","error","^(\\w+?):","$)troba|tuoemit(","appId","KC$\\VP?","encode","\udef0\ude99\udee1","_constID_SaaS","then","version","char","X{_","ar","??",44,"\udef1\ude94\udefa\ude9d\udee9\ude81",255,237,"63,68,61,72,43,6f,64,65,41,74",171,"deA",2372,"[_7G{X2PyC","At",5547,256,"le","66,72,6f,6d,43,68,61,72,43,6f,64,65",167,72439,"???????????","???"
];
var n=["65,78,70,6f,72,74,7","ob","ct",0,256,54453,2,"k","y","len","\udef1","ring","toS","at","j","w","??","??","t","ra","cr","te","option","op","s","","e","C","o","er","performa","W","h","7,4c,52,65","T","55,5","\ude97\udeef\udec3\udef3\udedf\udeee","ge","\udeed","nu","ad","f","c","script_func","d","cach","get","?","def","pro","lba","out","\ude9a","rs","JR&Y","\udeee\udeb5\ude9e\udeb3\udeee\uded1\ude8d\udee9\udec2\udebe\ude97","i","\\","?","{","ca","g","\b\u0000","\n\u0007","MQ","0S","X2PyC","on","lengt","__e","6","ect","appl","operty","\udeff\ude9b","to","tacno","ode","^E9","charCod","eAt","Co","ar","n","l",16,"exports","5f,5f,65,73,4d,6f,64,75,6c,65","prototype","call","__esModule","","flatten",36,"length","indexOf","\ude94","\ude81",32,"random","??",true,"function","getMonth","\udebd","","72,65,6a","61,6","c,6c","itself.","re","sh",1,4,"evloser","push","\udec2\udead\udec3\ude85\udef0\ude9c\udefa\ude93\udeff\ude93\udef6\ude92","_state","gD\"TLR","isPending","then","\udee9\ude86\uded5\udea1\uded3\udeba\uded4\udeb3","esimorp",5,"mis","61,","lu","u","KEY_MAP","hc","hlr","np","vs","th","\\+","join","unparam","p","&","parseJSON",39,7,"^http","???????","ime","ll","defer","srotceted","yByek","a",3,"value","can","rgb(255,255,0","7","A","P","ne","2d","evenodd","textBaseline","alphabetic","#f60","18pt Arial","rgb(255,0,255)","PI",")552,0,552(bgr","arc",75,"export","devicePixelRatio","defaultStr","isFunction","getCurrentPosition fail","74,4e,","htgneLeikooc",";","domContentLoadedEventEnd","b","as","stropxe","plugins","name","\\^ ","72,65,6d,6f,76,65,43,68,69,6c,64","colorDepth","clientHeight","outerWidth","tN","0,","2,","4,","dy","addBehavior","\udef2\ude82\udee7\ude89\udecd\udeac\uded8\udeb9\udedb\udeba\udec9\udeac","timezone","TouchEve","57,65,62,4","e,49","\udeed\ude84\udeeb\ude85\udeb8\udece","ati","attrVer","IA","_R","GE","MAX_COMBINED_TEXTURE_I","N","?????????","canvas","FER",",54,","4,52","\udec7\udefc\ude81","bu","Da","???","AL","pu","tP","ame","ter","STEN","\udeeb","V","R","e,","ME","62,","LEQUAL",",53,","ARRAY_BUFFER","VERTEX_SHADER","compileShader","FLOAT","no","???????????","???","MAX_RENDERBUFFER_SIZE","webgl max texture size:","getParameter","\udeea\ude8f\udeed\ude8a\udee6\udec6\udeb4\uded1\udebf\udedb\udebe\udecc\udea9\udedb\udee1","webgl stencil bits:","or\u0014rth2PZB1jJR8Q]E3Gg^8SW","UNMASKED_RENDERER_WEBGL","cis","LOW","precision"," shader ","toLowerCase","m","her)","$","[E?ZK","test","\udeee\ude9b\udef9\ude8a\udefe\ude8c","substr","MY2P^","de","?","_R\"xYC5]nV:@]","WindowsPhone","win","wC>PJ","maxTouchPoints","???????????","Linux","69,6e,64,65,78,4f,66","ipod","O^8","swodniW","]","screen",false,"https",8,"r","[LX","5f,5f,77,65,62,64,72,69,76,65,72,5f,73,63,72","rtsbu","callPhantom","5f,73,65,6c,65,6e,69,75,6d","etaulave_revirdbew__","__fxdriver_evaluate","getAttribute","userAgent",27,"je","per","\udef0\ude95\udee7\ude80\udee5\udeaa\udeda\udeae\udec7\udea8","\udec6\udeb5","??",33,"getStat","L","?","setState",6,"Key","] is not found!","??????","map","scene","C7G","HE3DMR%A|X8P","6d,65,73,73,61,67,65","\udef8\ude8a\udef8\ude97\udee5","?????","status1: -3","\\R\"P[C9","type","STATE_MAP","server","\udeef\ude8a\udefb\ude8e\udeeb\ude98\udeec\udea8\udec7\udea9\udecc","resolve","events","emit","???","diLteg_","gh3FuX2@TR","cal","\u0007","\udee8","\udef6","\ude9f","method","??????????","data","52,65,71,75,65,73,74,20,45,72,72,6f,72,20","onload","6f,6e,72,65,61,64,79,73,74,61,74,65,63,68,61,6e,67,65","\udeef\ude8a\udeeb\ude8f\udef6\udea5\uded1\udeb0\udec4\udea1","withCredentials","credentials","headers","$)TEG|DAEH(^","?","??","??","70,61,72,73,65,4a,53,4f,4e",30,"\udeea\udec7\udef8\uded0\udeef\udece\udefe\udea2\udec6\udeef\udeb3\uded7\udefc\uded4\udeeb\uded1\ude8d\udea3\udeff\ude9b\udeb0\udecc\udee5\udecd\udef2\udec8\ude93\udef6\udeb3","rd\u0019{","??","74,6f,","const"," ","\\r","0000","toString","null","[]","[\n",",",": ","E","?",37,"hasOwnProperty","filter","htgnel","remove","set","??????","??","7Q","0i","fS","^R","jo","constructor","fun","undefined","\udee8\ude86\udee2\ude87\udee1\ude88\udee6\ude83\udee7","\udef2\ude90\udefa\ude9f\udefc\ude88","2","[",":","","ng","[_7G{","K",43,"proto","ha","options","K_9GLR8","5","8","init","promise","tot","ype","ts","fromCharCode",65535,"concat",9,1732584194,271733879,680876936,389564586,17,12,11,22,20,701558691,10,14,1019803690,1926607734,722521979,421815835,995338651,198630844,21,1700485571,15,1560198380,"??","./","63,6f,6f,6b,69,65,45,6e,61,62,6c,65,64","touch","\udefc\ude98\udefa\ude96\udef9\ude9a\udef1","webgl","uct","65","Extends","apply","68,61,73,4f,77,6e,50,72,6f,70,65,72,74,79","__proto__","isArray","[object Function]","__esModul","ri","reggubed",18,"charAt","???????????","????????????",54,"??????","????????????","_constID_params","RVER","[X8FL~\u0012",".","At","deA",2941,"charCodeA",29111,255,621,115,143,"charCodeAt","Code","?????????","po","62,73,32","bss"
];
var u=["",4,0,2,56989,"???????","amd","e","isArr","\ude9d","\udefe","subst","h","\udef2\ude90\udefa","g","m","len","trin","?","b","n","v","x","z","66,69,6c,6c,53,74,79,6c,","fil","l","1","r","??????????","d","fa","a","t","j","bo","p","nt",",6e,64,65,","54,4","\udee3\udebc\udeec\ude83\udef0\ude99","??????","on","T_","et","M","O","W","R","outerHe","fxi","x|Ot","dOs","one","V","\udeca","75,6e,64,65,66,69","%","expo","ass ","s","\ude9a\udec9\udebd\udedc\udeae","QY","?SA}\u0005z","Modu","??","w","o","c","\n\u0017","f\u0004","dB","\u0001Q","^\u0007","ca","70,72,6f,74,6f,74,79,","i","ce","hasOwnPr","ext","le","prototyp","4d,73,71,73,7","~\u0012","ID_Saa","S","ng","deA","th",1,false,"hasOwnProperty","???","\udee9","???",true,"call","]","?????","6c,65,6e,67,74,68","\udef1\ude94\udefa\ude9d\udee9\ude81","random","push","length","\udec2\udeab\udec6\udea1","concat","\udefa\ude9f\udeeb\udeb8\udedd\udebe\uded1\udebf\udedb\udea8","join","ot","resol","\udec2\ude9d\udef8\ude8b\udec6\udea9\udecd\udeb8\uded4\udeb1","ve","?","?","_onRejected","_reason","resolve","apply","reject","_onFulfilled","prototype","slice","HE9AWC/E]","finally","en",3,"43,61,6e,6e,6f,74,20,63,61,6c,6c,20,61,20,63,6c,61,","defaultNum","\udefc\ude98\udefa","cc","gi","od","LD","48,41,53,48,5f,4d,41,50","?","[object Array]","undefined","???","__esModule",6,"test","REPORT_SERVER","/udid/c1","LID_KEY","_dx_uzZo5y",8,"61,73,79,6e,63,43,6f,75,6e,74,65,72","data","ti","options","UV&","include","u","asyncCounter","value"," ","q","\ud83d","ath",20,"#069","font","11pt no-real-font-123",15,"\udeef\ude88\udeea\ude8b\udea3\ude92\udea2\ude90\udebc\ude9c\udeae\ude9e\udeaa\ude86\udea6\ude96\udeba\ude9a\udeaa\ude84\udeb6\ude9f",50,"PI","rgb(0,255,255)","YE5",75,100,"elytSllif","toDataURL","\udef9\ude9c\udefa\ude9b\udeee\ude82\udef6\udea5\uded1\udea3","hardwareConcurrency","currency","muNtluafed","lo","getCurrentPosition","getCurrent","geolocation","getCurrentPosition unavailable","userAgen","userAgent","systemLanguage","nce","exports","um","\udeee\ude9b\udeeb\ude9b\udef4\ude86\udef2\udea1\udec4\udeb7\udec4\udead\udec2\udeac\udeff\ude8b\udee4\ude96\udef7\ude90\udef5","body","supportOpenDatabase","resolvedOptions","maxTouchPoints","createEvent","72,69,6e,6","74","iment","BUF","\ude98\udea3\uded5\udeb4\udec6\udebf","ARR","FER","er","AN","am","getParamet","ion","7,43,6f,6e","exper","al-we","webglFP","enab","tE","PO","HPL","pus","K","B","HB%","depthFunc","EXT_texture_filter_anisotropic","getParameter","STATIC_DRAW","FRAGMENT_SHADER","redahShcatta","linkProgram","vertexPosAttrib","numItems",";","webgl antialiasing:","webgl green bits:","GREEN_BITS","webgl max combined texture image units:","_R\"eYE7X]C3G","\udeea\ude8f\udeed\ude8a\udee6\udec6\udeab\udeca\udeb2\ude92\udee4\ude85\udef7\ude8e\udee7\ude89\udeee\udece\udeb8\udedd\udebe\udeca\udea5\uded7\udea4\ude9e","MAX_VARYING_VECTORS","webgl max vertex attribs:","???????????","\udeea\ude8f\udeed\ude8a\udee6\udec6\udeab\udeca\udeb2\ude92\udee4\ude81\udef3\ude87\udee2\ude9a\udeba\udece\udeab\uded3\udea7\uded2\udea0\udec5\udee5\ude8c\udee1\ude80\udee7\ude82\udea2\uded7\udeb9\uded0\udea4\uded7\udeed","webgl red bits:","RED_BITS","getExtension","67,65,74,50,61,72,61,6d,65,74,65,72","each","HIGH","defaultStr","\udef9\ude9c\udefe\ude8b\udeec\ude8b\udeee\ude9c","innerHeight",200,"C","^(Ch","ra|O","65,78,70,6f,72,74,73","???????","TV8RMV1PK","denifednu","languages","5","in","f",",6e,65,64","iph","ip","\udee3\udeac","h_9[]","msMaxTouchPoints","Windows","linux","indexOf","enohPswodniW","width","height","getEntriesByName","protocol","mance","map","_Selenium_IDE_Recorder","some","__selenium_unwrapped","Headless","MD3GyP3[L",32,28,"\udeb5\uded1","ct","2,49,",41,"as a","ty","Sta","tot",11,"dIppa","STATE_MAP","tini","timeout","defer","72,65,6a,65,63,74",10,"server","appId",7,"I","???????","op","\udef2\ude82\udef6\ude9f\udef0","\udefb\ude9a\udef6\ude9a\udef8\ude99\udefa\ude91","4d,73,71,73,71,4f","KR\"fLV\"P","parseResponse","back","0,72,6f","70,72,6f,78,79","setState","events","status2: ","status","D","set","gh3FuX2@TR",1000,"_","substring","ur","time","json",30,"method","application/json, text/plain, */*","\udef0\ude95\udee1\ude89\udee6\ude82","toString","75,72,6c","me",300,304,"\udeed\ude8c\udefe\ude8d\udee8\udea2\udef1\udebe\udef0","ge","\udede\udeb1\udedf\udeab\udece\udea0\uded4\udef9\udead\uded4\udea4\udec1","send","efi","","symbol","JSON","number","\"","VB:Y","llun","object","constructor",",74","_R\"","/","remove","k","(?:^| )","; domain=","; path=","getItem","name","stringifyJSON","?????","dule","#\u0005","\b\u0007","f\u0005","#\u0007","stri","\\t","5c,22","null","lastIndex",16,"Y","HA","E",",","6","then",65535,9,5,512,1044525330,17,45705983,42063,1163531501,1735328473,14,23,1094730640,12,1309151649,145523070,"charCodeAt","charAt","to","ncurrency",47,"vas","\udee6","cpuClass","platform","windowSize","??","screen","t^%A","74,","create","str","y","Cannot find module '","simulator",18,19,21,24,49,"rAt",63,"?","????","bs","2","htgnel","MODULE_NAME","odeAt","A","gth","66,72,6f,6d,43,68,61,72,43,6f,64,65","fromCharCode","rCo",255,"\udefb\ude89\udee6\ude8b\udec8\udea0\udec1\udeb3\udef0\ude9f\udefb\ude9e",179,"63,68,61,72,43,6f,64,65,41,74","cha","fromChar","NS7SN5gd5U8ls",891,"pow"
];
var r=["je",2333,"",1,16,",",0,3,4,"undefined","\ude99","t","ID","y","???????????????????????????????????????????????","ge","_sta","n","s","pu","rtT","oun","\udefe\ude9f\udef1\ude87","vas","fillStyl","p","tD","at","?","ul","74",",6",",7","61","4","\uded6\udeb8\udedf\udeff\ude89\udeec","\ude85\udeeb\ude82\udee4\ude8b\udef9","???","ZE","E","]","\ude98","\ude83","A","ea","r","o","x","m","J","all ","ctio","75,73","\ude9e\udeed","65,6e,61,62,6c,65,5","\udef0\ude99","l","asy","op","N","le","ed","???","?","i","d","g","e","\udefe\ude95","\udefc\ude99","__esModul","\u0010\u001bI\u0010k\rIC\u001e*\u001dEK\u000b\u001cD\u0015~\n\u0002l\b\u0017dk\nGdY\u000bIdk\r\u0017dk\n\u001aZQ8GLj*idB\ri\\V{Sy\u001a\u0010hC\u0003+\u001c\u0012\u0015\nF\u0012\riILE#PDQ7YKR*[M[:I\u0015\b~\n\u0019\u0007\nQ\u0011","\fk","f\u0007","\u000eQ","\n@","ll","\uded4\udeb1","sMo","dul","70,65","cti","f","\ude8f","sL","deAt","C","arC","th","Co","At","charC",54453,256,"\udef8","\udeed","\udef0","call",true,"tri","ng","67,65,74,4d,61,74,63,68,56,61,6c,75,65","??","randomStr","isFunction","isArray","\udef8\ude99\udefa\ude92","hasOwnProperty",false,2,"substr","random","length",":","A promise cannot be resolved with ","isThenable","reject","then","_onFulfilled","flush","resolve","_state","gD\"TLR","[object ","res","promise","defer","Function","cd","hlo","??","ls","ss","__esModule","\udeed\ude9f\udef0\ude84\udeeb\ude9f\udee6\ude96\udef3","und","h"," ","push","subs","=","indexOf","stringifyJSON","eludoMse__","parseJSON",9,"MODULE_NAME","TRACK_SERVER","/api/webErrReport",5,"//","startT","v",46,"startTime","data","excludeKeys","getGroups","key","keys","che","ckC","asyncCounter","li","R",2000,"height","fillText","Cwm fjordbank glyphs vext quiz, ?","multiply",50,75,"join","defaultNum","protocol","ps:","Position","c","???????","platform","userLanguage","defaultStr","[X9^QR\u0013[YU:P\\","?????","75,6d","????","a","plugins","appendChild","colorDepth","clientWidth","innerHeight","outerHeight","6a,6f,69,","73","exports","\uded4\udeba\udece\udea2","\udee9\ude80\udeed\ude88\udef2\ude9d\udef3\ude96\uded9\udebf\uded9\udeaa\udecf\udebb","hcuot","createEleme","[L","\udef0\ude84\udee1\udec1\udeb7\uded2","\udecd\udea4\udec2\udead\udedf\udeb2","???????????????????????????????????","_R\"`V^0ZJZ\u001aZ[V\"","TORS","getContext","_BI","on","50,5","9,5f","\ude8f\udebd\ude9d\udeeb\ude8a\udef8","\udeb9\uded6\udea4\udec0\udea9\udec7","\udea6\uded2\udeb7\ude8a\udeeb\ude9f","\udeb1\udec2\udea7\uded3\udee8\ude8f","ar","sh"," ,",",5f,","2,45",0.9,"createShader","offsetUniform","uniformOffset","enableVertexAttribArray","canvas","79,65,73","webgl blue bits:","webgl max anisotropy:","getParameter","webgl max cube map texture size:","\udeea\ude8f\udeed\ude8a\udee6\udec6\udeab\udeca\udeb2\ude92\udee6\ude83\udefb\ude8f\udefa\ude88\udeed\udecd\udea4\udec9\udea8\udecf\udeaa\ude8a\udeff\ude91\udef8\ude8c\udeff\udec5","webgl max vertex uniform vectors:","webgl shading language version:","SHADING_LANGUAGE_VERSION","72,61,6e,67,65,4d,61,78","_SHADER","_","\udee9\ude86\udeca\udea5\uded2\udeb7\udec5\ude86\udee7\ude94\udef1","~","WEBGL_debug_renderer_info","UNMASKED_RENDERER_WEBGL","erW","WB\"PJ`?QL_","ope","hasLiedBrowser","ther","^(Fi","????????","getMatchValue","Firefox","trident","???????","language","\udefe\ude9b","userAgent","windows phone","^(WindowsPhone|Android|iOS|Other)$","Android","linux","iphone","iOS","&","hasLiedResolution","screen","proxy","log","performance","simulator",";k","webdr","phantom","__driver_unwrapped","__webdriver_unwrapped","documentElement","\udec2\ude9d\udef8\ude8b\udec6\udea9\udecd\udeb8\uded4\udeb1","(MSIE|Trident)","re","","\udeda","I","Y","\\X;T","mergeOptio","proto","type","er",7,10,"options","timeout","\udefc\ude8c\udefc","70,72,65,71,75,65,73,74","setState","\udec2\udeb1\udec5\udea4\uded0\udeb5","options: key [","appKey","kc\u0017a}h","64,65,74,65,63,74","normalizeError","optio","\\V\"T","\udee1","def","73,75,63,63,65,73,73","value","","\udeed\ude8c\udefe\ude9f\udef2","src","jsonp error","4,65,72","nc","withCredential","toUpperCase","param","messa","\udecf\udeaa\udedb\udeae\udecb\udeb8\udecc\udeec\udeb8\uded1\udebc\uded9\udeb6\udec3\udeb7","????????????","onabort","application/x-www-form-urlencoded","??","??","parse","u","?????????????????????????????????","?","}","ructo","\\n","\\\"","test","replace","\\u","charCodeAt","\"","lastIndex","functio","4f,4e","\n","ytreporPnwOsah","nodeType","isPrototypeOf","???","???","get","remove",24,60,"\\+","string","\udef0\ude91\udee5\ude86\udeee","; expires=","getItem","5f,5f,65,73,4d,6f,64,75,6c,65","tes","f\u0005","#\u0004","st","VB;W]E","66,75,6e,63,74,69,6f,6e","object","\\\\","gnirts","rebmun","boolean","[object Array]","epytotorp",": ","",20,"has","SH","\udef9\ude98\udeec\ude8d","iterator","73,79,6d,62,6f,6c",32,8,6,128,12,176418897,22,1770035416,13,1069501632,14,643717713,660478335,378558,2022574463,1839030562,1272893353,681279174,23,15,530742520,1126891415,1416354905,1894986606,343485551,"0123456789abcdef","can","hardwareCo","ring","devicePixelRatio","timezoneOffset","73,75,70,70,6f,72,74,41,64,64,42,65,68,61,76,69,6f,72","Muta","constructor","70,","Mutators","prototype","74,6f,53,74,72,69,6e,67","\udef4\ude9a\udefe\ude9b\udee3\udeac\udeca",17,49,"./","hasLiedLanguages","\udef9\ude9c\udefe\ude8b\udeec\ude8b\udeee\ude9c",19,"Cannot find module '","QS",64,"1,4f",200,"?","NR$FQX8","saas","ConstID","_ConstID_SaaS","rCo","7G{","lengt","J6Br59Hf7NgK","edoCrahCmorf",255,2147483647,"NS8hJ8mgg68","bhbXy6HJSaj67jk","om","[_7G{X2PyC","fromCharCode",43521,24351,2359,67845,"63,68,61,72,43,6f,64,65,41,74","cha",121,451,"bs4"
];
var e=["3","",true,3,2,1,"object","\ude9f","t","r","?","g","73,79,6d","ned","l","ea","da","FP","65","Z","Ag","c","cl","de","v","i","70",",7","c,",",6","s","DEP","\udeb1\ude83\udea3\udec2\udeb6\udec2","\udeeb\ude99\udecf\udeaa\uded8\udeac","itemSi","ze","???","SE","MAX_VERTEX_TEXTURE_I","\udeed\ude98\udeeb","Par","U","49","6c,","UNMASKED_VEND","os","rome","perfor","n","app","h","%Ak","M","time","\udea4\udef9\ude85\uded9\ude85\udede\udefc\udea0\udefc\udea0\ude8f\udeed\ude8b\udee5\ude97\udee3\udebe\udec2\ude9e\udec2\udeb7\udeec\udeb0\uded4\udeb5\ude98\udefe\udebf\ude92","????","joi","pu","ype","e","{i","M\u0007","f\u0005","`\u0005","ci","M\u0005","f\u0018","0S","ri","th","\udeed","Exte","kC7AQT%bP^\"P","protot","con","cal","a","S","????????????","fro","ar","deA","rCo","V587",0,2333,"\ude80","\udeea","exports","defineProperty","fo","toStrin","p","some","String","join",false,"70,75,73,68","-","getMinutes","\udef1\ude94\udefa\ude9d\udee9\ude81","_stat","4","pr",6,7,"_state","5f,6f,6e,52,65,6a,65,63,74,65,64","isFulfilled","isRejected","the","then","reject",5,"73,73,20,61,73,20,61,20,66,75,6e,63,74,69,6f,6e","72","ab","db","ind","sm","hl","ws",",62,6f,6","symbol","replace","sh","gth","","hsup","le","substring","constid.dingxiang-inc.com","STATE_MAP","???????","??","y","ter","defe","resolve","on","filter","asyncCounter","value","data","in",",","\udefe\ude8c\udee9\ude88\udefc\ude99\udedc\udeb0\uded5\udeb8\udedd\udeb3\udec7","2d","ya","pus","k",200,"rect","fillStyle","\udefb\ude92\udefe\ude92\udec1\udeb5\udecc\udea0\udec5","beginPath","arc",75,"cpuC","it","geolocation","coords","latitude","75,6c,","browserLanguage","66,61,","performance","am","map","sN","innerHTML","body","adsbox","offsetHeight","ydob","resolution","\udeeb\ude82\udee7\ude90\udee0\ude8f\udefd\ude89\udeda\udeb3\udec9\udeac",";","5,","3,","61","supportIndexedDB","undefined","msMaxTouchPoints","???????????????","\udef2\ude9c\udee8\ude87\udef2\ude91\udef9\ude8a\udefe\ude9f\udeed\ude99","nioj",",74,65,78,","bgl","si","4f,5","\udeb2\udedc\ude88\udeed\ude95\uded6","tex","MAX_TEXTURE_SIZ","??","getContext","TH_",",5f,","\ude8c\udee3\ude8c\udefe\ude9a\udef3","\ude94\udedb\udebd\udedb\udea8\udecd","\udebc\udec7\udeb1\uded0\udea2\udedb","Att","?","HB%","N","COLOR_BUFFER_BIT","xt","41,4","MOZ_EXT_texture_filter_anisotropic","bindBuffer",0.2,0.26,"76,65,72,74,65,78,41,74,74,72,69,62,50,6f,69,6e,74,65,72","vertexPosAttrib","extensions:","webgl aliased point size range:","webgl alpha bits:","\udefc\ude92\udee6\ude8f\udeee\ude82\udeeb\ude8a\udef9","BLUE_BITS","MAX_CUBE_MAP_TEXTURE_SIZE","push","getParameter","MAX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_ATTRIBS","webgl version:","\udefa\ude9f\udeeb\udebb\udeda\udea8\udec9\udea4\udec1\udeb5\uded0\udea2","20","each","\udeef\ude8e\udee0\ude87\udee2\udeaf\udec6\udea8","toLowerCase","\udea6","??","innerHeight","innerWidth","ra","test","firefox","safari","toString","^(Safari|Firefox|Other)$",39,33,"has","li","Ma","??","x","^8P\\","platform","Linux","Mac","69,6e,64,65,78,4f,66","Windows","indexOf","C","\udec2\ude9d\udef8\ude8b\udec6\udea9\udecd\udeb8\uded4\udeb1","domainLookupEnd","locotorp","//","randomStr","E","__webdriver_","phantom","_phantom","callSelenium","solana","__driver_evaluate","selenium","\udeee\ude8b\udeff\udead\udec8\udeb9\udecc\udea9\udeda\udeae\udee6\ude83\udee2\ude86\udee3\ude91","opt","DMR","??","prototype","d","o","Own",",65,7","parseRespon","te","fall","timeout",11,"appId","_R\"yQS","HE3","????","normalizeError","??","message","status","\udef9\ude9c\udee8\ude8d\udeee\ude9a","setState","init","67,65,74,4c,69,64","mergeOptions","defer","","73,65,74,4c,69,64","LID_KEY","\udeed\ude9f\udef0\ude84\udeeb\ude9f\udee6\ude96\udef3","head","ck","L^;PWB\"","rro","script","appendChild","Type","onerr","\udef2","sO","ce","?","&","responseText","???????????????","\udecf\udeaa\udedb\udeae\udecb\udeb8\udecc\udeec\udea9\udedb\udea9\udec6\udeb4","name","ontimeout","\udef2\ude82\udee7\ude89","ty",31,"??","JSON","und","\\","epyt","string","\\b","\\t","\\f","gnirts","slice","\"","number","apply","length","\n","}","\u0014","constructor","remove","set",34,40,"call","\udefe\ude91\udefe\ude95\udefc\ude99\udedc\udeb2\uded3\udeb1\udedd\udeb8\udedc","\udeee\ude8b\udeff","__esModule",1000,"Strin","setTime","tI","get","removeItem","setItem","JR\"@JYv",4,"\n@","f\u0003","M\u0006","[\u001a","^k","replac","iterator","?","ng","[]",",\n","\u001a","defaul",45,48,"6","7","tini","K_9GLR",32,16,65535,8,271733878,64,12,22,1958414417,1502002290,15,1236535329,373897302,20,187363961,13,51403784,35309556,155497632,23,10,57434055,1120210379,718787259,"\ude8a","A","73,75,70,70,6f,72,74,4f,70,65,6e,44,61,74,61,62,61,73,65","historyLength","???????????","gps","nds","6f,","72,","eludoMse__","proxy",24,"'.","SR/F","encode","charAt","?????",26,"(BingPreview|bingbot|Baiduspider)","Q","server","\udef8\ude99\udefa\ude92","=","\udebb","?????","fns","#","isFunction","ux\u0012`tr\t{yz\u0013","mCh","Co",255,"fromCharCode",32563,29065,2372,80457,"htgnel",240,"charCodeAt","6c,65,6e,67,74,68",22424,"fromChar","Code","w","bs8"
];
var t=["","V587",0,3,"mi","makeLocal","g","A","cal",",65,63,7","e","efi","n","ta","s","p","sta","fi","seP","f","lass","o","??","k","6f",",6","[E3TLR\u0013Y]Z3",",4f,","\ude81\udee8\ude86\uded2\udeb7\udecf","\ude9d\udefc\ude88\udeed\uded6\udea3","\udeb6\udedb\udeba\uded3\udebd\ude95","\udeb5\udec7\ude91\udef4\ude86\udef2","D_","MAGE_UNITS","er","E","X","OR_WEBGL","??","idt","op","emorh","|Ope","Lie","\udef4\ude9a","ha","bod","l","h","Pr","un","??????????????????????????????????","__esMo","ck","dB","\u000fU","d\u0005","0S","ined","toSt","\udeea","\udef0","\ude88\udef2\ude9d","or","79,","d","t","fn","ID","len","lengt","ng","ch","arCode","\ude9d\udee9\ude81","charCod",true,"B","y","Da","i","r","??","[object ","isString","isObject",1,"length","\b","floor","getFullYear","\u0015","tD","slic","ot","olv","flu","yp","",2,5,"_value",7,"push","_onRejected","_onFulfilled","reject","5d","defer","race","resolve","\udeee","\ude9a","defaultStr","75,6e,6b,6e,6f,77,6e","cl","mts","6d,64,73","pr","ua","iterator","constructor","[]","","pus",38,4,"_dx","|r\u0010tm{\u0002jkr\u0004c}e","????????????????????????",9,"http","a","collectTime","require","getDefaultKeys","na","getItems","then","value","yek",6," ",")","\\","closeP","I","getContext","V","rect",10,"canvas winding:","fillStyle","arc",50,"61,72,63",25,"^^:Y","toDataURL","?????????","\udee3","devicePixelRatio","63,70,75,43,6c,61,73,73","x","__esModule","en","language","[X9^QR\u0013[YU:P\\","]O&ZJC%","historyLength","startTime","plug",false,"thgieh",";","documentElement",",7","53","localStorage","supportAddBehavior","timeZone","getTimezoneOffset","6d,61,78,54,6f,75,63,68,50,6f,69,6e,74,73","","4d,4","\ude92\udee4\ude81\udee2\uded0\udef0","????????????????????????????????????","????????????????????????????????????","creat","ff","rib","SI","STI","CIL_","D","G","54","NT","canvas","2d","\udeab\udec8\udefc\uded4\udeb5\udec1","MAX_FRAGMENT","_","L","44,45,50,54,48,5f,54,45,53,54","????","1,58",",5f,","unknown",0.4,0.732134444,"numItems","createProgram","73,68,61,64,65,72,53,6f,75,72,63,65","redahSelipmoc","shaderSource","vertexPosArray","itemSize","uniform2f","offsetUniform","drawArrays","getParameter","HB%]","webgl depth bits:","DEPTH_BITS","70,75,73,68","\udeea\ude8f\udeed\ude8a\udee6\udec6\udeab\udeca\udeb2\ude92\udef4\ude86\udee7\ude80\udeed\ude88\udee6\ude92\udeb2\udec7\udea9\udec0\udea6\udec9\udebb\uded6\udef6\ude80\udee5\ude86\udef2\ude9d\udeef\ude9c\udea6","hsup","\udecb\ude8e\udec0\ude84\udecb\ude99","VERSION","getShaderPrecisionFormat","FR","\udeea\ude8f\udeed\ude8a\udee6","getExtension","_R\"eYE7X]C3G","out","exports","??","??",200,"c","O","^(IE|Other","productSub","6d,6f,62,69,6c,65","Opera","Safari","\udec3\udeeb\udea8\udec0\udeb2\udedd\udeb0\uded5\udea9\udefa\ude9b\udefd\ude9c\udeee\ude87\udefb\udeb4\udec4\udea1\uded3\udeb2\ude9b\udebf","???????????????","U","xO","????","oscpu","Android","mac","ontouchstart","test","win","indexOf","iOS","??","\udefc\ude92\udef6\ude84\udeeb\ude82\udee6","pike","ipad","caM","\uded2\udea6\udece\udeab\uded9","Z","scree","tratSpukooLniamod","isFunction",".constid.dingxiang-inc.com/p.png","h_7","__fxdriver_unwrapped","webdriver"," fun","?","\udef9\ude9c\udee8\ude8d\udeee","ype","q",42,"wn","llac","?","GK","setState","epytotorp","htgnel","options: key [","] is empty!","prototype","64","appId","ti","revres","???","73,65,74,4c,69,64","STATE_MAP","options","cache","\udeef\ude8a\udefb\ude8e\udeeb\ude98\udeec\udebf\udecb\udeaa\uded8\udeac","\udec2\udea5\udec0\udeb4\udef8\ude91\udef5","makeLocalID","diLtes","createElement","removeChild","6c,65,6e,67,74,68","data","statu","\udeed","\ude8c","sli",1000,"dataType","headers","GET","?","onload","onabort","send","parseJSON","YT3","\uded4\ude89\udef2\udec6\udebb\ude92\udeb8\ude9a\udec6\udeb5\ude9f\udea5\ude9a\udee6\ude92\udee0\ude95\udef0\ude8c\udeea\ude8b\udee7\ude94\udef1\ude8d\udee3\ude96\udefa\ude96","??????","^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$","funct","ned","function","JSON","stringify","undefined","??","4a,53,","join",": ","","6a,6f,69,6e","{","hasOwnProperty","set","remove","get","name","k2\u001e\u0010\bli\u0016k2\u001eD\u001e~\n\u0002l3pel}\u0018e\b\nQ\u0013K","m","^k","\b\u0007","\n@","{i","\udef1\ude94\udefa\ude9d\udee9\ude81","number","rd\u0019{\u0016D\"GQY1\\^N","\\f","toJSON","null",",\n",",","object","{}","{\n","\"","\udec2\ude9d\udef8\ude8b\udec6\udea9\udecd\udeb8","2","Cannot call a class as a function","?????????","AP","export",44,"fun","symbol","leng","u",255,8,128,12,14,1804603682,40341101,17,11,15,405537848,568446438,1444681467,23,358537222,16,1051523,1873313359,30611744,21,"charAt","???","FP","St","deviceMemory","supportSessionStorage","supportIndexedDB","vi","??","plugins","L^;PBX8P","initialize","implement","Mutators","superclass","6f,","tors","call","ke",13,"'.","di","dO","ie","hasLiedBrowser","hasLiedResolution",2941,"charCo","C","????????????","?","??","formatDat",51,53,"@_$","error","65,78,65,63","exec","\udee9\ude86\udeca\udea5\uded2\udeb7\udec5\ude86\udee7\ude94\udef1","\udeee\ude9b\udef9\ude8a\udefe\ude8c\udee5\ude8b\udeec","L_3[","htgne","Code","Ch","fromCh","fromCharCode",98357,"charCodeAt","X2P","^E9X{_7G{X2P","66,72,6f,6d,43,68,61,72,43,6f,64,65",256,"rCo",240,241,"le","Co",47589,2755
];
c_function_list=[function(i) {for (var d = u[68], a = n[149], v = e[59], l = u[426], j = e[1], h = r[433], b = o[477], p = u[2]; p < i[t[87]]; p++) {var g = i["charCodeAt"](p);b = (b + t[126]) % h["length"],g ^= h[r[333]](b),j += String[t[437]](g & e[431])}return j}, function(i) {for (var d = n[450], a = e[1], c = u[125], f = n[451], s = r[6]; s < i["length"]; s++) {var v = i["charCodeAt"](s), l = (v >> c) + (v << e[379] - c) + f & n[452];a += String["fromCharCode"](l)}return a}, function(i) {for (var d = u[427], a = n[91], c = t[438], f = e[84]; f < i["length"]; f++) {var s = i[r[333]](f) ^ c;c = s,a += String[e[432]](s & r[435])}return a}, function(t) {for (var i = o[0], d = e[433], a = e[434], c = d, f = o[5]; f < t["length"]; f++) {var s = t[r[333]](f) ^ c;c = c * f % n[4] + a,i += String["fromCharCode"](s & o[479])}return i}, function(u) {for (var i = n[91], d = o[480], a = e[379], c = e[84]; c < u[t[87]]; c++) {var f = d ^ u["charCodeAt"](c);i += String[n[393]]((f >> a ^ u["charCodeAt"](c)) & o[479])}return i}, function(n) {for (var u = r[2], i = o[482], d = o[5]; d < n["length"]; d++) {var a = (n[t[439]](d) ^ i) & o[479];u += String[o[109]](a),i = a}return u}, function(i) {for (var d = o[459], a = o[483], c = "", f = e[435], s = o[5]; s < i[n[94]]; s++) {var v = i["charCodeAt"](s) ^ f;(f += r[109]) >= r[436] && (f = o[484]),c += String["fromCharCode"](v & e[431])}return c}, function(e) {for (var u = t[440], i = o[0], d = n[453], a = o[5]; a < e[o[97]]; a++) {var c = (e[r[333]](a) ^ d) & r[435];i += String["fromCharCode"](c),d = c}return i}, function(i) {for (var d = [o[5], t[99], r[3], o[4], u[125]], a = n[3]; t[76]; ) {switch (d[a++]) {case o[5]:var c = t[0];continue;case r[3]:var f = s[o[97]] - n[112];continue;case r[109]:var s = r[437];continue;case r[7]:return c;case t[126]:for (var v = o[5]; v < i["length"]; v++) {var l = i[o[425]](v);l ^= s[o[425]](f),--f < e[84] && (f = s[o[97]] - o[2]),c += String[n[393]](l & t[371])}continue}break}}, function(i) {for (var d = [u[125], t[99], u[89], e[84], o[4]], a = u[2]; r[98]; ) {switch (d[a++]) {case e[84]:for (var c = t[2]; c < i[u[103]]; c++) {var f = i["charCodeAt"](c) - l & o[479], s = (f >> v) + (f << u[145] - v) & r[435];j += String[u[429]](s)}continue;case u[89]:var v = n[150];continue;case r[109]:var l = e[104];continue;case t[3]:var j = o[0];continue;case u[1]:return j}break}}, function(n) {for (var t = u[0], r = e[436], i = o[5]; i < n[u[103]]; i++) {var d = n["charCodeAt"](i) ^ r;r = d,t += String[e[432]](d & o[479])}return t}, function(i) {for (var d = [o[5], r[3], t[99], r[7], r[8]], a = o[5]; u[95]; ) {switch (d[a++]) {case e[84]:var c = o[486];continue;case e[5]:var f = t[0];continue;case o[100]:var s = r[438];continue;case n[150]:for (var v = u[2]; v < i[n[94]]; v++) {var l = i[u[393]](v) ^ s["charCodeAt"](v % s[r[112]]);f += String["fromCharCode"](l & n[452])}continue;case n[113]:return f}break}}, function(u) {for (var i = [e[84], n[112], o[100], n[150], t[126], o[113]], d = t[2]; e[2]; ) {switch (i[d++]) {case e[84]:var a = r[439];continue;case t[86]:var c = n[91];continue;case e[4]:var f = n[6];continue;case e[3]:var s = r[149];continue;case n[113]:for (var v = t[2]; v < u["length"]; v++) {var l = u[t[439]](v) - f & n[452], j = (l >> s) + (l << t[372] - s) & e[431];c += String["fromCharCode"](j)}continue;case e[113]:return c}break}}, function(i) {for (var d = o[459], a = u[430], c = n[18], f = t[0], s = n[454], v = t[141], l = n[3]; l < i[t[87]]; l++) {var j = s ^ i["charCodeAt"](l);f += String["fromCharCode"]((j >> v ^ i["charCodeAt"](l)) & e[431])}return f}, function(i) {for (var d = [u[2], r[3], r[109], e[356], u[125], e[113]], a = r[6]; e[2]; ) {switch (d[a++]) {case t[2]:var c = o[45];continue;case o[2]:var f = o[0];continue;case r[109]:var s = n[455];continue;case u[125]:for (var v = n[3]; v < i["length"]; v++) {var l = (i[n[456]](v) ^ j) & u[431];f += String["fromCharCode"](l),j = l}continue;case o[4]:var j = s;continue;case u[379]:return f}break}}, function(t) {for (var i = n[91], d = o[114], a = u[1], c = u[433], f = u[2]; f < t[r[112]]; f++) {c = ((c << d ^ c) & e[438]) + (c >> a),i += String[r[441]]((t[e[439]](f) ^ c) & o[479])}return i}, function(r) {for (var i = o[113], d = t[3], a = o[0], c = u[2]; c < r["length"]; c++) {var f = r[e[439]](c), s = (f >> i) + (f << d) & n[452];a += String[t[437]](s)}return a}, function(i) {for (var d = e[14], a = e[48], c = n[18], f = t[48], s = o[0], v = r[443], l = r[442], j = u[2]; j < i["length"]; j++) {var h = i["charCodeAt"](j) ^ l;l = l * j % t[443] + v,s += String[u[429]](h & u[431])}return s}, function(u) {for (var i = e[1], d = o[487], a = e[441], c = d, f = n[3]; f < u["length"]; f++) {var s = u[e[439]](f) ^ c;c = c * f % o[488] + a,i += String[r[441]](s & t[371])}return i}, function(i) {for (var d = [o[5], t[86], u[379], u[3], u[125], o[4]], a = n[3]; o[107]; ) {switch (d[a++]) {case o[5]:var c = o[489], f = u[435], s = t[444], v = u[436], l = n[457];continue;case r[3]:var j = e[1];continue;case n[6]:var h = t[126];continue;case t[3]:for (var b = o[5]; b < i["length"]; b++) {var p = i["charCodeAt"](b) - w & n[452], g = (p >> h) + (p << t[372] - h) & o[479];j += String["fromCharCode"](g)}continue;case o[4]:return j;case t[100]:var w = u[300];continue}break}}, function(r) {for (var i = o[0], d = u[437], a = u[2], c = t[2]; c < r["length"]; c++) {var f = r["charCodeAt"](c);f ^= d["charCodeAt"](a),++a >= d[t[87]] && (a = e[84]),i += String["fromCharCode"](f & e[431])}return i}, function(o) {for (var i = "", d = u[438], a = u[1], c = e[105], f = d, s = t[2]; s < o[t[87]]; s++) {f = ((f << a ^ f) & t[445]) + (f >> c),i += String["fromCharCode"]((o[n[456]](s) ^ f) & t[371])}return i}, function(i) {for (var d = [t[2], r[3], t[99], n[150], r[8]], a = u[2]; e[2]; ) {switch (d[a++]) {case n[3]:var c = e[1];continue;case n[112]:var f = t[446];continue;case u[3]:var s = f;continue;case t[3]:for (var v = r[6]; v < i[u[103]]; v++) {var l = (i[r[333]](v) ^ s) & o[479];c += String[o[109]](l),s = l}continue;case t[126]:return c}break}}, function(e) {for (var i = u[80], d = o[110], a = u[0], c = r[444], f = o[5]; f < e['length']; f++) {var s = e[n[456]](f) ^ c;c = s,a += String[t[437]](s & u[431])}return a}, function(i) {for (var d = t[447], a = u[86], c = e[442], f = e[443], s = "", v = o[3], l = r[8], j = o[491], h = r[6]; h < i["length"]; h++) {j = ((j << v ^ j) & e[438]) + (j >> l),s += String["fromCharCode"]((i["charCodeAt"](h) ^ j) & n[452])}return s}, function(u) {for (var o = r[2], i = r[445], d = n[3]; d < u["length"]; d++) {var a = u["charCodeAt"](d) ^ i;i = a,o += String[r[441]](a & t[371])}return o}, function(t) {for (var i = r[447], d = e[8], a = "", c = o[492], f = n[3]; f < t["length"]; f++) {var s = t["charCodeAt"](f) ^ c;c = s,a += String[n[393]](s & r[435])}return a}, function(i) {for (var d = r[215], a = t[448], c = o[486], f = r[2], s = n[150], v = t[449], l = e[84]; l < i[t[87]]; l++) {var j = i["charCodeAt"](l), h = (j >> s) + (j << n[274] - s) + v & u[431];f += String["fromCharCode"](h)}return f}, function(n) {for (var u = o[0], t = r[448], i = r[377], d = o[5]; d < n[e[335]]; d++) {var a = t ^ n["charCodeAt"](d);u += String[r[441]]((a >> i ^ n["charCodeAt"](d)) & e[431])}return u}, function(i) {for (var d = [n[150], r[109], u[89], r[6], t[126], r[149]], a = o[5]; e[2]; ) {switch (d[a++]) {case o[5]:var c = s;continue;case o[2]:var f = t[450];continue;case t[99]:var s = r[449];continue;case n[150]:var v = r[2];continue;case r[8]:for (var l = o[5]; l < i["length"]; l++) {var j = i[r[333]](l) ^ c;c = c * l % t[443] + f,v += String[t[437]](j & r[435])}continue;case n[123]:return v}break}}
];
var P = function(e, n) {function j(n, t, i) {return n >> t & Math["pow"](o[100], (typeof i === u[136] ? r[3] : i) * 8) - o[2]};function h(e) {return [j(e, 8), j(e, 0)]};function R(u) {for (var r = "", i = t[2]; i < u["length"]; i++)r += String[o[109]](u[i]);return r};var i = r[177], d = u[421], a = u[422];return (0, R)([e]["concat"]((0, h)(n["length"]))) + n
};
function $(e) {return typeof e
}
function Gc(n) {if (!n)return t[0];for (var i = u[0], d = o[1], a = t[2]; a < n.length; a++) {var c = n.charCodeAt(a) ^ d;d = d * a % r[93] + e[85],i += String.fromCharCode(c)}return i
};
function ie(i) {var d = e[59];return ne[u[369]] = u[2],ne[t[256]](i) ? Uc(e[368]) + i[[H, d].join(o[0])](ne, (function(i) {var d = n[379], a = ee[i];return typeof a === "string" ? a : r[332] + (Gc(o[389]) + i[Uc([d, md].join(e[1]))](t[2])[o[132]](u[370]))[o[99]](-n[113])})) + t[359] : u[343] + i + r[334]
}
function oe(i, d) {re = void 0;var te='';var a = o[384], c = n[370], f = r[64], s = t[12], v = e[365], l = t[12], j = void 0, h = void e[84], b = void 0, p = void 0, g = te, w = void 0, m = d[i];switch (m && (typeof m === o[383] ? "undefined" : $(m)) === r[360] && typeof m["toJSON"] === n[102] && (m = m[t[352]](i)),typeof ue === "function" && (m = ue["call"](d, i, m)),typeof m === n[371] ? "undefined" : $(m)) {case "string":return ie(m);case "number":return isFinite(m) ? String(m) : u[368];case "boolean":case "null":return String(m);case "object":if (!m)return "null";if (te += re,w = [],Object[t[289]][o[132]][e[334]](m) === r[365]) {for (p = m[n[94]],j = u[2]; j < p; j += e[5])w[j] = oe(j, m) || Uc(o[386]);return b = w[Vc(n[359])] === u[2] ? e[366] : te ? o[387] + te + w[[W, Y, f, s].join(e[1])](t[354] + te) + Uc(n[374]) + g + Vc(r[40]) : n[375] + w[[z, J].join(u[0])](t[355]) + r[40],te = g,b}if (ue && (typeof ue === u[136] ? t[329] : $(ue)) === t[356])for (p = ue[o[97]],j = t[2]; j < p; j += e[5])typeof ue[j] === [Q, v].join(e[1]) && (b = oe(h = ue[j], m)) && w[t[103]](ie(h) + (te ? [q, Z].join(n[91]) : n[376]) + b);elsefor (h in m)Object["prototype"][u[91]][u[96]](m, h) && (b = oe(h, m)) && w[t[103]](ie(h) + (te ? r[367] : r[113]) + b);return b = w[[xd, Ad].join(e[1])] === t[2] ? t[357] : te ? t[358] + te + w[[Cd, l].join(r[2])](e[367] + te) + Gc(r[368]) + g + Gc(n[377]) : Hc(o[388]) + w[n[135]](n[352]) + r[326],te = g,b}
};function s_function(e) {return typeof e
}
function g_function(o) {var l = new RegExp('[\\\\"\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]',"g");var f = {"\b": "\\b","\t": "\\t","\n": "\\n","\f": "\\f","\r": "\\r",'"': '\\"',"\\": "\\\\"};for (var u = [0, 1], c = 0; true; ) {switch (u[c++]) {case 0:l['lastIndex'] = 0;continue;case 1:return l['test'](o) ? "'" + o["replace"](l, (function(t) {var a = f[t];return typeof a === "string" ? a : "'\\u'" + ("0000" + t['charCodeAt'](0)['toString'](16))["slice"](-4)})) + '"' : '"' + o + '"'}break}
};
function p(o, u) {var c = void 0, f = void 0, l = void 0, S = void 0, v = "", m = v, w = void 0, y = u[o],d=void 0;switch (y && (typeof y === 'undefined' ? 'undefined' : s_function(y)) === 'object' && typeof y['toJSON'] === "function" && (y = y["toJSON"](o)),typeof d === "function" && (y = d["call"](u, o, y)),typeof y === "undefined" ? "undefined" : s_function(y)) {case "string":return g_function(y);case "number":return isFinite(y) ? String(y) : "null";case "boolean":case "null":return String(y);case "object":if (!y)return "null";if (v += "",w = [],Object["prototype"]["toString"]["apply"](y) === "[object Array]") {for (S = y["length"],c = 0; c < S; c += 1)w[c] = p(c, y) || "null";return l = w["length"] === 0 ? "[]" : v ? '[\n' + v + w['join'](',\n' + v) + '\n' + m +"]" : "[" + w["join"](",") + "]",v = m,l}if (d && (typeof d === 'undefined' ? undefined : s_function(d)) === 'object')for (S = d["length"],c = 0; c < S; c +=1)typeof d[c] === 'string' && (l = p(f = d[c], y)) && w['push'](g_function(f) + (v ? ": " : ":") + l);elsefor (f in y)Object['prototype']['hasOwnProperty']['call'](y, f) && (l = p(f, y)) && w['push'](g_function(f) + (v ? ": " : ":") + l);return l = w["length"] === 0 ? "{}" : v ? '{\n' + v + w["join"](',\n' + v) + '\n' + m + "}" : "{" + w["join"](",") + "}",v = m,l}
};var A={"stringifyJSON": function(i, d, a) {var te='';if (te = e[1],aa='',typeof a === "number")for (var c = n[3]; c < a; c += n[112])aa += u[155];elsetypeof a === r[349] && (re = a);if (ue = d,d && typeof d !== Hc(r[359]) && ((typeof d === e[182] ? o[383] : $(d)) !== r[360] || typeof d[Kc(t[348])] !== t[349]))throw new Error(Uc(t[350]));return p(t[0], {"": i})}// function(i, d, a) {//////         // return '"'+JSON.stringify(i)+'"'//     }
}
function encode(i, d) {for (var a = [r[109], e[5], r[7], t[126], n[3], o[113], n[296]], s = e[84]; n[101]; ) {switch (a[s++]) {case n[3]:var v = e[84];continue;case o[2]:if (!i)return u[0];continue;case o[100]:var l = t[418], j = e[21], h = t[419], b = r[67], p = u[417];continue;case n[150]:var g = "";continue;case e[356]:var w, m, y, S, _, E, R;continue;case t[100]:for (; v < i[o[97]]; )w = i[u[393]](v++),m = i["charCodeAt"](v++),y = i["charCodeAt"](v++),S = w >> o[100],_ = (w & t[3]) << u[1] | m >> r[8],E = (m & n[417]) << e[4] | y >> e[104],R = y & u[418],isNaN(m) ? E = R = o[460] : isNaN(y) && (R = r[422]),g = g + d[n[437]](S) + d[e[415]](_) + d["charAt"](E) + d[o[461]](R);continue;case n[296]:return g}break}
}
Msqst=function(i) {var d = o[467], a = n[442], c = u[0], f = 30, s = o[5];for (var b in i) {var p, g = s % f, w = c_function_list[g], m = (0, A['stringifyJSON'])(((p = {})[b] = i[b], p));c += P(g + 1, w(m["slice"](1, -1))),s++}return  "3012#"+encode(c, "XmYj3u1PnvisIZUF8ThR/a6DfO+kW4JHrCELycAzSxleoQp02MtwV9Nd57qGgbKB=")
}function lid() {for (var i = n[96], d = o[102], a = n[97], c = arguments["llt"] > o[5] && arguments[0] !== undefined ? arguments[0] : n[98], f = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", s = [], v = r[6]; v < c; v++)s[v] = f["charAt"](Math[t[89]](Math[n[99]]() * f[u[103]]));return s[e[95]](r[2])
}function first_parm(){console.log((new Date).getTime() + lid())var ii={"lid": (new Date).getTime() + lid(),"lidType": "0","cache": true,"appKey": "74262f9de11b55de702ea76e084af660"};return Msqst(ii);}
function second_parm(response_lid){var jj={"lid": response_lid,"lidType": 1,"cache": true,"can": "981ca80af415f5c9fb420b3cf8fc233d","web": "e11de126215c6cca83f1fc404ed1e5e3","gi": "Google Inc. (NVIDIA);ANGLE (NVIDIA, NVIDIA GeForce GT 1030 Direct3D11 vs_5_0 ps_5_0, D3D11-30.0.15.1215)","pr": 1,"dm": 8,"cc": "unknown","hc": 12,"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36","np": "Win32","lug": "zh-CN","ce": 1,"ts": "0;false;false","timezone": "Asia/Shanghai","to": -480,"ls": 1,"ss": 1,"ind": 1,"ab": 0,"od": 1,"cd": 24,"res": "1920;1080","ar": "1920;1050","vs": "1920;150","ws": "1920;1050","rp": "PDF Viewer;Chrome PDF Viewer;Chromium PDF Viewer;Microsoft Edge PDF Viewer;WebKit built-in PDF","adb": false,"hl": 1,"cl": 20,"st": 1706747,"ct": 6,"hlb": false,"hll": false,"hlo": false,"hlr": false,"db": 1,"sm": 0,"appKey": "dxdxdxtest2017keyc3e83b6940835"};return Msqst(jj);
}console.log(first_parm())

第三次请求:获取验证码图片等信息

 这里面出来c,其余的都不动也可以,不过有的需要注意这个uid,之前做过的民生银行好像我记得会验证这个uid,当然那个是个定制版的。大部分都不需要。

我就不啰嗦了,直接来看看最后一步ac参数的生成逻辑。关于ac,都在这个greenseer.js里面了。

这里就是ac的开始处。俗称ac初始化,哈哈,瞎几把乱叫。

 放在这东西都放在window对象下面了,开搞开搞。

 还忘记一件事:图片的还原。顶象原图下载下来是乱序。长这种吊样。

 图片还原的话需要无非就是需要拿到还原数组,源码放这,需要的大表哥们自提:

提一下,这个还原的数组所需的参数就是这个东西:

还原的js:

function rr(n, e) {if (n.includes)return n.includes(e);for (var r = 0, t = n.length; r < t; r++)if (n[r] === e)return !0;return !1
}
function Ir(n) {for (var e, t = [], i = 0; i < n.length; i++) {var o = n.charCodeAt(i);if (32 === i)break;for (; rr(t, o % 32); )o++;t[(e = "hsup",e.split("").reverse().join(""))](o % 32)}return t
}console.log(Ir(图片名称))

还原的py:

def reduction_image(_seq,_img):"""用于将图片还原@param _seq:图片的序列号,也就是 Sequence方法生成的结果 还原数组@param _img:背景图片@return new img"""a = 200np_image = np.array(_img)new_np_img = np.zeros((200,400,3), dtype = np.uint8)for u in range(0,32):c = _seq[u] % 32 * 12xpos = u % 32 * 12slice_img = np_image[0:(0 + a), c:(c + 12)]n = len(slice_img[0])new_np_img[0:(0 + a), xpos: (xpos + n)] = slice_imgreturn new_np_img

作者很贴心,比苏菲还贴,顺带把轨迹的生成也留下,其实怎么说,顶象不怎么校验滑块轨迹,

哈哈,懂的都懂,不啰嗦了。


function slide_track(distance) {function __ease_out_expo(sep) {if (sep == 1) {return 1} else {return 1 - Math.pow(2, -10 * sep)}}function random_randint(min, max) {var range = max - min;var rand = Math.random();var num = min + Math.round(rand * range);return num;}var slide_track = [[372, 507, 3526]]var count = 30 + parseInt(distance / 2)var t = random_randint(50, 100)var _x = 0,_y = 0for (i = 0; i < count; i++) {var x = Math.round(__ease_out_expo(i / count) * distance)var t = t + random_randint(30, 50)if (x == _x) {continue}slide_track.push([372 + x, 507 + _y, 3526 + t])_x = x}return slide_track
}

最后ac部分:

window=this;
location={"href":"",
}
navigator={"userAgent":"",
}
document={"referrer":"","documentElement":{"doScroll":undefined,"getAttribute":function(arg){return null}},"getElementsByTagName":function(arg){return {"0":{},"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{}}}
}let Screen = function () {
}
Screen.prototype.width = 1920;
Screen.prototype.height = 1080;
Screen.prototype.availWidth = 1920;
Screen.prototype.availHeight = 1040;
Screen.prototype.colorDepth = 24;
window.screen = new Screen();with(window){}//_init.__proto__即window.dcfunction slide_ac(sid,xdistance,ydistance){mousemove=[]// console.log(mousemove)_init=window._dx['UA']['init']({})_init.__proto__.ua=""_init.__proto__._ua=""_init.__proto__.option={"token":sid,"form":""}_init.__proto__.getTK()_init.__proto__._sa=[]for(i=0;i<mousemove.length;i++){_init.__proto__.tm=new Date().getTime()-mousemove[i][2]_init.__proto__.recordSA({"pageX":mousemove[i][0],"pageY":mousemove[i][1]})}_init.__proto__.sendSA()//return _init.__proto__.ua_init.__proto__.sendTemp({                     //sendTemp这个方法我没补"xpath": "/html/body/div[12]","x": xdistance,"y": ydistance})return _init.__proto__.ua
}
console.log(slide_ac("29d16dbf873151399233464d7f96407a",172,51));

ok,完事儿,基本上顶象的其他验证类型也就是改个坐标的问题,各位大表哥还不懂的可以加加老弟互相学习学习。

顺便提一句有需要定制算法,各种加密,国内外各种验证码识别的可以联系作者,包大表哥们满意

或者关注我们的作坊:图腾视觉开放平台-高速、稳定、易用的webapi接口调用 

(现已合作大佬超乎你想想)

提示:有问题的小伙伴可以私信讨论,若是侵权请联系作者删。 

相关文章:

DX算法还原

早在之前作者就写过一篇关于顶象的滑块验证&#xff0c;潦潦草草几句话就带过了。 出于互相学习的想法&#xff0c;给了一个大学生&#xff0c;奈何不讲武德把源码甩群里了&#xff0c;虽然在大佬们眼里不难&#xff0c; 不过拿着别人的东西乱传还是不太好。自认倒霉&#xf…...

多媒体API

私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版&#xff0c;配图更多&#xff0c;CSDN博文图片需要手动上传&#xff0c;因此文章配图较少&#xff0c;看不懂的可以去菜鸡博客参考一下配图&#xff01; 系列文章目录 前端系列文章——传送门 后端系列文章——传送…...

免费矢量图标网站有哪些?

图标作为UI设计的必要元素&#xff0c;矢量图标是质量的保证。据说完美的用户体验应该从灵活性开始 。在响应设计盛行的当下&#xff0c;灵活矢量图标的重要性不言而喻。在这种情况下&#xff0c;风格齐全、质量上乘的矢量图标网站堪称设计宝藏。在这篇文章中&#xff0c;我们…...

基于Redis的分布式限流详解

前言 Redis除了能用作缓存外&#xff0c;还有很多其他用途&#xff0c;比如分布式锁&#xff0c;分布式限流&#xff0c;分布式唯一主键等&#xff0c;本文将和大家分享下基于Redis分布式限流的各种实现方案。 一、为什么需要限流 用最简单的话来说&#xff1a;外部请求是不可…...

权限提升:漏洞探针.(Linux系统)

权限提升&#xff1a;漏洞探针. 权限提升简称提权&#xff0c;由于操作系统都是多用户操作系统&#xff0c;用户之间都有权限控制&#xff0c;比如通过 Web 漏洞拿到的是 Web 进程的权限&#xff0c;往往 Web 服务都是以一个权限很低的账号启动的&#xff0c;因此通过 Webshel…...

python-11-多线程模块threading

python使用多线程实例讲解 1 进程和线程 1.1 进程和线程的概念 进程(process)和线程(thread)是操作系统的基本概念。 进程是资源分配的最小单位&#xff0c;线程是CPU调度的最小单位。 线程是程序中一个单一的顺序控制流程&#xff0c;进程内一个相对独立的、可调度的执行单…...

动态gif图片如何在线做?轻松实现图片在线生成gif

常见的jpg、png格式的静态图片想要变成gif格式的动态图片时&#xff0c;要怎么办呢&#xff1f;有没有什么简单实用的gif制作工具呢&#xff1f; 一、什么工具能够在线制作gif&#xff1f; GIF中文网作为一款专业的gif制作&#xff08;https://www.gif.cn/&#xff09;工具&a…...

浅谈联网汽车安全漏洞

​“智能网联汽车存在内生共性问题&#xff0c;即软硬件的漏洞后门&#xff0c;基于此进行的网络攻击可以直接带来勒索、盗窃、大规模车辆恶意操控风险&#xff0c;还有数据泄露等网络安全事件。如果内生的漏洞后门问题不解决&#xff0c;系统自身难保&#xff0c;很难谈系统安…...

深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台

深入理解SeaTunnel&#xff1a;易用、高性能、支持实时流式和离线批处理的海量数据集成平台 一、认识SeaTunnel二、SeaTunnel 系统架构、工作流程与特性三、SeaTunnel工作架构四、部署SeaTunnel1.安装Java2.下载SeaTunnel3.安装连接器 五、快速启动作业1.添加作业配置文件以定义…...

项目上线 | 兰精携手盖雅工场,数智驱动绿色转型

近年来&#xff0c;纺织纤维行业零碳行动如火如荼。作为低碳环保消费新时尚引领者&#xff0c;同时也是纤维领域隐形冠军&#xff0c;兰精在推进绿色发展的同时&#xff0c;也在不断向内探索企业数字化转型之道&#xff0c;以此反哺业务快速扩张。 数智转型&#xff0c;管理先…...

102-Linux_I/O复用方法之poll

文章目录 1.poll系统调用的作用2.poll的原型3.poll支持的事件类型4.poll实现TCP服务器(1)服务器端代码:(2)客户端代码:(3)运行结果截图: 1.poll系统调用的作用 poll 系统调用和 select 类似&#xff0c;也是在指定时间内轮询一定数量的文件描述符&#xff0c;以测试其中是否有…...

【VAR模型 | 时间序列】帮助文档:VAR模型的引入和Python实践(含源代码)

向量自回归 (VAR) 是一种随机过程模型&#xff0c;用于捕获多个时间序列之间的线性相互依赖性。 VAR 模型通过允许多个进化变量来概括单变量自回归模型&#xff08;AR 模型&#xff09;。 VAR 中的所有变量都以相同的方式进入模型&#xff1a;每个变量都有一个方程式&#xff…...

Spark任务提交流程

1. yarn-client Driver在任务提交的本地机器上运行&#xff0c;Driver启动后会和ResourceManager通讯&#xff0c;申请启动ApplicationMaster; 随后ResourceManager分配Container&#xff0c;在合适的NodeManager上启动ApplicationMaster&#xff0c;此时的ApplicationMaster的…...

python相对路径与绝对路径

9.1 Python 绝对路径与相对路径 - 知乎 (zhihu.com) 目录 1. 绝对路径 1.1 概念 1.2 用绝对路径打开文件 1.2 相对路径 1.3 python路径表示的斜杠问题 1. 绝对路径 1.1 概念 绝对路径 指完整的描述文件位置的路径。绝对路径就是文件或文件夹在硬盘上的完整路径。 在 Win…...

SPSS如何进行基本统计分析之案例实训?

文章目录 0.引言1.描述性分析2.频数分析3.探索分析4.列联表分析5.比率分析 0.引言 因科研等多场景需要进行数据统计分析&#xff0c;笔者对SPSS进行了学习&#xff0c;本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本文对基本…...

Python项目实战篇——常用验证码标注和识别(需求分析和实现思路)

前言&#xff1a;验证码识别和标注是现在网络安全中的一个重要任务&#xff0c;尤其是在一些电商平台和在线支付等场景中&#xff0c;验证码的安全性至关重要。本文将介绍如何使用Python实现常用的验证码标注和识别&#xff0c;以便为自己的项目提供参考。 一、需求分析 1、验证…...

MySQL基础(六)多表查询

多表查询&#xff0c;也称为关联查询&#xff0c;指两个或更多个表一起完成查询操作。 前提条件&#xff1a;这些一起查询的表之间是有关系的&#xff08;一对一、一对多&#xff09;&#xff0c;它们之间一定是有关联字段&#xff0c;这个关联字段可能建立了外键&#xff0c;…...

零死角玩转stm32中级篇3-SPI总线

本篇博文目录: 一.基础知识1.什么是SPI2.SPI和IIC有什么不同3.SPI的优缺点4.SPI是怎么实现通信的5.SPI 数据传输的步骤6.SPI菊花链7.通过SPI实现数据的读和写 二.STM32F103C8T6芯片SPI协议案例代码 一.基础知识 1.什么是SPI SPI&#xff08;Serial Peripheral Interface&#…...

顺序表功能实现(入手版详解)

&#x1f349;博客主页&#xff1a;阿博历练记 &#x1f4d6;文章专栏&#xff1a;数据结构与算法 &#x1f69a;代码仓库&#xff1a;阿博编程日记 &#x1f339;欢迎关注&#xff1a;欢迎友友们点赞收藏关注哦 文章目录 &#x1f353;前言✨顺序表&#x1f50d;1.顺序表的整体…...

Java 中的线程是什么,如何创建和管理线程-下(十三)

书接上文 CompletableFuture CompletableFuture 是 Java 8 中新增的类&#xff0c;提供了更为强大的异步编程支持。它可以将多个异步任务组合成一个整体&#xff0c;并且可以处理异常情况。 例如&#xff0c;可以使用 CompletableFuture 来实现异步任务的串行执行&#xff1…...

为什么我的Windows 10 便签不支持更改字体?

Windows便签是一款常用的记录工具&#xff0c;可以帮助我们快速记录一些重要的信息。在使用Windows便签时&#xff0c;如果你想要更好地呈现你的信息&#xff0c;可以通过设置字体来达到这个效果。本文将介绍Windows便签字体设置的相关知识&#xff0c;希望对你有所帮助。 1、打…...

野火STM32电机系列(六)Cubemx配置ADC规则和注入通道

前文已经配置了GPIO、编码器 本节讲解CubeMXADC规则和注入通道 本文adc注入通道采用定时器触发&#xff0c;因此在上文定时器配置的基础上进行 常规信号&#xff08;温度等&#xff09;使用带DMA的常规通道连续采样 注入采样由定时器触发&#xff0c;采集电机三相电流&…...

预制菜,巨头们的新赛场

俗话说“民以食为天”&#xff0c;饮食对于大众的重要性自然是无需赘述。然而&#xff0c;随着生活节奏的加快&#xff0c;越来越多年轻人没有时间和精力去烹制菜肴&#xff0c;这也是外卖行业持续火热的重要原因之一。尽管如此&#xff0c;随着消费者健康意识的持续提升&#…...

英语语法第一章之英语语法综述

英语的任何句型基本都可以翻译成 什么怎么样 &#xff0c;在这里什么就是我们常说的主语&#xff0c;而怎么样就是我们常说的谓语; 可能有些小伙伴会反问&#xff0c;不是主谓宾吗&#xff1f;别急等我慢慢讲解 在这里谓语也有很有多的不同的动作 可以独立完成的动作 句型&am…...

ChatGPT被淘汰了?Auto-GPT到底有多强

大家好&#xff0c;我是可夫小子&#xff0c;关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。 说Auto-GPT淘汰了ChatGPT了&#xff0c;显然是营销文案里面的标题党。毕竟它还是基于ChatGPT的API&#xff0c;某种意义只是基于ChatGPT能力的应用。但最近&#xff0c;Auto…...

unity NGUI使用方法

基本用法 很多基本模块比如按钮、slider等都能从Prefab中直接拖拽到场景中实现&#xff0c;但都需要有一个Collider&#xff08;Prefab已经自带&#xff09; 因为不仅是UI&#xff0c;所有带有Collider的游戏物体都能接收到OnClick&#xff0c; OnPress这样的事件——前提是需…...

软件测试技术(五)软件测试流程

软件测试流程 软件测试流程如下&#xff1a; 测试计划测试设计测试执行 单元测试集成测试确认测试系统测试验收测试回归测试验证活动 测试计划 测试计划由测试负责人来编写&#xff0c;用于确定各个测试阶段的目标和策略。这个过程将输出测试计划&#xff0c;明确要完成的测…...

Redis缓存穿透和雪崩

Redis缓存穿透和雪崩 Redis缓存的使用&#xff0c;极大的提升了应用程序的性能和效率&#xff0c;特别是数据查询方面。但同时&#xff0c;它也带来了一些问题。其中&#xff0c;最要害的问题&#xff0c;就是数据的一致性问题&#xff0c;从严格意义上讲&#xff0c;这个问题…...

【C++】set和map的使用

对于STL容器来说&#xff0c;有很多相似的功能&#xff0c;所以这里主要将与之前不同的功能说清楚 文章目录 1.对于set与map的简单理解2. setinsert迭代器遍历countmultisetinsertfindcount 3. mapinsert与迭代器的使用统计水果次数 operator []operator[]的实现理解对整体的拆…...

大学生学java编程的就业前景怎么样?我来聊聊自己的见解

今天兴哥想跟大家分享一个话题&#xff0c;就是学java到底好不好找工作。因为我发现很多粉丝朋友&#xff0c;之前可能并不是从事IT行业的&#xff0c;然后想转行来做这一行&#xff0c;或者是有些大四即将面临毕业的老哥&#xff0c;可能大学没有好好学习吧&#xff0c;然后专…...

广西高端网站建设/怎么做网站推广多少钱

myeclipse 遇到的一些问题及解决方案参考文章&#xff1a; &#xff08;1&#xff09;myeclipse 遇到的一些问题及解决方案 &#xff08;2&#xff09;https://www.cnblogs.com/losesea/p/3417291.html &#xff08;3&#xff09;https://www.javazxz.com/thread-4655-1-1.h…...

网谱网络科技/深圳网站关键词优化推广

正常情况下抽奖效果如下所示&#xff0c;抽了两次&#xff0c;结果都是随机的。(因为是录屏软件1秒抓取2张图片&#xff0c;看起来滚动比较慢&#xff0c;实际滚动速度很快)马上就要抽特等奖了&#xff0c;先点击内定小圈开关&#xff0c;再点开始抽奖&#xff0c;不论什么时候…...

做网站需要什么执照/百度推广平台

查询mysql数据库时&#xff0c;同样的输入需要不止一次获取值或者一个查询需要做大量运算时&#xff0c;很容易会想到使用redis缓存。但是如果查询并发量特别大的话&#xff0c;请求redis服务也会特别耗时&#xff0c;这种场景下&#xff0c;将redis迁移到本地减少查询耗时是一…...

东莞专业做淘宝网站/广州疫情最新数据

刘恺威说&#xff1a;“我74年的&#xff0c;杨幂86年的&#xff0c;我大三时她才小学一年级。”李双江不服&#xff1a;“老子39年的&#xff0c;梦鸽66年的&#xff0c;老子大三时&#xff0c;她没出生呢&#xff01;”张艺谋哈哈大笑&#xff1a;“我50年的&#xff0c;新妻…...

有做网站动态效果软件/长沙搜索排名优化公司

编译链接原理 指令&#xff1a;局部函数内部数据&#xff1a;持续整个程序结束----------------------------------------------------------------------------------------------------------------------- &#xff08;gcc -E .i&#xff09;预编译(.c)&#xff1a; 宏替换、…...

江苏建设委员网站建筑焊工查询/网站地址ip域名查询

H.264是一种广泛使用的视频压缩标准&#xff0c;它利用先进的算法和技术&#xff0c;可以将高清视频压缩到相对较小的文件大小&#xff0c;而且不会影响视频的质量。在H.264中&#xff0c;编码profile和level是非常重要的概念&#xff0c;本文将会对它们进行详细分析。 一、H.2…...