加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
jd_joy.js 185.54 KB
一键复制 编辑 原始数据 按行查看 历史
panghu999 提交于 2021-06-26 11:59 . Update jd_joy.js
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150
/*
jd宠汪汪 搬的https://github.com/uniqueque/QuantumultX/blob/4c1572d93d4d4f883f483f907120a75d925a693e/Script/jd_joy.js
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
IOS用户支持京东双账号,NodeJs用户支持N个京东账号
更新时间:2021-6-6
活动入口:京东APP我的-更多工具-宠汪汪
建议先凌晨0点运行jd_joy.js脚本获取狗粮后,再运行此脚本(jd_joy_steal.js)可偷好友积分,6点运行可偷好友狗粮
feedCount:自定义 每次喂养数量; 等级只和喂养次数有关,与数量无关
推荐每次投喂10个,积累狗粮,然后去玩聚宝盆赌
Combine from Zero-S1/JD_tools(https://github.com/Zero-S1/JD_tools)
使用说明
docker exec -it qinglong /bin/sh
apk add --no-cache build-base g++ cairo-dev pango-dev giflib-dev
cd scripts
npm install canvas --build-from-source
exit
先安装这个
==========Quantumult X==========
[task_local]
#京东宠汪汪
15 0-23/2 * * * jd_joy.js, tag=京东宠汪汪, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdcww.png, enabled=true
============Loon===========
[Script]
cron "15 0-23/2 * * *" script-path=jd_joy.js,tag=京东宠汪汪
============Surge==========
[Script]
京东宠汪汪 = type=cron,cronexp="15 0-23/2 * * *",wake-system=1,timeout=3600,script-path=jd_joy.js
===============小火箭==========
京东宠汪汪 = type=cron,script-path=jd_joy.js, cronexpr="15 0-23/2 * * *", timeout=3600, enable=true
*/
! function(t, r) {
"object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r()
}(this, function() {
var t = t || function(t, r) {
var e = Object.create || function() {
function t() {}
return function(r) {
var e;
return t.prototype = r, e = new t, t.prototype = null, e
}
}(),
i = {},
n = i.lib = {},
o = n.Base = function() {
return {
extend: function(t) {
var r = e(this);
return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function() {
r.$super.init.apply(this, arguments)
}), r.init.prototype = r, r.$super = this, r
},
create: function() {
var t = this.extend();
return t.init.apply(t, arguments), t
},
init: function() {},
mixIn: function(t) {
for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]);
t.hasOwnProperty("toString") && (this.toString = t.toString)
},
clone: function() {
return this.init.prototype.extend(this)
}
}
}(),
s = n.WordArray = o.extend({
init: function(t, e) {
t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length
},
toString: function(t) {
return (t || c).stringify(this)
},
concat: function(t) {
var r = this.words,
e = t.words,
i = this.sigBytes,
n = t.sigBytes;
if (this.clamp(), i % 4)
for (var o = 0; o < n; o++) {
var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;
r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8
} else
for (var o = 0; o < n; o += 4) r[i + o >>> 2] = e[o >>> 2];
return this.sigBytes += n, this
},
clamp: function() {
var r = this.words,
e = this.sigBytes;
r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4)
},
clone: function() {
var t = o.clone.call(this);
return t.words = this.words.slice(0), t
},
random: function(r) {
for (var e, i = [], n = function(r) {
var r = r,
e = 987654321,
i = 4294967295;
return function() {
e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i;
var n = (e << 16) + r & i;
return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1)
}
}, o = 0; o < r; o += 4) {
var a = n(4294967296 * (e || t.random()));
e = 987654071 * a(), i.push(4294967296 * a() | 0)
}
return new s.init(i, r)
}
}),
a = i.enc = {},
c = a.Hex = {
stringify: function(t) {
for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) {
var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255;
i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16))
}
return i.join("")
},
parse: function(t) {
for (var r = t.length, e = [], i = 0; i < r; i += 2) e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4;
return new s.init(e, r / 2)
}
},
h = a.Latin1 = {
stringify: function(t) {
for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) {
var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255;
i.push(String.fromCharCode(o))
}
return i.join("")
},
parse: function(t) {
for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8;
return new s.init(e, r)
}
},
l = a.Utf8 = {
stringify: function(t) {
try {
return decodeURIComponent(escape(h.stringify(t)))
} catch (t) {
throw new Error("Malformed UTF-8 data")
}
},
parse: function(t) {
return h.parse(unescape(encodeURIComponent(t)))
}
},
f = n.BufferedBlockAlgorithm = o.extend({
reset: function() {
this._data = new s.init, this._nDataBytes = 0
},
_append: function(t) {
"string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes
},
_process: function(r) {
var e = this._data,
i = e.words,
n = e.sigBytes,
o = this.blockSize,
a = 4 * o,
c = n / a;
c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0);
var h = c * o,
l = t.min(4 * h, n);
if (h) {
for (var f = 0; f < h; f += o) this._doProcessBlock(i, f);
var u = i.splice(0, h);
e.sigBytes -= l
}
return new s.init(u, l)
},
clone: function() {
var t = o.clone.call(this);
return t._data = this._data.clone(), t
},
_minBufferSize: 0
}),
u = (n.Hasher = f.extend({
cfg: o.extend(),
init: function(t) {
this.cfg = this.cfg.extend(t), this.reset()
},
reset: function() {
f.reset.call(this), this._doReset()
},
update: function(t) {
return this._append(t), this._process(), this
},
finalize: function(t) {
t && this._append(t);
var r = this._doFinalize();
return r
},
blockSize: 16,
_createHelper: function(t) {
return function(r, e) {
return new t.init(e).finalize(r)
}
},
_createHmacHelper: function(t) {
return function(r, e) {
return new u.HMAC.init(t, e).finalize(r)
}
}
}), i.algo = {});
return i
}(Math);
return function() {
function r(t, r, e) {
for (var i = [], o = 0, s = 0; s < r; s++)
if (s % 4) {
var a = e[t.charCodeAt(s - 1)] << s % 4 * 2,
c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2;
i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++
}
return n.create(i, o)
}
var e = t,
i = e.lib,
n = i.WordArray,
o = e.enc;
o.Base64 = {
stringify: function(t) {
var r = t.words,
e = t.sigBytes,
i = this._map;
t.clamp();
for (var n = [], o = 0; o < e; o += 3)
for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) n.push(i.charAt(h >>> 6 * (3 - l) & 63));
var f = i.charAt(64);
if (f)
for (; n.length % 4;) n.push(f);
return n.join("")
},
parse: function(t) {
var e = t.length,
i = this._map,
n = this._reverseMap;
if (!n) {
n = this._reverseMap = [];
for (var o = 0; o < i.length; o++) n[i.charCodeAt(o)] = o
}
var s = i.charAt(64);
if (s) {
var a = t.indexOf(s);
a !== -1 && (e = a)
}
return r(t, e, n)
},
_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
}
}(),
function(r) {
function e(t, r, e, i, n, o, s) {
var a = t + (r & e | ~r & i) + n + s;
return (a << o | a >>> 32 - o) + r
}
function i(t, r, e, i, n, o, s) {
var a = t + (r & i | e & ~i) + n + s;
return (a << o | a >>> 32 - o) + r
}
function n(t, r, e, i, n, o, s) {
var a = t + (r ^ e ^ i) + n + s;
return (a << o | a >>> 32 - o) + r
}
function o(t, r, e, i, n, o, s) {
var a = t + (e ^ (r | ~i)) + n + s;
return (a << o | a >>> 32 - o) + r
}
var s = t,
a = s.lib,
c = a.WordArray,
h = a.Hasher,
l = s.algo,
f = [];
! function() {
for (var t = 0; t < 64; t++) f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0
}();
var u = l.MD5 = h.extend({
_doReset: function() {
this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878])
},
_doProcessBlock: function(t, r) {
for (var s = 0; s < 16; s++) {
var a = r + s,
c = t[a];
t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8)
}
var h = this._hash.words,
l = t[r + 0],
u = t[r + 1],
d = t[r + 2],
v = t[r + 3],
p = t[r + 4],
_ = t[r + 5],
y = t[r + 6],
g = t[r + 7],
B = t[r + 8],
w = t[r + 9],
k = t[r + 10],
S = t[r + 11],
m = t[r + 12],
x = t[r + 13],
b = t[r + 14],
H = t[r + 15],
z = h[0],
A = h[1],
C = h[2],
D = h[3];
z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0
},
_doFinalize: function() {
var t = this._data,
e = t.words,
i = 8 * this._nDataBytes,
n = 8 * t.sigBytes;
e[n >>> 5] |= 128 << 24 - n % 32;
var o = r.floor(i / 4294967296),
s = i;
e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process();
for (var a = this._hash, c = a.words, h = 0; h < 4; h++) {
var l = c[h];
c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8)
}
return a
},
clone: function() {
var t = h.clone.call(this);
return t._hash = this._hash.clone(), t
}
});
s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u)
}(Math),
function() {
var r = t,
e = r.lib,
i = e.WordArray,
n = e.Hasher,
o = r.algo,
s = [],
a = o.SHA1 = n.extend({
_doReset: function() {
this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
},
_doProcessBlock: function(t, r) {
for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) {
if (h < 16) s[h] = 0 | t[r + h];
else {
var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16];
s[h] = l << 1 | l >>> 31
}
var f = (i << 5 | i >>> 27) + c + s[h];
f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f
}
e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0
},
_doFinalize: function() {
var t = this._data,
r = t.words,
e = 8 * this._nDataBytes,
i = 8 * t.sigBytes;
return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash
},
clone: function() {
var t = n.clone.call(this);
return t._hash = this._hash.clone(), t
}
});
r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a)
}(),
function(r) {
var e = t,
i = e.lib,
n = i.WordArray,
o = i.Hasher,
s = e.algo,
a = [],
c = [];
! function() {
function t(t) {
for (var e = r.sqrt(t), i = 2; i <= e; i++)
if (!(t % i)) return !1;
return !0
}
function e(t) {
return 4294967296 * (t - (0 | t)) | 0
}
for (var i = 2, n = 0; n < 64;) t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++
}();
var h = [],
l = s.SHA256 = o.extend({
_doReset: function() {
this._hash = new n.init(a.slice(0))
},
_doProcessBlock: function(t, r) {
for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) {
if (d < 16) h[d] = 0 | t[r + d];
else {
var v = h[d - 15],
p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3,
_ = h[d - 2],
y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10;
h[d] = p + h[d - 7] + y + h[d - 16]
}
var g = a & l ^ ~a & f,
B = i & n ^ i & o ^ n & o,
w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22),
k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25),
S = u + k + g + c[d] + h[d],
m = w + B;
u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0
}
e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0
},
_doFinalize: function() {
var t = this._data,
e = t.words,
i = 8 * this._nDataBytes,
n = 8 * t.sigBytes;
return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash
},
clone: function() {
var t = o.clone.call(this);
return t._hash = this._hash.clone(), t
}
});
e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l)
}(Math),
function() {
function r(t) {
return t << 8 & 4278255360 | t >>> 8 & 16711935
}
var e = t,
i = e.lib,
n = i.WordArray,
o = e.enc;
o.Utf16 = o.Utf16BE = {
stringify: function(t) {
for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) {
var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535;
i.push(String.fromCharCode(o))
}
return i.join("")
},
parse: function(t) {
for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16;
return n.create(e, 2 * r)
}
};
o.Utf16LE = {
stringify: function(t) {
for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) {
var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535);
n.push(String.fromCharCode(s))
}
return n.join("")
},
parse: function(t) {
for (var e = t.length, i = [], o = 0; o < e; o++) i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16);
return n.create(i, 2 * e)
}
}
}(),
function() {
if ("function" == typeof ArrayBuffer) {
var r = t,
e = r.lib,
i = e.WordArray,
n = i.init,
o = i.init = function(t) {
if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) {
for (var r = t.byteLength, e = [], i = 0; i < r; i++) e[i >>> 2] |= t[i] << 24 - i % 4 * 8;
n.call(this, e, r)
} else n.apply(this, arguments)
};
o.prototype = i
}
}(),
function(r) {
function e(t, r, e) {
return t ^ r ^ e
}
function i(t, r, e) {
return t & r | ~t & e
}
function n(t, r, e) {
return (t | ~r) ^ e
}
function o(t, r, e) {
return t & e | r & ~e
}
function s(t, r, e) {
return t ^ (r | ~e)
}
function a(t, r) {
return t << r | t >>> 32 - r
}
var c = t,
h = c.lib,
l = h.WordArray,
f = h.Hasher,
u = c.algo,
d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]),
v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]),
p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]),
_ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]),
y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]),
g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]),
B = u.RIPEMD160 = f.extend({
_doReset: function() {
this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
},
_doProcessBlock: function(t, r) {
for (var c = 0; c < 16; c++) {
var h = r + c,
l = t[h];
t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8)
}
var f, u, B, w, k, S, m, x, b, H, z = this._hash.words,
A = y.words,
C = g.words,
D = d.words,
R = v.words,
E = p.words,
M = _.words;
S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4];
for (var F, c = 0; c < 80; c += 1) F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F;
F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F
},
_doFinalize: function() {
var t = this._data,
r = t.words,
e = 8 * this._nDataBytes,
i = 8 * t.sigBytes;
r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process();
for (var n = this._hash, o = n.words, s = 0; s < 5; s++) {
var a = o[s];
o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8)
}
return n
},
clone: function() {
var t = f.clone.call(this);
return t._hash = this._hash.clone(), t
}
});
c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B)
}(Math),
function() {
var r = t,
e = r.lib,
i = e.Base,
n = r.enc,
o = n.Utf8,
s = r.algo;
s.HMAC = i.extend({
init: function(t, r) {
t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r));
var e = t.blockSize,
i = 4 * e;
r.sigBytes > i && (r = t.finalize(r)), r.clamp();
for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) a[h] ^= 1549556828, c[h] ^= 909522486;
n.sigBytes = s.sigBytes = i, this.reset()
},
reset: function() {
var t = this._hasher;
t.reset(), t.update(this._iKey)
},
update: function(t) {
return this._hasher.update(t), this
},
finalize: function(t) {
var r = this._hasher,
e = r.finalize(t);
r.reset();
var i = r.finalize(this._oKey.clone().concat(e));
return i
}
})
}(),
function() {
var r = t,
e = r.lib,
i = e.Base,
n = e.WordArray,
o = r.algo,
s = o.SHA1,
a = o.HMAC,
c = o.PBKDF2 = i.extend({
cfg: i.extend({
keySize: 4,
hasher: s,
iterations: 1
}),
init: function(t) {
this.cfg = this.cfg.extend(t)
},
compute: function(t, r) {
for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) {
var u = i.update(r).finalize(s);
i.reset();
for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) {
p = i.finalize(p), i.reset();
for (var y = p.words, g = 0; g < v; g++) d[g] ^= y[g]
}
o.concat(u), h[0]++
}
return o.sigBytes = 4 * l, o
}
});
r.PBKDF2 = function(t, r, e) {
return c.create(e).compute(t, r)
}
}(),
function() {
var r = t,
e = r.lib,
i = e.Base,
n = e.WordArray,
o = r.algo,
s = o.MD5,
a = o.EvpKDF = i.extend({
cfg: i.extend({
keySize: 4,
hasher: s,
iterations: 1
}),
init: function(t) {
this.cfg = this.cfg.extend(t)
},
compute: function(t, r) {
for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) {
h && i.update(h);
var h = i.update(t).finalize(r);
i.reset();
for (var l = 1; l < c; l++) h = i.finalize(h), i.reset();
o.concat(h)
}
return o.sigBytes = 4 * a, o
}
});
r.EvpKDF = function(t, r, e) {
return a.create(e).compute(t, r)
}
}(),
function() {
var r = t,
e = r.lib,
i = e.WordArray,
n = r.algo,
o = n.SHA256,
s = n.SHA224 = o.extend({
_doReset: function() {
this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428])
},
_doFinalize: function() {
var t = o._doFinalize.call(this);
return t.sigBytes -= 4, t
}
});
r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s)
}(),
function(r) {
var e = t,
i = e.lib,
n = i.Base,
o = i.WordArray,
s = e.x64 = {};
s.Word = n.extend({
init: function(t, r) {
this.high = t, this.low = r
}
}), s.WordArray = n.extend({
init: function(t, e) {
t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length
},
toX32: function() {
for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) {
var n = t[i];
e.push(n.high), e.push(n.low)
}
return o.create(e, this.sigBytes)
},
clone: function() {
for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) r[i] = r[i].clone();
return t
}
})
}(),
function(r) {
var e = t,
i = e.lib,
n = i.WordArray,
o = i.Hasher,
s = e.x64,
a = s.Word,
c = e.algo,
h = [],
l = [],
f = [];
! function() {
for (var t = 1, r = 0, e = 0; e < 24; e++) {
h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64;
var i = r % 5,
n = (2 * t + 3 * r) % 5;
t = i, r = n
}
for (var t = 0; t < 5; t++)
for (var r = 0; r < 5; r++) l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5;
for (var o = 1, s = 0; s < 24; s++) {
for (var c = 0, u = 0, d = 0; d < 7; d++) {
if (1 & o) {
var v = (1 << d) - 1;
v < 32 ? u ^= 1 << v : c ^= 1 << v - 32
}
128 & o ? o = o << 1 ^ 113 : o <<= 1
}
f[s] = a.create(c, u)
}
}();
var u = [];
! function() {
for (var t = 0; t < 25; t++) u[t] = a.create()
}();
var d = c.SHA3 = o.extend({
cfg: o.cfg.extend({
outputLength: 512
}),
_doReset: function() {
for (var t = this._state = [], r = 0; r < 25; r++) t[r] = new a.init;
this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32
},
_doProcessBlock: function(t, r) {
for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) {
var o = t[r + 2 * n],
s = t[r + 2 * n + 1];
o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8);
var a = e[n];
a.high ^= s, a.low ^= o
}
for (var c = 0; c < 24; c++) {
for (var d = 0; d < 5; d++) {
for (var v = 0, p = 0, _ = 0; _ < 5; _++) {
var a = e[d + 5 * _];
v ^= a.high, p ^= a.low
}
var y = u[d];
y.high = v, y.low = p
}
for (var d = 0; d < 5; d++)
for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) {
var a = e[d + 5 * _];
a.high ^= v, a.low ^= p
}
for (var S = 1; S < 25; S++) {
var a = e[S],
m = a.high,
x = a.low,
b = h[S];
if (b < 32) var v = m << b | x >>> 32 - b,
p = x << b | m >>> 32 - b;
else var v = x << b - 32 | m >>> 64 - b,
p = m << b - 32 | x >>> 64 - b;
var H = u[l[S]];
H.high = v, H.low = p
}
var z = u[0],
A = e[0];
z.high = A.high, z.low = A.low;
for (var d = 0; d < 5; d++)
for (var _ = 0; _ < 5; _++) {
var S = d + 5 * _,
a = e[S],
C = u[S],
D = u[(d + 1) % 5 + 5 * _],
R = u[(d + 2) % 5 + 5 * _];
a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low
}
var a = e[0],
E = f[c];
a.high ^= E.high, a.low ^= E.low
}
},
_doFinalize: function() {
var t = this._data,
e = t.words,
i = (8 * this._nDataBytes, 8 * t.sigBytes),
o = 32 * this.blockSize;
e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process();
for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) {
var f = s[l],
u = f.high,
d = f.low;
u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u)
}
return new n.init(h, a)
},
clone: function() {
for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) r[e] = r[e].clone();
return t
}
});
e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d)
}(Math),
function() {
function r() {
return s.create.apply(s, arguments)
}
var e = t,
i = e.lib,
n = i.Hasher,
o = e.x64,
s = o.Word,
a = o.WordArray,
c = e.algo,
h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)],
l = [];
! function() {
for (var t = 0; t < 80; t++) l[t] = r()
}();
var f = c.SHA512 = n.extend({
_doReset: function() {
this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)])
},
_doProcessBlock: function(t, r) {
for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) {
var Z = l[T];
if (T < 16) var q = Z.high = 0 | t[r + 2 * T],
G = Z.low = 0 | t[r + 2 * T + 1];
else {
var J = l[T - 15],
$ = J.high,
Q = J.low,
V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7,
Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25),
tt = l[T - 2],
rt = tt.high,
et = tt.low,
it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6,
nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26),
ot = l[T - 7],
st = ot.high,
at = ot.low,
ct = l[T - 16],
ht = ct.high,
lt = ct.low,
G = Y + at,
q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0),
G = G + nt,
q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0),
G = G + lt,
q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0);
Z.high = q, Z.low = G
}
var ft = O & I ^ ~O & X,
ut = U & K ^ ~U & L,
dt = C & R ^ C & M ^ R & M,
vt = D & E ^ D & F ^ E & F,
pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7),
_t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7),
yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9),
gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9),
Bt = h[T],
wt = Bt.high,
kt = Bt.low,
St = N + gt,
mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0),
St = St + ut,
mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0),
St = St + kt,
mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0),
St = St + G,
mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0),
xt = _t + vt,
bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0);
j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0
}
v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0)
},
_doFinalize: function() {
var t = this._data,
r = t.words,
e = 8 * this._nDataBytes,
i = 8 * t.sigBytes;
r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process();
var n = this._hash.toX32();
return n
},
clone: function() {
var t = n.clone.call(this);
return t._hash = this._hash.clone(), t
},
blockSize: 32
});
e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f)
}(),
function() {
var r = t,
e = r.x64,
i = e.Word,
n = e.WordArray,
o = r.algo,
s = o.SHA512,
a = o.SHA384 = s.extend({
_doReset: function() {
this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)])
},
_doFinalize: function() {
var t = s._doFinalize.call(this);
return t.sigBytes -= 16, t
}
});
r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a)
}(), t.lib.Cipher || function(r) {
var e = t,
i = e.lib,
n = i.Base,
o = i.WordArray,
s = i.BufferedBlockAlgorithm,
a = e.enc,
c = (a.Utf8, a.Base64),
h = e.algo,
l = h.EvpKDF,
f = i.Cipher = s.extend({
cfg: n.extend(),
createEncryptor: function(t, r) {
return this.create(this._ENC_XFORM_MODE, t, r)
},
createDecryptor: function(t, r) {
return this.create(this._DEC_XFORM_MODE, t, r)
},
init: function(t, r, e) {
this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset()
},
reset: function() {
s.reset.call(this), this._doReset()
},
process: function(t) {
return this._append(t), this._process()
},
finalize: function(t) {
t && this._append(t);
var r = this._doFinalize();
return r
},
keySize: 4,
ivSize: 4,
_ENC_XFORM_MODE: 1,
_DEC_XFORM_MODE: 2,
_createHelper: function() {
function t(t) {
return "string" == typeof t ? m : w
}
return function(r) {
return {
encrypt: function(e, i, n) {
return t(i).encrypt(r, e, i, n)
},
decrypt: function(e, i, n) {
return t(i).decrypt(r, e, i, n)
}
}
}
}()
}),
u = (i.StreamCipher = f.extend({
_doFinalize: function() {
var t = this._process(!0);
return t
},
blockSize: 1
}), e.mode = {}),
d = i.BlockCipherMode = n.extend({
createEncryptor: function(t, r) {
return this.Encryptor.create(t, r)
},
createDecryptor: function(t, r) {
return this.Decryptor.create(t, r)
},
init: function(t, r) {
this._cipher = t, this._iv = r
}
}),
v = u.CBC = function() {
function t(t, e, i) {
var n = this._iv;
if (n) {
var o = n;
this._iv = r
} else var o = this._prevBlock;
for (var s = 0; s < i; s++) t[e + s] ^= o[s]
}
var e = d.extend();
return e.Encryptor = e.extend({
processBlock: function(r, e) {
var i = this._cipher,
n = i.blockSize;
t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n)
}
}), e.Decryptor = e.extend({
processBlock: function(r, e) {
var i = this._cipher,
n = i.blockSize,
o = r.slice(e, e + n);
i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o
}
}), e
}(),
p = e.pad = {},
_ = p.Pkcs7 = {
pad: function(t, r) {
for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) s.push(n);
var c = o.create(s, i);
t.concat(c)
},
unpad: function(t) {
var r = 255 & t.words[t.sigBytes - 1 >>> 2];
t.sigBytes -= r
}
},
y = (i.BlockCipher = f.extend({
cfg: f.cfg.extend({
mode: v,
padding: _
}),
reset: function() {
f.reset.call(this);
var t = this.cfg,
r = t.iv,
e = t.mode;
if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;
else {
var i = e.createDecryptor;
this._minBufferSize = 1
}
this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i)
},
_doProcessBlock: function(t, r) {
this._mode.processBlock(t, r)
},
_doFinalize: function() {
var t = this.cfg.padding;
if (this._xformMode == this._ENC_XFORM_MODE) {
t.pad(this._data, this.blockSize);
var r = this._process(!0)
} else {
var r = this._process(!0);
t.unpad(r)
}
return r
},
blockSize: 4
}), i.CipherParams = n.extend({
init: function(t) {
this.mixIn(t)
},
toString: function(t) {
return (t || this.formatter).stringify(this)
}
})),
g = e.format = {},
B = g.OpenSSL = {
stringify: function(t) {
var r = t.ciphertext,
e = t.salt;
if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);
else var i = r;
return i.toString(c)
},
parse: function(t) {
var r = c.parse(t),
e = r.words;
if (1398893684 == e[0] && 1701076831 == e[1]) {
var i = o.create(e.slice(2, 4));
e.splice(0, 4), r.sigBytes -= 16
}
return y.create({
ciphertext: r,
salt: i
})
}
},
w = i.SerializableCipher = n.extend({
cfg: n.extend({
format: B
}),
encrypt: function(t, r, e, i) {
i = this.cfg.extend(i);
var n = t.createEncryptor(e, i),
o = n.finalize(r),
s = n.cfg;
return y.create({
ciphertext: o,
key: e,
iv: s.iv,
algorithm: t,
mode: s.mode,
padding: s.padding,
blockSize: t.blockSize,
formatter: i.format
})
},
decrypt: function(t, r, e, i) {
i = this.cfg.extend(i), r = this._parse(r, i.format);
var n = t.createDecryptor(e, i).finalize(r.ciphertext);
return n
},
_parse: function(t, r) {
return "string" == typeof t ? r.parse(t, this) : t
}
}),
k = e.kdf = {},
S = k.OpenSSL = {
execute: function(t, r, e, i) {
i || (i = o.random(8));
var n = l.create({
keySize: r + e
}).compute(t, i),
s = o.create(n.words.slice(r), 4 * e);
return n.sigBytes = 4 * r, y.create({
key: n,
iv: s,
salt: i
})
}
},
m = i.PasswordBasedCipher = w.extend({
cfg: w.cfg.extend({
kdf: S
}),
encrypt: function(t, r, e, i) {
i = this.cfg.extend(i);
var n = i.kdf.execute(e, t.keySize, t.ivSize);
i.iv = n.iv;
var o = w.encrypt.call(this, t, r, n.key, i);
return o.mixIn(n), o
},
decrypt: function(t, r, e, i) {
i = this.cfg.extend(i), r = this._parse(r, i.format);
var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt);
i.iv = n.iv;
var o = w.decrypt.call(this, t, r, n.key, i);
return o
}
})
}(), t.mode.CFB = function() {
function r(t, r, e, i) {
var n = this._iv;
if (n) {
var o = n.slice(0);
this._iv = void 0
} else var o = this._prevBlock;
i.encryptBlock(o, 0);
for (var s = 0; s < e; s++) t[r + s] ^= o[s]
}
var e = t.lib.BlockCipherMode.extend();
return e.Encryptor = e.extend({
processBlock: function(t, e) {
var i = this._cipher,
n = i.blockSize;
r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n)
}
}), e.Decryptor = e.extend({
processBlock: function(t, e) {
var i = this._cipher,
n = i.blockSize,
o = t.slice(e, e + n);
r.call(this, t, e, n, i), this._prevBlock = o
}
}), e
}(), t.mode.ECB = function() {
var r = t.lib.BlockCipherMode.extend();
return r.Encryptor = r.extend({
processBlock: function(t, r) {
this._cipher.encryptBlock(t, r)
}
}), r.Decryptor = r.extend({
processBlock: function(t, r) {
this._cipher.decryptBlock(t, r)
}
}), r
}(), t.pad.AnsiX923 = {
pad: function(t, r) {
var e = t.sigBytes,
i = 4 * r,
n = i - e % i,
o = e + n - 1;
t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n
},
unpad: function(t) {
var r = 255 & t.words[t.sigBytes - 1 >>> 2];
t.sigBytes -= r
}
}, t.pad.Iso10126 = {
pad: function(r, e) {
var i = 4 * e,
n = i - r.sigBytes % i;
r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1))
},
unpad: function(t) {
var r = 255 & t.words[t.sigBytes - 1 >>> 2];
t.sigBytes -= r
}
}, t.pad.Iso97971 = {
pad: function(r, e) {
r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e)
},
unpad: function(r) {
t.pad.ZeroPadding.unpad(r), r.sigBytes--
}
}, t.mode.OFB = function() {
var r = t.lib.BlockCipherMode.extend(),
e = r.Encryptor = r.extend({
processBlock: function(t, r) {
var e = this._cipher,
i = e.blockSize,
n = this._iv,
o = this._keystream;
n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0);
for (var s = 0; s < i; s++) t[r + s] ^= o[s]
}
});
return r.Decryptor = e, r
}(), t.pad.NoPadding = {
pad: function() {},
unpad: function() {}
},
function(r) {
var e = t,
i = e.lib,
n = i.CipherParams,
o = e.enc,
s = o.Hex,
a = e.format;
a.Hex = {
stringify: function(t) {
return t.ciphertext.toString(s)
},
parse: function(t) {
var r = s.parse(t);
return n.create({
ciphertext: r
})
}
}
}(),
function() {
var r = t,
e = r.lib,
i = e.BlockCipher,
n = r.algo,
o = [],
s = [],
a = [],
c = [],
h = [],
l = [],
f = [],
u = [],
d = [],
v = [];
! function() {
for (var t = [], r = 0; r < 256; r++) r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283;
for (var e = 0, i = 0, r = 0; r < 256; r++) {
var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4;
n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e;
var p = t[e],
_ = t[p],
y = t[_],
g = 257 * t[n] ^ 16843008 * n;
a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g;
var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e;
f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1
}
}();
var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
_ = n.AES = i.extend({
_doReset: function() {
if (!this._nRounds || this._keyPriorReset !== this._key) {
for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)
if (a < e) s[a] = r[a];
else {
var c = s[a - 1];
a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c
}
for (var h = this._invKeySchedule = [], l = 0; l < n; l++) {
var a = n - l;
if (l % 4) var c = s[a];
else var c = s[a - 4];
l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]
}
}
},
encryptBlock: function(t, r) {
this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o)
},
decryptBlock: function(t, r) {
var e = t[r + 1];
t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s);
var e = t[r + 1];
t[r + 1] = t[r + 3], t[r + 3] = e
},
_doCryptBlock: function(t, r, e, i, n, o, s, a) {
for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) {
var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++],
_ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++],
y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++],
g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++];
h = p, l = _, f = y, u = g
}
var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++],
_ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++],
y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++],
g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++];
t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g
},
keySize: 8
});
r.AES = i._createHelper(_)
}(),
function() {
function r(t, r) {
var e = (this._lBlock >>> t ^ this._rBlock) & r;
this._rBlock ^= e, this._lBlock ^= e << t
}
function e(t, r) {
var e = (this._rBlock >>> t ^ this._lBlock) & r;
this._lBlock ^= e, this._rBlock ^= e << t;
}
var i = t,
n = i.lib,
o = n.WordArray,
s = n.BlockCipher,
a = i.algo,
c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4],
h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32],
l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28],
f = [{
0: 8421888,
268435456: 32768,
536870912: 8421378,
805306368: 2,
1073741824: 512,
1342177280: 8421890,
1610612736: 8389122,
1879048192: 8388608,
2147483648: 514,
2415919104: 8389120,
2684354560: 33280,
2952790016: 8421376,
3221225472: 32770,
3489660928: 8388610,
3758096384: 0,
4026531840: 33282,
134217728: 0,
402653184: 8421890,
671088640: 33282,
939524096: 32768,
1207959552: 8421888,
1476395008: 512,
1744830464: 8421378,
2013265920: 2,
2281701376: 8389120,
2550136832: 33280,
2818572288: 8421376,
3087007744: 8389122,
3355443200: 8388610,
3623878656: 32770,
3892314112: 514,
4160749568: 8388608,
1: 32768,
268435457: 2,
536870913: 8421888,
805306369: 8388608,
1073741825: 8421378,
1342177281: 33280,
1610612737: 512,
1879048193: 8389122,
2147483649: 8421890,
2415919105: 8421376,
2684354561: 8388610,
2952790017: 33282,
3221225473: 514,
3489660929: 8389120,
3758096385: 32770,
4026531841: 0,
134217729: 8421890,
402653185: 8421376,
671088641: 8388608,
939524097: 512,
1207959553: 32768,
1476395009: 8388610,
1744830465: 2,
2013265921: 33282,
2281701377: 32770,
2550136833: 8389122,
2818572289: 514,
3087007745: 8421888,
3355443201: 8389120,
3623878657: 0,
3892314113: 33280,
4160749569: 8421378
}, {
0: 1074282512,
16777216: 16384,
33554432: 524288,
50331648: 1074266128,
67108864: 1073741840,
83886080: 1074282496,
100663296: 1073758208,
117440512: 16,
134217728: 540672,
150994944: 1073758224,
167772160: 1073741824,
184549376: 540688,
201326592: 524304,
218103808: 0,
234881024: 16400,
251658240: 1074266112,
8388608: 1073758208,
25165824: 540688,
41943040: 16,
58720256: 1073758224,
75497472: 1074282512,
92274688: 1073741824,
109051904: 524288,
125829120: 1074266128,
142606336: 524304,
159383552: 0,
176160768: 16384,
192937984: 1074266112,
209715200: 1073741840,
226492416: 540672,
243269632: 1074282496,
260046848: 16400,
268435456: 0,
285212672: 1074266128,
301989888: 1073758224,
318767104: 1074282496,
335544320: 1074266112,
352321536: 16,
369098752: 540688,
385875968: 16384,
402653184: 16400,
419430400: 524288,
436207616: 524304,
452984832: 1073741840,
469762048: 540672,
486539264: 1073758208,
503316480: 1073741824,
520093696: 1074282512,
276824064: 540688,
293601280: 524288,
310378496: 1074266112,
327155712: 16384,
343932928: 1073758208,
360710144: 1074282512,
377487360: 16,
394264576: 1073741824,
411041792: 1074282496,
427819008: 1073741840,
444596224: 1073758224,
461373440: 524304,
478150656: 0,
494927872: 16400,
511705088: 1074266128,
528482304: 540672
}, {
0: 260,
1048576: 0,
2097152: 67109120,
3145728: 65796,
4194304: 65540,
5242880: 67108868,
6291456: 67174660,
7340032: 67174400,
8388608: 67108864,
9437184: 67174656,
10485760: 65792,
11534336: 67174404,
12582912: 67109124,
13631488: 65536,
14680064: 4,
15728640: 256,
524288: 67174656,
1572864: 67174404,
2621440: 0,
3670016: 67109120,
4718592: 67108868,
5767168: 65536,
6815744: 65540,
7864320: 260,
8912896: 4,
9961472: 256,
11010048: 67174400,
12058624: 65796,
13107200: 65792,
14155776: 67109124,
15204352: 67174660,
16252928: 67108864,
16777216: 67174656,
17825792: 65540,
18874368: 65536,
19922944: 67109120,
20971520: 256,
22020096: 67174660,
23068672: 67108868,
24117248: 0,
25165824: 67109124,
26214400: 67108864,
27262976: 4,
28311552: 65792,
29360128: 67174400,
30408704: 260,
31457280: 65796,
32505856: 67174404,
17301504: 67108864,
18350080: 260,
19398656: 67174656,
20447232: 0,
21495808: 65540,
22544384: 67109120,
23592960: 256,
24641536: 67174404,
25690112: 65536,
26738688: 67174660,
27787264: 65796,
28835840: 67108868,
29884416: 67109124,
30932992: 67174400,
31981568: 4,
33030144: 65792
}, {
0: 2151682048,
65536: 2147487808,
131072: 4198464,
196608: 2151677952,
262144: 0,
327680: 4198400,
393216: 2147483712,
458752: 4194368,
524288: 2147483648,
589824: 4194304,
655360: 64,
720896: 2147487744,
786432: 2151678016,
851968: 4160,
917504: 4096,
983040: 2151682112,
32768: 2147487808,
98304: 64,
163840: 2151678016,
229376: 2147487744,
294912: 4198400,
360448: 2151682112,
425984: 0,
491520: 2151677952,
557056: 4096,
622592: 2151682048,
688128: 4194304,
753664: 4160,
819200: 2147483648,
884736: 4194368,
950272: 4198464,
1015808: 2147483712,
1048576: 4194368,
1114112: 4198400,
1179648: 2147483712,
1245184: 0,
1310720: 4160,
1376256: 2151678016,
1441792: 2151682048,
1507328: 2147487808,
1572864: 2151682112,
1638400: 2147483648,
1703936: 2151677952,
1769472: 4198464,
1835008: 2147487744,
1900544: 4194304,
1966080: 64,
2031616: 4096,
1081344: 2151677952,
1146880: 2151682112,
1212416: 0,
1277952: 4198400,
1343488: 4194368,
1409024: 2147483648,
1474560: 2147487808,
1540096: 64,
1605632: 2147483712,
1671168: 4096,
1736704: 2147487744,
1802240: 2151678016,
1867776: 4160,
1933312: 2151682048,
1998848: 4194304,
2064384: 4198464
}, {
0: 128,
4096: 17039360,
8192: 262144,
12288: 536870912,
16384: 537133184,
20480: 16777344,
24576: 553648256,
28672: 262272,
32768: 16777216,
36864: 537133056,
40960: 536871040,
45056: 553910400,
49152: 553910272,
53248: 0,
57344: 17039488,
61440: 553648128,
2048: 17039488,
6144: 553648256,
10240: 128,
14336: 17039360,
18432: 262144,
22528: 537133184,
26624: 553910272,
30720: 536870912,
34816: 537133056,
38912: 0,
43008: 553910400,
47104: 16777344,
51200: 536871040,
55296: 553648128,
59392: 16777216,
63488: 262272,
65536: 262144,
69632: 128,
73728: 536870912,
77824: 553648256,
81920: 16777344,
86016: 553910272,
90112: 537133184,
94208: 16777216,
98304: 553910400,
102400: 553648128,
106496: 17039360,
110592: 537133056,
114688: 262272,
118784: 536871040,
122880: 0,
126976: 17039488,
67584: 553648256,
71680: 16777216,
75776: 17039360,
79872: 537133184,
83968: 536870912,
88064: 17039488,
92160: 128,
96256: 553910272,
100352: 262272,
104448: 553910400,
108544: 0,
112640: 553648128,
116736: 16777344,
120832: 262144,
124928: 537133056,
129024: 536871040
}, {
0: 268435464,
256: 8192,
512: 270532608,
768: 270540808,
1024: 268443648,
1280: 2097152,
1536: 2097160,
1792: 268435456,
2048: 0,
2304: 268443656,
2560: 2105344,
2816: 8,
3072: 270532616,
3328: 2105352,
3584: 8200,
3840: 270540800,
128: 270532608,
384: 270540808,
640: 8,
896: 2097152,
1152: 2105352,
1408: 268435464,
1664: 268443648,
1920: 8200,
2176: 2097160,
2432: 8192,
2688: 268443656,
2944: 270532616,
3200: 0,
3456: 270540800,
3712: 2105344,
3968: 268435456,
4096: 268443648,
4352: 270532616,
4608: 270540808,
4864: 8200,
5120: 2097152,
5376: 268435456,
5632: 268435464,
5888: 2105344,
6144: 2105352,
6400: 0,
6656: 8,
6912: 270532608,
7168: 8192,
7424: 268443656,
7680: 270540800,
7936: 2097160,
4224: 8,
4480: 2105344,
4736: 2097152,
4992: 268435464,
5248: 268443648,
5504: 8200,
5760: 270540808,
6016: 270532608,
6272: 270540800,
6528: 270532616,
6784: 8192,
7040: 2105352,
7296: 2097160,
7552: 0,
7808: 268435456,
8064: 268443656
}, {
0: 1048576,
16: 33555457,
32: 1024,
48: 1049601,
64: 34604033,
80: 0,
96: 1,
112: 34603009,
128: 33555456,
144: 1048577,
160: 33554433,
176: 34604032,
192: 34603008,
208: 1025,
224: 1049600,
240: 33554432,
8: 34603009,
24: 0,
40: 33555457,
56: 34604032,
72: 1048576,
88: 33554433,
104: 33554432,
120: 1025,
136: 1049601,
152: 33555456,
168: 34603008,
184: 1048577,
200: 1024,
216: 34604033,
232: 1,
248: 1049600,
256: 33554432,
272: 1048576,
288: 33555457,
304: 34603009,
320: 1048577,
336: 33555456,
352: 34604032,
368: 1049601,
384: 1025,
400: 34604033,
416: 1049600,
432: 1,
448: 0,
464: 34603008,
480: 33554433,
496: 1024,
264: 1049600,
280: 33555457,
296: 34603009,
312: 1,
328: 33554432,
344: 1048576,
360: 1025,
376: 34604032,
392: 33554433,
408: 34603008,
424: 0,
440: 34604033,
456: 1049601,
472: 1024,
488: 33555456,
504: 1048577
}, {
0: 134219808,
1: 131072,
2: 134217728,
3: 32,
4: 131104,
5: 134350880,
6: 134350848,
7: 2048,
8: 134348800,
9: 134219776,
10: 133120,
11: 134348832,
12: 2080,
13: 0,
14: 134217760,
15: 133152,
2147483648: 2048,
2147483649: 134350880,
2147483650: 134219808,
2147483651: 134217728,
2147483652: 134348800,
2147483653: 133120,
2147483654: 133152,
2147483655: 32,
2147483656: 134217760,
2147483657: 2080,
2147483658: 131104,
2147483659: 134350848,
2147483660: 0,
2147483661: 134348832,
2147483662: 134219776,
2147483663: 131072,
16: 133152,
17: 134350848,
18: 32,
19: 2048,
20: 134219776,
21: 134217760,
22: 134348832,
23: 131072,
24: 0,
25: 131104,
26: 134348800,
27: 134219808,
28: 134350880,
29: 133120,
30: 2080,
31: 134217728,
2147483664: 131072,
2147483665: 2048,
2147483666: 134348832,
2147483667: 133152,
2147483668: 32,
2147483669: 134348800,
2147483670: 134217728,
2147483671: 134219808,
2147483672: 134350880,
2147483673: 134217760,
2147483674: 134219776,
2147483675: 0,
2147483676: 133120,
2147483677: 2080,
2147483678: 131104,
2147483679: 134350848
}],
u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679],
d = a.DES = s.extend({
_doReset: function() {
for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) {
var n = c[i] - 1;
e[i] = r[n >>> 5] >>> 31 - n % 32 & 1
}
for (var o = this._subKeys = [], s = 0; s < 16; s++) {
for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6;
a[0] = a[0] << 1 | a[0] >>> 31;
for (var i = 1; i < 7; i++) a[i] = a[i] >>> 4 * (i - 1) + 3;
a[7] = a[7] << 5 | a[7] >>> 27
}
for (var u = this._invSubKeys = [], i = 0; i < 16; i++) u[i] = o[15 - i]
},
encryptBlock: function(t, r) {
this._doCryptBlock(t, r, this._subKeys)
},
decryptBlock: function(t, r) {
this._doCryptBlock(t, r, this._invSubKeys)
},
_doCryptBlock: function(t, i, n) {
this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765);
for (var o = 0; o < 16; o++) {
for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) h |= f[l][((c ^ s[l]) & u[l]) >>> 0];
this._lBlock = c, this._rBlock = a ^ h
}
var d = this._lBlock;
this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock
},
keySize: 2,
ivSize: 2,
blockSize: 2
});
i.DES = s._createHelper(d);
var v = a.TripleDES = s.extend({
_doReset: function() {
var t = this._key,
r = t.words;
this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6)))
},
encryptBlock: function(t, r) {
this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r)
},
decryptBlock: function(t, r) {
this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r)
},
keySize: 6,
ivSize: 2,
blockSize: 2
});
i.TripleDES = s._createHelper(v)
}(),
function() {
function r() {
for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) {
r = (r + 1) % 256, e = (e + t[r]) % 256;
var o = t[r];
t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n
}
return this._i = r, this._j = e, i
}
var e = t,
i = e.lib,
n = i.StreamCipher,
o = e.algo,
s = o.RC4 = n.extend({
_doReset: function() {
for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) i[n] = n;
for (var n = 0, o = 0; n < 256; n++) {
var s = n % e,
a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255;
o = (o + i[n] + a) % 256;
var c = i[n];
i[n] = i[o], i[o] = c
}
this._i = this._j = 0
},
_doProcessBlock: function(t, e) {
t[e] ^= r.call(this)
},
keySize: 8,
ivSize: 0
});
e.RC4 = n._createHelper(s);
var a = o.RC4Drop = s.extend({
cfg: s.cfg.extend({
drop: 192
}),
_doReset: function() {
s._doReset.call(this);
for (var t = this.cfg.drop; t > 0; t--) r.call(this)
}
});
e.RC4Drop = n._createHelper(a)
}(), t.mode.CTRGladman = function() {
function r(t) {
if (255 === (t >> 24 & 255)) {
var r = t >> 16 & 255,
e = t >> 8 & 255,
i = 255 & t;
255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i
} else t += 1 << 24;
return t
}
function e(t) {
return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t
}
var i = t.lib.BlockCipherMode.extend(),
n = i.Encryptor = i.extend({
processBlock: function(t, r) {
var i = this._cipher,
n = i.blockSize,
o = this._iv,
s = this._counter;
o && (s = this._counter = o.slice(0), this._iv = void 0), e(s);
var a = s.slice(0);
i.encryptBlock(a, 0);
for (var c = 0; c < n; c++) t[r + c] ^= a[c]
}
});
return i.Decryptor = n, i
}(),
function() {
function r() {
for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e];
r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0;
for (var e = 0; e < 8; e++) {
var i = t[e] + r[e],
n = 65535 & i,
o = i >>> 16,
s = ((n * n >>> 17) + n * o >>> 15) + o * o,
h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0);
c[e] = s ^ h
}
t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0
}
var e = t,
i = e.lib,
n = i.StreamCipher,
o = e.algo,
s = [],
a = [],
c = [],
h = o.Rabbit = n.extend({
_doReset: function() {
for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8);
var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16],
o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]];
this._b = 0;
for (var i = 0; i < 4; i++) r.call(this);
for (var i = 0; i < 8; i++) o[i] ^= n[i + 4 & 7];
if (e) {
var s = e.words,
a = s[0],
c = s[1],
h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8),
l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8),
f = h >>> 16 | 4294901760 & l,
u = l << 16 | 65535 & h;
o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u;
for (var i = 0; i < 4; i++) r.call(this)
}
},
_doProcessBlock: function(t, e) {
var i = this._X;
r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16;
for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]
},
blockSize: 4,
ivSize: 2
});
e.Rabbit = n._createHelper(h)
}(), t.mode.CTR = function() {
var r = t.lib.BlockCipherMode.extend(),
e = r.Encryptor = r.extend({
processBlock: function(t, r) {
var e = this._cipher,
i = e.blockSize,
n = this._iv,
o = this._counter;
n && (o = this._counter = n.slice(0), this._iv = void 0);
var s = o.slice(0);
e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0;
for (var a = 0; a < i; a++) t[r + a] ^= s[a]
}
});
return r.Decryptor = e, r
}(),
function() {
function r() {
for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e];
r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0;
for (var e = 0; e < 8; e++) {
var i = t[e] + r[e],
n = 65535 & i,
o = i >>> 16,
s = ((n * n >>> 17) + n * o >>> 15) + o * o,
h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0);
c[e] = s ^ h
}
t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0
}
var e = t,
i = e.lib,
n = i.StreamCipher,
o = e.algo,
s = [],
a = [],
c = [],
h = o.RabbitLegacy = n.extend({
_doReset: function() {
var t = this._key.words,
e = this.cfg.iv,
i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16],
n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]];
this._b = 0;
for (var o = 0; o < 4; o++) r.call(this);
for (var o = 0; o < 8; o++) n[o] ^= i[o + 4 & 7];
if (e) {
var s = e.words,
a = s[0],
c = s[1],
h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8),
l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8),
f = h >>> 16 | 4294901760 & l,
u = l << 16 | 65535 & h;
n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u;
for (var o = 0; o < 4; o++) r.call(this)
}
},
_doProcessBlock: function(t, e) {
var i = this._X;
r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16;
for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]
},
blockSize: 4,
ivSize: 2
});
e.RabbitLegacy = n._createHelper(h)
}(), t.pad.ZeroPadding = {
pad: function(t, r) {
var e = 4 * r;
t.clamp(), t.sigBytes += e - (t.sigBytes % e || e)
},
unpad: function(t) {
for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) e--;
t.sigBytes = e + 1
}
}, t
});
const $ = new Env('宠汪汪');
const notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
let allMessage = '';
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [],
cookie = '';
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item])
})
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
} else {
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
}
let message = '',
subTitle = '';
let FEED_NUM = ($.getdata('joyFeedCount') * 1) || 10; //每次喂养数量 [10,20,40,80]
let teamLevel = `2`; //参加多少人的赛跑比赛,默认是双人赛跑,可选2,10,50。其他不可选,其中2代表参加双人PK赛,10代表参加10人突围赛,50代表参加50人挑战赛,如若想设置不同账号参加不同类别的比赛则用&区分即可(如:`2&10&50`)
//是否参加宠汪汪双人赛跑(据目前观察,参加双人赛跑不消耗狗粮,如需参加其他多人赛跑,请关闭)
// 默认 'true' 参加双人赛跑,如需关闭 ,请改成 'false';
let joyRunFlag = true;
let jdNotify = true; //是否开启静默运行,默认true开启
let joyRunNotify = true; //宠汪汪赛跑获胜后是否推送通知,true推送,false不推送通知
const JD_API_HOST = 'https://jdjoy.jd.com/pet'
const weAppUrl = 'https://draw.jdfcloud.com//pet';
const https = require('https');
const http = require('http');
const stream = require('stream');
const zlib = require('zlib');
const vm = require('vm');
const {
createCanvas,
Image
} = require('canvas');
Math.avg = function average() {
var sum = 0;
var len = this.length;
for (var i = 0; i < len; i++) {
sum += this[i];
}
return sum / len;
};
function sleep(timeout) {
return new Promise((resolve) => setTimeout(resolve, timeout));
}
const canvas = createCanvas();
const PUZZLE_GAP = 8;
const PUZZLE_PAD = 10;
class PuzzleRecognizer {
constructor(bg, patch, y) {
// console.log(bg);
const imgBg = new Image();
const imgPatch = new Image();
imgBg.src = bg;
imgPatch.src = patch;
// console.log(imgBg.naturalWidth);
this.bg = imgBg;
this.patch = imgPatch;
this.y = y;
this.w = imgBg.naturalWidth;
this.h = imgBg.naturalHeight;
this.ctx = canvas.getContext('2d');
}
run() {
const {
ctx,
w,
h
} = this;
canvas.width = w;
canvas.height = h;
ctx.clearRect(0, 0, w, h);
ctx.drawImage(this.bg, 0, 0, w, h);
return this.recognize();
}
recognize() {
const {
ctx,
w: width
} = this;
const {
naturalHeight,
naturalWidth
} = this.patch;
const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2);
// const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data;
const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data;
const lumas = [];
for (let x = 0; x < width; x++) {
var sum = 0;
// y xais
for (let y = 0; y < PUZZLE_GAP; y++) {
var idx = x * 4 + y * (width * 4);
var r = cData[idx];
var g = cData[idx + 1];
var b = cData[idx + 2];
var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;
sum += luma;
}
lumas.push(sum / PUZZLE_GAP);
}
const n = 2; // minium macroscopic image width (px)
const margin = naturalWidth - PUZZLE_PAD;
const diff = 20; // macroscopic brightness difference
const radius = PUZZLE_PAD;
for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) {
const left = (lumas[i] + lumas[i + 1]) / n;
const right = (lumas[i + 2] + lumas[i + 3]) / n;
const mi = margin + i;
const mLeft = (lumas[mi] + lumas[mi + 1]) / n;
const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n;
if (left - right > diff && mLeft - mRigth < -diff) {
const pieces = lumas.slice(i + 2, margin + i + 2);
const median = pieces.sort((x1, x2) => x1 - x2)[20];
const avg = Math.avg(pieces);
// noise reducation
if (median > left || median > mRigth) return;
if (avg > 100) return;
// console.table({left,right,mLeft,mRigth,median});
// ctx.fillRect(i+n-radius, 0, 1, 360);
// console.log(i+n-radius);
return i + n - radius;
}
}
// not found
return -1;
}
}
const DATA = {
"appId": "17839d5db83",
"scene": "cww",
"product": "embed",
"lang": "zh_CN",
};
const SERVER = 'iv.jd.com';
class JDJRValidator {
constructor(params) {
this.data = {};
this.x = 0;
this.t = Date.now();
}
async run() {
const tryRecognize = async () => {
const x = await this.recognize();
if (x > 0) {
return x;
}
// retry
return await tryRecognize();
};
const puzzleX = await tryRecognize();
// console.log(puzzleX);
const pos = new MousePosFaker(puzzleX).run();
const d = getCoordinate(pos);
// console.log(pos[pos.length-1][2] -Date.now());
// await sleep(4500);
await sleep(pos[pos.length - 1][2] - Date.now());
const result = await JDJRValidator.jsonp('/slide/s.html', {
d,
...this.data
});
if (result.message === 'success') {
console.log(result);
$.validate = result.validate
//console.log('JDJRValidator: %fs', (Date.now() - this.t) / 1000);
return result.validate
} else {
//console.count(JSON.stringify(result));
await this.run();
}
}
async recognize() {
const data = await JDJRValidator.jsonp('/slide/g.html', {
e: ''
});
const {
bg,
patch,
y
} = data;
const uri = 'data:image/png;base64,';
const re = new PuzzleRecognizer(uri + bg, uri + patch, y);
const puzzleX = re.run();
if (puzzleX > 0) {
this.data = {
c: data.challenge,
w: re.w,
e: '',
s: '',
o: '',
};
this.x = puzzleX;
}
return puzzleX;
}
async report(n) {
console.time('PuzzleRecognizer');
let count = 0;
for (let i = 0; i < n; i++) {
const x = await this.recognize();
if (x > 0) count++;
if (i % 50 === 0) {
console.log('%f\%', (i / n) * 100);
}
}
console.log('successful: %f\%', (count / n) * 100);
console.timeEnd('PuzzleRecognizer');
}
static jsonp(api, data = {}) {
return new Promise((resolve, reject) => {
const fnId = `jsonp_${String(Math.random()).replace('.', '')}`;
const extraData = {
callback: fnId
};
const query = new URLSearchParams({ ...DATA,
...extraData,
...data
}).toString();
const url = `http://${SERVER}${api}?${query}`;
const headers = {
'Accept': '*/*',
'Accept-Encoding': 'gzip,deflate,br',
'Accept-Language': 'zh-CN,en-US',
'Connection': 'keep-alive',
'Host': SERVER,
'Cookie': $.cookie,
'Proxy-Connection': 'keep-alive',
'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
};
const req = http.get(url, {
headers
}, (response) => {
let res = response;
if (res.headers['content-encoding'] === 'gzip') {
const unzipStream = new stream.PassThrough();
stream.pipeline(response, zlib.createGunzip(), unzipStream, reject, );
res = unzipStream;
}
res.setEncoding('utf8');
let rawData = '';
res.on('data', (chunk) => rawData += chunk);
res.on('end', () => {
try {
const ctx = {
[fnId]: (data) => ctx.data = data,
data: {},
};
vm.createContext(ctx);
vm.runInContext(rawData, ctx);
// console.log(ctx.data);
res.resume();
resolve(ctx.data);
} catch (e) {
reject(e);
}
});
});
req.on('error', reject);
req.end();
});
}
}
function getCoordinate(c) {
function string10to64(d) {
var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split(""),
b = c.length,
e = +d,
a = [];
do {
mod = e % b;
e = (e - mod) / b;
a.unshift(c[mod])
} while (e);
return a.join("")
}
function prefixInteger(a, b) {
return (Array(b).join(0) + a).slice(-b)
}
function pretreatment(d, c, b) {
var e = string10to64(Math.abs(d));
var a = "";
if (!b) {
a += (d > 0 ? "1" : "0")
}
a += prefixInteger(e, c);
return a
}
var b = new Array();
for (var e = 0; e < c.length; e++) {
if (e == 0) {
b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true));
b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true));
b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true))
} else {
var a = c[e][0] - c[e - 1][0];
var f = c[e][1] - c[e - 1][1];
var d = c[e][2] - c[e - 1][2];
b.push(pretreatment(a < 4095 ? a : 4095, 2, false));
b.push(pretreatment(f < 4095 ? f : 4095, 2, false));
b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true))
}
}
return b.join("")
}
const HZ = 60;
class MousePosFaker {
constructor(puzzleX) {
this.x = parseInt(Math.random() * 20 + 20, 10);
this.y = parseInt(Math.random() * 80 + 80, 10);
this.t = Date.now();
this.pos = [
[this.x, this.y, this.t]
];
this.minDuration = parseInt(1000 / HZ, 10);
// this.puzzleX = puzzleX;
this.puzzleX = puzzleX + parseInt(Math.random() * 2 - 1, 10);
this.STEP = parseInt(Math.random() * 6 + 5, 10);
this.DURATION = parseInt(Math.random() * 7 + 14, 10) * 100;
// [9,1600] [10,1400]
this.STEP = 9;
// this.DURATION = 2000;
console.log(this.STEP, this.DURATION);
}
run() {
const perX = this.puzzleX / this.STEP;
const perDuration = this.DURATION / this.STEP;
const firstPos = [this.x - parseInt(Math.random() * 6, 10), this.y + parseInt(Math.random() * 11, 10), this.t];
this.pos.unshift(firstPos);
this.stepPos(perX, perDuration);
this.fixPos();
const reactTime = parseInt(60 + Math.random() * 100, 10);
const lastIdx = this.pos.length - 1;
const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2] + reactTime];
this.pos.push(lastPos);
return this.pos;
}
stepPos(x, duration) {
let n = 0;
const sqrt2 = Math.sqrt(2);
for (let i = 1; i <= this.STEP; i++) {
n += 1 / i;
}
for (let i = 0; i < this.STEP; i++) {
x = this.puzzleX / (n * (i + 1));
const currX = parseInt((Math.random() * 30 - 15) + x, 10);
const currY = parseInt(Math.random() * 7 - 3, 10);
const currDuration = parseInt((Math.random() * 0.4 + 0.8) * duration, 10);
this.moveToAndCollect({
x: currX,
y: currY,
duration: currDuration,
});
}
}
fixPos() {
const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0];
const deviation = this.puzzleX - actualX;
if (Math.abs(deviation) > 4) {
this.moveToAndCollect({
x: deviation,
y: parseInt(Math.random() * 8 - 3, 10),
duration: 250,
});
}
}
moveToAndCollect({
x,
y,
duration
}) {
let movedX = 0;
let movedY = 0;
let movedT = 0;
const times = duration / this.minDuration;
let perX = x / times;
let perY = y / times;
let padDuration = 0;
if (Math.abs(perX) < 1) {
padDuration = duration / Math.abs(x) - this.minDuration;
perX = 1;
perY = y / Math.abs(x);
}
while (Math.abs(movedX) < Math.abs(x)) {
const rDuration = parseInt(padDuration + Math.random() * 16 - 4, 10);
movedX += perX + Math.random() * 2 - 1;
movedY += perY;
movedT += this.minDuration + rDuration;
const currX = parseInt(this.x + movedX, 10);
const currY = parseInt(this.y + movedY, 10);
const currT = this.t + movedT;
this.pos.push([currX, currY, currT]);
}
this.x += x;
this.y += y;
this.t += Math.max(duration, movedT);
}
}
!(async () => {
if (!cookiesArr[0]) {
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {
"open-url": "https://bean.m.jd.com/bean/signIndex.action"
});
return;
}
for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) {
cookie = cookiesArr[i];
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
$.index = i + 1;
$.isLogin = true;
$.nickName = '';
await TotalBean();
console.log(`\n开始【京东账号${$.index}${$.nickName || $.UserName}\n`);
if (!$.isLogin) {
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {
"open-url": "https://bean.m.jd.com/bean/signIndex.action"
});
if ($.isNode()) {
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
}
continue
}
message = '';
subTitle = '';
await jdJoy();
await showMsg();
// await joinTwoPeopleRun();
}
}
if ($.isNode() && joyRunNotify === 'true' && allMessage) await notify.sendNotify(`${$.name}`, `${allMessage}`)
})().catch((e) => {
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')
}).finally(() => {
$.done();
})
async function jdJoy() {
try {
$.cookie = cookie;
let yz = new JDJRValidator($);
await yz.run()
console.log($.validate)
//$.validate='fd5fb3b6ce804150a37a3c9219f91a82'
await getPetTaskConfig();
if ($.getPetTaskConfigRes.success) {
if ($.isNode()) {
if (process.env.JOY_FEED_COUNT) {
if ([0, 10, 20, 40, 80].indexOf(process.env.JOY_FEED_COUNT * 1) > -1) {
FEED_NUM = process.env.JOY_FEED_COUNT ? process.env.JOY_FEED_COUNT * 1 : FEED_NUM;
} else {
console.log(`您输入的 JOY_FEED_COUNT 为非法数字,请重新输入`);
}
}
}
await feedPets(FEED_NUM); //喂食
await Promise.all([
petTask(),
appPetTask()
])
await deskGoodsTask(); //限时货柜
await enterRoom();
await joinTwoPeopleRun() //参加双人赛跑
} else {
message += `${$.getPetTaskConfigRes.errorMessage}`;
}
} catch (e) {
$.logErr(e)
}
}
//逛商品得100积分奖励任务
async function deskGoodsTask() {
const deskGoodsRes = await getDeskGoodDetails();
if (deskGoodsRes && deskGoodsRes.success) {
if (deskGoodsRes.data && deskGoodsRes.data.deskGoods) {
const {
deskGoods,
taskChance,
followCount = 0
} = deskGoodsRes.data;
console.log(`浏览货柜商品 ${followCount ? followCount : 0}/${taskChance}`);
if (taskChance === followCount) return
for (let item of deskGoods) {
if (!item['status'] && item['sku']) {
await followScan(item['sku'])
}
}
} else {
console.log(`\n限时商品货架已下架`);
}
}
}
//参加双人赛跑
async function joinTwoPeopleRun() {
joyRunFlag = $.getdata('joyRunFlag') ? $.getdata('joyRunFlag') : joyRunFlag;
if ($.isNode() && process.env.JOY_RUN_FLAG) {
joyRunFlag = process.env.JOY_RUN_FLAG;
}
if (`${joyRunFlag}` === 'true') {
let teamLevelTemp = [];
teamLevelTemp = $.isNode() ? (process.env.JOY_TEAM_LEVEL ? process.env.JOY_TEAM_LEVEL.split('&') : teamLevel.split('&')) : ($.getdata('JOY_TEAM_LEVEL') ? $.getdata('JOY_TEAM_LEVEL').split('&') : teamLevel.split('&'));
teamLevelTemp = teamLevelTemp[$.index - 1] ? teamLevelTemp[$.index - 1] : 2;
await getPetRace();
console.log(`\n===以下是京东账号${$.index} ${$.nickName} ${$.petRaceResult.data.teamLimitCount || teamLevelTemp}人赛跑信息===\n`)
if ($.petRaceResult) {
let petRaceResult = $.petRaceResult.data.petRaceResult;
// let raceUsers = $.petRaceResult.data.raceUsers;
console.log(`赛跑状态:${petRaceResult}\n`);
if (petRaceResult === 'not_participate') {
console.log(`暂未参赛,现在为您参加${teamLevelTemp}人赛跑`);
await runMatch(teamLevelTemp * 1);
if ($.runMatchResult.success) {
await getWinCoin();
console.log(`${$.getWinCoinRes.data.teamLimitCount || teamLevelTemp}人赛跑参加成功\n`);
message += `${$.getWinCoinRes.data.teamLimitCount || teamLevelTemp}人赛跑:成功参加\n`;
// if ($.getWinCoinRes.data['supplyOrder']) await energySupplyStation($.getWinCoinRes.data['supplyOrder']);
await energySupplyStation('2');
// petRaceResult = $.petRaceResult.data.petRaceResult;
// await getRankList();
console.log(`双人赛跑助力请自己手动去邀请好友,脚本不带赛跑助力功能\n`);
}
}
if (petRaceResult === 'unbegin') {
console.log('比赛还未开始,请九点再来');
}
if (petRaceResult === 'time_over') {
console.log('今日参赛的比赛已经结束,请明天九点再来');
}
if (petRaceResult === 'unreceive') {
console.log('今日参赛的比赛已经结束,现在领取奖励');
await getWinCoin();
let winCoin = 0;
if ($.getWinCoinRes && $.getWinCoinRes.success) {
winCoin = $.getWinCoinRes.data.winCoin;
}
await receiveJoyRunAward();
console.log(`领取赛跑奖励结果:${JSON.stringify($.receiveJoyRunAwardRes)}`)
if ($.receiveJoyRunAwardRes.success) {
joyRunNotify = $.isNode() ? (process.env.JOY_RUN_NOTIFY ? process.env.JOY_RUN_NOTIFY : `${joyRunNotify}`) : ($.getdata('joyRunNotify') ? $.getdata('joyRunNotify') : `${joyRunNotify}`);
$.msg($.name, '', `【京东账号${$.index}${$.nickName}\n太棒了,${$.name}赛跑取得获胜\n恭喜您已获得${winCoin}积分奖励`);
allMessage += `京东账号${$.index}${$.nickName}\n太棒了,${$.name}赛跑取得获胜\n恭喜您已获得${winCoin}积分奖励${$.index !== cookiesArr.length ? '\n\n' : ''}`;
// if ($.isNode() && joyRunNotify === 'true') await notify.sendNotify(`${$.name} - 京东账号${$.index} - ${$.nickName}`, `京东账号${$.index}${$.nickName}\n太棒了,${$.name}赛跑取得获胜\n恭喜您已获得${winCoin}积分奖励`)
}
}
if (petRaceResult === 'participate') {
// if ($.getWinCoinRes.data['supplyOrder']) await energySupplyStation($.getWinCoinRes.data['supplyOrder']);
await energySupplyStation('2');
await getRankList();
if ($.raceUsers && $.raceUsers.length > 0) {
for (let index = 0; index < $.raceUsers.length; index++) {
if (index === 0) {
console.log(`您当前里程:${$.raceUsers[index].distance}KM\n当前排名:第${$.raceUsers[index].rank}名\n将获得积分:${$.raceUsers[index].coin}\n`);
// message += `您当前里程:${$.raceUsers[index].distance}km\n`;
} else {
console.log(`对手 ${$.raceUsers[index].nickName} 当前里程:${$.raceUsers[index].distance}KM`);
// message += `对手当前里程:${$.raceUsers[index].distance}km\n`;
}
}
}
console.log('\n今日已参赛,下面显示应援团信息');
await getBackupInfo();
if ($.getBackupInfoResult.success) {
const {
currentNickName,
totalMembers,
totalDistance,
backupList
} = $.getBackupInfoResult.data;
console.log(`${currentNickName}的应援团信息如下\n团员:${totalMembers}个\n团员助力的里程数:${totalDistance}\n`);
if (backupList && backupList.length > 0) {
for (let item of backupList) {
console.log(`${item.nickName}为您助力${item.distance}km`);
}
} else {
console.log(`暂无好友为您助力赛跑,如需助力,请手动去邀请好友助力\n`);
}
}
}
}
} else {
console.log(`您设置的是不参加双人赛跑`)
}
}
//日常任务
async function petTask() {
for (let item of $.getPetTaskConfigRes.datas) {
const joinedCount = item.joinedCount || 0;
if (item['receiveStatus'] === 'chance_full') {
console.log(`${item.taskName} 任务已完成`)
continue
}
//每日签到
if (item['taskType'] === 'SignEveryDay') {
if (item['receiveStatus'] === 'chance_left') {
console.log('每日签到未完成,需要自己手动去微信小程序【来客有礼】签到,可获得京豆奖励')
} else if (item['receiveStatus'] === 'unreceive') {
//已签到,领取签到后的狗粮
const res = await getFood('SignEveryDay');
console.log(`领取每日签到狗粮结果:${res.data}`);
}
}
//每日赛跑
if (item['taskType'] === 'race') {
if (item['receiveStatus'] === 'chance_left') {
console.log('每日赛跑未完成')
} else if (item['receiveStatus'] === 'unreceive') {
const res = await getFood('race');
console.log(`领取每日赛跑狗粮结果:${res.data}`);
}
}
//每日兑换
if (item['taskType'] === 'exchange') {
if (item['receiveStatus'] === 'chance_left') {
console.log('每日兑换未完成')
} else if (item['receiveStatus'] === 'unreceive') {
const res = await getFood('exchange');
console.log(`领取每日兑换狗粮结果:${res.data}`);
}
}
//每日帮好友喂一次狗粮
if (item['taskType'] === 'HelpFeed') {
if (item['receiveStatus'] === 'chance_left') {
console.log('每日帮好友喂一次狗粮未完成')
} else if (item['receiveStatus'] === 'unreceive') {
const res = await getFood('HelpFeed');
console.log(`领取每日帮好友喂一次狗粮 狗粮结果:${res.data}`);
}
}
//每日喂狗粮
if (item['taskType'] === 'FeedEveryDay') {
if (item['receiveStatus'] === 'chance_left') {
console.log(`\n${item['taskName']}任务进行中\n`)
} else if (item['receiveStatus'] === 'unreceive') {
const res = await getFood('FeedEveryDay');
console.log(`领取每日喂狗粮 结果:${res.data}`);
}
}
//
//邀请用户助力,领狗粮.(需手动去做任务)
if (item['taskType'] === 'InviteUser') {
if (item['receiveStatus'] === 'chance_left') {
console.log('未完成,需要自己手动去邀请好友给你助力,可以获得狗粮')
} else if (item['receiveStatus'] === 'unreceive') {
const InviteUser = await getFood('InviteUser');
console.log(`领取助力后的狗粮结果::${JSON.stringify(InviteUser)}`);
}
}
//每日三餐
if (item['taskType'] === 'ThreeMeals') {
console.log('-----每日三餐-----');
if (item['receiveStatus'] === 'unreceive') {
const ThreeMealsRes = await getFood('ThreeMeals');
if (ThreeMealsRes.success) {
if (ThreeMealsRes.errorCode === 'received') {
console.log(`三餐结果领取成功`)
message += `【三餐】领取成功,获得${ThreeMealsRes.data}g狗粮\n`;
}
}
}
}
//关注店铺
if (item['taskType'] === 'FollowShop') {
console.log('-----关注店铺-----');
const followShops = item.followShops;
for (let shop of followShops) {
if (!shop.status) {
const followShopRes = await followShop(shop.shopId);
console.log(`关注店铺${shop.name}结果::${JSON.stringify(followShopRes)}`)
}
}
}
//逛会场
if (item['taskType'] === 'ScanMarket') {
console.log('----逛会场----');
const scanMarketList = item.scanMarketList;
for (let scanMarketItem of scanMarketList) {
if (!scanMarketItem.status) {
const body = {
"marketLink": scanMarketItem.marketLink,
"taskType": "ScanMarket",
//"reqSource": "weapp"
};
const scanMarketRes = await scanMarket('scan', body);
console.log(`逛会场-${scanMarketItem.marketName}结果::${JSON.stringify(scanMarketRes)}`)
await $.wait(6000)
}
}
}
//浏览频道
if (item['taskType'] === 'FollowChannel') {
console.log('----浏览频道----');
const followChannelList = item.followChannelList;
for (let followChannelItem of followChannelList) {
if (!followChannelItem.status) {
const body = {
"channelId": followChannelItem.channelId,
"taskType": "FollowChannel",
"reqSource": "weapp"
};
const scanMarketRes = await scanMarket('scan', body);
console.log(`浏览频道-${followChannelItem.channelName}结果::${JSON.stringify(scanMarketRes)}`)
await $.wait(11000)
}
}
}
//关注商品
if (item['taskType'] === 'FollowGood') {
console.log('----关注商品----');
const followGoodList = item.followGoodList;
for (let followGoodItem of followGoodList) {
if (!followGoodItem.status) {
const body = `sku=${followGoodItem.sku}&reqSource=h5`;
const scanMarketRes = await scanMarket('followGood', body, 'application/x-www-form-urlencoded');
// const scanMarketRes = await appScanMarket('followGood', `sku=${followGoodItem.sku}&reqSource=h5`, 'application/x-www-form-urlencoded');
console.log(`关注商品-${followGoodItem.skuName}结果::${JSON.stringify(scanMarketRes)}`)
}
}
}
//看激励视频
if (item['taskType'] === 'ViewVideo') {
console.log('----浏览频道----');
if (item.taskChance === joinedCount) {
console.log('今日激励视频已看完')
} else {
for (let i = 0; i < new Array(item.taskChance - joinedCount).fill('').length; i++) {
console.log(`开始第${i+1}次看激励视频`);
const body = {
"taskType": "ViewVideo",
"reqSource": "weapp"
}
let sanVideoRes = await scanMarket('scan', body);
console.log(`看视频激励结果--${JSON.stringify(sanVideoRes)}`);
}
}
}
}
}
async function appPetTask() {
await appGetPetTaskConfig();
// console.log('$.appGetPetTaskConfigRes', $.appGetPetTaskConfigRes.success)
if ($.appGetPetTaskConfigRes.success) {
for (let item of $.appGetPetTaskConfigRes.datas) {
if (item['taskType'] === 'ScanMarket' && item['receiveStatus'] === 'chance_left') {
const scanMarketList = item.scanMarketList;
for (let scan of scanMarketList) {
if (!scan.status && scan.showDest === 'h5') {
const body = {
marketLink: scan.marketLinkH5,
taskType: 'ScanMarket',
reqSource: 'h5'
}
await appScanMarket('scan', body);
}
}
}
}
}
}
function getDeskGoodDetails() {
return new Promise(resolve => {
// const url = `${JD_API_HOST}/getDeskGoodDetails`;
const host = `jdjoy.jd.com`;
const reqSource = 'h5';
let opt = {
url: `//jdjoy.jd.com/common/pet/getDeskGoodDetails?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: "//draw.jdfcloud.com/common/pet/getPetTaskConfig?reqSource=h5",
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, host, reqSource), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
data = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
})
})
}
function followScan(sku) {
return new Promise(resolve => {
// const url = `${JD_API_HOST}/scan`;
const host = `jdjoy.jd.com`;
const reqSource = 'h5';
const body = {
"taskType": "ScanDeskGood",
"reqSource": "h5",
sku
}
let opt = {
url: `//jdjoy.jd.com/common/pet/scan?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: "//draw.jdfcloud.com/common/pet/getPetTaskConfig?reqSource=h5",
method: "POST",
data: body,
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.post(taskPostUrl(url, JSON.stringify(body), reqSource, host, 'application/json'), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
data = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
})
})
}
//小程序逛会场,浏览频道,关注商品API
function scanMarket(type, body, cType = 'application/json') {
return new Promise(resolve => {
// const url = `${weAppUrl}/${type}`;
const host = `draw.jdfcloud.com`;
const reqSource = 'weapp';
let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5",
url: `//draw.jdfcloud.com/common/pet/${type}?reqSource=weapp&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
method: "POST",
data: body,
credentials: "include",
header: {
"content-type": cType
}
}
const url = "https:" + taroRequest(opt)['url']
if (cType === 'application/json') {
body = JSON.stringify(body)
}
$.post(taskPostUrl(url, body, reqSource, host, cType), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
data = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
})
})
}
//app逛会场
function appScanMarket(type, body) {
return new Promise(resolve => {
// const url = `${JD_API_HOST}/${type}`;
const host = `jdjoy.jd.com`;
const reqSource = 'h5';
let opt = {
url: `//jdjoy.jd.com/common/pet/${type}?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: "//draw.jdfcloud.com/common/pet/getPetTaskConfig?reqSource=h5",
method: "POST",
data: body,
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.post(taskPostUrl(url, JSON.stringify(body), reqSource, host, 'application/json'), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// data = JSON.parse(data);
console.log(`京东app逛会场结果::${data}`)
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
})
})
}
//领取狗粮API
function getFood(type) {
return new Promise(resolve => {
// const url = `${weAppUrl}/getFood?reqSource=weapp&taskType=${type}`;
const host = `draw.jdfcloud.com`;
const reqSource = 'weapp';
let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5",
url: `//draw.jdfcloud.com/common/pet/getFood?reqSource=weapp&taskType=${type}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, host, reqSource), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
data = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
})
})
}
//关注店铺api
function followShop(shopId) {
return new Promise(resolve => {
// const url = `${weAppUrl}/followShop`;
const body = `shopId=${shopId}`;
const reqSource = 'weapp';
const host = 'draw.jdfcloud.com';
let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5",
url: `//draw.jdfcloud.com/common/pet/followShop?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
method: "POST",
data: body,
credentials: "include",
header: {
"content-type": "application/x-www-form-urlencoded"
}
}
const url = "https:" + taroRequest(opt)['url']
$.post(taskPostUrl(url, body, reqSource, host, 'application/x-www-form-urlencoded'), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
data = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
})
})
}
function enterRoom() {
return new Promise(resolve => {
// const url = `${weAppUrl}/enterRoom/h5?reqSource=weapp&invitePin=&openId=`;
const host = `draw.jdfcloud.com`;
const reqSource = 'weapp';
let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5",
url: `//draw.jdfcloud.com/common/pet/enterRoom/h5?reqSource=h5&invitePin=&openId=&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.post({ ...taskUrl(url, host, reqSource),
body: '{}'
}, (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('JSON.parse(data)', JSON.parse(data))
$.roomData = JSON.parse(data);
console.log(`现有狗粮: ${$.roomData.data.petFood}\n`)
subTitle = `【用户名】${$.roomData.data.pin}`
message = `现有积分: ${$.roomData.data.petCoin}\n现有狗粮: ${$.roomData.data.petFood}\n喂养次数: ${$.roomData.data.feedCount}\n宠物等级: ${$.roomData.data.petLevel}\n`
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
function appGetPetTaskConfig() {
$.appGetPetTaskConfigRes = $.getPetTaskConfigRes
// $.get({
// 'url': `https://jdjoy.jd.com/common/pet/getPetTaskConfig?validate=${$.validate}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`,
// 'headers': {
// 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html?babelChannel=ttt12&lng=117.613034&lat=23.940153&sid=158ac9cc27cc3f76d5a314093599a10w&un_area=16_1341_1347_44750',
// 'User-Agent': 'jdapp;iPhone;10.0.2;13.7;7b01d4690ef13716984dcfcf96068f36b41f6c51;network/wifi;model/iPhone8,1;addressid/1518509182;appBuild/167694;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
// 'Cookie': cookie
// }
// }, (err, resp, data) => {
// try {
// if (err) {
// console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
// } else {
// //console.log( JSON.parse(data).datas)
// // console.log('JSON.parse(data)', JSON.parse(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
// }
// } catch (e) {
// $.logErr(e, resp);
// } finally {
// resolve();
// }
// })
// return new Promise(resolve => {
// // const url = `${JD_API_HOST}/getPetTaskConfig?reqSource=h5`;
// const host = `jdjoy.jd.com`;
// const reqSource = 'h5';
// let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE",
// // url: `//draw.jdfcloud.com/common/pet/feed?feedCount=${feedNum}&reqSource=h5`,
// method: "GET",
// data: {},
// credentials: "include",
// header: {
// "content-type": "application/json"
// }
// }
// const url = "https:" + taroRequest(opt)['url']
// $.get(taskUrl(url, host, reqSource), (err, resp, data) => {
// try {
// if (err) {
// console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
// } else {
// // console.log('----', JSON.parse(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
// }
// } catch (e) {
// $.logErr(e, resp);
// } finally {
// resolve();
// }
// })
// })
}
//喂食
function feedPets(feedNum) {
return new Promise(resolve => {
console.log(`您设置的喂食数量:${FEED_NUM}g\n`);
if (FEED_NUM === 0) {
console.log(`跳出喂食`);
resolve();
return
}
console.log(`实际的喂食数量:${feedNum}g\n`);
// const url = `${weAppUrl}/feed?feedCount=${feedNum}&reqSource=weapp`;
const host = `draw.jdfcloud.com`;
const reqSource = 'weapp';
let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5",
url: `//draw.jdfcloud.com/common/pet/feed?feedCount=${feedNum}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`,
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, host, reqSource), async (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
data = JSON.parse(data);
if (data.success) {
if (data.errorCode === 'feed_ok') {
console.log('喂食成功')
message += `【喂食成功】消耗${feedNum}g狗粮\n`;
} else if (data.errorCode === 'time_error') {
console.log('喂食失败:您的汪汪正在食用中,请稍后再喂食')
message += `【喂食失败】您的汪汪正在食用中,请稍后再喂食\n`;
} else if (data.errorCode === 'food_insufficient') {
console.log(`当前喂食${feedNum}g狗粮不够, 现为您降低一档次喂食\n`)
if ((feedNum) === 80) {
feedNum = 40;
} else if ((feedNum) === 40) {
feedNum = 20;
} else if ((feedNum) === 20) {
feedNum = 10;
} else if ((feedNum) === 10) {
feedNum = 0;
}
// 如果喂食设置的数量失败, 就降低一个档次喂食.
if ((feedNum) !== 0) {
await feedPets(feedNum);
} else {
console.log('您的狗粮已不足10g')
message += `【喂食失败】您的狗粮已不足10g\n`;
}
} else {
console.log(`其他状态${data.errorCode}`)
}
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
function getPetTaskConfig() {
return new Promise(resolve => {
// const url = `${weAppUrl}/getPetTaskConfig?reqSource=weapp`;
// const host = `jdjoy.jd.com`;
// const reqSource = 'h5';
const host = `draw.jdfcloud.com`;
const reqSource = 'weapp';
$.get({
'url': `https://jdjoy.jd.com/common/pet/getPetTaskConfig?validate=${$.validate}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`,
'headers': {
'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html?babelChannel=ttt12&lng=117.613034&lat=23.940153&sid=158ac9cc27cc3f76d5a314093599a10w&un_area=16_1341_1347_44750',
'User-Agent': 'jdapp;iPhone;10.0.2;13.7;7b01d4690ef13716984dcfcf96068f36b41f6c51;network/wifi;model/iPhone8,1;addressid/1518509182;appBuild/167694;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
'Cookie': cookie
}
}, (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
//console.log( JSON.parse(data).datas)
// console.log('JSON.parse(data)', JSON.parse(data))
$.getPetTaskConfigRes = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
// const url = "https:" + taroRequest(opt)['url']
// $.get(taskUrl(url, host, reqSource), (err, resp, data) => {
// console.log(data)
// try {
// if (err) {
// console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
// } else {
// // console.log('JSON.parse(data)', JSON.parse(data))
// $.getPetTaskConfigRes = JSON.parse(data);
// }
// } catch (e) {
// $.logErr(e, resp);
// } finally {
// resolve();
// }
// })
})
}
//查询赛跑信息API
function getPetRace() {
return new Promise(resolve => {
// const url = `${JD_API_HOST}/combat/detail/v2?help=false`;
const host = `jdjoy.jd.com`;
const reqSource = 'h5';
let opt = {
url: `//jdjoy.jd.com/common/pet/combat/detail/v2?help=false&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: "//draw.jdfcloud.com/common/pet/getPetTaskConfig?reqSource=h5",
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, host, reqSource), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('查询赛跑信息API',(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
$.petRaceResult = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
//查询赛跑排行榜
function getRankList() {
return new Promise(resolve => {
// const url = `${JD_API_HOST}/combat/getRankList`;
$.raceUsers = [];
let opt = {
url: `//jdjoy.jd.com/common/pet/combat/getRankList?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: "//draw.jdfcloud.com/common/pet/getPetTaskConfig?reqSource=h5",
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, `jdjoy.jd.com`, 'h5'), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('查询赛跑信息API',(data))
data = JSON.parse(data);
if (data.success) {
$.raceUsers = data.datas;
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
//参加赛跑API
function runMatch(teamLevel, timeout = 5000) {
if (teamLevel === 10 || teamLevel === 50) timeout = 60000;
console.log(`正在参赛中,请稍等${timeout / 1000}秒,以防多个账号匹配到统一赛场\n`)
return new Promise(async resolve => {
await $.wait(timeout);
// const url = `${JD_API_HOST}/combat/match?teamLevel=${teamLevel}`;
const host = `jdjoy.jd.com`;
const reqSource = 'h5';
let opt = {
url: `//jdjoy.jd.com/common/pet/combat/match?teamLevel=${teamLevel}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: `//draw.jdfcloud.com/common/pet/combat/match?teamLevel=${teamLevel}&reqSource=h5`,
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, host, reqSource), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('参加赛跑API', JSON.parse(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
$.runMatchResult = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
//查询应援团信息API
function getBackupInfo() {
return new Promise(resolve => {
// const url = `${JD_API_HOST}/combat/getBackupInfo`;
const host = `jdjoy.jd.com`;
const reqSource = 'h5';
let opt = {
url: `//jdjoy.jd.com/common/pet/combat/getBackupInfo?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: "//draw.jdfcloud.com/common/pet/getPetTaskConfig?reqSource=h5",
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, host, reqSource), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('查询应援团信息API',(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
$.getBackupInfoResult = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
//查询赛跑获得多少积分
function getWinCoin() {
return new Promise(resolve => {
// const url = `${weAppUrl}/combat/detail/v2?help=false&reqSource=weapp`;
let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5",
url: `//draw.jdfcloud.com/common/pet/combat/detail/v2?help=false&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, 'draw.jdfcloud.com', `weapp`), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('查询应援团信息API',(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
if (data) {
$.getWinCoinRes = JSON.parse(data);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
//领取赛跑奖励API
function receiveJoyRunAward() {
return new Promise(resolve => {
// const url = `${JD_API_HOST}/combat/receive`;
const host = `jdjoy.jd.com`;
const reqSource = 'h5';
let opt = {
url: `//jdjoy.jd.com/common/pet/combat/receive?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
// url: "//draw.jdfcloud.com/common/pet/getPetTaskConfig?reqSource=h5",
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, host, reqSource), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('查询应援团信息API',(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
$.receiveJoyRunAwardRes = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
//能力补给站
async function energySupplyStation(showOrder) {
let status;
await getSupplyInfo(showOrder);
if ($.getSupplyInfoRes && $.getSupplyInfoRes.success) {
if ($.getSupplyInfoRes.data) {
const {
marketList
} = $.getSupplyInfoRes.data;
for (let list of marketList) {
if (!list['status']) {
await scanMarket('combat/supply', {
showOrder,
'supplyType': 'scan_market',
'taskInfo': list.marketLink || list['marketLinkH5'],
'reqSource': 'weapp'
});
await getSupplyInfo(showOrder);
} else {
$.log(`能力补给站 ${$.getSupplyInfoRes.data.addDistance}km里程 已领取\n`);
status = list['status'];
}
}
if (!status) {
await energySupplyStation(showOrder);
}
}
}
}
function getSupplyInfo(showOrder) {
return new Promise(resolve => {
// const url = `${weAppUrl}/combat/getSupplyInfo?showOrder=${showOrder}`;
let opt = {
// url: "//jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5",
url: `//draw.jdfcloud.com/common/pet/combat/getSupplyInfo?showOrder=${showOrder}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&validate=${$.validate}`,
method: "GET",
data: {},
credentials: "include",
header: {
"content-type": "application/json"
}
}
const url = "https:" + taroRequest(opt)['url']
$.get(taskUrl(url, 'draw.jdfcloud.com', `weapp`), (err, resp, data) => {
try {
if (err) {
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
} else {
// console.log('查询应援团信息API',(data))
// $.appGetPetTaskConfigRes = JSON.parse(data);
if (data) {
$.getSupplyInfoRes = JSON.parse(data);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
function showMsg() {
jdNotify = $.getdata('jdJoyNotify') ? $.getdata('jdJoyNotify') : jdNotify;
if (!jdNotify || jdNotify === 'false') {
$.msg($.name, subTitle, message);
} else {
$.log(`\n${message}\n`);
}
}
function TotalBean() {
return new Promise(async resolve => {
const options = {
"url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`,
"headers": {
"Accept": "application/json,text/plain, */*",
"Content-Type": "application/x-www-form-urlencoded",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-cn",
"Connection": "keep-alive",
"Cookie": cookie,
"Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2",
"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")
}
}
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败,请检查网路重试`)
} else {
if (data) {
data = JSON.parse(data);
if (data['retcode'] === 13) {
$.isLogin = false; //cookie过期
return
}
if (data['retcode'] === 0) {
$.nickName = (data['base'] && data['base'].nickname) || $.UserName;
} else {
$.nickName = $.UserName
}
} else {
console.log(`京东服务器返回空数据`)
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve();
}
})
})
}
function taskUrl(url, Host, reqSource) {
return {
url: url,
headers: {
'Cookie': cookie,
// 'reqSource': reqSource,
'Host': Host,
'Connection': 'keep-alive',
'Content-Type': 'application/json',
'Referer': 'https://jdjoy.jd.com/pet/index',
'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
'Accept-Language': 'zh-cn',
'Accept-Encoding': 'gzip, deflate, br',
}
}
}
function taskPostUrl(url, body, reqSource, Host, ContentType) {
return {
url: url,
body: body,
headers: {
'Cookie': cookie,
'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
'reqSource': reqSource,
'Content-Type': ContentType,
'Host': Host,
'Referer': 'https://jdjoy.jd.com/pet/index',
'Accept-Language': 'zh-cn',
'Accept-Encoding': 'gzip, deflate, br',
}
}
}
function jsonParse(str) {
if (typeof str == "string") {
try {
return JSON.parse(str);
} catch (e) {
console.log(e);
$.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie')
return [];
}
}
}
var __encode = 'jsjiami.com',
_a = {},
_0xb483 = ["\x5F\x64\x65\x63\x6F\x64\x65", "\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];
(function(_0xd642x1) {
_0xd642x1[_0xb483[0]] = _0xb483[1]
})(_a);
var __Oxb227b = ["\x69\x73\x4E\x6F\x64\x65", "\x63\x72\x79\x70\x74\x6F\x2D\x6A\x73", "\x39\x38\x63\x31\x34\x63\x39\x39\x37\x66\x64\x65\x35\x30\x63\x63\x31\x38\x62\x64\x65\x66\x65\x63\x66\x64\x34\x38\x63\x65\x62\x37", "\x70\x61\x72\x73\x65", "\x55\x74\x66\x38", "\x65\x6E\x63", "\x65\x61\x36\x35\x33\x66\x34\x66\x33\x63\x35\x65\x64\x61\x31\x32", "\x63\x69\x70\x68\x65\x72\x74\x65\x78\x74", "\x43\x42\x43", "\x6D\x6F\x64\x65", "\x50\x6B\x63\x73\x37", "\x70\x61\x64", "\x65\x6E\x63\x72\x79\x70\x74", "\x41\x45\x53", "\x48\x65\x78", "\x73\x74\x72\x69\x6E\x67\x69\x66\x79", "\x42\x61\x73\x65\x36\x34", "\x64\x65\x63\x72\x79\x70\x74", "\x6C\x65\x6E\x67\x74\x68", "\x6D\x61\x70", "\x73\x6F\x72\x74", "\x6B\x65\x79\x73", "\x67\x69\x66\x74", "\x70\x65\x74", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x26", "\x6A\x6F\x69\x6E", "\x3D", "\x3F", "\x69\x6E\x64\x65\x78\x4F\x66", "\x63\x6F\x6D\x6D\x6F\x6E\x2F", "\x72\x65\x70\x6C\x61\x63\x65", "\x68\x65\x61\x64\x65\x72", "\x75\x72\x6C", "\x72\x65\x71\x53\x6F\x75\x72\x63\x65\x3D\x68\x35", "\x61\x73\x73\x69\x67\x6E", "\x6D\x65\x74\x68\x6F\x64", "\x47\x45\x54", "\x64\x61\x74\x61", "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65", "\x6B\x65\x79\x43\x6F\x64\x65", "\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65", "\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65", "", "\x67\x65\x74", "\x70\x6F\x73\x74", "\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64", "\x5F", "\x75\x6E\x64\x65\x66\x69\x6E\x65\x64", "\x6C\x6F\x67", "\u5220\u9664", "\u7248\u672C\u53F7\uFF0C\x6A\x73\u4F1A\u5B9A", "\u671F\u5F39\u7A97\uFF0C", "\u8FD8\u8BF7\u652F\u6301\u6211\u4EEC\u7684\u5DE5\u4F5C", "\x6A\x73\x6A\x69\x61", "\x6D\x69\x2E\x63\x6F\x6D"];
function taroRequest(_0x1226x2) {
const _0x1226x3 = $[__Oxb227b[0x0]]() ? require(__Oxb227b[0x1]) : CryptoJS;
const _0x1226x4 = __Oxb227b[0x2];
const _0x1226x5 = _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0x4]][__Oxb227b[0x3]](_0x1226x4);
const _0x1226x6 = _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0x4]][__Oxb227b[0x3]](__Oxb227b[0x6]);
let _0x1226x7 = {
"\x41\x65\x73\x45\x6E\x63\x72\x79\x70\x74": function _0x1226x8(_0x1226x2) {
var _0x1226x9 = _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0x4]][__Oxb227b[0x3]](_0x1226x2);
return _0x1226x3[__Oxb227b[0xd]][__Oxb227b[0xc]](_0x1226x9, _0x1226x5, {
"\x69\x76": _0x1226x6,
"\x6D\x6F\x64\x65": _0x1226x3[__Oxb227b[0x9]][__Oxb227b[0x8]],
"\x70\x61\x64\x64\x69\x6E\x67": _0x1226x3[__Oxb227b[0xb]][__Oxb227b[0xa]]
})[__Oxb227b[0x7]].toString()
},
"\x41\x65\x73\x44\x65\x63\x72\x79\x70\x74": function _0x1226xa(_0x1226x2) {
var _0x1226x9 = _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0xe]][__Oxb227b[0x3]](_0x1226x2),
_0x1226xb = _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0x10]][__Oxb227b[0xf]](_0x1226x9);
return _0x1226x3[__Oxb227b[0xd]][__Oxb227b[0x11]](_0x1226xb, _0x1226x5, {
"\x69\x76": _0x1226x6,
"\x6D\x6F\x64\x65": _0x1226x3[__Oxb227b[0x9]][__Oxb227b[0x8]],
"\x70\x61\x64\x64\x69\x6E\x67": _0x1226x3[__Oxb227b[0xb]][__Oxb227b[0xa]]
}).toString(_0x1226x3[__Oxb227b[0x5]].Utf8).toString()
},
"\x42\x61\x73\x65\x36\x34\x45\x6E\x63\x6F\x64\x65": function _0x1226xc(_0x1226x2) {
var _0x1226x9 = _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0x4]][__Oxb227b[0x3]](_0x1226x2);
return _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0x10]][__Oxb227b[0xf]](_0x1226x9)
},
"\x42\x61\x73\x65\x36\x34\x44\x65\x63\x6F\x64\x65": function _0x1226xd(_0x1226x2) {
return _0x1226x3[__Oxb227b[0x5]][__Oxb227b[0x10]][__Oxb227b[0x3]](_0x1226x2).toString(_0x1226x3[__Oxb227b[0x5]].Utf8)
},
"\x4D\x64\x35\x65\x6E\x63\x6F\x64\x65": function _0x1226xe(_0x1226x2) {
return _0x1226x3.MD5(_0x1226x2).toString()
},
"\x6B\x65\x79\x43\x6F\x64\x65": __Oxb227b[0x2]
};
const _0x1226xf = function _0x1226x10(_0x1226x2, _0x1226x9) {
if (_0x1226x2 instanceof Array) {
_0x1226x9 = _0x1226x9 || [];
for (var _0x1226xb = 0; _0x1226xb < _0x1226x2[__Oxb227b[0x12]]; _0x1226xb++) {
_0x1226x9[_0x1226xb] = _0x1226x10(_0x1226x2[_0x1226xb], _0x1226x9[_0x1226xb])
}
} else {
!(_0x1226x2 instanceof Array) && _0x1226x2 instanceof Object ? (_0x1226x9 = _0x1226x9 || {}, Object[__Oxb227b[0x15]](_0x1226x2)[__Oxb227b[0x14]]()[__Oxb227b[0x13]](function(_0x1226xb) {
_0x1226x9[_0x1226xb] = _0x1226x10(_0x1226x2[_0x1226xb], _0x1226x9[_0x1226xb])
})) : _0x1226x9 = _0x1226x2
};
return _0x1226x9
};
const _0x1226x11 = function _0x1226x12(_0x1226x2) {
for (var _0x1226x9 = [__Oxb227b[0x16], __Oxb227b[0x17]], _0x1226xb = !1, _0x1226x3 = 0; _0x1226x3 < _0x1226x9[__Oxb227b[0x12]]; _0x1226x3++) {
var _0x1226x4 = _0x1226x9[_0x1226x3];
_0x1226x2[__Oxb227b[0x18]](_0x1226x4) && !_0x1226xb && (_0x1226xb = !0)
};
return _0x1226xb
};
const _0x1226x13 = function _0x1226x14(_0x1226x2, _0x1226x9) {
if (_0x1226x9 && Object[__Oxb227b[0x15]](_0x1226x9)[__Oxb227b[0x12]] > 0) {
var _0x1226xb = Object[__Oxb227b[0x15]](_0x1226x9)[__Oxb227b[0x13]](function(_0x1226x2) {
return _0x1226x2 + __Oxb227b[0x1b] + _0x1226x9[_0x1226x2]
})[__Oxb227b[0x1a]](__Oxb227b[0x19]);
return _0x1226x2[__Oxb227b[0x1d]](__Oxb227b[0x1c]) >= 0 ? _0x1226x2 + __Oxb227b[0x19] + _0x1226xb : _0x1226x2 + __Oxb227b[0x1c] + _0x1226xb
};
return _0x1226x2
};
const _0x1226x15 = function _0x1226x16(_0x1226x2) {
for (var _0x1226x9 = _0x1226x6, _0x1226xb = 0; _0x1226xb < _0x1226x9[__Oxb227b[0x12]]; _0x1226xb++) {
var _0x1226x3 = _0x1226x9[_0x1226xb];
_0x1226x2[__Oxb227b[0x18]](_0x1226x3) && !_0x1226x2[__Oxb227b[0x18]](__Oxb227b[0x1e] + _0x1226x3) && (_0x1226x2 = _0x1226x2[__Oxb227b[0x1f]](_0x1226x3, __Oxb227b[0x1e] + _0x1226x3))
};
return _0x1226x2
};
var _0x1226x9 = _0x1226x2,
_0x1226xb = (_0x1226x9[__Oxb227b[0x20]], _0x1226x9[__Oxb227b[0x21]]);
_0x1226xb += (_0x1226xb[__Oxb227b[0x1d]](__Oxb227b[0x1c]) > -1 ? __Oxb227b[0x19] : __Oxb227b[0x1c]) + __Oxb227b[0x22];
var _0x1226x17 = function _0x1226x18(_0x1226x2) {
var _0x1226x9 = _0x1226x2[__Oxb227b[0x21]],
_0x1226xb = _0x1226x2[__Oxb227b[0x24]],
_0x1226x3 = void(0) === _0x1226xb ? __Oxb227b[0x25] : _0x1226xb,
_0x1226x4 = _0x1226x2[__Oxb227b[0x26]],
_0x1226x6 = _0x1226x2[__Oxb227b[0x20]],
_0x1226x19 = void(0) === _0x1226x6 ? {} : _0x1226x6,
_0x1226x1a = _0x1226x3[__Oxb227b[0x27]](),
_0x1226x1b = _0x1226x7[__Oxb227b[0x28]],
_0x1226x1c = _0x1226x19[__Oxb227b[0x29]] || _0x1226x19[__Oxb227b[0x2a]] || __Oxb227b[0x2b],
_0x1226x1d = __Oxb227b[0x2b],
_0x1226x1e = +new Date();
return _0x1226x1d = __Oxb227b[0x2c] !== _0x1226x1a && (__Oxb227b[0x2d] !== _0x1226x1a || __Oxb227b[0x2e] !== _0x1226x1c[__Oxb227b[0x27]]() && _0x1226x4 && Object[__Oxb227b[0x15]](_0x1226x4)[__Oxb227b[0x12]]) ? _0x1226x7.Md5encode(_0x1226x7.Base64Encode(_0x1226x7.AesEncrypt(__Oxb227b[0x2b] + JSON[__Oxb227b[0xf]](_0x1226xf(_0x1226x4)))) + __Oxb227b[0x2f] + _0x1226x1b + __Oxb227b[0x2f] + _0x1226x1e) : _0x1226x7.Md5encode(__Oxb227b[0x2f] + _0x1226x1b + __Oxb227b[0x2f] + _0x1226x1e), _0x1226x11(_0x1226x9) && (_0x1226x9 = _0x1226x13(_0x1226x9, {
"\x6C\x6B\x73": _0x1226x1d,
"\x6C\x6B\x74": _0x1226x1e
}), _0x1226x9 = _0x1226x15(_0x1226x9)), Object[__Oxb227b[0x23]](_0x1226x2, {
"\x75\x72\x6C": _0x1226x9
})
}(_0x1226x2 = Object[__Oxb227b[0x23]](_0x1226x2, {
"\x75\x72\x6C": _0x1226xb
}));
return _0x1226x17
}(function(_0x1226x1f, _0x1226xf, _0x1226x20, _0x1226x21, _0x1226x1c, _0x1226x22) {
_0x1226x22 = __Oxb227b[0x30];
_0x1226x21 = function(_0x1226x19) {
if (typeof alert !== _0x1226x22) {
alert(_0x1226x19)
};
if (typeof console !== _0x1226x22) {
console[__Oxb227b[0x31]](_0x1226x19)
}
};
_0x1226x20 = function(_0x1226x3, _0x1226x1f) {
return _0x1226x3 + _0x1226x1f
};
_0x1226x1c = _0x1226x20(__Oxb227b[0x32], _0x1226x20(_0x1226x20(__Oxb227b[0x33], __Oxb227b[0x34]), __Oxb227b[0x35]));
try {
_0x1226x1f = __encode;
if (!(typeof _0x1226x1f !== _0x1226x22 && _0x1226x1f === _0x1226x20(__Oxb227b[0x36], __Oxb227b[0x37]))) {
_0x1226x21(_0x1226x1c)
}
} catch (e) {
_0x1226x21(_0x1226x1c)
}
})({})
// prettier-ignore
function Env(t, e) {
"undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0);
class s {
constructor(t) {
this.env = t
}
send(t, e = "GET") {
t = "string" == typeof t ? {
url: t
} : t;
let s = this.get;
return "POST" === e && (s = this.post), new Promise((e, i) => {
s.call(this, t, (t, s, r) => {
t ? i(t) : e(s)
})
})
}
get(t) {
return this.send.call(this.env, t)
}
post(t) {
return this.send.call(this.env, t, "POST")
}
}
return new class {
constructor(t, e) {
this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`)
}
isNode() {
return "undefined" != typeof module && !!module.exports
}
isQuanX() {
return "undefined" != typeof $task
}
isSurge() {
return "undefined" != typeof $httpClient && "undefined" == typeof $loon
}
isLoon() {
return "undefined" != typeof $loon
}
toObj(t, e = null) {
try {
return JSON.parse(t)
} catch {
return e
}
}
toStr(t, e = null) {
try {
return JSON.stringify(t)
} catch {
return e
}
}
getjson(t, e) {
let s = e;
const i = this.getdata(t);
if (i) try {
s = JSON.parse(this.getdata(t))
} catch {}
return s
}
setjson(t, e) {
try {
return this.setdata(JSON.stringify(t), e)
} catch {
return !1
}
}
getScript(t) {
return new Promise(e => {
this.get({
url: t
}, (t, s, i) => e(i))
})
}
runScript(t, e) {
return new Promise(s => {
let i = this.getdata("@chavy_boxjs_userCfgs.httpapi");
i = i ? i.replace(/\n/g, "").trim() : i;
let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r;
const [o, h] = i.split("@"), n = {
url: `http://${h}/v1/scripting/evaluate`,
body: {
script_text: t,
mock_type: "cron",
timeout: r
},
headers: {
"X-Key": o,
Accept: "*/*"
}
};
this.post(n, (t, e, i) => s(i))
}).catch(t => this.logErr(t))
}
loaddata() {
if (!this.isNode()) return {}; {
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile),
e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t),
i = !s && this.fs.existsSync(e);
if (!s && !i) return {}; {
const i = s ? t : e;
try {
return JSON.parse(this.fs.readFileSync(i))
} catch (t) {
return {}
}
}
}
}
writedata() {
if (this.isNode()) {
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile),
e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t),
i = !s && this.fs.existsSync(e),
r = JSON.stringify(this.data);
s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r)
}
}
lodash_get(t, e, s) {
const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
let r = t;
for (const t of i)
if (r = Object(r)[t], void 0 === r) return s;
return r
}
lodash_set(t, e, s) {
return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t)
}
getdata(t) {
let e = this.getval(t);
if (/^@/.test(t)) {
const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : "";
if (r) try {
const t = JSON.parse(r);
e = t ? this.lodash_get(t, i, "") : e
} catch (t) {
e = ""
}
}
return e
}
setdata(t, e) {
let s = !1;
if (/^@/.test(e)) {
const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}";
try {
const e = JSON.parse(h);
this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i)
} catch (e) {
const o = {};
this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i)
}
} else s = this.setval(t, e);
return s
}
getval(t) {
return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null
}
setval(t, e) {
return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null
}
initGotEnv(t) {
this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar))
}
get(t, e = (() => {})) {
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
"X-Surge-Skip-Scripting": !1
})), $httpClient.get(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
})) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
hints: !1
})), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => {
try {
if (t.headers["set-cookie"]) {
const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar
}
} catch (t) {
this.logErr(t)
}
}).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => {
const {
message: s,
response: i
} = t;
e(s, i, i && i.body)
}))
}
post(t, e = (() => {})) {
if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
"X-Surge-Skip-Scripting": !1
})), $httpClient.post(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
});
else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
hints: !1
})), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => e(t));
else if (this.isNode()) {
this.initGotEnv(t);
const {
url: s,
...i
} = t;
this.got.post(s, i).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => {
const {
message: s,
response: i
} = t;
e(s, i, i && i.body)
})
}
}
time(t, e = null) {
const s = e ? new Date(e) : new Date;
let i = {
"M+": s.getMonth() + 1,
"d+": s.getDate(),
"H+": s.getHours(),
"m+": s.getMinutes(),
"s+": s.getSeconds(),
"q+": Math.floor((s.getMonth() + 3) / 3),
S: s.getMilliseconds()
};
/(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length)));
for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length)));
return t
}
msg(e = t, s = "", i = "", r) {
const o = t => {
if (!t) return t;
if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? {
"open-url": t
} : this.isSurge() ? {
url: t
} : void 0;
if ("object" == typeof t) {
if (this.isLoon()) {
let e = t.openUrl || t.url || t["open-url"],
s = t.mediaUrl || t["media-url"];
return {
openUrl: e,
mediaUrl: s
}
}
if (this.isQuanX()) {
let e = t["open-url"] || t.url || t.openUrl,
s = t["media-url"] || t.mediaUrl;
return {
"open-url": e,
"media-url": s
}
}
if (this.isSurge()) {
let e = t.url || t.openUrl || t["open-url"];
return {
url: e
}
}
}
};
if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) {
let t = ["", "==============📣系统通知📣=============="];
t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t)
}
}
log(...t) {
t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator))
}
logErr(t, e) {
const s = !this.isSurge() && !this.isQuanX() && !this.isLoon();
s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t)
}
wait(t) {
return new Promise(e => setTimeout(e, t))
}
done(t = {}) {
const e = (new Date).getTime(),
s = (e - this.startTime) / 1e3;
this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
}
}(t, e)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化