Full Code of gys619/jdd for AI

main 7e201e92cd6d cached
705 files
45.9 MB
12.1M tokens
13896 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (48,851K chars total). Download the full file to get everything.
Repository: gys619/jdd
Branch: main
Commit: 7e201e92cd6d
Files: 705
Total size: 45.9 MB

Directory structure:
gitextract__96w9huk/

├── .editorconfig
├── .gitattributes
├── .gitignore
├── CK_WxPusherUid.json
├── JDJRSignValidator.js
├── JDJRValidator_Pure.js
├── JDSignValidator.js
├── JD_extra_cookie.js
├── JS_USER_AGENTS.js
├── README.md
├── TS_JDHelloWorld.d.ts
├── TS_JDHelloWorld.js
├── TS_USER_AGENTS.ts
├── USER_AGENTS.js
├── ZooFaker_Necklace.js
├── activity/
│   ├── JD_extra_cookie.js
│   ├── jd_0yuankanjia.js
│   ├── jd_15_5.js
│   ├── jd_15_8.js
│   ├── jd_19E.js
│   ├── jd_19EPZ_help.js
│   ├── jd_19E_friends.js
│   ├── jd_19E_help.js
│   ├── jd_19_5.js
│   ├── jd_29_8.js
│   ├── jd_5_2.js
│   ├── jd_618lottery.js
│   ├── jd_TreasureRank.js
│   ├── jd_angryBean.js
│   ├── jd_bean_sign.js
│   ├── jd_beauty_ex.js
│   ├── jd_big_winner.js
│   ├── jd_bigwinner.py
│   ├── jd_bridge.js
│   ├── jd_btnyx.py
│   ├── jd_bzlshdgt.js
│   ├── jd_car.js
│   ├── jd_cash.js
│   ├── jd_cfd.js
│   ├── jd_cfd_fresh.js
│   ├── jd_cfd_fresh_exchange.js
│   ├── jd_cfd_hb.js
│   ├── jd_cfd_loop.js
│   ├── jd_cfd_mooncake.js
│   ├── jd_cfd_mooncake_help.js
│   ├── jd_cfd_pearl.js
│   ├── jd_cfd_pearl_ex.js
│   ├── jd_city_exchange.js
│   ├── jd_city_lottery.js
│   ├── jd_citytx.js
│   ├── jd_cityzl.js
│   ├── jd_daily_egg.js
│   ├── jd_daily_lottery.js
│   ├── jd_decompression.js
│   ├── jd_delCoupon.js
│   ├── jd_desire.js
│   ├── jd_djyyj.js
│   ├── jd_dlpj.js
│   ├── jd_duobao.js
│   ├── jd_dwapp.js
│   ├── jd_dyj_help.js
│   ├── jd_exchangejxbeans.js
│   ├── jd_fc_winner.js
│   ├── jd_fcdyj_help_wx.js
│   ├── jd_festivalhb_cash.js
│   ├── jd_fission.js
│   ├── jd_freshgoods.js
│   ├── jd_ftzy_help.js
│   ├── jd_gouwuche.js
│   ├── jd_gyp.js
│   ├── jd_haier.js
│   ├── jd_half_redrain.js
│   ├── jd_hb.js
│   ├── jd_health_exchange.py
│   ├── jd_health_plant.py
│   ├── jd_hotNeight.js
│   ├── jd_hyj.js
│   ├── jd_hyj_help.py
│   ├── jd_industrial_task.js
│   ├── jd_insight.js
│   ├── jd_jchsign.js
│   ├── jd_jfcz.js
│   ├── jd_jika.js
│   ├── jd_jin_tie.js
│   ├── jd_jingsubang.js
│   ├── jd_joy.js
│   ├── jd_joy_feedPets.js
│   ├── jd_joy_park_newtask.js
│   ├── jd_joy_run.js
│   ├── jd_joy_steal.js
│   ├── jd_joy_tx.js
│   ├── jd_jump.js
│   ├── jd_jxdzz.js
│   ├── jd_jxg.js
│   ├── jd_jxgckc.js
│   ├── jd_jxhlk.js
│   ├── jd_jxhlk.py
│   ├── jd_jxlhb.js
│   ├── jd_jxmc.js
│   ├── jd_jxmc_hb.js
│   ├── jd_jxnc.js
│   ├── jd_jxnn.js
│   ├── jd_koi_Help.js
│   ├── jd_live_redrain.js
│   ├── jd_ljd.js
│   ├── jd_lotteryMachine.js
│   ├── jd_lottery_drew.js
│   ├── jd_lsj.js
│   ├── jd_lxLottery.js
│   ├── jd_m_sign.js
│   ├── jd_market_lottery.js
│   ├── jd_marketmh.js
│   ├── jd_mhyyl.js
│   ├── jd_mhyyl_prize.js
│   ├── jd_mnyyn.js
│   ├── jd_mofang.js
│   ├── jd_mofang.ts
│   ├── jd_mofang_ex.js
│   ├── jd_mohe.js
│   ├── jd_mohe_help.js
│   ├── jd_moneyTree.js
│   ├── jd_moneyTree_help.js
│   ├── jd_ms.js
│   ├── jd_mx_shop.js
│   ├── jd_neight1.js
│   ├── jd_neight2.js
│   ├── jd_newTreasure.py
│   ├── jd_nzmh.js
│   ├── jd_opencardDPLHTY.js
│   ├── jd_opencardty.js
│   ├── jd_pigPet.js
│   ├── jd_redPacket_help.js
│   ├── jd_sendBeans.js
│   ├── jd_shop.js
│   ├── jd_shophelp.js
│   ├── jd_sign.js
│   ├── jd_sign_graphics.js
│   ├── jd_sjnhj.js
│   ├── jd_speed.js
│   ├── jd_superBrandSign.js
│   ├── jd_superBrandzd.js
│   ├── jd_superMarket.js
│   ├── jd_super_mh.js
│   ├── jd_sxLottery.js
│   ├── jd_tiger_help.js
│   ├── jd_travel.js
│   ├── jd_travel_help.js
│   ├── jd_unsubscribe.js
│   ├── jd_wq_wxsign.js
│   ├── jd_wxCollectionActivity.js
│   ├── jd_wxShopFollowActivity.js
│   ├── jd_wyw.js
│   ├── jd_xgyl_wx.js
│   ├── jd_xinruimz.js
│   ├── jd_xp.js
│   ├── jd_xqscjd.js
│   ├── jd_xtg.js
│   ├── jd_xyhy.js
│   ├── jd_year.js
│   ├── jd_yijia.js
│   ├── jd_ys.js
│   ├── jd_zbjmh.js
│   ├── jd_zjd.js
│   ├── jd_zns_award.js
│   ├── jd_zzt.js
│   └── jx_sign.js
├── backUp/
│   ├── GetJdCookie.md
│   ├── GetJdCookie2.md
│   ├── TG_PUSH.md
│   ├── gitSync.md
│   ├── iCloud.md
│   ├── iOS_Weather_AQI_Standard.js
│   ├── jdMsLogs.js
│   ├── jd_AJMH.js
│   ├── jd_AJYX.js
│   ├── jd_YSLD.js
│   ├── jd_a2.js
│   ├── jd_angryKoi_log.js
│   ├── jd_bean_sign.js
│   ├── jd_beauty_ex.js
│   ├── jd_cash_panda.js
│   ├── jd_cash_windfg.js
│   ├── jd_cfd.js
│   ├── jd_cfd_loop.js
│   ├── jd_cfd_mooncake.js
│   ├── jd_cfd_mooncake_help.js
│   ├── jd_computer.js
│   ├── jd_dpqd.js
│   ├── jd_dreamFactory.js
│   ├── jd_dreamFactory_help.js
│   ├── jd_dreamFactory_tuan.js
│   ├── jd_fc.js
│   ├── jd_finance.js
│   ├── jd_fruit.js
│   ├── jd_getFollowGift.py
│   ├── jd_gold_sign_log.js
│   ├── jd_gua_cleancart_Windfgg.js
│   ├── jd_health.js
│   ├── jd_homeRain.js
│   ├── jd_jdfactory.js
│   ├── jd_jdfactory_help.js
│   ├── jd_jdzz.js
│   ├── jd_jinli_hongbao.ts
│   ├── jd_joyjd_open.js
│   ├── jd_joyopen.js
│   ├── jd_jxmfljp.js
│   ├── jd_live.js
│   ├── jd_lottery.js
│   ├── jd_mall_active.js
│   ├── jd_mndt.js
│   ├── jd_mohe.js
│   ├── jd_ms.js
│   ├── jd_ms_log.js
│   ├── jd_nzmh.js
│   ├── jd_pet.js
│   ├── jd_plantBean.js
│   ├── jd_qbyql.js
│   ├── jd_redrain.js
│   ├── jd_redrain_half.js
│   ├── jd_shangou.js
│   ├── jd_superBrandSign.js
│   ├── jd_supergz.js
│   ├── jd_supermh.js
│   ├── jd_tanwei.js
│   ├── jd_teamAJ.js
│   ├── jd_try.py
│   ├── jd_tyt.js
│   ├── jd_tyt_ks.js
│   ├── jd_unsubscribe.js
│   ├── jd_wish.js
│   ├── jd_wskey_Windfgg.py
│   ├── jd_wskey_logout.js
│   ├── jd_wxCollectionActivity.js
│   ├── jd_wyjg.js
│   ├── jd_xmf_log.js
│   ├── jd_zjd.ts
│   ├── jd_zmlyx.js
│   ├── jx_sign_xd.js
│   ├── kill_ck.js
│   ├── kill_wskey.js
│   ├── tencentscf.md
│   ├── webhook.js
│   ├── xiaomibushu.py
│   └── xmSports.js
├── cleancart_activity.js
├── config/
│   ├── CK_WxPusherUid.json
│   ├── code.sh
│   ├── task_after.sh
│   ├── task_after2.sh
│   └── task_before.sh
├── depend.py
├── docker/
│   ├── Dockerfile
│   ├── README.md
│   ├── Readme.md
│   ├── auto_help.sh
│   ├── bot/
│   │   ├── jd_bot
│   │   ├── requirements.txt
│   │   └── setup.py
│   ├── crontab_list.sh
│   ├── default_task.sh
│   ├── docker-compose.yml
│   ├── docker_entrypoint.sh
│   ├── example/
│   │   ├── custom-append.yml
│   │   ├── custom-overwrite.yml
│   │   ├── default.yml
│   │   ├── docker多账户使用独立容器使用说明.md
│   │   ├── jd_scripts.custom-append.syno.json
│   │   ├── jd_scripts.custom-overwrite.syno.json
│   │   ├── jd_scripts.syno.json
│   │   └── multi.yml
│   ├── extra.sh
│   ├── notify_docker_user.js
│   ├── proc_file.sh
│   ├── ql1key.sh
│   └── task_before.sh
├── function/
│   ├── JDJRValidator_Pure_smiek.js
│   ├── TS_USER_AGENTS.ts
│   ├── cache/
│   │   └── index.js
│   ├── common.js
│   ├── config.js
│   ├── dylant.js
│   ├── dylanx.js
│   ├── dylany.js
│   ├── dylanz.js
│   ├── eval.js
│   ├── getToken.js
│   ├── h5st.ts
│   ├── jdValidate.js
│   ├── jdcookie.js
│   ├── jinli_log.ts
│   ├── jxAlgo.js
│   ├── krgetSign.js
│   ├── krgetToken.js
│   ├── krh5st.js
│   ├── magic.js
│   ├── mfdps.js
│   ├── proxy.js
│   ├── ql.js
│   ├── sendNotify.js
│   ├── signUpdateLog.log
│   ├── sign_graphics_validate.js
│   ├── signdps.js
│   └── zjdtool.js
├── h5.js
├── h5sts.js
├── index.js
├── jdCookie.js
├── jdCookie.py
├── jdDreamFactoryShareCodes.js
├── jdEnv.py
├── jdFactoryShareCodes.js
├── jdFruitShareCodes.js
├── jdJxncShareCodes.js
├── jdJxncTokens.js
├── jdMsLogs.js
├── jdPetShareCodes.js
├── jdPlantBeanShareCodes.js
├── jd_AJMH.js
├── jd_AJYX.js
├── jd_CheckCK.js
├── jd_CkSeq.js
├── jd_DailyBonus_Mod.js
├── jd_OpenCard_Force.js
├── jd_SuperBrandJXZ.js
├── jd_UpdateUIDtoRemark.js
├── jd_aid_factory.js
├── jd_aid_fortune.js
├── jd_bean_change.js
├── jd_bean_home.js
├── jd_bean_info.js
├── jd_bean_sign.js
├── jd_beans_7days.py
├── jd_beauty.js
├── jd_beauty_ex.js
├── jd_beauty_plant.py
├── jd_bigwinner.py
├── jd_blackHome.js
├── jd_captian.js
├── jd_car.js
├── jd_car_play.js
├── jd_car_play_exchange.js
├── jd_card_force.js
├── jd_cash.js
├── jd_cash_nolan.js
├── jd_cash_wx.js
├── jd_cashsign.js
├── jd_categoryUnion.js
├── jd_categoryUnion_draw.js
├── jd_check_dependence.py
├── jd_check_dependent.py
├── jd_cjdaily.js
├── jd_cjhy_completeInfoActivity.js
├── jd_cjhy_daily.js
├── jd_cjhy_sevenDay.js
├── jd_cjhy_signActivity.js
├── jd_cjhy_wxCollectionActivity.js
├── jd_cjhy_wxDrawActivity.js
├── jd_cjhy_wxGameActivity.js
├── jd_cjhy_wxKnowledgeActivity.js
├── jd_cjhy_wxMcLevelAndBirthGifts.js
├── jd_cjhy_wxShopFollowActivity.js
├── jd_cjhy_wxShopGift.js
├── jd_cjhydz_microDz.js
├── jd_cjhydz_wxTeam.js
├── jd_cjzdgf.js
├── jd_ckck3.sh
├── jd_clean_car.js
├── jd_cleancart_nolan.js
├── jd_club_lottery.js
├── jd_code2url.js
├── jd_comment.js
├── jd_completeInfoActivity.js
├── jd_couponspace.js
├── jd_cxxb_award.js
├── jd_daily.js
├── jd_dapai_draw.js
├── jd_dapai_task.js
├── jd_dd_follow_cc.js
├── jd_ddnc_farmpark.js
├── jd_delCoupon.js
├── jd_disable.py
├── jd_doTreasureRank.py
├── jd_dpcj.py
├── jd_dplh0320.js
├── jd_dplh0325.js
├── jd_dpqd.js
├── jd_dpqd_dsb.js
├── jd_dpsign.js
├── jd_drawCenter.js
├── jd_dreamFactory.js
├── jd_dreamFactory_help.js
├── jd_dreamFactory_tuan.js
├── jd_dwapp.js
├── jd_dygetbeans.js
├── jd_exchange.js
├── jd_fans.js
├── jd_fans_dou.js
├── jd_fans_fansactiveall.js
├── jd_fans_video.js
├── jd_fanshb.js
├── jd_farautomation.js
├── jd_fardel.js
├── jd_farhelp.js
├── jd_farm_automation.js
├── jd_fc_winner.js
├── jd_fcwb.py
├── jd_fcwb_mfhelp.js
├── jd_fcwb_nolan.js
├── jd_fen2bean.js
├── jd_follow.js
├── jd_follow_shop.js
├── jd_fruit.js
├── jd_fruit_friend.js
├── jd_fruit_task.js
├── jd_fruit_watering.js
├── jd_fuli.js
├── jd_gehugame.js
├── jd_gold_creation.js
├── jd_gua_MMdou_Mod.js
├── jd_gwxj_v.js
├── jd_half_redrain.js
├── jd_harmony_auto.js
├── jd_hbCount.py
├── jd_hcredrain.js
├── jd_health.js
├── jd_health_collect.js
├── jd_health_exchange.py
├── jd_health_help.js
├── jd_health_plant.py
├── jd_identical211.py
├── jd_identicaln214.py
├── jd_insight.js
├── jd_inviteFriendsGift.py
├── jd_jdfactory.js
├── jd_jdfactory_help.js
├── jd_jdjoypark.js
├── jd_jdkd1.js
├── jd_jdsupermarket_sign.js
├── jd_jdzz_dh.js
├── jd_jfk.js
├── jd_jgyx.js
├── jd_jin_tie.js
├── jd_jingBeanReceive.py
├── jd_jinggengInvite.py
├── jd_jinggeng_showInviteJoin.js
├── jd_jinli_hongbao.ts
├── jd_joinCommon_opencard.py
├── jd_joy_feedPets.js
├── jd_joy_park_run.js
├── jd_joy_park_run.ts
├── jd_joy_run.js
├── jd_joy_run_reward.ts
├── jd_joy_withdraw.js
├── jd_joyjd_open.js
├── jd_joymanor_task.js
├── jd_joymatch.js
├── jd_joyopen.js
├── jd_joypark_synthesis.js
├── jd_jr_draws.js
├── jd_jrsign.js
├── jd_js_cash.js
├── jd_jxgckc.js
├── jd_jxmc.js
├── jd_jxzl.js
├── jd_kanjia.js
├── jd_kd.js
├── jd_kuaid.js
├── jd_kuaidi_leaf.js
├── jd_live.js
├── jd_loreal_interact_ljqdysl.js
├── jd_lottery.js
├── jd_lottery_cart.js
├── jd_lottery_eight.js
├── jd_lottery_newyear.js
├── jd_lotterys.js
├── jd_lotty2.js
├── jd_luck_draw.js
├── jd_lzaddCart.js
├── jd_lzdz_categoryUnion.js
├── jd_lzkjInteract.py
├── jd_lzkj_daily.js
├── jd_lzkj_interact_yqrhyl.js
├── jd_lzkj_interactsaas_gzspyl.js
├── jd_lzkj_interactsaas_gzyl.js
├── jd_lzkj_interactsaas_jgyl.js
├── jd_lzkj_interactsaas_qrqd.js
├── jd_lzkj_interactsaas_rlqd.js
├── jd_lzkj_interactsaas_yqhyrh.js
├── jd_lzkj_loreal_cart.js
├── jd_lzkj_loreal_draw.js
├── jd_lzkj_loreal_followShop.js
├── jd_lzkj_loreal_invite.js
├── jd_lzkj_sevenDay.js
├── jd_lzkj_signActivity2.js
├── jd_lzkj_wxBuildActivity.js
├── jd_lzkj_wxCollectionActivity.js
├── jd_lzkj_wxDrawActivity.js
├── jd_lzkj_wxGameActivity.js
├── jd_lzkj_wxKnowledgeActivity.js
├── jd_lzkj_wxShopFollowActivity.js
├── jd_lzkj_wxShopGift.js
├── jd_lzkjdz.js
├── jd_lzkjdz_wxTeam.js
├── jd_m_sign.js
├── jd_makemoneyshop.js
├── jd_makemoneyshop_award.js
├── jd_makemoneyshop_reward.js
├── jd_malls.js
├── jd_marketmh.js
├── jd_marketxxl.js
├── jd_mf_new.js
├── jd_mfredrain.js
├── jd_mhtask.js
├── jd_mofang_ex.js
├── jd_mofangj.js
├── jd_morningSc.js
├── jd_mpdz_car_help.js
├── jd_mpdz_carv.js
├── jd_necklace_6dy.js
├── jd_notify.js
├── jd_openLuckBag.js
├── jd_opencardH0320.py
├── jd_opencardJBK.js
├── jd_opencardJoy.js
├── jd_opencardL300.js
├── jd_opencardL302.js
├── jd_pay_contract.js
├── jd_phoneDiscount.py
├── jd_pigPet.js
├── jd_pl.js
├── jd_plantBean.js
├── jd_plantBean_help.js
├── jd_plus2bean.js
├── jd_pluscore.js
├── jd_ppdt.js
├── jd_price.js
├── jd_prices.js
├── jd_prodev.js
├── jd_prodev.py
├── jd_pzhb_notify.py
├── jd_qbyql.js
├── jd_ql_log_scan.py
├── jd_sevenDay.js
├── jd_sevenDayjk.js
├── jd_sgmh.js
├── jd_shangou.js
├── jd_share.js
├── jd_share2.js
├── jd_shop.js
├── jd_shopCollectGift.py
├── jd_shopDraw.js
├── jd_shopGifts.js
├── jd_shopLeague_opencard.py
├── jd_shop_draw.js
├── jd_signFree.js
├── jd_sign_graphics.js
├── jd_sign_graphics1.js
├── jd_signbeanact.js
├── jd_sk2_draw.js
├── jd_speed_redpocke.js
├── jd_speed_sign.js
├── jd_speed_sign_Part1.js
├── jd_speed_sign_Part2.js
├── jd_speed_sign_Part3.js
├── jd_speed_sign_Part4.js
├── jd_speed_sign_Part5.js
├── jd_splitHongbao.js
├── jd_superBrandJKK.js
├── jd_superBrandJK_1.js
├── jd_superBrandJXZ.js
├── jd_superBrandSign.js
├── jd_superBrandStar.js
├── jd_superBrandXZ.js
├── jd_superBrandZII.js
├── jd_superBrandz.js
├── jd_supergz.js
├── jd_supermarket.js
├── jd_supermarket1.js
├── jd_supermarket_dh.js
├── jd_supermarket_ex.js
├── jd_supermarket_exchange.js
├── jd_supermarket_task.js
├── jd_supermohe.js
├── jd_tanwei.js
├── jd_team60.js
├── jd_team_exchange.js
├── jd_tenbean.js
├── jd_tewu.ts
├── jd_tj_sign.js
├── jd_tj_signcash.js
├── jd_tmplottery.js
├── jd_track.ts
├── jd_try.js
├── jd_try_notify.py
├── jd_twCard.js
├── jd_twjk_new.js
├── jd_txgzyl.js
├── jd_txzj_cart_item.js
├── jd_txzj_collect_item.js
├── jd_txzj_collect_shop.js
├── jd_txzj_lottery.js
├── jd_txzj_sign_in.js
├── jd_ty_help.js
├── jd_unsubscriLive.js
├── jd_unsubscribe.js
├── jd_unsubscribeShop.js
├── jd_vipgrowth.js
├── jd_washbeans.js
├── jd_wdz.js
├── jd_wdz.py
├── jd_wdzfd.js
├── jd_wechat_zz.ts
├── jd_whx_drawShopGift.js
├── jd_wish.js
├── jd_work_validate.js
├── jd_wq_wxsign.js
├── jd_wsdlb.js
├── jd_wxBirthGifts.py
├── jd_wxBuildActivity.js
├── jd_wxBulidActivity.py
├── jd_wxCartKoi.js
├── jd_wxCollectCard.js
├── jd_wxCollectionActivity.js
├── jd_wxCollectionActivity.py
├── jd_wxCollectionActivity2.js
├── jd_wxCompleteInfo.py
├── jd_wxFansInterActionActivity.js
├── jd_wxKnowledgeActivity.js
├── jd_wxMcLevelAndBirthGifts.js
├── jd_wxSecond.js
├── jd_wxShareActivity.js
├── jd_wxShopFollow.py
├── jd_wxShopFollowActivity.js
├── jd_wxShopGift.js
├── jd_wxShopGift.py
├── jd_wxSignRed.js
├── jd_wxUnPackingActivity.js
├── jd_wxgame.js
├── jd_wxttzq.js
├── jd_wyw.js
├── jd_wzqddnh.js
├── jd_xbhdl.js
├── jd_xinruimz.js
├── jd_xkmh.js
├── jd_xs_zzl.js
├── jd_zdjr.js
├── jd_zjb.js
├── jd_zjd_new.js
├── jd_zml.js
├── jd_zns_draw.js
├── jd_zns_game1.js
├── jd_zns_game2.js
├── jx_aid_cashback.js
├── jx_factory_automation.js
├── jx_festivalhb.js
├── jx_one2shopping.js
├── jx_sign_help.js
├── jx_sign_xd.js
├── magic.js
├── magic.py
├── main.py
├── ql.js
├── scan.json
├── sendNotify.js
├── sendNotify.py
├── sign_graphics_validate.js
├── test.js
├── utils/
│   ├── JDJRValidator.js
│   ├── JDJRValidator_Pure.js
│   ├── JDSignValidator.js
│   ├── JD_DailyBonus.js
│   ├── MoveMentFaker.js
│   ├── TS_USER_AGENTS.ts
│   ├── USER_AGENTS.js
│   ├── V3.ts
│   ├── ZooFaker_Necklace.js
│   ├── account_demo.json
│   ├── common.js
│   ├── config.js
│   ├── empty.json
│   ├── eval.js
│   ├── exceptCookie.json
│   ├── h5st.ts
│   ├── jdCookie.py
│   ├── jdShareCodes.js
│   ├── jdValidate.js
│   ├── jd_appopen.js
│   ├── jd_joy_getInvokeKey.ts
│   ├── jd_joy_validate.js
│   ├── jd_jxmcToken.js
│   ├── jd_zjd_tool.js
│   ├── jdcookie.js
│   ├── jinli_log.ts
│   ├── jxAlgo.js
│   ├── magic.js
│   ├── mf_log.ts
│   ├── pe.js
│   ├── pushplus.ts
│   ├── ql.js
│   ├── sendNotify.js
│   ├── shareCodesTool.ts
│   ├── sharecodes.json
│   ├── sign_graphics_validate.js
│   └── validate_single.js
└── wskey.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true

================================================
FILE: .gitattributes
================================================
* text eol=lf
*.png -text
*.jpg -text

================================================
FILE: .gitignore
================================================
model
/.idea
/code
/.github
/images
/icon
/sample
/shareCodes
/ModScript
/NoUsed
config.sample.sh.new
jd_update.js
package-lock.json
jd_enen.js
jd_checkCK.js

jd_lzdz1_customized5_18 2.js

shell
README.MD
sign
root.json
main.js
SECURITY.md
/scf_test_event
tencentscf.js
update_list.sh
update_task.sh
passerby-b.boxjs.json
crontab.list
jd_model
jd_mf.js
jd_jxSign.js
jd_zhulima.js
jd_carnivalcity_help.js	
jd_joy_new.js
jd_mdou.js
jd_joypark_task.js
jd_work_ddworld.js
jd_esManager.js
#清理购物车
jd_cleancart.js
#jd_clean_car.js
gua_cleancart.js
jd_jmsign.js
#jd_clean_car.js
jd_priceProtect.js
jd_jin_tie_xh.js
jd_jmzhl.js
jd_zsign.js
jd_big_winner_Mod.js	
#jd_tyt_ks.js
jd_MovementFaker.js	
gua_city.js
# 城城分现金
jd_city.js
jd_speed_redEnvelope.ts
jd_redpocke.js
jd_tie.js
jd_newtask.js
jd_shop_sign2.js
jd_newtask.js
jd_park.js
jd_task.js
jd_plantBean2.js
########红包脚本锁佣########
gua_1111RedEnvelope.js
jd_read.js 
jd_redEnvelope.js
jd_red.js
jd_1111RedEnvelope.js	
jd_1111.js
jd_nhjred.js
jd_nhs_red.js
gua_nhjRed.js
*******red.js
!jd_speed_signred.js
# 年货节红包
jd_nhRed.js
jd_nhjRed.js
jd_nhRedEnvelope.js
jd_nh*.js
jd_nh_red.js
jd_nh_sign.js
jd_Red.js
##

jd_dreamFactory2.js
jd_selectionOfficer.js
jd_cfd2.js
jd_notifyHe1pu.js
#电脑配件
#jd_computer.js
jd_ks_fruit.js
jdCookie_xh.js
#会员开卡赢京豆
jd_opencardjoyjd.js
#KR开卡
#
jd_bean_change_xh.js
#禁用重复任务
jd_identicalnew.py 
gua_*.js
#月资产
#jd_bean_change1.js
jd_bean_change_pro.js
jd_fruit?.js
jd_necklace.js
jd_exchange_joy.js
# 东东世界兑换
#jd_ddworld_exchange.js
jdd_jd_fcdyj.js
#jd_zjd.js
jd_qjdSupermarket.js
jd_drawEntrance.js
jd_dreamfactory_tuan.js
jxgc_tuan.js
jd_SplitRedPacket.js
jd_try_xh.js
jd_star_shop.js
#店铺签到
#jd_dpqd.js
jd_SendBean.js
jx_cashback.js
jd_jddj_*.js
jd_jxgc_tuan.js
gua_redEnvelope.js 
jd_moneyTree_heip.js
jd_superMarket_qjd.js
jd_unsubscribe_xh.js
jd_work_unfollowShop.js
NoUsed_jd_DailyBonus_Mod.js
jd_jxsign.js
jd_big_winner_Mod.js
superbox.js
jxhlk.py
# 特务z
#jd_tw.js
#不能跑的特务z
#jd_productZ4Brand.js
jd_productZ4Brand11.js
#惊喜双签
!jd_jx_sign.js
jingsubang.js
jd_jxqd_new.js
jd_vivo.js
jd_code.js
jd_enc.js
jd_help.js
#极速版红包
#jd_speed_redpocke.js
jd_jxred.js
jd_qjd_help.js
gua_RedEnvelope.js
jd_jx_factory.js
jd_jx_cashback.js
jd_sign_validate.js	
jd_ylynj.js
jd_speed_signfree_Mod.js
jd_ttzdq.js
jd_kk1.js
jd_fcdyj_help.js
jd_ljd_xh.js
jd_fcwb_help.js
jd_MovementFaker.js
jd_dogsEmploy.js
jd_cjhz.js
jd_rush_vibo.js
jd_fcwb_auto.js
jd_fcwb_wb.js

jd_opencard[0-9][0-9].js
!jd_opencardL*.js
jd_opencard[0-9][0-9][0-9][0-9]*.js

jd_carnivalcity_help.js
jd_jddt.js
jd_syj_Mod.js
jd_nnfl.js
jd_fanli_Mod.js
jd_get_share_code.js
jd_work_price.js
jd_ddly.js
jd_fanli.py
jd_checkCk.js
jd_work_cookie.js

jd_exjxbeans.js

#jd_jx_*.js
jd_jx_factory_automation.js
jd_jx_factory.js

m_*.js
######重复脚本#######
#组队
jd_teamMN.js
jd_teamFLP.js
jd_teamXAY.js
jd_sevenDay_info.js 

jd_plantBean_Mod.js
#种豆得豆互助版
jd_lzdz1_customized5_18 2.js
jd_??-?.js
#集魔方
jd_jmofang.js
bot_*.js
#清空购物车
gua_cleancart_ddo.js
jd_gua_cleancart_Panda.js
jd_15-8.js
jd_speed_10_4.js
jd_speed_19_6.js
jd_speed_29_8.js
jd_speed_5_2.js
#开卡有礼
jd_opencard.py
#重复任务优化
jd_taskop.py
#京喜商品列表
jx_products_detail.js
# 财富岛珍珠兑换
#jd_cfd_pearl_ex.js
# he1pu的内置互助
zcodes.json
# 飞利浦重复
jd_FLP.js
jd_flp.js
# 蒙牛开卡重复
jd_mn.js
jd_mengniu.js
jd_captian_mn.js
#不能跑的
jd_task_*.js
jx_task_*.js
creat.sh
jw_*.js
jr_*.js
#*.conf
jd_help_sendBean.js
jx_help_*.js
#大赢家助力
jd_dyj_help_wx.js
# 店铺签到shy
jd_shy_dpqd.js
jd_shy_dpqd?.js
#jd_shop_sign_omo.js
# 通用脚本
*common_enc.js
# ck顺序调试工具
#jd_CkSeq.js
# 疑似互助码的json
starShop.json
lzdz1_*.json
jddj_*.json
jd_lzdz1.json
#*.json
# 内部互助脚本
jd_fruit_help.js
jd_pet_help.js
# 发现好货
jd_fxhh.js
# 小魔方
jd_xmf.js
jd_jmf.js
# 牛牛福利社
jd_nnfls.js
# 京东极速版
jd_speed_signfaker.js
# 极速免费
jd_speed_signfree.js
# 特务z
jd_superBrand.js
# 金榜年终奖
jd_split.js
# 粉丝互动
jd_wxFans.js
# 晓龙
jd_xiaolong.js
# 小魔方兑换
jd_mofang_exchange.js
# 东东世界
jd_ddworld.js
# 京东金融养猪
jd_work_pigPet.js
# 电器盲盒
jd_dqmh.js
# 农场集勋章
jd_medal_Mod.js
# 锦鲤助力
jd_koiHelp.js
jd_angryKoi.py
#jdjoy通用ID任务
jd_joyjd_open2.js
# 禁用重复任务
jd_disableDuplicateTasksImplement.py
# 炸年兽重
#jd_zns.js
jd_zhaNS.js
#送豆得豆重复
jd_sddd.js
#健康社区收集能量
jd_z_health_energy.js
#wskey
jd_wskey.py
#萌虎摇摇乐
jd_tiger.js
#天天领压岁钱
jd_ttysq.js
#击鼓助力
jd_HappyNewYear_Shares.js
jd_drum.js
jd_HappyNewYear_Share.js
#invokekey获取
jd_work_invokeKey.js
#锦鲤
jd_redPacket.js
# 早起福利
jd_zqfl.py
#禁用重复任务
#jd_identicalnew.py

#京东极速版红包
jd_speed_red.js
jd_speed_duck.js
#京东金融灯火元宵
jd_bt6666draw.py
#极速版抢全品券
jd_speedcoupon.js
#试用通知
jd_try_notify.js
#暂时删除
#jd_syj.js
#jd_jxmc_hb.js

#京东金融免息
jd_btfree.py
#依赖修复
jd_scripts_check_dependence.py
#逛plus抽京豆
jd_plusLottery.js
#6dylan6仓库重复的
jd_cfd.hb.js
jd_dddh.js
#jd_farm_automation.js
jd_indeps.sh
jd_sharecode.sh
jd_tyt_ck1.js
jd_jsqdtx.js
#jd_farautomation.js
jd_ms_sign.js
jd_plusdraw.js
#京喜工厂商品
jx_factory_commodity.js
########过期活动##############
#特务集卡
jd_superBrandJK.js
gua_opencard129.js
gua_opencard13?.js
jd_carnivalcity.js
# 运动户外盲盒
jd_UnknownTask5.js
jd_hwmh.js
# 惊喜88红包
#jd_jxlhb.js
###开卡
jd_mt.js
#京东金融天天试手气
jd_btdraw.py
#农场集勋章
jd_medal.js
# 全民抢京豆8.6-8.16
jd_qjd.py
#点鞭炮赢京豆
jd_festival.js
#会场红包
jd_babel_red.js
#打豆豆
jd_dadoudou.js
#萌虎摇摇乐送卡
jd_mhyyl_sendCard.js
#新春击鼓助力
gua_HappyNewYear_Shares.js
#头文字
#jd_mpdzcar.js
#jd_mpdzcar_*.js
jd_mpdzcarJ.js
jd_carplay.js
jd_mpdz_car.js
#推一推
#jd_tyt.js
#38节相关脚本
jd_38qd.js
jd_ghnsjd.js
#组队脚本
jd_captian_*.js
jd_april*.js

############不能跑的###############
#注销京东会员卡
jd_unbind.js

jd_cash_Mod_Panda.js	
#panda签到领现金
jd_joy_park_Mod.js
#养joy
jd_cash.ts
#内容鉴赏
jd_connoisseur.js
jd_10_4.js
jd_speed_15_8.js
#领券中心签到
jd_ccSign.js

#特价翻翻乐
jd_jdtj_winner.js
#金榜
jd_gold_sign.js
#天天压岁钱
jx_ttysq.js
#东东世界兑换
jd_ddworld_exchange.js
#通天塔签到共建
jd_babel_sign.js
#京东汽车兑换
jd_car_exchange.js
#京东金融分享助力
jd_jrmx.py
#京东金融每周领取权益活动
jd_jr_draw.js
#口袋书店
jd_bookshop.js
#天天拼图
jd_ttpt.js
#锦鲤
jd_angryKoi.js
#东东超市兑换
jd_blueCoin.js
#邀请有礼
jd_yqyl.js
#5魔方兑换
jd_xmf_exchange.js
#东东小窝
jd_small_home.js
#qq星系牧场
jd_qqxing.js
#京东排行榜
jd_rankingList.js
#京东金融分享助力
jd_jrmx.py
#京东饭粒
jd_fanli.js
#东东电竞经理
jd_EsportsManager.js
#东东超市奖品兑换
jd_blueCoin.py
#宠汪汪有就兑换
jd_joy_reward.js
# 通用游戏
jd_game.js
# 通用ID任务
jd_prodev_dailyTask.js
# 炸年兽
jd_zhanianshou.js
# 互助
share_code.js
#白条抽奖
jd_bt_sign.js
# 东东农场-集勋章合成兑换奖励
jd_fruit_medalExchange.py
# 财富岛100
jd_cfdhb100.py
jd_cfdhb111.py
# 冬香节
jd_dongxiang_benefits.py
#农场天天红包抽奖
jd_fruit_everydayRed.py
#转喜豆
jd_jd2xd.js
#店铺签到ff
jd_shopsign.js
#星店长
jd_xdz.py
fanli.js
jd_reward.ts
# 整点红包雨 longzhuzhu
jd_super_redrain.js
#超级无线店铺抽奖
jd_lzclient.js
#自动评价
jd_Evaluation.py
#幸福小店
jd_xfxd.js
#店铺签到
jd_shop_sign.js
jd_anjia.js
jd_senbeans.js
jd_cfd_help.js
wx_*.js
#小埋开卡
#jd_lzdz1_*.js
jd_jinggengjcq_*.js
jd_rush_*.js
#重复的评价
jd_evaluation.js
#开卡有礼
jd_openCard.py
#发财大赢家助力
jd_fcdyj.js
#jd_card_collecting_common_enc.js
#jd_look_video_common_enc.js
#jd_share_common_enc.js
# 1111
#jd_xsqjd.js
jd_getred.py
jd_genz.js
jd_jx_cfd_pearl_exchange.js
jd_jx_factory_automation.js
jd_jx_mc_zn_exchange.js


jd_GoldcoinToGift.js
jd_ftzy.js
jd_aid_ftzy.js

#玩家国度脚本
jd_syj.js

================================================
FILE: CK_WxPusherUid.json
================================================
[
  {
    "pt_pin": "ptpin1",
    "Uid": "UID_AAAAAAAAAAAA"
  },
  {
    "pt_pin": "ptpin2",
    "Uid": "UID_BBBBBBBBBB"
  },
  {
    "pt_pin": "ptpin3",
    "Uid": "UID_CCCCCCCCC"
  }
]

================================================
FILE: JDJRSignValidator.js
================================================
const UA = require('./USER_AGENTS.js').USER_AGENT;

const navigator = {
  userAgent: UA,
  plugins: { length: 0 },
  language: "zh-CN",
};
const screen = {
  availHeight: 812,
  availWidth: 375,
  colorDepth: 24,
  height: 812,
  width: 375,
  pixelDepth: 24,

}
const window = {

}
const document = {
  location: {
    "ancestorOrigins": {},
    "href": "https://prodev.m.jd.com/mall/active/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html",
    "origin": "https://prodev.m.jd.com",
    "protocol": "https:",
    "host": "prodev.m.jd.com",
    "hostname": "prodev.m.jd.com",
    "port": "",
    "pathname": "/mall/active/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html",
    "search": "",
    "hash": ""
  }
};
var start_time = (new Date).getTime(),
  _jdfp_canvas_md5 = "",
  _jdfp_webgl_md5 = "",
  _fingerprint_step = 1,
  _JdEid = "",
  _eidFlag = !1,
  risk_jd_local_fingerprint = "",
  _jd_e_joint_;

  function t(a) {
    if (null == a || void 0 == a || "" == a) return "NA";
    if (null == a || void 0 == a || "" == a) var b = "";
    else {
      b = [];
      for (var c = 0; c < 8 * a.length; c += 8) b[c >> 5] |= (a.charCodeAt(c / 8) & 255) << c % 32
    }
    a = 8 * a.length;
    b[a >> 5] |= 128 << a % 32;
    b[(a + 64 >>> 9 << 4) + 14] = a;
    a = 1732584193;
    c = -271733879;
    for (var l = -1732584194, h = 271733878, q = 0; q < b.length; q += 16) {
      var z = a,
        C = c,
        D = l,
        B = h;
      a = v(a, c, l, h, b[q + 0], 7, -680876936);
      h = v(h, a, c, l, b[q + 1], 12, -389564586);
      l = v(l, h, a, c, b[q + 2], 17, 606105819);
      c = v(c, l, h, a, b[q + 3], 22, -1044525330);
      a = v(a, c, l, h, b[q + 4], 7, -176418897);
      h = v(h, a, c, l, b[q + 5], 12, 1200080426);
      l = v(l, h, a, c, b[q + 6], 17, -1473231341);
      c = v(c, l, h, a, b[q + 7], 22, -45705983);
      a = v(a, c, l, h, b[q + 8], 7, 1770035416);
      h = v(h, a, c, l, b[q + 9], 12, -1958414417);
      l = v(l, h, a, c, b[q + 10], 17, -42063);
      c = v(c, l, h, a, b[q + 11], 22, -1990404162);
      a = v(a, c, l, h, b[q + 12], 7, 1804603682);
      h = v(h, a, c, l, b[q + 13], 12, -40341101);
      l = v(l, h, a, c, b[q + 14], 17, -1502002290);
      c = v(c, l, h, a, b[q + 15], 22, 1236535329);
      a = x(a, c, l, h, b[q + 1], 5, -165796510);
      h = x(h, a, c, l, b[q + 6], 9, -1069501632);
      l = x(l, h, a, c, b[q + 11], 14, 643717713);
      c = x(c, l, h, a, b[q + 0], 20, -373897302);
      a = x(a, c, l, h, b[q + 5], 5, -701558691);
      h = x(h, a, c, l, b[q + 10], 9, 38016083);
      l = x(l, h, a, c, b[q + 15], 14, -660478335);
      c = x(c, l, h, a, b[q + 4], 20, -405537848);
      a = x(a, c, l, h, b[q + 9], 5, 568446438);
      h = x(h, a, c, l, b[q + 14], 9, -1019803690);
      l = x(l, h, a, c, b[q + 3], 14, -187363961);
      c = x(c, l, h, a, b[q + 8], 20, 1163531501);
      a = x(a, c, l, h, b[q + 13], 5, -1444681467);
      h = x(h, a, c, l, b[q + 2], 9, -51403784);
      l = x(l, h, a, c, b[q + 7], 14, 1735328473);
      c = x(c, l, h, a, b[q + 12], 20, -1926607734);
      a = u(c ^ l ^ h, a, c, b[q + 5], 4, -378558);
      h = u(a ^ c ^ l, h, a, b[q + 8], 11, -2022574463);
      l = u(h ^ a ^ c, l, h, b[q + 11], 16, 1839030562);
      c = u(l ^ h ^ a, c, l, b[q + 14], 23, -35309556);
      a = u(c ^ l ^ h, a, c, b[q + 1], 4, -1530992060);
      h = u(a ^ c ^ l, h, a, b[q + 4], 11, 1272893353);
      l = u(h ^ a ^ c, l, h, b[q + 7], 16, -155497632);
      c = u(l ^ h ^ a, c, l, b[q + 10], 23, -1094730640);
      a = u(c ^ l ^ h, a, c, b[q + 13], 4, 681279174);
      h = u(a ^ c ^ l, h, a, b[q + 0], 11, -358537222);
      l = u(h ^ a ^ c, l, h, b[q + 3], 16, -722521979);
      c = u(l ^ h ^ a, c, l, b[q + 6], 23, 76029189);
      a = u(c ^ l ^ h, a, c, b[q + 9], 4, -640364487);
      h = u(a ^ c ^ l, h, a, b[q + 12], 11, -421815835);
      l = u(h ^ a ^ c, l, h, b[q + 15], 16, 530742520);
      c = u(l ^ h ^ a, c, l, b[q + 2], 23, -995338651);
      a = w(a, c, l, h, b[q + 0], 6, -198630844);
      h = w(h, a, c, l, b[q + 7], 10, 1126891415);
      l = w(l, h, a, c, b[q + 14], 15, -1416354905);
      c = w(c, l, h, a, b[q + 5], 21, -57434055);
      a = w(a, c, l, h, b[q + 12], 6, 1700485571);
      h = w(h, a, c, l, b[q + 3], 10, -1894986606);
      l = w(l, h, a, c, b[q + 10], 15, -1051523);
      c = w(c, l, h, a, b[q + 1], 21, -2054922799);
      a = w(a, c, l, h, b[q + 8], 6, 1873313359);
      h = w(h, a, c, l, b[q + 15], 10, -30611744);
      l = w(l, h, a, c, b[q + 6], 15, -1560198380);
      c = w(c, l, h, a, b[q + 13], 21, 1309151649);
      a = w(a, c, l, h, b[q + 4], 6, -145523070);
      h = w(h, a, c, l, b[q + 11], 10, -1120210379);
      l = w(l, h, a, c, b[q + 2], 15, 718787259);
      c = w(c, l, h, a, b[q + 9], 21, -343485551);
      a = A(a, z);
      c = A(c, C);
      l = A(l, D);
      h = A(h, B)
    }
    b = [a, c, l, h];
    a = "";
    for (c = 0; c < 4 * b.length; c++) a += "0123456789abcdef".charAt(b[c >> 2] >> c % 4 * 8 + 4 & 15) +
      "0123456789abcdef".charAt(b[c >> 2] >> c % 4 * 8 & 15);
    return a
  }
  function u(a, b, c, l, h, q) {
    a = A(A(b, a), A(l, q));
    return A(a << h | a >>> 32 - h, c)
  }

  function v(a, b, c, l, h, q, z) {
    return u(b & c | ~b & l, a, b, h, q, z)
  }

  function x(a, b, c, l, h, q, z) {
    return u(b & l | c & ~l, a, b, h, q, z)
  }

  function w(a, b, c, l, h, q, z) {
    return u(c ^ (b | ~l), a, b, h, q, z)
  }

  function A(a, b) {
    var c = (a & 65535) + (b & 65535);
    return (a >> 16) + (b >> 16) + (c >> 16) << 16 | c & 65535
  }
  _fingerprint_step = 2;
  var y = "",
    n = navigator.userAgent.toLowerCase();
  n.indexOf("jdapp") && (n = n.substring(0, 90));
  var e = navigator.language,
    f = n; - 1 != f.indexOf("ipad") || -1 != f.indexOf("iphone os") || -1 != f.indexOf("midp") || -1 != f.indexOf(
      "rv:1.2.3.4") || -1 != f.indexOf("ucweb") || -1 != f.indexOf("android") || -1 != f.indexOf("windows ce") ||
      f.indexOf("windows mobile");
  var r = "NA",
    k = "NA";
  try {
    -1 != f.indexOf("win") && -1 != f.indexOf("95") && (r = "windows", k = "95"), -1 != f.indexOf("win") && -1 !=
      f.indexOf("98") && (r = "windows", k = "98"), -1 != f.indexOf("win 9x") && -1 != f.indexOf("4.90") && (
        r = "windows", k = "me"), -1 != f.indexOf("win") && -1 != f.indexOf("nt 5.0") && (r = "windows", k =
          "2000"), -1 != f.indexOf("win") && -1 != f.indexOf("nt") && (r = "windows", k = "NT"), -1 != f.indexOf(
            "win") && -1 != f.indexOf("nt 5.1") && (r = "windows", k = "xp"), -1 != f.indexOf("win") && -1 != f
              .indexOf("32") && (r = "windows", k = "32"), -1 != f.indexOf("win") && -1 != f.indexOf("nt 5.1") && (r =
                "windows", k = "7"), -1 != f.indexOf("win") && -1 != f.indexOf("6.0") && (r = "windows", k = "8"),
      -1 == f.indexOf("win") || -1 == f.indexOf("nt 6.0") && -1 == f.indexOf("nt 6.1") || (r = "windows", k =
        "9"), -1 != f.indexOf("win") && -1 != f.indexOf("nt 6.2") && (r = "windows", k = "10"), -1 != f.indexOf(
          "linux") && (r = "linux"), -1 != f.indexOf("unix") && (r = "unix"), -1 != f.indexOf("sun") && -1 !=
          f.indexOf("os") && (r = "sun os"), -1 != f.indexOf("ibm") && -1 != f.indexOf("os") && (r = "ibm os/2"),
      -1 != f.indexOf("mac") && -1 != f.indexOf("pc") && (r = "mac"), -1 != f.indexOf("aix") && (r = "aix"),
      -1 != f.indexOf("powerpc") && (r = "powerPC"), -1 != f.indexOf("hpux") && (r = "hpux"), -1 != f.indexOf(
        "netbsd") && (r = "NetBSD"), -1 != f.indexOf("bsd") && (r = "BSD"), -1 != f.indexOf("osf1") && (r =
          "OSF1"), -1 != f.indexOf("irix") && (r = "IRIX", k = ""), -1 != f.indexOf("freebsd") && (r =
            "FreeBSD"), -1 != f.indexOf("symbianos") && (r = "SymbianOS", k = f.substring(f.indexOf(
              "SymbianOS/") + 10, 3))
  } catch (a) { }
  _fingerprint_step = 3;
  var g = "NA",
    m = "NA";
  try {
    -1 != f.indexOf("msie") && (g = "ie", m = f.substring(f.indexOf("msie ") + 5), m.indexOf(";") && (m = m.substring(
      0, m.indexOf(";")))); - 1 != f.indexOf("firefox") && (g = "Firefox", m = f.substring(f.indexOf(
        "firefox/") + 8)); - 1 != f.indexOf("opera") && (g = "Opera", m = f.substring(f.indexOf("opera/") + 6,
          4)); - 1 != f.indexOf("safari") && (g = "safari", m = f.substring(f.indexOf("safari/") + 7)); - 1 != f.indexOf(
            "chrome") && (g = "chrome", m = f.substring(f.indexOf("chrome/") + 7), m.indexOf(" ") && (m = m.substring(
              0, m.indexOf(" ")))); - 1 != f.indexOf("navigator") && (g = "navigator", m = f.substring(f.indexOf(
                "navigator/") + 10)); - 1 != f.indexOf("applewebkit") && (g = "applewebkit_chrome", m = f.substring(f.indexOf(
                  "applewebkit/") + 12), m.indexOf(" ") && (m = m.substring(0, m.indexOf(" ")))); - 1 != f.indexOf(
                    "sogoumobilebrowser") && (g = "\u641c\u72d7\u624b\u673a\u6d4f\u89c8\u5668");
    if (-1 != f.indexOf("ucbrowser") || -1 != f.indexOf("ucweb")) g = "UC\u6d4f\u89c8\u5668";
    if (-1 != f.indexOf("qqbrowser") || -1 != f.indexOf("tencenttraveler")) g = "QQ\u6d4f\u89c8\u5668"; - 1 !=
      f.indexOf("metasr") && (g = "\u641c\u72d7\u6d4f\u89c8\u5668"); - 1 != f.indexOf("360se") && (g =
        "360\u6d4f\u89c8\u5668"); - 1 != f.indexOf("the world") && (g =
          "\u4e16\u754c\u4e4b\u7a97\u6d4f\u89c8\u5668"); - 1 != f.indexOf("maxthon") && (g =
            "\u9068\u6e38\u6d4f\u89c8\u5668")
  } catch (a) { }


class JdJrTdRiskFinger {
    f = {
      options: function (){
        return {}
      },
      nativeForEach: Array.prototype.forEach,
      nativeMap: Array.prototype.map,
      extend: function (a, b) {
        if (null == a) return b;
        for (var c in a) null != a[c] && b[c] !== a[c] && (b[c] = a[c]);
        return b
      },
      getData: function () {
        return y
      },
      get: function (a) {
        var b = 1 * m,
          c = [];
        "ie" == g && 7 <= b ? (c.push(n), c.push(e), y = y + ",'userAgent':'" + t(n) + "','language':'" +
          e + "'", this.browserRedirect(n)) : (c = this.userAgentKey(c), c = this.languageKey(c));
        c.push(g);
        c.push(m);
        c.push(r);
        c.push(k);
        y = y + ",'os':'" + r + "','osVersion':'" + k + "','browser':'" + g + "','browserVersion':'" +
          m + "'";
        c = this.colorDepthKey(c);
        c = this.screenResolutionKey(c);
        c = this.timezoneOffsetKey(c);
        c = this.sessionStorageKey(c);
        c = this.localStorageKey(c);
        c = this.indexedDbKey(c);
        c = this.addBehaviorKey(c);
        c = this.openDatabaseKey(c);
        c = this.cpuClassKey(c);
        c = this.platformKey(c);
        c = this.hardwareConcurrencyKey(c);
        c = this.doNotTrackKey(c);
        c = this.pluginsKey(c);
        c = this.canvasKey(c);
        c = this.webglKey(c);
        b = this.x64hash128(c.join("~~~"), 31);
        return a(b)
      },
      userAgentKey: function (a) {
        a.push(navigator.userAgent), y = y + ",'userAgent':'" + t(
          navigator.userAgent) + "'", this.browserRedirect(navigator.userAgent);
        return a
      },
      replaceAll: function (a, b, c) {
        for (; 0 <= a.indexOf(b);) a = a.replace(b, c);
        return a
      },
      browserRedirect: function (a) {
        var b = a.toLowerCase();
        a = "ipad" == b.match(/ipad/i);
        var c = "iphone os" == b.match(/iphone os/i),
          l = "midp" == b.match(/midp/i),
          h = "rv:1.2.3.4" == b.match(/rv:1.2.3.4/i),
          q = "ucweb" == b.match(/ucweb/i),
          z = "android" == b.match(/android/i),
          C = "windows ce" == b.match(/windows ce/i);
        b = "windows mobile" == b.match(/windows mobile/i);
        y = a || c || l || h || q || z || C || b ? y + ",'origin':'mobile'" : y + ",'origin':'pc'"
      },
      languageKey: function (a) {
        '' || (a.push(navigator.language), y = y + ",'language':'" + this.replaceAll(
          navigator.language, " ", "_") + "'");
        return a
      },
      colorDepthKey: function (a) {
        '' || (a.push(screen.colorDepth), y = y + ",'colorDepth':'" +
          screen.colorDepth + "'");
        return a
      },
      screenResolutionKey: function (a) {
        if (!this.options.excludeScreenResolution) {
          var b = this.getScreenResolution();
          "undefined" !== typeof b && (a.push(b.join("x")), y = y + ",'screenResolution':'" + b.join(
            "x") + "'")
        }
        return a
      },
      getScreenResolution: function () {
        return this.options.detectScreenOrientation ? screen.height > screen.width ? [screen.height,
        screen.width] : [screen.width, screen.height] : [screen.height, screen.width]
      },
      timezoneOffsetKey: function (a) {
        this.options.excludeTimezoneOffset || (a.push((new Date).getTimezoneOffset()), y = y +
          ",'timezoneOffset':'" + (new Date).getTimezoneOffset() / 60 + "'");
        return a
      },
      sessionStorageKey: function (a) {
        !this.options.excludeSessionStorage && this.hasSessionStorage() && (a.push("sessionStorageKey"),
          y += ",'sessionStorage':true");
        return a
      },
      localStorageKey: function (a) {
        !this.options.excludeSessionStorage && this.hasLocalStorage() && (a.push("localStorageKey"), y +=
          ",'localStorage':true");
        return a
      },
      indexedDbKey: function (a) {
        !this.options.excludeIndexedDB && this.hasIndexedDB() && (a.push("indexedDbKey"), y +=
          ",'indexedDb':true");
        return a
      },
      addBehaviorKey: function (a) {
        document.body && !this.options.excludeAddBehavior && document.body.addBehavior ? (a.push(
          "addBehaviorKey"), y += ",'addBehavior':true") : y += ",'addBehavior':false";
        return a
      },
      openDatabaseKey: function (a) {
        !this.options.excludeOpenDatabase && window.openDatabase ? (a.push("openDatabase"), y +=
          ",'openDatabase':true") : y += ",'openDatabase':false";
        return a
      },
      cpuClassKey: function (a) {
        this.options.excludeCpuClass || (a.push(this.getNavigatorCpuClass()), y = y + ",'cpu':'" + this
          .getNavigatorCpuClass() + "'");
        return a
      },
      platformKey: function (a) {
        this.options.excludePlatform || (a.push(this.getNavigatorPlatform()), y = y + ",'platform':'" +
          this.getNavigatorPlatform() + "'");
        return a
      },
      hardwareConcurrencyKey: function (a) {
        var b = this.getHardwareConcurrency();
        a.push(b);
        y = y + ",'ccn':'" + b + "'";
        return a
      },
      doNotTrackKey: function (a) {
        this.options.excludeDoNotTrack || (a.push(this.getDoNotTrack()), y = y + ",'track':'" + this.getDoNotTrack() +
          "'");
        return a
      },
      canvasKey: function (a) {
        if (!this.options.excludeCanvas && this.isCanvasSupported()) {
          var b = this.getCanvasFp();
          a.push(b);
          _jdfp_canvas_md5 = t(b);
          y = y + ",'canvas':'" + _jdfp_canvas_md5 + "'"
        }
        return a
      },
      webglKey: function (a) {
        if (!this.options.excludeWebGL && this.isCanvasSupported()) {
          var b = this.getWebglFp();
          _jdfp_webgl_md5 = t(b);
          a.push(b);
          y = y + ",'webglFp':'" + _jdfp_webgl_md5 + "'"
        }
        return a
      },
      pluginsKey: function (a) {
        this.isIE() ? (a.push(this.getIEPluginsString()), y = y + ",'plugins':'" + t(this.getIEPluginsString()) +
          "'") : (a.push(this.getRegularPluginsString()), y = y + ",'plugins':'" + t(this.getRegularPluginsString()) +
            "'");
        return a
      },
      getRegularPluginsString: function () {
        return this.map(navigator.plugins, function (a) {
          var b = this.map(a, function (c) {
            return [c.type, c.suffixes].join("~")
          }).join(",");
          return [a.name, a.description, b].join("::")
        }, this).join(";")
      },
      getIEPluginsString: function () {
        return window.ActiveXObject ? this.map(
          "AcroPDF.PDF;Adodb.Stream;AgControl.AgControl;DevalVRXCtrl.DevalVRXCtrl.1;MacromediaFlashPaper.MacromediaFlashPaper;Msxml2.DOMDocument;Msxml2.XMLHTTP;PDF.PdfCtrl;QuickTime.QuickTime;QuickTimeCheckObject.QuickTimeCheck.1;RealPlayer;RealPlayer.RealPlayer(tm) ActiveX Control (32-bit);RealVideo.RealVideo(tm) ActiveX Control (32-bit);Scripting.Dictionary;SWCtl.SWCtl;Shell.UIHelper;ShockwaveFlash.ShockwaveFlash;Skype.Detection;TDCCtl.TDCCtl;WMPlayer.OCX;rmocx.RealPlayer G2 Control;rmocx.RealPlayer G2 Control.1"
            .split(";"),
          function (a) {
            try {
              return new ActiveXObject(a), a
            } catch (b) {
              return null
            }
          }).join(";") : ""
      },
      hasSessionStorage: function () {
        try {
          return !!window.sessionStorage
        } catch (a) {
          return !0
        }
      },
      hasLocalStorage: function () {
        try {
          return !!window.localStorage
        } catch (a) {
          return !0
        }
      },
      hasIndexedDB: function () {
        return true
        return !!window.indexedDB
      },
      getNavigatorCpuClass: function () {
        return navigator.cpuClass ? navigator.cpuClass : "NA"
      },
      getNavigatorPlatform: function () {
        return navigator.platform ? navigator.platform : "NA"
      },
      getHardwareConcurrency: function () {
        return navigator.hardwareConcurrency ? navigator.hardwareConcurrency : "NA"
      },
      getDoNotTrack: function () {
        return navigator.doNotTrack ? navigator.doNotTrack : "NA"
      },
      getCanvasFp: function () {
        return '';
        var a = navigator.userAgent.toLowerCase();
        if ((0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && (0 < a.indexOf("iphone") || 0 < a
          .indexOf("ipad"))) return null;
        a = document.createElement("canvas");
        var b = a.getContext("2d");
        b.fillStyle = "red";
        b.fillRect(30, 10, 200, 100);
        b.strokeStyle = "#1a3bc1";
        b.lineWidth = 6;
        b.lineCap = "round";
        b.arc(50, 50, 20, 0, Math.PI, !1);
        b.stroke();
        b.fillStyle = "#42e1a2";
        b.font = "15.4px 'Arial'";
        b.textBaseline = "alphabetic";
        b.fillText("PR flacks quiz gym: TV DJ box when? \u2620", 15, 60);
        b.shadowOffsetX = 1;
        b.shadowOffsetY = 2;
        b.shadowColor = "white";
        b.fillStyle = "rgba(0, 0, 200, 0.5)";
        b.font = "60px 'Not a real font'";
        b.fillText("No\u9a97", 40, 80);
        return a.toDataURL()
      },
      getWebglFp: function () {
        var a = navigator.userAgent;
        a = a.toLowerCase();
        if ((0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && (0 < a.indexOf("iphone") || 0 < a
          .indexOf("ipad"))) return null;
        a = function (D) {
          b.clearColor(0, 0, 0, 1);
          b.enable(b.DEPTH_TEST);
          b.depthFunc(b.LEQUAL);
          b.clear(b.COLOR_BUFFER_BIT | b.DEPTH_BUFFER_BIT);
          return "[" + D[0] + ", " + D[1] + "]"
        };
        var b = this.getWebglCanvas();
        if (!b) return null;
        var c = [],
          l = b.createBuffer();
        b.bindBuffer(b.ARRAY_BUFFER, l);
        var h = new Float32Array([-.2, -.9, 0, .4, -.26, 0, 0, .732134444, 0]);
        b.bufferData(b.ARRAY_BUFFER, h, b.STATIC_DRAW);
        l.itemSize = 3;
        l.numItems = 3;
        h = b.createProgram();
        var q = b.createShader(b.VERTEX_SHADER);
        b.shaderSource(q,
          "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}"
        );
        b.compileShader(q);
        var z = b.createShader(b.FRAGMENT_SHADER);
        b.shaderSource(z,
          "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}"
        );
        b.compileShader(z);
        b.attachShader(h, q);
        b.attachShader(h, z);
        b.linkProgram(h);
        b.useProgram(h);
        h.vertexPosAttrib = b.getAttribLocation(h, "attrVertex");
        h.offsetUniform = b.getUniformLocation(h, "uniformOffset");
        b.enableVertexAttribArray(h.vertexPosArray);
        b.vertexAttribPointer(h.vertexPosAttrib, l.itemSize, b.FLOAT, !1, 0, 0);
        b.uniform2f(h.offsetUniform, 1, 1);
        b.drawArrays(b.TRIANGLE_STRIP, 0, l.numItems);
        null != b.canvas && c.push(b.canvas.toDataURL());
        c.push("extensions:" + b.getSupportedExtensions().join(";"));
        c.push("extensions:" + b.getSupportedExtensions().join(";"));
        c.push("w1" + a(b.getParameter(b.ALIASED_LINE_WIDTH_RANGE)));
        c.push("w2" + a(b.getParameter(b.ALIASED_POINT_SIZE_RANGE)));
        c.push("w3" + b.getParameter(b.ALPHA_BITS));
        c.push("w4" + (b.getContextAttributes().antialias ? "yes" : "no"));
        c.push("w5" + b.getParameter(b.BLUE_BITS));
        c.push("w6" + b.getParameter(b.DEPTH_BITS));
        c.push("w7" + b.getParameter(b.GREEN_BITS));
        c.push("w8" + function (D) {
          var B, F = D.getExtension("EXT_texture_filter_anisotropic") || D.getExtension(
            "WEBKIT_EXT_texture_filter_anisotropic") || D.getExtension(
              "MOZ_EXT_texture_filter_anisotropic");
          return F ? (B = D.getParameter(F.MAX_TEXTURE_MAX_ANISOTROPY_EXT), 0 === B && (B = 2),
            B) : null
        }(b));
        c.push("w9" + b.getParameter(b.MAX_COMBINED_TEXTURE_IMAGE_UNITS));
        c.push("w10" + b.getParameter(b.MAX_CUBE_MAP_TEXTURE_SIZE));
        c.push("w11" + b.getParameter(b.MAX_FRAGMENT_UNIFORM_VECTORS));
        c.push("w12" + b.getParameter(b.MAX_RENDERBUFFER_SIZE));
        c.push("w13" + b.getParameter(b.MAX_TEXTURE_IMAGE_UNITS));
        c.push("w14" + b.getParameter(b.MAX_TEXTURE_SIZE));
        c.push("w15" + b.getParameter(b.MAX_VARYING_VECTORS));
        c.push("w16" + b.getParameter(b.MAX_VERTEX_ATTRIBS));
        c.push("w17" + b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS));
        c.push("w18" + b.getParameter(b.MAX_VERTEX_UNIFORM_VECTORS));
        c.push("w19" + a(b.getParameter(b.MAX_VIEWPORT_DIMS)));
        c.push("w20" + b.getParameter(b.RED_BITS));
        c.push("w21" + b.getParameter(b.RENDERER));
        c.push("w22" + b.getParameter(b.SHADING_LANGUAGE_VERSION));
        c.push("w23" + b.getParameter(b.STENCIL_BITS));
        c.push("w24" + b.getParameter(b.VENDOR));
        c.push("w25" + b.getParameter(b.VERSION));
        try {
          var C = b.getExtension("WEBGL_debug_renderer_info");
          C && (c.push("wuv:" + b.getParameter(C.UNMASKED_VENDOR_WEBGL)), c.push("wur:" + b.getParameter(
            C.UNMASKED_RENDERER_WEBGL)))
        } catch (D) { }
        return c.join("\u00a7")
      },
      isCanvasSupported: function () {
        return true;
        var a = document.createElement("canvas");
        return !(!a.getContext || !a.getContext("2d"))
      },
      isIE: function () {
        return "Microsoft Internet Explorer" === navigator.appName || "Netscape" === navigator.appName &&
          /Trident/.test(navigator.userAgent) ? !0 : !1
      },
      getWebglCanvas: function () {
        return null;
        var a = document.createElement("canvas"),
          b = null;
        try {
          var c = navigator.userAgent;
          c = c.toLowerCase();
          (0 < c.indexOf("jdjr-app") || 0 <= c.indexOf("jdapp")) && (0 < c.indexOf("iphone") || 0 < c
            .indexOf("ipad")) || (b = a.getContext("webgl") || a.getContext("experimental-webgl"))
        } catch (l) { }
        b || (b = null);
        return b
      },
      each: function (a, b, c) {
        if (null !== a)
          if (this.nativeForEach && a.forEach === this.nativeForEach) a.forEach(b, c);
          else if (a.length === +a.length)
            for (var l = 0, h = a.length; l < h && b.call(c, a[l], l, a) !== {}; l++);
          else
            for (l in a)
              if (a.hasOwnProperty(l) && b.call(c, a[l], l, a) === {}) break
      },
      map: function (a, b, c) {
        var l = [];
        if (null == a) return l;
        if (this.nativeMap && a.map === this.nativeMap) return a.map(b, c);
        this.each(a, function (h, q, z) {
          l[l.length] = b.call(c, h, q, z)
        });
        return l
      },
      x64Add: function (a, b) {
        a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535];
        b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535];
        var c = [0, 0, 0, 0];
        c[3] += a[3] + b[3];
        c[2] += c[3] >>> 16;
        c[3] &= 65535;
        c[2] += a[2] + b[2];
        c[1] += c[2] >>> 16;
        c[2] &= 65535;
        c[1] += a[1] + b[1];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[0] += a[0] + b[0];
        c[0] &= 65535;
        return [c[0] << 16 | c[1], c[2] << 16 | c[3]]
      },
      x64Multiply: function (a, b) {
        a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535];
        b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535];
        var c = [0, 0, 0, 0];
        c[3] += a[3] * b[3];
        c[2] += c[3] >>> 16;
        c[3] &= 65535;
        c[2] += a[2] * b[3];
        c[1] += c[2] >>> 16;
        c[2] &= 65535;
        c[2] += a[3] * b[2];
        c[1] += c[2] >>> 16;
        c[2] &= 65535;
        c[1] += a[1] * b[3];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[1] += a[2] * b[2];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[1] += a[3] * b[1];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[0] += a[0] * b[3] + a[1] * b[2] + a[2] * b[1] + a[3] * b[0];
        c[0] &= 65535;
        return [c[0] << 16 | c[1], c[2] << 16 | c[3]]
      },
      x64Rotl: function (a, b) {
        b %= 64;
        if (32 === b) return [a[1], a[0]];
        if (32 > b) return [a[0] << b | a[1] >>> 32 - b, a[1] << b | a[0] >>> 32 - b];
        b -= 32;
        return [a[1] << b | a[0] >>> 32 - b, a[0] << b | a[1] >>> 32 - b]
      },
      x64LeftShift: function (a, b) {
        b %= 64;
        return 0 === b ? a : 32 > b ? [a[0] << b | a[1] >>> 32 - b, a[1] << b] : [a[1] << b - 32, 0]
      },
      x64Xor: function (a, b) {
        return [a[0] ^ b[0], a[1] ^ b[1]]
      },
      x64Fmix: function (a) {
        a = this.x64Xor(a, [0, a[0] >>> 1]);
        a = this.x64Multiply(a, [4283543511, 3981806797]);
        a = this.x64Xor(a, [0, a[0] >>> 1]);
        a = this.x64Multiply(a, [3301882366, 444984403]);
        return a = this.x64Xor(a, [0, a[0] >>> 1])
      },
      x64hash128: function (a, b) {
        a = a || "";
        b = b || 0;
        var c = a.length % 16,
          l = a.length - c,
          h = [0, b];
        b = [0, b];
        for (var q, z, C = [2277735313, 289559509], D = [1291169091, 658871167], B = 0; B < l; B += 16)
          q = [a.charCodeAt(B + 4) & 255 | (a.charCodeAt(B + 5) & 255) << 8 | (a.charCodeAt(B + 6) &
            255) << 16 | (a.charCodeAt(B + 7) & 255) << 24, a.charCodeAt(B) & 255 | (a.charCodeAt(
              B + 1) & 255) << 8 | (a.charCodeAt(B + 2) & 255) << 16 | (a.charCodeAt(B + 3) & 255) <<
          24], z = [a.charCodeAt(B + 12) & 255 | (a.charCodeAt(B + 13) & 255) << 8 | (a.charCodeAt(
            B + 14) & 255) << 16 | (a.charCodeAt(B + 15) & 255) << 24, a.charCodeAt(B + 8) &
            255 | (a.charCodeAt(B + 9) & 255) << 8 | (a.charCodeAt(B + 10) & 255) << 16 | (a.charCodeAt(
              B + 11) & 255) << 24], q = this.x64Multiply(q, C), q = this.x64Rotl(q, 31), q =
            this.x64Multiply(q, D), h = this.x64Xor(h, q), h = this.x64Rotl(h, 27), h = this.x64Add(h,
              b), h = this.x64Add(this.x64Multiply(h, [0, 5]), [0, 1390208809]), z = this.x64Multiply(
                z, D), z = this.x64Rotl(z, 33), z = this.x64Multiply(z, C), b = this.x64Xor(b, z), b =
            this.x64Rotl(b, 31), b = this.x64Add(b, h), b = this.x64Add(this.x64Multiply(b, [0, 5]), [0,
              944331445]);
        q = [0, 0];
        z = [0, 0];
        switch (c) {
          case 15:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 14)], 48));
          case 14:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 13)], 40));
          case 13:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 12)], 32));
          case 12:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 11)], 24));
          case 11:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 10)], 16));
          case 10:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 9)], 8));
          case 9:
            z = this.x64Xor(z, [0, a.charCodeAt(B + 8)]), z = this.x64Multiply(z, D), z = this.x64Rotl(
              z, 33), z = this.x64Multiply(z, C), b = this.x64Xor(b, z);
          case 8:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 7)], 56));
          case 7:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 6)], 48));
          case 6:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 5)], 40));
          case 5:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 4)], 32));
          case 4:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 3)], 24));
          case 3:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 2)], 16));
          case 2:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 1)], 8));
          case 1:
            q = this.x64Xor(q, [0, a.charCodeAt(B)]), q = this.x64Multiply(q, C), q = this.x64Rotl(
              q, 31), q = this.x64Multiply(q, D), h = this.x64Xor(h, q)
        }
        h = this.x64Xor(h, [0, a.length]);
        b = this.x64Xor(b, [0, a.length]);
        h = this.x64Add(h, b);
        b = this.x64Add(b, h);
        h = this.x64Fmix(h);
        b = this.x64Fmix(b);
        h = this.x64Add(h, b);
        b = this.x64Add(b, h);
        return ("00000000" + (h[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h[1] >>> 0).toString(
          16)).slice(-8) + ("00000000" + (b[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (b[
            1] >>> 0).toString(16)).slice(-8)
      }
    };
}

var JDDSecCryptoJS = JDDSecCryptoJS || function (t, u) {
var v = {},
    x = v.lib = {},
    w = x.Base = function () {
        function g() {}
        return {
            extend: function (m) {
                g.prototype = this;
                var a = new g;
                m && a.mixIn(m);
                a.hasOwnProperty("init") || (a.init = function () {
                    a.$super.init.apply(this, arguments)
                });
                a.init.prototype = a;
                a.$super = this;
                return a
            },
            create: function () {
                var m = this.extend();
                m.init.apply(m, arguments);
                return m
            },
            init: function () {},
            mixIn: function (m) {
                for (var a in m) m.hasOwnProperty(a) && (this[a] = m[a]);
                m.hasOwnProperty("toString") && (this.toString = m.toString)
            },
            clone: function () {
                return this.init.prototype.extend(this)
            }
        }
    }(),
    A = x.WordArray = w.extend({
        init: function (g, m) {
            g = this.words = g || [];
            this.sigBytes = m != u ? m : 4 * g.length
        },
        toString: function (g) {
            return (g || n).stringify(this)
        },
        concat: function (g) {
            var m = this.words,
                a = g.words,
                b = this.sigBytes;
            g = g.sigBytes;
            this.clamp();
            if (b % 4)
                for (var c = 0; c < g; c++) m[b + c >>> 2] |= (a[c >>> 2] >>> 24 - c % 4 * 8 & 255) <<
                    24 - (b + c) % 4 * 8;
            else if (65535 < a.length)
                for (c = 0; c < g; c += 4) m[b + c >>> 2] = a[c >>> 2];
            else m.push.apply(m, a);
            this.sigBytes += g;
            return this
        },
        clamp: function () {
            var g = this.words,
                m = this.sigBytes;
            g[m >>> 2] &= 4294967295 << 32 - m % 4 * 8;
            g.length = t.ceil(m / 4)
        },
        clone: function () {
            var g = w.clone.call(this);
            g.words = this.words.slice(0);
            return g
        },
        random: function (g) {
            for (var m = [], a = 0; a < g; a += 4) m.push(4294967296 * t.random() | 0);
            return new A.init(m, g)
        }
    });
x.UUID = w.extend({
    generateUuid: function () {
        for (var g = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split(""), m = 0, a = g.length; m < a; m++)
            switch (g[m]) {
                case "x":
                    g[m] = t.floor(16 * t.random()).toString(16);
                    break;
                case "y":
                    g[m] = (t.floor(4 * t.random()) + 8).toString(16)
            }
        return g.join("")
    }
});
var y = v.enc = {},
    n = y.Hex = {
        stringify: function (g) {
            var m = g.words;
            g = g.sigBytes;
            var a = [];
            for (var b = 0; b < g; b++) {
                var c = m[b >>> 2] >>> 24 - b % 4 * 8 & 255;
                a.push((c >>> 4).toString(16));
                a.push((c & 15).toString(16))
            }
            return a.join("")
        },
        parse: function (g) {
            for (var m = g.length, a = [], b = 0; b < m; b += 2) a[b >>> 3] |= parseInt(g.substr(b, 2), 16) <<
                24 - b % 8 * 4;
            return new A.init(a, m / 2)
        }
    },
    e = y.Latin1 = {
        stringify: function (g) {
            var m = g.words;
            g = g.sigBytes;
            for (var a = [], b = 0; b < g; b++) a.push(String.fromCharCode(m[b >>> 2] >>> 24 - b % 4 * 8 &
                255));
            return a.join("")
        },
        parse: function (g) {
            for (var m = g.length, a = [], b = 0; b < m; b++) a[b >>> 2] |= (g.charCodeAt(b) & 255) << 24 -
                b % 4 * 8;
            return new A.init(a, m)
        }
    },
    f = y.Utf8 = {
        stringify: function (g) {
            try {
                return decodeURIComponent(escape(e.stringify(g)))
            } catch (m) {
                throw Error("Malformed UTF-8 data");
            }
        },
        parse: function (g) {
            return e.parse(unescape(encodeURIComponent(g)))
        }
    },
    r = x.BufferedBlockAlgorithm = w.extend({
        reset: function () {
            this._data = new A.init;
            this._nDataBytes = 0
        },
        _append: function (g) {
            "string" == typeof g && (g = f.parse(g));
            this._data.concat(g);
            this._nDataBytes += g.sigBytes
        },
        _process: function (g) {
            var m = this._data,
                a = m.words,
                b = m.sigBytes,
                c = this.blockSize,
                l = b / (4 * c);
            l = g ? t.ceil(l) : t.max((l | 0) - this._minBufferSize, 0);
            g = l * c;
            b = t.min(4 * g, b);
            if (g) {
                for (var h = 0; h < g; h += c) this._doProcessBlock(a, h);
                h = a.splice(0, g);
                m.sigBytes -= b
            }
            return new A.init(h, b)
        },
        clone: function () {
            var g = w.clone.call(this);
            g._data = this._data.clone();
            return g
        },
        _minBufferSize: 0
    });
x.Hasher = r.extend({
    cfg: w.extend(),
    init: function (g) {
        this.cfg = this.cfg.extend(g);
        this.reset()
    },
    reset: function () {
        r.reset.call(this);
        this._doReset()
    },
    update: function (g) {
        this._append(g);
        this._process();
        return this
    },
    finalize: function (g) {
        g && this._append(g);
        return this._doFinalize()
    },
    blockSize: 16,
    _createHelper: function (g) {
        return function (m, a) {
            return (new g.init(a)).finalize(m)
        }
    },
    _createHmacHelper: function (g) {
        return function (m, a) {
            return (new k.HMAC.init(g, a)).finalize(m)
        }
    }
});
var k = v.algo = {};
v.channel = {};
return v
}(Math);

JDDSecCryptoJS.lib.Cipher || function (t) {
var u = JDDSecCryptoJS,
    v = u.lib,
    x = v.Base,
    w = v.WordArray,
    A = v.BufferedBlockAlgorithm,
    y = v.Cipher = A.extend({
        cfg: x.extend(),
        createEncryptor: function (g, m) {
            return this.create(this._ENC_XFORM_MODE, g, m)
        },
        createDecryptor: function (g, m) {
            return this.create(this._DEC_XFORM_MODE, g, m)
        },
        init: function (g, m, a) {
            this.cfg = this.cfg.extend(a);
            this._xformMode = g;
            this._key = m;
            this.reset()
        },
        reset: function () {
            A.reset.call(this);
            this._doReset()
        },
        process: function (g) {
            this._append(g);
            return this._process()
        },
        finalize: function (g) {
            g && this._append(g);
            return this._doFinalize()
        },
        keySize: 4,
        ivSize: 4,
        _ENC_XFORM_MODE: 1,
        _DEC_XFORM_MODE: 2,
        _createHelper: function () {
            function g(m) {
                if ("string" != typeof m) return k
            }
            return function (m) {
                return {
                    encrypt: function (a, b, c) {
                        return g(b).encrypt(m, a, b, c)
                    },
                    decrypt: function (a, b, c) {
                        return g(b).decrypt(m, a, b, c)
                    }
                }
            }
        }()
    });
v.StreamCipher = y.extend({
    _doFinalize: function () {
        return this._process(!0)
    },
    blockSize: 1
});
var n = u.mode = {},
    e = v.BlockCipherMode = x.extend({
        createEncryptor: function (g, m) {
            return this.Encryptor.create(g, m)
        },
        createDecryptor: function (g, m) {
            return this.Decryptor.create(g, m)
        },
        init: function (g, m) {
            this._cipher = g;
            this._iv = m
        }
    });
n = n.CBC = function () {
    function g(a, b, c) {
        var l = this._iv;
        l ? this._iv = t : l = this._prevBlock;
        for (var h = 0; h < c; h++) a[b + h] ^= l[h]
    }
    var m = e.extend();
    m.Encryptor = m.extend({
        processBlock: function (a, b) {
            var c = this._cipher,
                l = c.blockSize;
            g.call(this, a, b, l);
            c.encryptBlock(a, b);
            this._prevBlock = a.slice(b, b + l)
        }
    });
    m.Decryptor = m.extend({
        processBlock: function (a, b) {
            var c = this._cipher,
                l = c.blockSize,
                h = a.slice(b, b + l);
            c.decryptBlock(a, b);
            g.call(this, a, b, l);
            this._prevBlock = h
        }
    });
    return m
}();
var f = (u.pad = {}).Pkcs7 = {
    pad: function (g, m) {
        m *= 4;
        m -= g.sigBytes % m;
        for (var a = m << 24 | m << 16 | m << 8 | m, b = [], c = 0; c < m; c += 4) b.push(a);
        m = w.create(b, m);
        g.concat(m)
    },
    unpad: function (g) {
        g.sigBytes -= g.words[g.sigBytes - 1 >>> 2] & 255
    }
};
v.BlockCipher = y.extend({
    cfg: y.cfg.extend({
        mode: n,
        padding: f
    }),
    reset: function () {
        y.reset.call(this);
        var g = this.cfg,
            m = g.iv;
        g = g.mode;
        if (this._xformMode == this._ENC_XFORM_MODE) var a = g.createEncryptor;
        else a = g.createDecryptor, this._minBufferSize = 1;
        this._mode = a.call(g, this, m && m.words)
    },
    _doProcessBlock: function (g, m) {
        this._mode.processBlock(g, m)
    },
    _doFinalize: function () {
        var g = this.cfg.padding;
        if (this._xformMode == this._ENC_XFORM_MODE) {
            g.pad(this._data, this.blockSize);
            var m = this._process(!0)
        } else m = this._process(!0), g.unpad(m);
        return m
    },
    blockSize: 4
});
var r = v.CipherParams = x.extend({
    init: function (g) {
        this.mixIn(g)
    },
    toString: function (g) {
        return (g || this.formatter).stringify(this)
    }
});
u.format = {};
var k = v.SerializableCipher = x.extend({
    cfg: x.extend({}),
    encrypt: function (g, m, a, b) {
        b = this.cfg.extend(b);
        var c = g.createEncryptor(a, b);
        m = c.finalize(m);
        c = c.cfg;
        return r.create({
            ciphertext: m,
            key: a,
            iv: c.iv,
            algorithm: g,
            mode: c.mode,
            padding: c.padding,
            blockSize: g.blockSize,
            formatter: b.format
        })
    },
    decrypt: function (g, m, a, b) {
        b = this.cfg.extend(b);
        m = this._parse(m, b.format);
        return g.createDecryptor(a, b).finalize(m.ciphertext)
    },
    _parse: function (g, m) {
        return "string" == typeof g ? m.parse(g, this) : g
    }
})
}();
(function () {
var t = JDDSecCryptoJS,
    u = t.lib.BlockCipher,
    v = t.algo,
    x = [],
    w = [],
    A = [],
    y = [],
    n = [],
    e = [],
    f = [],
    r = [],
    k = [],
    g = [];
(function () {
    for (var a = [], b = 0; 256 > b; b++) a[b] = 128 > b ? b << 1 : b << 1 ^ 283;
    var c = 0,
        l = 0;
    for (b = 0; 256 > b; b++) {
        var h = l ^ l << 1 ^ l << 2 ^ l << 3 ^ l << 4;
        h = h >>> 8 ^ h & 255 ^ 99;
        x[c] = h;
        w[h] = c;
        var q = a[c],
            z = a[q],
            C = a[z],
            D = 257 * a[h] ^ 16843008 * h;
        A[c] = D << 24 | D >>> 8;
        y[c] = D << 16 | D >>> 16;
        n[c] = D << 8 | D >>> 24;
        e[c] = D;
        D = 16843009 * C ^ 65537 * z ^ 257 * q ^ 16843008 * c;
        f[h] = D << 24 | D >>> 8;
        r[h] = D << 16 | D >>> 16;
        k[h] = D << 8 | D >>> 24;
        g[h] = D;
        c ? (c = q ^ a[a[a[C ^ q]]], l ^= a[a[l]]) : c = l = 1
    }
})();
var m = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];
v = v.AES = u.extend({
    _doReset: function () {
        var a = this._key,
            b = a.words,
            c = a.sigBytes / 4;
        a = 4 * ((this._nRounds = c + 6) + 1);
        for (var l = this._keySchedule = [], h = 0; h < a; h++)
            if (h < c) l[h] = b[h];
            else {
                var q = l[h - 1];
                h % c ? 6 < c && 4 == h % c && (q = x[q >>> 24] << 24 | x[q >>> 16 & 255] << 16 | x[
                    q >>> 8 & 255] << 8 | x[q & 255]) : (q = q << 8 | q >>> 24, q = x[q >>> 24] <<
                    24 | x[q >>> 16 & 255] << 16 | x[q >>> 8 & 255] << 8 | x[q & 255], q ^= m[h /
                        c | 0] << 24);
                l[h] = l[h - c] ^ q
            } b = this._invKeySchedule = [];
        for (c = 0; c < a; c++) h = a - c, q = c % 4 ? l[h] : l[h - 4], b[c] = 4 > c || 4 >= h ? q :
            f[x[q >>> 24]] ^ r[x[q >>> 16 & 255]] ^ k[x[q >>> 8 & 255]] ^ g[x[q & 255]]
    },
    encryptBlock: function (a, b) {
        this._doCryptBlock(a, b, this._keySchedule, A, y, n, e, x)
    },
    decryptBlock: function (a, b) {
        var c = a[b + 1];
        a[b + 1] = a[b + 3];
        a[b + 3] = c;
        this._doCryptBlock(a, b, this._invKeySchedule, f, r, k, g, w);
        c = a[b + 1];
        a[b + 1] = a[b + 3];
        a[b + 3] = c
    },
    _doCryptBlock: function (a, b, c, l, h, q, z, C) {
        for (var D = this._nRounds, B = a[b] ^ c[0], F = a[b + 1] ^ c[1], H = a[b + 2] ^ c[2], G =
                a[b + 3] ^ c[3], I = 4, M = 1; M < D; M++) {
            var J = l[B >>> 24] ^ h[F >>> 16 & 255] ^ q[H >>> 8 & 255] ^ z[G & 255] ^ c[I++],
                K = l[F >>> 24] ^ h[H >>> 16 & 255] ^ q[G >>> 8 & 255] ^ z[B & 255] ^ c[I++],
                L = l[H >>> 24] ^ h[G >>> 16 & 255] ^ q[B >>> 8 & 255] ^ z[F & 255] ^ c[I++];
            G = l[G >>> 24] ^ h[B >>> 16 & 255] ^ q[F >>> 8 & 255] ^ z[H & 255] ^ c[I++];
            B = J;
            F = K;
            H = L
        }
        J = (C[B >>> 24] << 24 | C[F >>> 16 & 255] << 16 | C[H >>> 8 & 255] << 8 | C[G & 255]) ^ c[
            I++];
        K = (C[F >>> 24] << 24 | C[H >>> 16 & 255] << 16 | C[G >>> 8 & 255] << 8 | C[B & 255]) ^ c[
            I++];
        L = (C[H >>> 24] << 24 | C[G >>> 16 & 255] << 16 | C[B >>> 8 & 255] << 8 | C[F & 255]) ^ c[
            I++];
        G = (C[G >>> 24] << 24 | C[B >>> 16 & 255] << 16 | C[F >>> 8 & 255] << 8 | C[H & 255]) ^ c[
            I++];
        a[b] = J;
        a[b + 1] = K;
        a[b + 2] = L;
        a[b + 3] = G
    },
    keySize: 8
});
t.AES = u._createHelper(v)
})();

(function () {
var t = JDDSecCryptoJS,
    u = t.lib,
    v = u.WordArray,
    x = u.Hasher,
    w = [];
u = t.algo.SHA1 = x.extend({
    _doReset: function () {
        this._hash = new v.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
    },
    _doProcessBlock: function (A, y) {
        for (var n = this._hash.words, e = n[0], f = n[1], r = n[2], k = n[3], g = n[4], m = 0; 80 >
            m; m++) {
            if (16 > m) w[m] = A[y + m] | 0;
            else {
                var a = w[m - 3] ^ w[m - 8] ^ w[m - 14] ^ w[m - 16];
                w[m] = a << 1 | a >>> 31
            }
            a = (e << 5 | e >>> 27) + g + w[m];
            a = 20 > m ? a + ((f & r | ~f & k) + 1518500249) : 40 > m ? a + ((f ^ r ^ k) +
                1859775393) : 60 > m ? a + ((f & r | f & k | r & k) - 1894007588) : a + ((f ^ r ^
                k) - 899497514);
            g = k;
            k = r;
            r = f << 30 | f >>> 2;
            f = e;
            e = a
        }
        n[0] = n[0] + e | 0;
        n[1] = n[1] + f | 0;
        n[2] = n[2] + r | 0;
        n[3] = n[3] + k | 0;
        n[4] = n[4] + g | 0
    },
    _doFinalize: function () {
        var A = this._data,
            y = A.words,
            n = 8 * this._nDataBytes,
            e = 8 * A.sigBytes;
        y[e >>> 5] |= 128 << 24 - e % 32;
        y[(e + 64 >>> 9 << 4) + 14] = Math.floor(n / 4294967296);
        y[(e + 64 >>> 9 << 4) + 15] = n;
        A.sigBytes = 4 * y.length;
        this._process();
        return this._hash
    },
    clone: function () {
        var A = x.clone.call(this);
        A._hash = this._hash.clone();
        return A
    }
});
t.SHA1 = x._createHelper(u);
t.HmacSHA1 = x._createHmacHelper(u)
})();

(function () {
var t = JDDSecCryptoJS,
    u = t.channel;
u.Downlink = {
    deBase32: function (v) {
        if (void 0 == v || "" == v || null == v) return "";
        var x = t.enc.Hex.parse("30313233343536373839616263646566"),
            w = t.enc.Hex.parse("724e5428476f307361374d3233784a6c");
        return t.AES.decrypt({
            ciphertext: t.enc.Base32.parse(v)
        }, w, {
            mode: t.mode.CBC,
            padding: t.pad.Pkcs7,
            iv: x
        }).toString(t.enc.Utf8)
    },
    deBase64: function (v) {
        return ""
    }
};
u.Uplink = {
    enAsBase32: function (v) {
        return ""
    },
    enAsBase64: function (v) {
        return ""
    }
}
})();

(function () {
var t = JDDSecCryptoJS,
    u = t.lib.WordArray;
t.enc.Base32 = {
    stringify: function (v) {
        var x = v.words,
            w = v.sigBytes,
            A = this._map;
        v.clamp();
        v = [];
        for (var y = 0; y < w; y += 5) {
            for (var n = [], e = 0; 5 > e; e++) n[e] = x[y + e >>> 2] >>> 24 - (y + e) % 4 * 8 & 255;
            n = [n[0] >>> 3 & 31, (n[0] & 7) << 2 | n[1] >>> 6 & 3, n[1] >>> 1 & 31, (n[1] & 1) << 4 |
                n[2] >>> 4 & 15, (n[2] & 15) << 1 | n[3] >>> 7 & 1, n[3] >>> 2 & 31, (n[3] & 3) <<
                3 | n[4] >>> 5 & 7, n[4] & 31];
            for (e = 0; 8 > e && y + .625 * e < w; e++) v.push(A.charAt(n[e]))
        }
        if (x = A.charAt(32))
            for (; v.length % 8;) v.push(x);
        return v.join("")
    },
    parse: function (v) {
        var x = v.length,
            w = this._map,
            A = w.charAt(32);
        A && (A = v.indexOf(A), -1 != A && (x = A));
        A = [];
        for (var y = 0, n = 0; n < x; n++) {
            var e = n % 8;
            if (0 != e && 2 != e && 5 != e) {
                var f = 255 & w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8,
                    r = 255 & w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8;
                e = e % 3 ? 0 : 255 & w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7);
                A[y >>> 2] |= (f | r | e) << 24 - y % 4 * 8;
                y++
            }
        }
        return u.create(A, y)
    },
    _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
}
})();

class JDDMAC {
  static t() {
    return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D"
    .split(" ").map(function (v) {
        return parseInt(v, 16)
    })
  }
  mac(v) {
    for (var x = -1, w = 0, A = v.length; w < A; w++) x = x >>> 8 ^ t[(x ^ v.charCodeAt(w)) & 255];
    return (x ^ -1) >>> 0
  }
}
var _CurrentPageProtocol = "https:" == document.location.protocol ? "https://" : "http://",
_JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com",
_url_query_str = "",
_root_domain = "",
_CurrentPageUrl = function () {
    var t = document.location.href.toString();
    try {
        _root_domain = /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec(t)[1]
    } catch (v) {}
    var u = t.indexOf("?");
    0 < u && (_url_query_str = t.substring(u + 1), 500 < _url_query_str.length && (_url_query_str = _url_query_str.substring(
        0, 499)), t = t.substring(0, u));
    return t = t.substring(_CurrentPageProtocol.length)
}(),
jd_shadow__ = function () {
    try {
        var t = JDDSecCryptoJS,
            u = [];
        u.push(_CurrentPageUrl);
        var v = t.lib.UUID.generateUuid();
        u.push(v);
        var x = (new Date).getTime();
        u.push(x);
        var w = t.SHA1(u.join("")).toString().toUpperCase();
        u = [];
        u.push("JD3");
        u.push(w);
        var A = (new JDDMAC).mac(u.join(""));
        u.push(A);
        var y = t.enc.Hex.parse("30313233343536373839616263646566"),
            n = t.enc.Hex.parse("4c5751554935255042304e6458323365"),
            e = u.join("");
        return t.AES.encrypt(t.enc.Utf8.parse(e), n, {
            mode: t.mode.CBC,
            padding: t.pad.Pkcs7,
            iv: y
        }).ciphertext.toString(t.enc.Base32)
    } catch (f) {
      console.log(f)
    }
}()
var td_collect = new function () {
    function t() {
      var n = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection;
      if (n) {
        var e = function (k) {
          var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/,
            m =
              /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/;
          try {
            var a = g.exec(k);
            if (null == a || 0 == a.length || void 0 == a) a = m.exec(k);
            var b = a[1];
            void 0 === f[b] && w.push(b);
            f[b] = !0
          } catch (c) { }
        },
          f = {};
        try {
          var r = new n({
            iceServers: [{
              url: "stun:stun.services.mozilla.com"
            }]
          })
        } catch (k) { }
        try {
          void 0 === r && (r = new n({
            iceServers: []
          }))
        } catch (k) { }
        if (r || window.mozRTCPeerConnection) try {
          r.createDataChannel("chat", {
            reliable: !1
          })
        } catch (k) { }
        r && (r.onicecandidate = function (k) {
          k.candidate && e(k.candidate.candidate)
        }, r.createOffer(function (k) {
          r.setLocalDescription(k, function () { }, function () { })
        }, function () { }), setTimeout(function () {
          try {
            r.localDescription.sdp.split("\n").forEach(function (k) {
              0 === k.indexOf("a=candidate:") && e(k)
            })
          } catch (k) { }
        }, 800))
      }
    }

    function u(n) {
      var e;
      return (e = document.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"))) ? e[2] : ""
    }

    function v() {
      function n(g) {
        var m = {};
        r.style.fontFamily = g;
        document.body.appendChild(r);
        m.height = r.offsetHeight;
        m.width = r.offsetWidth;
        document.body.removeChild(r);
        return m
      }
      var e = ["monospace", "sans-serif", "serif"],
        f = [],
        r = document.createElement("span");
      r.style.fontSize = "72px";
      r.style.visibility = "hidden";
      r.innerHTML = "mmmmmmmmmmlli";
      for (var k = 0; k < e.length; k++) f[k] = n(e[k]);
      this.checkSupportFont = function (g) {
        for (var m = 0; m < f.length; m++) {
          var a = n(g + "," + e[m]),
            b = f[m];
          if (a.height !== b.height || a.width !== b.width) return !0
        }
        return !1
      }
    }

    function x(n) {
      var e = {};
      e.name = n.name;
      e.filename = n.filename.toLowerCase();
      e.description = n.description;
      void 0 !== n.version && (e.version = n.version);
      e.mimeTypes = [];
      for (var f = 0; f < n.length; f++) {
        var r = n[f],
          k = {};
        k.description = r.description;
        k.suffixes = r.suffixes;
        k.type = r.type;
        e.mimeTypes.push(k)
      }
      return e
    }
    this.bizId = "";
    this.bioConfig = {
      type: "42",
      operation: 1,
      duraTime: 2,
      interval: 50
    };
    this.worder = null;
    this.deviceInfo = {
      userAgent: "",
      isJdApp: !1,
      isJrApp: !1,
      sdkToken: "",
      fp: "",
      eid: ""
    };
    this.isRpTok = !1;
    this.obtainLocal = function (n) {
      n = "undefined" !== typeof n && n ? !0 : !1;
      var e = {};
      try {
        var f = document.cookie.replace(/(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, "$1");
        0 !== f.length && (e.cookie = f)
      } catch (k) { }
      try {
        window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage =
          window.localStorage.getItem("3AB9D23F7A4B3C9B"))
      } catch (k) { }
      try {
        window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[
          "3AB9D23F7A4B3C9B"])
      } catch (k) { }
      try {
        p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"])
      } catch (k) { }
      try {
        d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load(
          "jdgia_user_data"), e.userData = d.getAttribute("3AB9D23F7A4B3C9B"))
      } catch (k) { }
      try {
        E.indexedDbId && (e.indexedDb = E.indexedDbId)
      } catch (k) { }
      try {
        E.webDbId && (e.webDb = E.webDbId)
      } catch (k) { }
      try {
        for (var r in e)
          if (32 < e[r].length) {
            _JdEid = e[r];
            n || (_eidFlag = !0);
            break
          }
      } catch (k) { }
      try {
        ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && this.db("3AB9D23F7A4B3C9B");
        if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _JdEid = u("3AB9D23F7A4B3C9B");
        if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0
      } catch (k) { }
      return _JdEid
    };
    var w = [],
      A =
        "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin"
          .split(";"),
      y =
        "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako"
          .split(";");
    this.toJson = "object" === typeof JSON && JSON.stringify;
    this.init = function () {
      _fingerprint_step = 6;
      t();
      _fingerprint_step = 7;
      "function" !== typeof this.toJson && (this.toJson = function (n) {
        var e = typeof n;
        if ("undefined" === e || null === n) return "null";
        if ("number" === e || "boolean" === e) return n + "";
        if ("object" === e && n && n.constructor === Array) {
          e = [];
          for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f]));
          return "[" + (e + "]")
        }
        if ("object" === e) {
          e = [];
          for (f in n) n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f]));
          return "{" + (e + "}")
        }
      });
      this.sdkCollectInit()
    };
    this.sdkCollectInit = function () {
      try {
        try {
          bp_bizid && (this.bizId = bp_bizid)
        } catch (f) {
          this.bizId = "jsDefault"
        }
        var n = navigator.userAgent.toLowerCase(),
          e = !n.match(/(iphone|ipad|ipod)/i) && (-1 < n.indexOf("android") || -1 < n.indexOf("adr"));
        this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp");
        this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr");
        this.deviceInfo.userAgent = navigator.userAgent;
        this.deviceInfo.isAndroid = e;
        this.createWorker()
      } catch (f) { }
    };
    this.db = function (n, e) {
      try {
        _fingerprint_step = "m";
        if (window.openDatabase) {
          var f = window.openDatabase("sqlite_jdtdstorage", "", "jdtdstorage", 1048576);
          void 0 !== e && "" != e ? f.transaction(function (r) {
            r.executeSql(
              "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))",
              [],
              function (k, g) { },
              function (k, g) { });
            r.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [n, e],
              function (k, g) { },
              function (k, g) { })
          }) : f.transaction(function (r) {
            r.executeSql("SELECT value FROM cache WHERE name=?", [n], function (k, g) {
              1 <= g.rows.length && (_JdEid = g.rows.item(0).value)
            }, function (k, g) { })
          })
        }
        _fingerprint_step = "n"
      } catch (r) { }
    };
    this.setCookie = function (n, e) {
      void 0 !== e && "" != e && (document.cookie = n + "=" + e +
        "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + _root_domain)
    };
    this.tdencrypt = function (n) {
      n = this.toJson(n);
      n = encodeURIComponent(n);
      var e = "",
        f = 0;
      do {
        var r = n.charCodeAt(f++);
        var k = n.charCodeAt(f++);
        var g = n.charCodeAt(f++);
        var m = r >> 2;
        r = (r & 3) << 4 | k >> 4;
        var a = (k & 15) << 2 | g >> 6;
        var b = g & 63;
        isNaN(k) ? a = b = 64 : isNaN(g) && (b = 64);
        e = e + "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(m) +
          "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(r) +
          "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(a) +
          "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(b)
      } while (f < n.length);
      return e + "/"
    };
    this.collect = function () {
      var n = new Date;
      try {
        var e = document.createElement("div"),
          f = {},
          r =
            "ActiveBorder ActiveCaption AppWorkspace Background ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText"
              .split(" ");
        if (window.getComputedStyle)
          for (var k = 0; k < r.length; k++) document.body.appendChild(e), e.style.color = r[k], f[r[k]] =
            window.getComputedStyle(e).getPropertyValue("color"), document.body.removeChild(e)
      } catch (D) { }
      e = {
        ca: {},
        ts: {},
        m: {}
      };
      r = e.ca;
      r.tdHash = _jdfp_canvas_md5;
      var g = !1;
      if (k = window.WebGLRenderingContext) k = navigator.userAgent, k = k.toLowerCase(), k = (0 < k.indexOf(
        "jdjr-app") || 0 <= k.indexOf("jdapp")) && (0 < k.indexOf("iphone") || 0 < k.indexOf("ipad")) ?
        !0 : !1, k = !k;
      if (k) {
        var m = ["webgl", "experimental-webgl", "moz-webgl", "webkit-3d"],
          a = [],
          b;
        for (k = 0; k < m.length; k++) try {
          var c = !1;
          (c = document.createElement("canvas").getContext(m[k], {
            stencil: !0
          })) && c && (b = c, a.push(m[k]))
        } catch (D) { }
        a.length && (g = {
          name: a,
          gl: b
        })
      }
      if (g) {
        k = g.gl;
        r.contextName = g.name.join();
        r.webglversion = k.getParameter(k.VERSION);
        r.shadingLV = k.getParameter(k.SHADING_LANGUAGE_VERSION);
        r.vendor = k.getParameter(k.VENDOR);
        r.renderer = k.getParameter(k.RENDERER);
        b = [];
        try {
          b = k.getSupportedExtensions(), r.extensions = b
        } catch (D) { }
        try {
          var l = k.getExtension("WEBGL_debug_renderer_info");
          l && (r.wuv = k.getParameter(l.UNMASKED_VENDOR_WEBGL), r.wur = k.getParameter(l.UNMASKED_RENDERER_WEBGL))
        } catch (D) { }
      }
      e.m.documentMode = document.documentMode;
      e.m.compatMode = document.compatMode;
      l = [];
      // r = new v;
      // for (k = 0; k < A.length; k++) b = A[k], r.checkSupportFont(b) && l.push(b);
      e.fo = l;
      k = {};
      l = [];
      for (var h in navigator) "object" != typeof navigator[h] && (k[h] = navigator[h]), l.push(h);
      k.enumerationOrder = l;
      k.javaEnabled = false;
      try {
        k.taintEnabled = navigator.taintEnabled()
      } catch (D) { }
      e.n = k;
      k = navigator.userAgent.toLowerCase();
      if (h = k.match(/rv:([\d.]+)\) like gecko/)) var q = h[1];
      if (h = k.match(/msie ([\d.]+)/)) q = h[1];
      h = [];
      if (q)
        for (q =
          "AcroPDF.PDF;Adodb.Stream;AgControl.AgControl;DevalVRXCtrl.DevalVRXCtrl.1;MacromediaFlashPaper.MacromediaFlashPaper;Msxml2.DOMDocument;Msxml2.XMLHTTP;PDF.PdfCtrl;QuickTime.QuickTime;QuickTimeCheckObject.QuickTimeCheck.1;RealPlayer;RealPlayer.RealPlayer(tm) ActiveX Control (32-bit);RealVideo.RealVideo(tm) ActiveX Control (32-bit);rmocx.RealPlayer G2 Control;Scripting.Dictionary;Shell.UIHelper;ShockwaveFlash.ShockwaveFlash;SWCtl.SWCtl;TDCCtl.TDCCtl;WMPlayer.OCX"
            .split(";"), k = 0; k < q.length; k++) {
          var z = q[k];
          try {
            var C = new ActiveXObject(z);
            l = {};
            l.name = z;
            try {
              l.version = C.GetVariable("$version")
            } catch (D) { }
            try {
              l.version = C.GetVersions()
            } catch (D) { }
            l.version && 0 < l.version.length || (l.version = "");
            h.push(l)
          } catch (D) { }
        } else {
        q = navigator.plugins;
        l = {};
        for (k = 0; k < q.length; k++) z = q[k], l[z.name] = 1, h.push(x(z));
        for (k = 0; k < y.length; k++) C = y[k], l[C] || (z = q[C], z && h.push(x(z)))
      }
      q =
        "availHeight availWidth colorDepth bufferDepth deviceXDPI deviceYDPI height width logicalXDPI logicalYDPI pixelDepth updateInterval"
          .split(" ");
      z = {};
      for (k = 0; q.length > k; k++) C = q[k], void 0 !== screen[C] && (z[C] = screen[C]);
      q = ["devicePixelRatio", "screenTop", "screenLeft"];
      l = {};
      for (k = 0; q.length > k; k++) C = q[k], void 0 !== window[C] && (l[C] = window[C]);
      e.p = h;
      e.w = l;
      e.s = z;
      e.sc = f;
      e.tz = n.getTimezoneOffset();
      e.lil = w.sort().join("|");
      e.wil = "";
      f = {};
      try {
        f.cookie = navigator.cookieEnabled, f.localStorage = !!window.localStorage, f.sessionStorage = !!
          window.sessionStorage, f.globalStorage = !!window.globalStorage, f.indexedDB = !!window.indexedDB
      } catch (D) { }
      e.ss = f;
      e.ts.deviceTime = n.getTime();
      e.ts.deviceEndTime = (new Date).getTime();
      return this.tdencrypt(e)
    };
    this.collectSdk = function (n) {
      try {
        var e = this,
          f = !1,
          r = e.getLocal("BATQW722QTLYVCRD");
        if (null != r && void 0 != r && "" != r) try {
          var k = JSON.parse(r),
            g = (new Date).getTime();
          null != k && void 0 != k.t && "number" == typeof k.t && (12E5 >= g - k.t && void 0 != k.tk &&
            null != k.tk && "" != k.tk && k.tk.startsWith("jdd") ? (e.deviceInfo.sdkToken = k.tk,
              f = !0) : void 0 != k.tk && null != k.tk && "" != k.tk && (e.deviceInfo.sdkToken =
                k.tk))
        } catch (m) { }
        r = !1;
        e.deviceInfo.isJdApp ? (e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2], (r = 0 < e.compareVersion(
          e.deviceInfo.clientVersion, "7.0.2")) && !f && e.getJdSdkCacheToken(function (m) {
            e.deviceInfo.sdkToken = m;
            null != m && "" != m && m.startsWith("jdd") || e.getJdBioToken(n)
          })) : e.deviceInfo.isJrApp && (e.deviceInfo.clientVersion = navigator.userAgent.match(
            /clientVersion=([^&]*)(&|$)/)[1], (r = 0 < e.compareVersion(e.deviceInfo.clientVersion,
              "4.6.0")) && !f && e.getJdJrSdkCacheToken(function (m) {
                e.deviceInfo.sdkToken = m;
                null != m && "" != m && m.startsWith("jdd") || e.getJdJrBioToken(n)
              }));
        "function" == typeof n && n(e.deviceInfo)
      } catch (m) { }
    };
    this.compareVersion = function (n, e) {
      try {
        if (n === e) return 0;
        var f = n.split(".");
        var r = e.split(".");
        for (n = 0; n < f.length; n++) {
          var k = parseInt(f[n]);
          if (!r[n]) return 1;
          var g = parseInt(r[n]);
          if (k < g) break;
          if (k > g) return 1
        }
      } catch (m) { }
      return -1
    };
    this.isWKWebView = function () {
      return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || 1 == window._is_jdsh_wkwebview ? !0 : !1
    };
    this.getErrorToken = function (n) {
      try {
        if (n) {
          var e = (n + "").match(/"token":"(.*?)"/);
          if (e && 1 < e.length) return e[1]
        }
      } catch (f) { }
      return ""
    };
    this.getJdJrBioToken = function (n) {
      var e = this;
      "undefined" != typeof JrBridge && null != JrBridge && "undefined" != typeof JrBridge._version && (0 > e
        .compareVersion(JrBridge._version, "2.0.0") ? console.error(
          "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio") : JrBridge.callNative({
            type: e.bioConfig.type,
            operation: e.bioConfig.operation,
            biometricData: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            }
          }, function (f) {
            try {
              "object" != typeof f && (f = JSON.parse(f)), e.deviceInfo.sdkToken = f.token
            } catch (r) {
              console.error(r)
            }
            null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = {
              tk: e.deviceInfo.sdkToken,
              t: (new Date).getTime()
            }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))
          }))
    };
    this.getJdJrSdkCacheToken = function (n) {
      var e = this;
      try {
        "undefined" == typeof JrBridge || null == JrBridge || "undefined" == typeof JrBridge._version || 0 >
          e.compareVersion(JrBridge._version, "2.0.0") || JrBridge.callNative({
            type: e.bioConfig.type,
            operation: 5,
            biometricData: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            }
          }, function (f) {
            var r = "";
            try {
              "object" != typeof f && (f = JSON.parse(f)), r = f.token
            } catch (k) {
              console.error(k)
            }
            null != r && "" != r && "function" == typeof n && (n(r), r.startsWith("jdd") && (f = {
              tk: r,
              t: (new Date).getTime()
            }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))))
          })
      } catch (f) { }
    };
    this.getJdBioToken = function (n) {
      var e = this;
      n = JSON.stringify({
        businessType: "bridgeBiologicalProbe",
        callBackName: "_bioDeviceCb",
        params: {
          pin: "",
          jsonData: {
            type: e.bioConfig.type,
            operation: e.bioConfig.operation,
            data: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            },
            biometricData: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            }
          }
        }
      });
      e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({
        method: "notifyMessageToNative",
        params: n
      }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n);
      window._bioDeviceCb = function (f) {
        try {
          var r = "object" == typeof f ? f : JSON.parse(f);
          if (void 0 != r && null != r && "0" != r.status) return;
          null != r.data.token && void 0 != r.data.token && "" != r.data.token && (e.deviceInfo.sdkToken =
            r.data.token)
        } catch (k) {
          f = e.getErrorToken(f), null != f && "" != f && (e.deviceInfo.sdkToken = f)
        }
        null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = {
          tk: e.deviceInfo.sdkToken,
          t: (new Date).getTime()
        }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))
      }
    };
    this.getJdSdkCacheToken = function (n) {
      try {
        var e = this,
          f = JSON.stringify({
            businessType: "bridgeBiologicalProbe",
            callBackName: "_bioDeviceSdkCacheCb",
            params: {
              pin: "",
              jsonData: {
                type: e.bioConfig.type,
                operation: 5,
                data: {
                  bizId: e.bizId,
                  duraTime: e.bioConfig.duraTime,
                  interval: e.bioConfig.interval
                },
                biometricData: {
                  bizId: e.bizId,
                  duraTime: e.bioConfig.duraTime,
                  interval: e.bioConfig.interval
                }
              }
            }
          });
        e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({
          method: "notifyMessageToNative",
          params: f
        }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f);
        window._bioDeviceSdkCacheCb = function (r) {
          var k = "";
          try {
            var g = "object" == typeof r ? r : JSON.parse(r);
            if (void 0 != g && null != g && "0" != g.status) return;
            k = g.data.token
          } catch (m) {
            k = e.getErrorToken(r)
          }
          null != k && "" != k && "function" == typeof n && (n(k), k.startsWith("jdd") && (r = {
            tk: k,
            t: (new Date).getTime()
          }, e.store("BATQW722QTLYVCRD", JSON.stringify(r))))
        }
      } catch (r) { }
    };
    this.store = function (n, e) {
      try {
        this.setCookie(n, e)
      } catch (f) { }
      try {
        window.localStorage && window.localStorage.setItem(n, e)
      } catch (f) { }
      try {
        window.sessionStorage && window.sessionStorage.setItem(n, e)
      } catch (f) { }
      try {
        window.globalStorage && window.globalStorage[".localdomain"].setItem(n, e)
      } catch (f) { }
      try {
        this.db(n, _JdEid)
      } catch (f) { }
    };
    this.getLocal = function (n) {
      var e = {},
        f = null;
      try {
        var r = document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"),
          "$1");
        0 !== r.length && (e.cookie = r)
      } catch (g) { }
      try {
        window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage =
          window.localStorage.getItem(n))
      } catch (g) { }
      try {
        window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[
          n])
      } catch (g) { }
      try {
        p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"][n])
      } catch (g) { }
      try {
        d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load(
          "jdgia_user_data"), e.userData = d.getAttribute(n))
      } catch (g) { }
      try {
        E.indexedDbId && (e.indexedDb = E.indexedDbId)
      } catch (g) { }
      try {
        E.webDbId && (e.webDb = E.webDbId)
      } catch (g) { }
      try {
        for (var k in e)
          if (32 < e[k].length) {
            f = e[k];
            break
          }
      } catch (g) { }
      try {
        if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n)
      } catch (g) { }
      return f
    };
    this.createWorker = function () {
      if (window.Worker) {
        try {
          var n = new Blob([
            "onmessage = function (event) {\n    var data = JSON.parse(event.data);\n    try {\n        var httpRequest;\n        try {\n            httpRequest = new XMLHttpRequest();\n        } catch (h) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n            } catch (l) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n            } catch (r) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n            } catch (n) {}\n\n        if(data){\n            httpRequest['open']('POST', data.url, false);\n            httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            httpRequest['onreadystatechange'] = function () {\n                if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n                    postMessage(httpRequest.responseText);\n                }\n            };\n            httpRequest['send'](data.data);\n        }\n\n    }catch (e){console.error(e);}\n};"
          ], {
            type: "application/javascript"
          })
        } catch (e) {
          window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder, n =
            new BlobBuilder, n.append(
              "onmessage = function (event) {\n    var data = JSON.parse(event.data);\n    try {\n        var httpRequest;\n        try {\n            httpRequest = new XMLHttpRequest();\n        } catch (h) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n            } catch (l) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n            } catch (r) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n            } catch (n) {}\n\n        if(data){\n            httpRequest['open']('POST', data.url, false);\n            httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            httpRequest['onreadystatechange'] = function () {\n                if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n                    postMessage(httpRequest.responseText);\n                }\n            };\n            httpRequest['send'](data.data);\n        }\n\n    }catch (e){console.error(e);}\n};"
            ), n = n.getBlob()
        }
        try {
          this.worker = new Worker(URL.createObjectURL(n))
        } catch (e) { }
      }
    };
    this.reportWorker = function (n, e, f, r) {
      try {
        null != this.worker && (this.worker.postMessage(JSON.stringify({
          url: n,
          data: e,
          success: !1,
          async: !1
        })), this.worker.onmessage = function (k) { })
      } catch (k) { }
    }
};

function td_collect_exe() {
  _fingerprint_step = 8;
  var t = td_collect.collect();
  td_collect.collectSdk();
  var u = "string" === typeof orderId ? orderId : "",
    v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1;
  u = {
    pin: _jdJrTdCommonsObtainPin(v),
    oid: u,
    p: "https:" == document.location.protocol ? "s" : "h",
    fp: risk_jd_local_fingerprint,
    ctype: v,
    v: "2.7.10.4",
    f: "3"
  };
  try {
    u.o = _CurrentPageUrl, u.qs = _url_query_str
  } catch (w) { }
  _fingerprint_step = 9;
  0 >= _JdEid.length && (_JdEid = td_collect.obtainLocal(), 0 < _JdEid.length && (_eidFlag = !0));
  u.fc = _JdEid;
  try {
    u.t = jd_risk_token_id
  } catch (w) { }
  try {
    if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) u.qi = gia_fp_qd_uuid;
    else {
      var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid");
      u.qi = void 0 == x ? "" : x
    }
  } catch (w) { }
  "undefined" != typeof jd_shadow__ && 0 < jd_shadow__.length && (u.jtb = jd_shadow__);
  try {
    td_collect.deviceInfo && void 0 != td_collect.deviceInfo && null != td_collect.deviceInfo.sdkToken && "" !=
      td_collect.deviceInfo.sdkToken ? (u.stk = td_collect.deviceInfo.sdkToken, td_collect.isRpTok = !0) :
      td_collect.isRpTok = !1
  } catch (w) {
    td_collect.isRpTok = !1
  }
  x = td_collect.tdencrypt(u);
  // console.log(u)
  return { a: x, d: t }
}

function _jdJrTdCommonsObtainPin(t) {
  var u = "";
  "string" === typeof jd_jr_td_risk_pin && 1 == t ? u = jd_jr_td_risk_pin : "string" === typeof pin ? u = pin :
    "object" === typeof pin && "string" === typeof jd_jr_td_risk_pin && (u = jd_jr_td_risk_pin);
  return u
};

function getBody(url = document.location.href) {
  navigator.userAgent = UA
  let href = url
  let choose = /((https?:)\/\/([^\/]+))(.+)/.exec(url)
  let [, origin, protocol, host, pathname] = choose;
  document.location.href = href
  document.location.origin = origin
  document.location.protocol = protocol
  document.location.host = host
  document.location.pathname = pathname
  const JF = new JdJrTdRiskFinger();
  let fp = JF.f.get(function (t) {
    risk_jd_local_fingerprint = t
    return t
  });
  let arr = td_collect_exe()
  return { fp, ...arr }
}

JdJrTdRiskFinger.getBody = getBody;
module.exports = JdJrTdRiskFinger;

================================================
FILE: JDJRValidator_Pure.js
================================================
const https = require('https');
const http = require('http');
const stream = require('stream');
const zlib = require('zlib');
const vm = require('vm');
const PNG = require('png-js');
let UA = `jdapp;iPhone;10.1.0;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`;
const validatorCount = process.env.JDJR_validator_Count ? process.env.JDJR_validator_Count : 100

function randomString(e) {
  e = e || 32;
  let t = "abcdef0123456789", a = t.length, n = "";
  for (i = 0; i < e; i++)
    n += t.charAt(Math.floor(Math.random() * a));
  return n
}

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));
}

class PNGDecoder extends PNG {
  constructor(args) {
    super(args);
    this.pixels = [];
  }

  decodeToPixels() {
    return new Promise((resolve) => {
      this.decode((pixels) => {
        this.pixels = pixels;
        resolve();
      });
    });
  }

  getImageData(x, y, w, h) {
    const {pixels} = this;
    const len = w * h * 4;
    const startIndex = x * 4 + y * (w * 4);

    return {data: pixels.slice(startIndex, startIndex + len)};
  }
}

const PUZZLE_GAP = 8;
const PUZZLE_PAD = 10;

class PuzzleRecognizer {
  constructor(bg, patch, y) {
    // console.log(bg);
    const imgBg = new PNGDecoder(Buffer.from(bg, 'base64'));
    const imgPatch = new PNGDecoder(Buffer.from(patch, 'base64'));

    // console.log(imgBg);

    this.bg = imgBg;
    this.patch = imgPatch;
    this.rawBg = bg;
    this.rawPatch = patch;
    this.y = y;
    this.w = imgBg.width;
    this.h = imgBg.height;
  }

  async run() {
    await this.bg.decodeToPixels();
    await this.patch.decodeToPixels();

    return this.recognize();
  }

  recognize() {
    const {ctx, w: width, bg} = this;
    const {width: patchWidth, height: patchHeight} = this.patch;
    const posY = this.y + PUZZLE_PAD + ((patchHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2);
    // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data;
    const cData = bg.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 = patchWidth - 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;
  }

  runWithCanvas() {
    const {createCanvas, Image} = require('canvas');
    const canvas = createCanvas();
    const ctx = canvas.getContext('2d');
    const imgBg = new Image();
    const imgPatch = new Image();
    const prefix = 'data:image/png;base64,';

    imgBg.src = prefix + this.rawBg;
    imgPatch.src = prefix + this.rawPatch;
    const {naturalWidth: w, naturalHeight: h} = imgBg;
    canvas.width = w;
    canvas.height = h;
    ctx.clearRect(0, 0, w, h);
    ctx.drawImage(imgBg, 0, 0, w, h);

    const width = w;
    const {naturalWidth, naturalHeight} = imgPatch;
    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",
  "product": "embed",
  "lang": "zh_CN",
};
const SERVER = 'iv.jd.com';

class JDJRValidator {
  constructor() {
    this.data = {};
    this.x = 0;
    this.t = Date.now();
    this.count = 0;
  }

  async run(scene = 'cww', eid='') {
    const tryRecognize = async () => {
      const x = await this.recognize(scene, eid);

      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());
    this.count++;
    const result = await JDJRValidator.jsonp('/slide/s.html', {d, ...this.data}, scene);

    if (result.message === 'success') {
      // console.log(result);
      console.log('JDJR验证用时: %fs', (Date.now() - this.t) / 1000);
      return result;
    } else {
      console.log(`验证失败: ${this.count}/${validatorCount}`);
      // console.log(JSON.stringify(result));
      if(this.count >= validatorCount){
        console.log("JDJR验证次数已达上限,退出验证");
        return result;
      }else{
        await sleep(300);
        return await this.run(scene, eid);
      }
    }
  }

  async recognize(scene, eid) {
    const data = await JDJRValidator.jsonp('/slide/g.html', {e: eid}, scene);
    const {bg, patch, y} = data;
    // const uri = 'data:image/png;base64,';
    // const re = new PuzzleRecognizer(uri+bg, uri+patch, y);
    const re = new PuzzleRecognizer(bg, patch, y);
    // console.log(JSON.stringify(re))
    const puzzleX = await re.run();

    if (puzzleX > 0) {
      this.data = {
        c: data.challenge,
        w: re.w,
        e: eid,
        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('验证成功: %f\%', (count / n) * 100);
    console.clear()
    console.timeEnd('PuzzleRecognizer');
  }

  static jsonp(api, data = {}, scene) {
    return new Promise((resolve, reject) => {
      const fnId = `jsonp_${String(Math.random()).replace('.', '')}`;
      const extraData = {callback: fnId};
      const query = new URLSearchParams({...DATA,...{"scene": scene}, ...extraData, ...data}).toString();
      const url = `https://${SERVER}${api}?${query}`;
      const headers = {
        'Accept': '*/*',
        'Accept-Encoding': 'gzip,deflate,br',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
        'Connection': 'keep-alive',
        'Host': "iv.jd.com",
        'Proxy-Connection': 'keep-alive',
        'Referer': 'https://h5.m.jd.com/',
        'User-Agent': UA,
      };

      const req = https.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 = 20;

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);
  }
}

function injectToRequest(fn,scene = 'cww', ua = '') {
  if(ua) UA = ua
  return (opts, cb) => {
    fn(opts, async (err, resp, data) => {
      if (err) {
        console.error(JSON.stringify(err));
        return;
      }
      if (data.search('验证') > -1) {
        console.log('JDJR验证中......');
				let arr = opts.url.split("&")
				let eid = ''
				for(let i of arr){
					if(i.indexOf("eid=")>-1){
						eid = i.split("=") && i.split("=")[1] || ''
					}
				}
        const res = await new JDJRValidator().run(scene, eid);

        opts.url += `&validate=${res.validate}`;
        fn(opts, cb);
      } else {
        cb(err, resp, data);
      }
    });
  };
}

exports.injectToRequest = injectToRequest;


================================================
FILE: JDSignValidator.js
================================================
const UA = require('../USER_AGENTS.js').USER_AGENT;

const navigator = {
  userAgent: UA,
  plugins: { length: 0 },
  language: "zh-CN",
};
const screen = {
  availHeight: 812,
  availWidth: 375,
  colorDepth: 24,
  height: 812,
  width: 375,
  pixelDepth: 24,

}
const window = {

}
const document = {
  location: {
    "ancestorOrigins": {},
    "href": "https://prodev.m.jd.com/mall/active/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html",
    "origin": "https://prodev.m.jd.com",
    "protocol": "https:",
    "host": "prodev.m.jd.com",
    "hostname": "prodev.m.jd.com",
    "port": "",
    "pathname": "/mall/active/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html",
    "search": "",
    "hash": ""
  }
};
var start_time = (new Date).getTime(),
  _jdfp_canvas_md5 = "",
  _jdfp_webgl_md5 = "",
  _fingerprint_step = 1,
  _JdEid = "",
  _eidFlag = !1,
  risk_jd_local_fingerprint = "",
  _jd_e_joint_;

  function t(a) {
    if (null == a || void 0 == a || "" == a) return "NA";
    if (null == a || void 0 == a || "" == a) var b = "";
    else {
      b = [];
      for (var c = 0; c < 8 * a.length; c += 8) b[c >> 5] |= (a.charCodeAt(c / 8) & 255) << c % 32
    }
    a = 8 * a.length;
    b[a >> 5] |= 128 << a % 32;
    b[(a + 64 >>> 9 << 4) + 14] = a;
    a = 1732584193;
    c = -271733879;
    for (var l = -1732584194, h = 271733878, q = 0; q < b.length; q += 16) {
      var z = a,
        C = c,
        D = l,
        B = h;
      a = v(a, c, l, h, b[q + 0], 7, -680876936);
      h = v(h, a, c, l, b[q + 1], 12, -389564586);
      l = v(l, h, a, c, b[q + 2], 17, 606105819);
      c = v(c, l, h, a, b[q + 3], 22, -1044525330);
      a = v(a, c, l, h, b[q + 4], 7, -176418897);
      h = v(h, a, c, l, b[q + 5], 12, 1200080426);
      l = v(l, h, a, c, b[q + 6], 17, -1473231341);
      c = v(c, l, h, a, b[q + 7], 22, -45705983);
      a = v(a, c, l, h, b[q + 8], 7, 1770035416);
      h = v(h, a, c, l, b[q + 9], 12, -1958414417);
      l = v(l, h, a, c, b[q + 10], 17, -42063);
      c = v(c, l, h, a, b[q + 11], 22, -1990404162);
      a = v(a, c, l, h, b[q + 12], 7, 1804603682);
      h = v(h, a, c, l, b[q + 13], 12, -40341101);
      l = v(l, h, a, c, b[q + 14], 17, -1502002290);
      c = v(c, l, h, a, b[q + 15], 22, 1236535329);
      a = x(a, c, l, h, b[q + 1], 5, -165796510);
      h = x(h, a, c, l, b[q + 6], 9, -1069501632);
      l = x(l, h, a, c, b[q + 11], 14, 643717713);
      c = x(c, l, h, a, b[q + 0], 20, -373897302);
      a = x(a, c, l, h, b[q + 5], 5, -701558691);
      h = x(h, a, c, l, b[q + 10], 9, 38016083);
      l = x(l, h, a, c, b[q + 15], 14, -660478335);
      c = x(c, l, h, a, b[q + 4], 20, -405537848);
      a = x(a, c, l, h, b[q + 9], 5, 568446438);
      h = x(h, a, c, l, b[q + 14], 9, -1019803690);
      l = x(l, h, a, c, b[q + 3], 14, -187363961);
      c = x(c, l, h, a, b[q + 8], 20, 1163531501);
      a = x(a, c, l, h, b[q + 13], 5, -1444681467);
      h = x(h, a, c, l, b[q + 2], 9, -51403784);
      l = x(l, h, a, c, b[q + 7], 14, 1735328473);
      c = x(c, l, h, a, b[q + 12], 20, -1926607734);
      a = u(c ^ l ^ h, a, c, b[q + 5], 4, -378558);
      h = u(a ^ c ^ l, h, a, b[q + 8], 11, -2022574463);
      l = u(h ^ a ^ c, l, h, b[q + 11], 16, 1839030562);
      c = u(l ^ h ^ a, c, l, b[q + 14], 23, -35309556);
      a = u(c ^ l ^ h, a, c, b[q + 1], 4, -1530992060);
      h = u(a ^ c ^ l, h, a, b[q + 4], 11, 1272893353);
      l = u(h ^ a ^ c, l, h, b[q + 7], 16, -155497632);
      c = u(l ^ h ^ a, c, l, b[q + 10], 23, -1094730640);
      a = u(c ^ l ^ h, a, c, b[q + 13], 4, 681279174);
      h = u(a ^ c ^ l, h, a, b[q + 0], 11, -358537222);
      l = u(h ^ a ^ c, l, h, b[q + 3], 16, -722521979);
      c = u(l ^ h ^ a, c, l, b[q + 6], 23, 76029189);
      a = u(c ^ l ^ h, a, c, b[q + 9], 4, -640364487);
      h = u(a ^ c ^ l, h, a, b[q + 12], 11, -421815835);
      l = u(h ^ a ^ c, l, h, b[q + 15], 16, 530742520);
      c = u(l ^ h ^ a, c, l, b[q + 2], 23, -995338651);
      a = w(a, c, l, h, b[q + 0], 6, -198630844);
      h = w(h, a, c, l, b[q + 7], 10, 1126891415);
      l = w(l, h, a, c, b[q + 14], 15, -1416354905);
      c = w(c, l, h, a, b[q + 5], 21, -57434055);
      a = w(a, c, l, h, b[q + 12], 6, 1700485571);
      h = w(h, a, c, l, b[q + 3], 10, -1894986606);
      l = w(l, h, a, c, b[q + 10], 15, -1051523);
      c = w(c, l, h, a, b[q + 1], 21, -2054922799);
      a = w(a, c, l, h, b[q + 8], 6, 1873313359);
      h = w(h, a, c, l, b[q + 15], 10, -30611744);
      l = w(l, h, a, c, b[q + 6], 15, -1560198380);
      c = w(c, l, h, a, b[q + 13], 21, 1309151649);
      a = w(a, c, l, h, b[q + 4], 6, -145523070);
      h = w(h, a, c, l, b[q + 11], 10, -1120210379);
      l = w(l, h, a, c, b[q + 2], 15, 718787259);
      c = w(c, l, h, a, b[q + 9], 21, -343485551);
      a = A(a, z);
      c = A(c, C);
      l = A(l, D);
      h = A(h, B)
    }
    b = [a, c, l, h];
    a = "";
    for (c = 0; c < 4 * b.length; c++) a += "0123456789abcdef".charAt(b[c >> 2] >> c % 4 * 8 + 4 & 15) +
      "0123456789abcdef".charAt(b[c >> 2] >> c % 4 * 8 & 15);
    return a
  }
  function u(a, b, c, l, h, q) {
    a = A(A(b, a), A(l, q));
    return A(a << h | a >>> 32 - h, c)
  }

  function v(a, b, c, l, h, q, z) {
    return u(b & c | ~b & l, a, b, h, q, z)
  }

  function x(a, b, c, l, h, q, z) {
    return u(b & l | c & ~l, a, b, h, q, z)
  }

  function w(a, b, c, l, h, q, z) {
    return u(c ^ (b | ~l), a, b, h, q, z)
  }

  function A(a, b) {
    var c = (a & 65535) + (b & 65535);
    return (a >> 16) + (b >> 16) + (c >> 16) << 16 | c & 65535
  }
  _fingerprint_step = 2;
  var y = "",
    n = navigator.userAgent.toLowerCase();
  n.indexOf("jdapp") && (n = n.substring(0, 90));
  var e = navigator.language,
    f = n; - 1 != f.indexOf("ipad") || -1 != f.indexOf("iphone os") || -1 != f.indexOf("midp") || -1 != f.indexOf(
      "rv:1.2.3.4") || -1 != f.indexOf("ucweb") || -1 != f.indexOf("android") || -1 != f.indexOf("windows ce") ||
      f.indexOf("windows mobile");
  var r = "NA",
    k = "NA";
  try {
    -1 != f.indexOf("win") && -1 != f.indexOf("95") && (r = "windows", k = "95"), -1 != f.indexOf("win") && -1 !=
      f.indexOf("98") && (r = "windows", k = "98"), -1 != f.indexOf("win 9x") && -1 != f.indexOf("4.90") && (
        r = "windows", k = "me"), -1 != f.indexOf("win") && -1 != f.indexOf("nt 5.0") && (r = "windows", k =
          "2000"), -1 != f.indexOf("win") && -1 != f.indexOf("nt") && (r = "windows", k = "NT"), -1 != f.indexOf(
            "win") && -1 != f.indexOf("nt 5.1") && (r = "windows", k = "xp"), -1 != f.indexOf("win") && -1 != f
              .indexOf("32") && (r = "windows", k = "32"), -1 != f.indexOf("win") && -1 != f.indexOf("nt 5.1") && (r =
                "windows", k = "7"), -1 != f.indexOf("win") && -1 != f.indexOf("6.0") && (r = "windows", k = "8"),
      -1 == f.indexOf("win") || -1 == f.indexOf("nt 6.0") && -1 == f.indexOf("nt 6.1") || (r = "windows", k =
        "9"), -1 != f.indexOf("win") && -1 != f.indexOf("nt 6.2") && (r = "windows", k = "10"), -1 != f.indexOf(
          "linux") && (r = "linux"), -1 != f.indexOf("unix") && (r = "unix"), -1 != f.indexOf("sun") && -1 !=
          f.indexOf("os") && (r = "sun os"), -1 != f.indexOf("ibm") && -1 != f.indexOf("os") && (r = "ibm os/2"),
      -1 != f.indexOf("mac") && -1 != f.indexOf("pc") && (r = "mac"), -1 != f.indexOf("aix") && (r = "aix"),
      -1 != f.indexOf("powerpc") && (r = "powerPC"), -1 != f.indexOf("hpux") && (r = "hpux"), -1 != f.indexOf(
        "netbsd") && (r = "NetBSD"), -1 != f.indexOf("bsd") && (r = "BSD"), -1 != f.indexOf("osf1") && (r =
          "OSF1"), -1 != f.indexOf("irix") && (r = "IRIX", k = ""), -1 != f.indexOf("freebsd") && (r =
            "FreeBSD"), -1 != f.indexOf("symbianos") && (r = "SymbianOS", k = f.substring(f.indexOf(
              "SymbianOS/") + 10, 3))
  } catch (a) { }
  _fingerprint_step = 3;
  var g = "NA",
    m = "NA";
  try {
    -1 != f.indexOf("msie") && (g = "ie", m = f.substring(f.indexOf("msie ") + 5), m.indexOf(";") && (m = m.substring(
      0, m.indexOf(";")))); - 1 != f.indexOf("firefox") && (g = "Firefox", m = f.substring(f.indexOf(
        "firefox/") + 8)); - 1 != f.indexOf("opera") && (g = "Opera", m = f.substring(f.indexOf("opera/") + 6,
          4)); - 1 != f.indexOf("safari") && (g = "safari", m = f.substring(f.indexOf("safari/") + 7)); - 1 != f.indexOf(
            "chrome") && (g = "chrome", m = f.substring(f.indexOf("chrome/") + 7), m.indexOf(" ") && (m = m.substring(
              0, m.indexOf(" ")))); - 1 != f.indexOf("navigator") && (g = "navigator", m = f.substring(f.indexOf(
                "navigator/") + 10)); - 1 != f.indexOf("applewebkit") && (g = "applewebkit_chrome", m = f.substring(f.indexOf(
                  "applewebkit/") + 12), m.indexOf(" ") && (m = m.substring(0, m.indexOf(" ")))); - 1 != f.indexOf(
                    "sogoumobilebrowser") && (g = "\u641c\u72d7\u624b\u673a\u6d4f\u89c8\u5668");
    if (-1 != f.indexOf("ucbrowser") || -1 != f.indexOf("ucweb")) g = "UC\u6d4f\u89c8\u5668";
    if (-1 != f.indexOf("qqbrowser") || -1 != f.indexOf("tencenttraveler")) g = "QQ\u6d4f\u89c8\u5668"; - 1 !=
      f.indexOf("metasr") && (g = "\u641c\u72d7\u6d4f\u89c8\u5668"); - 1 != f.indexOf("360se") && (g =
        "360\u6d4f\u89c8\u5668"); - 1 != f.indexOf("the world") && (g =
          "\u4e16\u754c\u4e4b\u7a97\u6d4f\u89c8\u5668"); - 1 != f.indexOf("maxthon") && (g =
            "\u9068\u6e38\u6d4f\u89c8\u5668")
  } catch (a) { }


class JdJrTdRiskFinger {
    f = {
      options: function (){
        return {}
      },
      nativeForEach: Array.prototype.forEach,
      nativeMap: Array.prototype.map,
      extend: function (a, b) {
        if (null == a) return b;
        for (var c in a) null != a[c] && b[c] !== a[c] && (b[c] = a[c]);
        return b
      },
      getData: function () {
        return y
      },
      get: function (a) {
        var b = 1 * m,
          c = [];
        "ie" == g && 7 <= b ? (c.push(n), c.push(e), y = y + ",'userAgent':'" + t(n) + "','language':'" +
          e + "'", this.browserRedirect(n)) : (c = this.userAgentKey(c), c = this.languageKey(c));
        c.push(g);
        c.push(m);
        c.push(r);
        c.push(k);
        y = y + ",'os':'" + r + "','osVersion':'" + k + "','browser':'" + g + "','browserVersion':'" +
          m + "'";
        c = this.colorDepthKey(c);
        c = this.screenResolutionKey(c);
        c = this.timezoneOffsetKey(c);
        c = this.sessionStorageKey(c);
        c = this.localStorageKey(c);
        c = this.indexedDbKey(c);
        c = this.addBehaviorKey(c);
        c = this.openDatabaseKey(c);
        c = this.cpuClassKey(c);
        c = this.platformKey(c);
        c = this.hardwareConcurrencyKey(c);
        c = this.doNotTrackKey(c);
        c = this.pluginsKey(c);
        c = this.canvasKey(c);
        c = this.webglKey(c);
        b = this.x64hash128(c.join("~~~"), 31);
        return a(b)
      },
      userAgentKey: function (a) {
        a.push(navigator.userAgent), y = y + ",'userAgent':'" + t(
          navigator.userAgent) + "'", this.browserRedirect(navigator.userAgent);
        return a
      },
      replaceAll: function (a, b, c) {
        for (; 0 <= a.indexOf(b);) a = a.replace(b, c);
        return a
      },
      browserRedirect: function (a) {
        var b = a.toLowerCase();
        a = "ipad" == b.match(/ipad/i);
        var c = "iphone os" == b.match(/iphone os/i),
          l = "midp" == b.match(/midp/i),
          h = "rv:1.2.3.4" == b.match(/rv:1.2.3.4/i),
          q = "ucweb" == b.match(/ucweb/i),
          z = "android" == b.match(/android/i),
          C = "windows ce" == b.match(/windows ce/i);
        b = "windows mobile" == b.match(/windows mobile/i);
        y = a || c || l || h || q || z || C || b ? y + ",'origin':'mobile'" : y + ",'origin':'pc'"
      },
      languageKey: function (a) {
        '' || (a.push(navigator.language), y = y + ",'language':'" + this.replaceAll(
          navigator.language, " ", "_") + "'");
        return a
      },
      colorDepthKey: function (a) {
        '' || (a.push(screen.colorDepth), y = y + ",'colorDepth':'" +
          screen.colorDepth + "'");
        return a
      },
      screenResolutionKey: function (a) {
        if (!this.options.excludeScreenResolution) {
          var b = this.getScreenResolution();
          "undefined" !== typeof b && (a.push(b.join("x")), y = y + ",'screenResolution':'" + b.join(
            "x") + "'")
        }
        return a
      },
      getScreenResolution: function () {
        return this.options.detectScreenOrientation ? screen.height > screen.width ? [screen.height,
        screen.width] : [screen.width, screen.height] : [screen.height, screen.width]
      },
      timezoneOffsetKey: function (a) {
        this.options.excludeTimezoneOffset || (a.push((new Date).getTimezoneOffset()), y = y +
          ",'timezoneOffset':'" + (new Date).getTimezoneOffset() / 60 + "'");
        return a
      },
      sessionStorageKey: function (a) {
        !this.options.excludeSessionStorage && this.hasSessionStorage() && (a.push("sessionStorageKey"),
          y += ",'sessionStorage':true");
        return a
      },
      localStorageKey: function (a) {
        !this.options.excludeSessionStorage && this.hasLocalStorage() && (a.push("localStorageKey"), y +=
          ",'localStorage':true");
        return a
      },
      indexedDbKey: function (a) {
        !this.options.excludeIndexedDB && this.hasIndexedDB() && (a.push("indexedDbKey"), y +=
          ",'indexedDb':true");
        return a
      },
      addBehaviorKey: function (a) {
        document.body && !this.options.excludeAddBehavior && document.body.addBehavior ? (a.push(
          "addBehaviorKey"), y += ",'addBehavior':true") : y += ",'addBehavior':false";
        return a
      },
      openDatabaseKey: function (a) {
        !this.options.excludeOpenDatabase && window.openDatabase ? (a.push("openDatabase"), y +=
          ",'openDatabase':true") : y += ",'openDatabase':false";
        return a
      },
      cpuClassKey: function (a) {
        this.options.excludeCpuClass || (a.push(this.getNavigatorCpuClass()), y = y + ",'cpu':'" + this
          .getNavigatorCpuClass() + "'");
        return a
      },
      platformKey: function (a) {
        this.options.excludePlatform || (a.push(this.getNavigatorPlatform()), y = y + ",'platform':'" +
          this.getNavigatorPlatform() + "'");
        return a
      },
      hardwareConcurrencyKey: function (a) {
        var b = this.getHardwareConcurrency();
        a.push(b);
        y = y + ",'ccn':'" + b + "'";
        return a
      },
      doNotTrackKey: function (a) {
        this.options.excludeDoNotTrack || (a.push(this.getDoNotTrack()), y = y + ",'track':'" + this.getDoNotTrack() +
          "'");
        return a
      },
      canvasKey: function (a) {
        if (!this.options.excludeCanvas && this.isCanvasSupported()) {
          var b = this.getCanvasFp();
          a.push(b);
          _jdfp_canvas_md5 = t(b);
          y = y + ",'canvas':'" + _jdfp_canvas_md5 + "'"
        }
        return a
      },
      webglKey: function (a) {
        if (!this.options.excludeWebGL && this.isCanvasSupported()) {
          var b = this.getWebglFp();
          _jdfp_webgl_md5 = t(b);
          a.push(b);
          y = y + ",'webglFp':'" + _jdfp_webgl_md5 + "'"
        }
        return a
      },
      pluginsKey: function (a) {
        this.isIE() ? (a.push(this.getIEPluginsString()), y = y + ",'plugins':'" + t(this.getIEPluginsString()) +
          "'") : (a.push(this.getRegularPluginsString()), y = y + ",'plugins':'" + t(this.getRegularPluginsString()) +
            "'");
        return a
      },
      getRegularPluginsString: function () {
        return this.map(navigator.plugins, function (a) {
          var b = this.map(a, function (c) {
            return [c.type, c.suffixes].join("~")
          }).join(",");
          return [a.name, a.description, b].join("::")
        }, this).join(";")
      },
      getIEPluginsString: function () {
        return window.ActiveXObject ? this.map(
          "AcroPDF.PDF;Adodb.Stream;AgControl.AgControl;DevalVRXCtrl.DevalVRXCtrl.1;MacromediaFlashPaper.MacromediaFlashPaper;Msxml2.DOMDocument;Msxml2.XMLHTTP;PDF.PdfCtrl;QuickTime.QuickTime;QuickTimeCheckObject.QuickTimeCheck.1;RealPlayer;RealPlayer.RealPlayer(tm) ActiveX Control (32-bit);RealVideo.RealVideo(tm) ActiveX Control (32-bit);Scripting.Dictionary;SWCtl.SWCtl;Shell.UIHelper;ShockwaveFlash.ShockwaveFlash;Skype.Detection;TDCCtl.TDCCtl;WMPlayer.OCX;rmocx.RealPlayer G2 Control;rmocx.RealPlayer G2 Control.1"
            .split(";"),
          function (a) {
            try {
              return new ActiveXObject(a), a
            } catch (b) {
              return null
            }
          }).join(";") : ""
      },
      hasSessionStorage: function () {
        try {
          return !!window.sessionStorage
        } catch (a) {
          return !0
        }
      },
      hasLocalStorage: function () {
        try {
          return !!window.localStorage
        } catch (a) {
          return !0
        }
      },
      hasIndexedDB: function () {
        return true
        return !!window.indexedDB
      },
      getNavigatorCpuClass: function () {
        return navigator.cpuClass ? navigator.cpuClass : "NA"
      },
      getNavigatorPlatform: function () {
        return navigator.platform ? navigator.platform : "NA"
      },
      getHardwareConcurrency: function () {
        return navigator.hardwareConcurrency ? navigator.hardwareConcurrency : "NA"
      },
      getDoNotTrack: function () {
        return navigator.doNotTrack ? navigator.doNotTrack : "NA"
      },
      getCanvasFp: function () {
        return '';
        var a = navigator.userAgent.toLowerCase();
        if ((0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && (0 < a.indexOf("iphone") || 0 < a
          .indexOf("ipad"))) return null;
        a = document.createElement("canvas");
        var b = a.getContext("2d");
        b.fillStyle = "red";
        b.fillRect(30, 10, 200, 100);
        b.strokeStyle = "#1a3bc1";
        b.lineWidth = 6;
        b.lineCap = "round";
        b.arc(50, 50, 20, 0, Math.PI, !1);
        b.stroke();
        b.fillStyle = "#42e1a2";
        b.font = "15.4px 'Arial'";
        b.textBaseline = "alphabetic";
        b.fillText("PR flacks quiz gym: TV DJ box when? \u2620", 15, 60);
        b.shadowOffsetX = 1;
        b.shadowOffsetY = 2;
        b.shadowColor = "white";
        b.fillStyle = "rgba(0, 0, 200, 0.5)";
        b.font = "60px 'Not a real font'";
        b.fillText("No\u9a97", 40, 80);
        return a.toDataURL()
      },
      getWebglFp: function () {
        var a = navigator.userAgent;
        a = a.toLowerCase();
        if ((0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && (0 < a.indexOf("iphone") || 0 < a
          .indexOf("ipad"))) return null;
        a = function (D) {
          b.clearColor(0, 0, 0, 1);
          b.enable(b.DEPTH_TEST);
          b.depthFunc(b.LEQUAL);
          b.clear(b.COLOR_BUFFER_BIT | b.DEPTH_BUFFER_BIT);
          return "[" + D[0] + ", " + D[1] + "]"
        };
        var b = this.getWebglCanvas();
        if (!b) return null;
        var c = [],
          l = b.createBuffer();
        b.bindBuffer(b.ARRAY_BUFFER, l);
        var h = new Float32Array([-.2, -.9, 0, .4, -.26, 0, 0, .732134444, 0]);
        b.bufferData(b.ARRAY_BUFFER, h, b.STATIC_DRAW);
        l.itemSize = 3;
        l.numItems = 3;
        h = b.createProgram();
        var q = b.createShader(b.VERTEX_SHADER);
        b.shaderSource(q,
          "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}"
        );
        b.compileShader(q);
        var z = b.createShader(b.FRAGMENT_SHADER);
        b.shaderSource(z,
          "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}"
        );
        b.compileShader(z);
        b.attachShader(h, q);
        b.attachShader(h, z);
        b.linkProgram(h);
        b.useProgram(h);
        h.vertexPosAttrib = b.getAttribLocation(h, "attrVertex");
        h.offsetUniform = b.getUniformLocation(h, "uniformOffset");
        b.enableVertexAttribArray(h.vertexPosArray);
        b.vertexAttribPointer(h.vertexPosAttrib, l.itemSize, b.FLOAT, !1, 0, 0);
        b.uniform2f(h.offsetUniform, 1, 1);
        b.drawArrays(b.TRIANGLE_STRIP, 0, l.numItems);
        null != b.canvas && c.push(b.canvas.toDataURL());
        c.push("extensions:" + b.getSupportedExtensions().join(";"));
        c.push("extensions:" + b.getSupportedExtensions().join(";"));
        c.push("w1" + a(b.getParameter(b.ALIASED_LINE_WIDTH_RANGE)));
        c.push("w2" + a(b.getParameter(b.ALIASED_POINT_SIZE_RANGE)));
        c.push("w3" + b.getParameter(b.ALPHA_BITS));
        c.push("w4" + (b.getContextAttributes().antialias ? "yes" : "no"));
        c.push("w5" + b.getParameter(b.BLUE_BITS));
        c.push("w6" + b.getParameter(b.DEPTH_BITS));
        c.push("w7" + b.getParameter(b.GREEN_BITS));
        c.push("w8" + function (D) {
          var B, F = D.getExtension("EXT_texture_filter_anisotropic") || D.getExtension(
            "WEBKIT_EXT_texture_filter_anisotropic") || D.getExtension(
              "MOZ_EXT_texture_filter_anisotropic");
          return F ? (B = D.getParameter(F.MAX_TEXTURE_MAX_ANISOTROPY_EXT), 0 === B && (B = 2),
            B) : null
        }(b));
        c.push("w9" + b.getParameter(b.MAX_COMBINED_TEXTURE_IMAGE_UNITS));
        c.push("w10" + b.getParameter(b.MAX_CUBE_MAP_TEXTURE_SIZE));
        c.push("w11" + b.getParameter(b.MAX_FRAGMENT_UNIFORM_VECTORS));
        c.push("w12" + b.getParameter(b.MAX_RENDERBUFFER_SIZE));
        c.push("w13" + b.getParameter(b.MAX_TEXTURE_IMAGE_UNITS));
        c.push("w14" + b.getParameter(b.MAX_TEXTURE_SIZE));
        c.push("w15" + b.getParameter(b.MAX_VARYING_VECTORS));
        c.push("w16" + b.getParameter(b.MAX_VERTEX_ATTRIBS));
        c.push("w17" + b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS));
        c.push("w18" + b.getParameter(b.MAX_VERTEX_UNIFORM_VECTORS));
        c.push("w19" + a(b.getParameter(b.MAX_VIEWPORT_DIMS)));
        c.push("w20" + b.getParameter(b.RED_BITS));
        c.push("w21" + b.getParameter(b.RENDERER));
        c.push("w22" + b.getParameter(b.SHADING_LANGUAGE_VERSION));
        c.push("w23" + b.getParameter(b.STENCIL_BITS));
        c.push("w24" + b.getParameter(b.VENDOR));
        c.push("w25" + b.getParameter(b.VERSION));
        try {
          var C = b.getExtension("WEBGL_debug_renderer_info");
          C && (c.push("wuv:" + b.getParameter(C.UNMASKED_VENDOR_WEBGL)), c.push("wur:" + b.getParameter(
            C.UNMASKED_RENDERER_WEBGL)))
        } catch (D) { }
        return c.join("\u00a7")
      },
      isCanvasSupported: function () {
        return true;
        var a = document.createElement("canvas");
        return !(!a.getContext || !a.getContext("2d"))
      },
      isIE: function () {
        return "Microsoft Internet Explorer" === navigator.appName || "Netscape" === navigator.appName &&
          /Trident/.test(navigator.userAgent) ? !0 : !1
      },
      getWebglCanvas: function () {
        return null;
        var a = document.createElement("canvas"),
          b = null;
        try {
          var c = navigator.userAgent;
          c = c.toLowerCase();
          (0 < c.indexOf("jdjr-app") || 0 <= c.indexOf("jdapp")) && (0 < c.indexOf("iphone") || 0 < c
            .indexOf("ipad")) || (b = a.getContext("webgl") || a.getContext("experimental-webgl"))
        } catch (l) { }
        b || (b = null);
        return b
      },
      each: function (a, b, c) {
        if (null !== a)
          if (this.nativeForEach && a.forEach === this.nativeForEach) a.forEach(b, c);
          else if (a.length === +a.length)
            for (var l = 0, h = a.length; l < h && b.call(c, a[l], l, a) !== {}; l++);
          else
            for (l in a)
              if (a.hasOwnProperty(l) && b.call(c, a[l], l, a) === {}) break
      },
      map: function (a, b, c) {
        var l = [];
        if (null == a) return l;
        if (this.nativeMap && a.map === this.nativeMap) return a.map(b, c);
        this.each(a, function (h, q, z) {
          l[l.length] = b.call(c, h, q, z)
        });
        return l
      },
      x64Add: function (a, b) {
        a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535];
        b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535];
        var c = [0, 0, 0, 0];
        c[3] += a[3] + b[3];
        c[2] += c[3] >>> 16;
        c[3] &= 65535;
        c[2] += a[2] + b[2];
        c[1] += c[2] >>> 16;
        c[2] &= 65535;
        c[1] += a[1] + b[1];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[0] += a[0] + b[0];
        c[0] &= 65535;
        return [c[0] << 16 | c[1], c[2] << 16 | c[3]]
      },
      x64Multiply: function (a, b) {
        a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535];
        b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535];
        var c = [0, 0, 0, 0];
        c[3] += a[3] * b[3];
        c[2] += c[3] >>> 16;
        c[3] &= 65535;
        c[2] += a[2] * b[3];
        c[1] += c[2] >>> 16;
        c[2] &= 65535;
        c[2] += a[3] * b[2];
        c[1] += c[2] >>> 16;
        c[2] &= 65535;
        c[1] += a[1] * b[3];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[1] += a[2] * b[2];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[1] += a[3] * b[1];
        c[0] += c[1] >>> 16;
        c[1] &= 65535;
        c[0] += a[0] * b[3] + a[1] * b[2] + a[2] * b[1] + a[3] * b[0];
        c[0] &= 65535;
        return [c[0] << 16 | c[1], c[2] << 16 | c[3]]
      },
      x64Rotl: function (a, b) {
        b %= 64;
        if (32 === b) return [a[1], a[0]];
        if (32 > b) return [a[0] << b | a[1] >>> 32 - b, a[1] << b | a[0] >>> 32 - b];
        b -= 32;
        return [a[1] << b | a[0] >>> 32 - b, a[0] << b | a[1] >>> 32 - b]
      },
      x64LeftShift: function (a, b) {
        b %= 64;
        return 0 === b ? a : 32 > b ? [a[0] << b | a[1] >>> 32 - b, a[1] << b] : [a[1] << b - 32, 0]
      },
      x64Xor: function (a, b) {
        return [a[0] ^ b[0], a[1] ^ b[1]]
      },
      x64Fmix: function (a) {
        a = this.x64Xor(a, [0, a[0] >>> 1]);
        a = this.x64Multiply(a, [4283543511, 3981806797]);
        a = this.x64Xor(a, [0, a[0] >>> 1]);
        a = this.x64Multiply(a, [3301882366, 444984403]);
        return a = this.x64Xor(a, [0, a[0] >>> 1])
      },
      x64hash128: function (a, b) {
        a = a || "";
        b = b || 0;
        var c = a.length % 16,
          l = a.length - c,
          h = [0, b];
        b = [0, b];
        for (var q, z, C = [2277735313, 289559509], D = [1291169091, 658871167], B = 0; B < l; B += 16)
          q = [a.charCodeAt(B + 4) & 255 | (a.charCodeAt(B + 5) & 255) << 8 | (a.charCodeAt(B + 6) &
            255) << 16 | (a.charCodeAt(B + 7) & 255) << 24, a.charCodeAt(B) & 255 | (a.charCodeAt(
              B + 1) & 255) << 8 | (a.charCodeAt(B + 2) & 255) << 16 | (a.charCodeAt(B + 3) & 255) <<
          24], z = [a.charCodeAt(B + 12) & 255 | (a.charCodeAt(B + 13) & 255) << 8 | (a.charCodeAt(
            B + 14) & 255) << 16 | (a.charCodeAt(B + 15) & 255) << 24, a.charCodeAt(B + 8) &
            255 | (a.charCodeAt(B + 9) & 255) << 8 | (a.charCodeAt(B + 10) & 255) << 16 | (a.charCodeAt(
              B + 11) & 255) << 24], q = this.x64Multiply(q, C), q = this.x64Rotl(q, 31), q =
            this.x64Multiply(q, D), h = this.x64Xor(h, q), h = this.x64Rotl(h, 27), h = this.x64Add(h,
              b), h = this.x64Add(this.x64Multiply(h, [0, 5]), [0, 1390208809]), z = this.x64Multiply(
                z, D), z = this.x64Rotl(z, 33), z = this.x64Multiply(z, C), b = this.x64Xor(b, z), b =
            this.x64Rotl(b, 31), b = this.x64Add(b, h), b = this.x64Add(this.x64Multiply(b, [0, 5]), [0,
              944331445]);
        q = [0, 0];
        z = [0, 0];
        switch (c) {
          case 15:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 14)], 48));
          case 14:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 13)], 40));
          case 13:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 12)], 32));
          case 12:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 11)], 24));
          case 11:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 10)], 16));
          case 10:
            z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 9)], 8));
          case 9:
            z = this.x64Xor(z, [0, a.charCodeAt(B + 8)]), z = this.x64Multiply(z, D), z = this.x64Rotl(
              z, 33), z = this.x64Multiply(z, C), b = this.x64Xor(b, z);
          case 8:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 7)], 56));
          case 7:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 6)], 48));
          case 6:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 5)], 40));
          case 5:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 4)], 32));
          case 4:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 3)], 24));
          case 3:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 2)], 16));
          case 2:
            q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 1)], 8));
          case 1:
            q = this.x64Xor(q, [0, a.charCodeAt(B)]), q = this.x64Multiply(q, C), q = this.x64Rotl(
              q, 31), q = this.x64Multiply(q, D), h = this.x64Xor(h, q)
        }
        h = this.x64Xor(h, [0, a.length]);
        b = this.x64Xor(b, [0, a.length]);
        h = this.x64Add(h, b);
        b = this.x64Add(b, h);
        h = this.x64Fmix(h);
        b = this.x64Fmix(b);
        h = this.x64Add(h, b);
        b = this.x64Add(b, h);
        return ("00000000" + (h[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h[1] >>> 0).toString(
          16)).slice(-8) + ("00000000" + (b[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (b[
            1] >>> 0).toString(16)).slice(-8)
      }
    };
}

var JDDSecCryptoJS = JDDSecCryptoJS || function (t, u) {
var v = {},
    x = v.lib = {},
    w = x.Base = function () {
        function g() {}
        return {
            extend: function (m) {
                g.prototype = this;
                var a = new g;
                m && a.mixIn(m);
                a.hasOwnProperty("init") || (a.init = function () {
                    a.$super.init.apply(this, arguments)
                });
                a.init.prototype = a;
                a.$super = this;
                return a
            },
            create: function () {
                var m = this.extend();
                m.init.apply(m, arguments);
                return m
            },
            init: function () {},
            mixIn: function (m) {
                for (var a in m) m.hasOwnProperty(a) && (this[a] = m[a]);
                m.hasOwnProperty("toString") && (this.toString = m.toString)
            },
            clone: function () {
                return this.init.prototype.extend(this)
            }
        }
    }(),
    A = x.WordArray = w.extend({
        init: function (g, m) {
            g = this.words = g || [];
            this.sigBytes = m != u ? m : 4 * g.length
        },
        toString: function (g) {
            return (g || n).stringify(this)
        },
        concat: function (g) {
            var m = this.words,
                a = g.words,
                b = this.sigBytes;
            g = g.sigBytes;
            this.clamp();
            if (b % 4)
                for (var c = 0; c < g; c++) m[b + c >>> 2] |= (a[c >>> 2] >>> 24 - c % 4 * 8 & 255) <<
                    24 - (b + c) % 4 * 8;
            else if (65535 < a.length)
                for (c = 0; c < g; c += 4) m[b + c >>> 2] = a[c >>> 2];
            else m.push.apply(m, a);
            this.sigBytes += g;
            return this
        },
        clamp: function () {
            var g = this.words,
                m = this.sigBytes;
            g[m >>> 2] &= 4294967295 << 32 - m % 4 * 8;
            g.length = t.ceil(m / 4)
        },
        clone: function () {
            var g = w.clone.call(this);
            g.words = this.words.slice(0);
            return g
        },
        random: function (g) {
            for (var m = [], a = 0; a < g; a += 4) m.push(4294967296 * t.random() | 0);
            return new A.init(m, g)
        }
    });
x.UUID = w.extend({
    generateUuid: function () {
        for (var g = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split(""), m = 0, a = g.length; m < a; m++)
            switch (g[m]) {
                case "x":
                    g[m] = t.floor(16 * t.random()).toString(16);
                    break;
                case "y":
                    g[m] = (t.floor(4 * t.random()) + 8).toString(16)
            }
        return g.join("")
    }
});
var y = v.enc = {},
    n = y.Hex = {
        stringify: function (g) {
            var m = g.words;
            g = g.sigBytes;
            var a = [];
            for (var b = 0; b < g; b++) {
                var c = m[b >>> 2] >>> 24 - b % 4 * 8 & 255;
                a.push((c >>> 4).toString(16));
                a.push((c & 15).toString(16))
            }
            return a.join("")
        },
        parse: function (g) {
            for (var m = g.length, a = [], b = 0; b < m; b += 2) a[b >>> 3] |= parseInt(g.substr(b, 2), 16) <<
                24 - b % 8 * 4;
            return new A.init(a, m / 2)
        }
    },
    e = y.Latin1 = {
        stringify: function (g) {
            var m = g.words;
            g = g.sigBytes;
            for (var a = [], b = 0; b < g; b++) a.push(String.fromCharCode(m[b >>> 2] >>> 24 - b % 4 * 8 &
                255));
            return a.join("")
        },
        parse: function (g) {
            for (var m = g.length, a = [], b = 0; b < m; b++) a[b >>> 2] |= (g.charCodeAt(b) & 255) << 24 -
                b % 4 * 8;
            return new A.init(a, m)
        }
    },
    f = y.Utf8 = {
        stringify: function (g) {
            try {
                return decodeURIComponent(escape(e.stringify(g)))
            } catch (m) {
                throw Error("Malformed UTF-8 data");
            }
        },
        parse: function (g) {
            return e.parse(unescape(encodeURIComponent(g)))
        }
    },
    r = x.BufferedBlockAlgorithm = w.extend({
        reset: function () {
            this._data = new A.init;
            this._nDataBytes = 0
        },
        _append: function (g) {
            "string" == typeof g && (g = f.parse(g));
            this._data.concat(g);
            this._nDataBytes += g.sigBytes
        },
        _process: function (g) {
            var m = this._data,
                a = m.words,
                b = m.sigBytes,
                c = this.blockSize,
                l = b / (4 * c);
            l = g ? t.ceil(l) : t.max((l | 0) - this._minBufferSize, 0);
            g = l * c;
            b = t.min(4 * g, b);
            if (g) {
                for (var h = 0; h < g; h += c) this._doProcessBlock(a, h);
                h = a.splice(0, g);
                m.sigBytes -= b
            }
            return new A.init(h, b)
        },
        clone: function () {
            var g = w.clone.call(this);
            g._data = this._data.clone();
            return g
        },
        _minBufferSize: 0
    });
x.Hasher = r.extend({
    cfg: w.extend(),
    init: function (g) {
        this.cfg = this.cfg.extend(g);
        this.reset()
    },
    reset: function () {
        r.reset.call(this);
        this._doReset()
    },
    update: function (g) {
        this._append(g);
        this._process();
        return this
    },
    finalize: function (g) {
        g && this._append(g);
        return this._doFinalize()
    },
    blockSize: 16,
    _createHelper: function (g) {
        return function (m, a) {
            return (new g.init(a)).finalize(m)
        }
    },
    _createHmacHelper: function (g) {
        return function (m, a) {
            return (new k.HMAC.init(g, a)).finalize(m)
        }
    }
});
var k = v.algo = {};
v.channel = {};
return v
}(Math);

JDDSecCryptoJS.lib.Cipher || function (t) {
var u = JDDSecCryptoJS,
    v = u.lib,
    x = v.Base,
    w = v.WordArray,
    A = v.BufferedBlockAlgorithm,
    y = v.Cipher = A.extend({
        cfg: x.extend(),
        createEncryptor: function (g, m) {
            return this.create(this._ENC_XFORM_MODE, g, m)
        },
        createDecryptor: function (g, m) {
            return this.create(this._DEC_XFORM_MODE, g, m)
        },
        init: function (g, m, a) {
            this.cfg = this.cfg.extend(a);
            this._xformMode = g;
            this._key = m;
            this.reset()
        },
        reset: function () {
            A.reset.call(this);
            this._doReset()
        },
        process: function (g) {
            this._append(g);
            return this._process()
        },
        finalize: function (g) {
            g && this._append(g);
            return this._doFinalize()
        },
        keySize: 4,
        ivSize: 4,
        _ENC_XFORM_MODE: 1,
        _DEC_XFORM_MODE: 2,
        _createHelper: function () {
            function g(m) {
                if ("string" != typeof m) return k
            }
            return function (m) {
                return {
                    encrypt: function (a, b, c) {
                        return g(b).encrypt(m, a, b, c)
                    },
                    decrypt: function (a, b, c) {
                        return g(b).decrypt(m, a, b, c)
                    }
                }
            }
        }()
    });
v.StreamCipher = y.extend({
    _doFinalize: function () {
        return this._process(!0)
    },
    blockSize: 1
});
var n = u.mode = {},
    e = v.BlockCipherMode = x.extend({
        createEncryptor: function (g, m) {
            return this.Encryptor.create(g, m)
        },
        createDecryptor: function (g, m) {
            return this.Decryptor.create(g, m)
        },
        init: function (g, m) {
            this._cipher = g;
            this._iv = m
        }
    });
n = n.CBC = function () {
    function g(a, b, c) {
        var l = this._iv;
        l ? this._iv = t : l = this._prevBlock;
        for (var h = 0; h < c; h++) a[b + h] ^= l[h]
    }
    var m = e.extend();
    m.Encryptor = m.extend({
        processBlock: function (a, b) {
            var c = this._cipher,
                l = c.blockSize;
            g.call(this, a, b, l);
            c.encryptBlock(a, b);
            this._prevBlock = a.slice(b, b + l)
        }
    });
    m.Decryptor = m.extend({
        processBlock: function (a, b) {
            var c = this._cipher,
                l = c.blockSize,
                h = a.slice(b, b + l);
            c.decryptBlock(a, b);
            g.call(this, a, b, l);
            this._prevBlock = h
        }
    });
    return m
}();
var f = (u.pad = {}).Pkcs7 = {
    pad: function (g, m) {
        m *= 4;
        m -= g.sigBytes % m;
        for (var a = m << 24 | m << 16 | m << 8 | m, b = [], c = 0; c < m; c += 4) b.push(a);
        m = w.create(b, m);
        g.concat(m)
    },
    unpad: function (g) {
        g.sigBytes -= g.words[g.sigBytes - 1 >>> 2] & 255
    }
};
v.BlockCipher = y.extend({
    cfg: y.cfg.extend({
        mode: n,
        padding: f
    }),
    reset: function () {
        y.reset.call(this);
        var g = this.cfg,
            m = g.iv;
        g = g.mode;
        if (this._xformMode == this._ENC_XFORM_MODE) var a = g.createEncryptor;
        else a = g.createDecryptor, this._minBufferSize = 1;
        this._mode = a.call(g, this, m && m.words)
    },
    _doProcessBlock: function (g, m) {
        this._mode.processBlock(g, m)
    },
    _doFinalize: function () {
        var g = this.cfg.padding;
        if (this._xformMode == this._ENC_XFORM_MODE) {
            g.pad(this._data, this.blockSize);
            var m = this._process(!0)
        } else m = this._process(!0), g.unpad(m);
        return m
    },
    blockSize: 4
});
var r = v.CipherParams = x.extend({
    init: function (g) {
        this.mixIn(g)
    },
    toString: function (g) {
        return (g || this.formatter).stringify(this)
    }
});
u.format = {};
var k = v.SerializableCipher = x.extend({
    cfg: x.extend({}),
    encrypt: function (g, m, a, b) {
        b = this.cfg.extend(b);
        var c = g.createEncryptor(a, b);
        m = c.finalize(m);
        c = c.cfg;
        return r.create({
            ciphertext: m,
            key: a,
            iv: c.iv,
            algorithm: g,
            mode: c.mode,
            padding: c.padding,
            blockSize: g.blockSize,
            formatter: b.format
        })
    },
    decrypt: function (g, m, a, b) {
        b = this.cfg.extend(b);
        m = this._parse(m, b.format);
        return g.createDecryptor(a, b).finalize(m.ciphertext)
    },
    _parse: function (g, m) {
        return "string" == typeof g ? m.parse(g, this) : g
    }
})
}();
(function () {
var t = JDDSecCryptoJS,
    u = t.lib.BlockCipher,
    v = t.algo,
    x = [],
    w = [],
    A = [],
    y = [],
    n = [],
    e = [],
    f = [],
    r = [],
    k = [],
    g = [];
(function () {
    for (var a = [], b = 0; 256 > b; b++) a[b] = 128 > b ? b << 1 : b << 1 ^ 283;
    var c = 0,
        l = 0;
    for (b = 0; 256 > b; b++) {
        var h = l ^ l << 1 ^ l << 2 ^ l << 3 ^ l << 4;
        h = h >>> 8 ^ h & 255 ^ 99;
        x[c] = h;
        w[h] = c;
        var q = a[c],
            z = a[q],
            C = a[z],
            D = 257 * a[h] ^ 16843008 * h;
        A[c] = D << 24 | D >>> 8;
        y[c] = D << 16 | D >>> 16;
        n[c] = D << 8 | D >>> 24;
        e[c] = D;
        D = 16843009 * C ^ 65537 * z ^ 257 * q ^ 16843008 * c;
        f[h] = D << 24 | D >>> 8;
        r[h] = D << 16 | D >>> 16;
        k[h] = D << 8 | D >>> 24;
        g[h] = D;
        c ? (c = q ^ a[a[a[C ^ q]]], l ^= a[a[l]]) : c = l = 1
    }
})();
var m = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];
v = v.AES = u.extend({
    _doReset: function () {
        var a = this._key,
            b = a.words,
            c = a.sigBytes / 4;
        a = 4 * ((this._nRounds = c + 6) + 1);
        for (var l = this._keySchedule = [], h = 0; h < a; h++)
            if (h < c) l[h] = b[h];
            else {
                var q = l[h - 1];
                h % c ? 6 < c && 4 == h % c && (q = x[q >>> 24] << 24 | x[q >>> 16 & 255] << 16 | x[
                    q >>> 8 & 255] << 8 | x[q & 255]) : (q = q << 8 | q >>> 24, q = x[q >>> 24] <<
                    24 | x[q >>> 16 & 255] << 16 | x[q >>> 8 & 255] << 8 | x[q & 255], q ^= m[h /
                        c | 0] << 24);
                l[h] = l[h - c] ^ q
            } b = this._invKeySchedule = [];
        for (c = 0; c < a; c++) h = a - c, q = c % 4 ? l[h] : l[h - 4], b[c] = 4 > c || 4 >= h ? q :
            f[x[q >>> 24]] ^ r[x[q >>> 16 & 255]] ^ k[x[q >>> 8 & 255]] ^ g[x[q & 255]]
    },
    encryptBlock: function (a, b) {
        this._doCryptBlock(a, b, this._keySchedule, A, y, n, e, x)
    },
    decryptBlock: function (a, b) {
        var c = a[b + 1];
        a[b + 1] = a[b + 3];
        a[b + 3] = c;
        this._doCryptBlock(a, b, this._invKeySchedule, f, r, k, g, w);
        c = a[b + 1];
        a[b + 1] = a[b + 3];
        a[b + 3] = c
    },
    _doCryptBlock: function (a, b, c, l, h, q, z, C) {
        for (var D = this._nRounds, B = a[b] ^ c[0], F = a[b + 1] ^ c[1], H = a[b + 2] ^ c[2], G =
                a[b + 3] ^ c[3], I = 4, M = 1; M < D; M++) {
            var J = l[B >>> 24] ^ h[F >>> 16 & 255] ^ q[H >>> 8 & 255] ^ z[G & 255] ^ c[I++],
                K = l[F >>> 24] ^ h[H >>> 16 & 255] ^ q[G >>> 8 & 255] ^ z[B & 255] ^ c[I++],
                L = l[H >>> 24] ^ h[G >>> 16 & 255] ^ q[B >>> 8 & 255] ^ z[F & 255] ^ c[I++];
            G = l[G >>> 24] ^ h[B >>> 16 & 255] ^ q[F >>> 8 & 255] ^ z[H & 255] ^ c[I++];
            B = J;
            F = K;
            H = L
        }
        J = (C[B >>> 24] << 24 | C[F >>> 16 & 255] << 16 | C[H >>> 8 & 255] << 8 | C[G & 255]) ^ c[
            I++];
        K = (C[F >>> 24] << 24 | C[H >>> 16 & 255] << 16 | C[G >>> 8 & 255] << 8 | C[B & 255]) ^ c[
            I++];
        L = (C[H >>> 24] << 24 | C[G >>> 16 & 255] << 16 | C[B >>> 8 & 255] << 8 | C[F & 255]) ^ c[
            I++];
        G = (C[G >>> 24] << 24 | C[B >>> 16 & 255] << 16 | C[F >>> 8 & 255] << 8 | C[H & 255]) ^ c[
            I++];
        a[b] = J;
        a[b + 1] = K;
        a[b + 2] = L;
        a[b + 3] = G
    },
    keySize: 8
});
t.AES = u._createHelper(v)
})();

(function () {
var t = JDDSecCryptoJS,
    u = t.lib,
    v = u.WordArray,
    x = u.Hasher,
    w = [];
u = t.algo.SHA1 = x.extend({
    _doReset: function () {
        this._hash = new v.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
    },
    _doProcessBlock: function (A, y) {
        for (var n = this._hash.words, e = n[0], f = n[1], r = n[2], k = n[3], g = n[4], m = 0; 80 >
            m; m++) {
            if (16 > m) w[m] = A[y + m] | 0;
            else {
                var a = w[m - 3] ^ w[m - 8] ^ w[m - 14] ^ w[m - 16];
                w[m] = a << 1 | a >>> 31
            }
            a = (e << 5 | e >>> 27) + g + w[m];
            a = 20 > m ? a + ((f & r | ~f & k) + 1518500249) : 40 > m ? a + ((f ^ r ^ k) +
                1859775393) : 60 > m ? a + ((f & r | f & k | r & k) - 1894007588) : a + ((f ^ r ^
                k) - 899497514);
            g = k;
            k = r;
            r = f << 30 | f >>> 2;
            f = e;
            e = a
        }
        n[0] = n[0] + e | 0;
        n[1] = n[1] + f | 0;
        n[2] = n[2] + r | 0;
        n[3] = n[3] + k | 0;
        n[4] = n[4] + g | 0
    },
    _doFinalize: function () {
        var A = this._data,
            y = A.words,
            n = 8 * this._nDataBytes,
            e = 8 * A.sigBytes;
        y[e >>> 5] |= 128 << 24 - e % 32;
        y[(e + 64 >>> 9 << 4) + 14] = Math.floor(n / 4294967296);
        y[(e + 64 >>> 9 << 4) + 15] = n;
        A.sigBytes = 4 * y.length;
        this._process();
        return this._hash
    },
    clone: function () {
        var A = x.clone.call(this);
        A._hash = this._hash.clone();
        return A
    }
});
t.SHA1 = x._createHelper(u);
t.HmacSHA1 = x._createHmacHelper(u)
})();

(function () {
var t = JDDSecCryptoJS,
    u = t.channel;
u.Downlink = {
    deBase32: function (v) {
        if (void 0 == v || "" == v || null == v) return "";
        var x = t.enc.Hex.parse("30313233343536373839616263646566"),
            w = t.enc.Hex.parse("724e5428476f307361374d3233784a6c");
        return t.AES.decrypt({
            ciphertext: t.enc.Base32.parse(v)
        }, w, {
            mode: t.mode.CBC,
            padding: t.pad.Pkcs7,
            iv: x
        }).toString(t.enc.Utf8)
    },
    deBase64: function (v) {
        return ""
    }
};
u.Uplink = {
    enAsBase32: function (v) {
        return ""
    },
    enAsBase64: function (v) {
        return ""
    }
}
})();

(function () {
var t = JDDSecCryptoJS,
    u = t.lib.WordArray;
t.enc.Base32 = {
    stringify: function (v) {
        var x = v.words,
            w = v.sigBytes,
            A = this._map;
        v.clamp();
        v = [];
        for (var y = 0; y < w; y += 5) {
            for (var n = [], e = 0; 5 > e; e++) n[e] = x[y + e >>> 2] >>> 24 - (y + e) % 4 * 8 & 255;
            n = [n[0] >>> 3 & 31, (n[0] & 7) << 2 | n[1] >>> 6 & 3, n[1] >>> 1 & 31, (n[1] & 1) << 4 |
                n[2] >>> 4 & 15, (n[2] & 15) << 1 | n[3] >>> 7 & 1, n[3] >>> 2 & 31, (n[3] & 3) <<
                3 | n[4] >>> 5 & 7, n[4] & 31];
            for (e = 0; 8 > e && y + .625 * e < w; e++) v.push(A.charAt(n[e]))
        }
        if (x = A.charAt(32))
            for (; v.length % 8;) v.push(x);
        return v.join("")
    },
    parse: function (v) {
        var x = v.length,
            w = this._map,
            A = w.charAt(32);
        A && (A = v.indexOf(A), -1 != A && (x = A));
        A = [];
        for (var y = 0, n = 0; n < x; n++) {
            var e = n % 8;
            if (0 != e && 2 != e && 5 != e) {
                var f = 255 & w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8,
                    r = 255 & w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8;
                e = e % 3 ? 0 : 255 & w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7);
                A[y >>> 2] |= (f | r | e) << 24 - y % 4 * 8;
                y++
            }
        }
        return u.create(A, y)
    },
    _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
}
})();

class JDDMAC {
  static t() {
    return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D"
    .split(" ").map(function (v) {
        return parseInt(v, 16)
    })
  }
  mac(v) {
    for (var x = -1, w = 0, A = v.length; w < A; w++) x = x >>> 8 ^ t[(x ^ v.charCodeAt(w)) & 255];
    return (x ^ -1) >>> 0
  }
}
var _CurrentPageProtocol = "https:" == document.location.protocol ? "https://" : "http://",
_JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com",
_url_query_str = "",
_root_domain = "",
_CurrentPageUrl = function () {
    var t = document.location.href.toString();
    try {
        _root_domain = /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec(t)[1]
    } catch (v) {}
    var u = t.indexOf("?");
    0 < u && (_url_query_str = t.substring(u + 1), 500 < _url_query_str.length && (_url_query_str = _url_query_str.substring(
        0, 499)), t = t.substring(0, u));
    return t = t.substring(_CurrentPageProtocol.length)
}(),
jd_shadow__ = function () {
    try {
        var t = JDDSecCryptoJS,
            u = [];
        u.push(_CurrentPageUrl);
        var v = t.lib.UUID.generateUuid();
        u.push(v);
        var x = (new Date).getTime();
        u.push(x);
        var w = t.SHA1(u.join("")).toString().toUpperCase();
        u = [];
        u.push("JD3");
        u.push(w);
        var A = (new JDDMAC).mac(u.join(""));
        u.push(A);
        var y = t.enc.Hex.parse("30313233343536373839616263646566"),
            n = t.enc.Hex.parse("4c5751554935255042304e6458323365"),
            e = u.join("");
        return t.AES.encrypt(t.enc.Utf8.parse(e), n, {
            mode: t.mode.CBC,
            padding: t.pad.Pkcs7,
            iv: y
        }).ciphertext.toString(t.enc.Base32)
    } catch (f) {
      console.log(f)
    }
}()
var td_collect = new function () {
    function t() {
      var n = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection;
      if (n) {
        var e = function (k) {
          var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/,
            m =
              /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/;
          try {
            var a = g.exec(k);
            if (null == a || 0 == a.length || void 0 == a) a = m.exec(k);
            var b = a[1];
            void 0 === f[b] && w.push(b);
            f[b] = !0
          } catch (c) { }
        },
          f = {};
        try {
          var r = new n({
            iceServers: [{
              url: "stun:stun.services.mozilla.com"
            }]
          })
        } catch (k) { }
        try {
          void 0 === r && (r = new n({
            iceServers: []
          }))
        } catch (k) { }
        if (r || window.mozRTCPeerConnection) try {
          r.createDataChannel("chat", {
            reliable: !1
          })
        } catch (k) { }
        r && (r.onicecandidate = function (k) {
          k.candidate && e(k.candidate.candidate)
        }, r.createOffer(function (k) {
          r.setLocalDescription(k, function () { }, function () { })
        }, function () { }), setTimeout(function () {
          try {
            r.localDescription.sdp.split("\n").forEach(function (k) {
              0 === k.indexOf("a=candidate:") && e(k)
            })
          } catch (k) { }
        }, 800))
      }
    }

    function u(n) {
      var e;
      return (e = document.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"))) ? e[2] : ""
    }

    function v() {
      function n(g) {
        var m = {};
        r.style.fontFamily = g;
        document.body.appendChild(r);
        m.height = r.offsetHeight;
        m.width = r.offsetWidth;
        document.body.removeChild(r);
        return m
      }
      var e = ["monospace", "sans-serif", "serif"],
        f = [],
        r = document.createElement("span");
      r.style.fontSize = "72px";
      r.style.visibility = "hidden";
      r.innerHTML = "mmmmmmmmmmlli";
      for (var k = 0; k < e.length; k++) f[k] = n(e[k]);
      this.checkSupportFont = function (g) {
        for (var m = 0; m < f.length; m++) {
          var a = n(g + "," + e[m]),
            b = f[m];
          if (a.height !== b.height || a.width !== b.width) return !0
        }
        return !1
      }
    }

    function x(n) {
      var e = {};
      e.name = n.name;
      e.filename = n.filename.toLowerCase();
      e.description = n.description;
      void 0 !== n.version && (e.version = n.version);
      e.mimeTypes = [];
      for (var f = 0; f < n.length; f++) {
        var r = n[f],
          k = {};
        k.description = r.description;
        k.suffixes = r.suffixes;
        k.type = r.type;
        e.mimeTypes.push(k)
      }
      return e
    }
    this.bizId = "";
    this.bioConfig = {
      type: "42",
      operation: 1,
      duraTime: 2,
      interval: 50
    };
    this.worder = null;
    this.deviceInfo = {
      userAgent: "",
      isJdApp: !1,
      isJrApp: !1,
      sdkToken: "",
      fp: "",
      eid: ""
    };
    this.isRpTok = !1;
    this.obtainLocal = function (n) {
      n = "undefined" !== typeof n && n ? !0 : !1;
      var e = {};
      try {
        var f = document.cookie.replace(/(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, "$1");
        0 !== f.length && (e.cookie = f)
      } catch (k) { }
      try {
        window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage =
          window.localStorage.getItem("3AB9D23F7A4B3C9B"))
      } catch (k) { }
      try {
        window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[
          "3AB9D23F7A4B3C9B"])
      } catch (k) { }
      try {
        p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"])
      } catch (k) { }
      try {
        d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load(
          "jdgia_user_data"), e.userData = d.getAttribute("3AB9D23F7A4B3C9B"))
      } catch (k) { }
      try {
        E.indexedDbId && (e.indexedDb = E.indexedDbId)
      } catch (k) { }
      try {
        E.webDbId && (e.webDb = E.webDbId)
      } catch (k) { }
      try {
        for (var r in e)
          if (32 < e[r].length) {
            _JdEid = e[r];
            n || (_eidFlag = !0);
            break
          }
      } catch (k) { }
      try {
        ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && this.db("3AB9D23F7A4B3C9B");
        if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _JdEid = u("3AB9D23F7A4B3C9B");
        if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0
      } catch (k) { }
      return _JdEid
    };
    var w = [],
      A =
        "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin"
          .split(";"),
      y =
        "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako"
          .split(";");
    this.toJson = "object" === typeof JSON && JSON.stringify;
    this.init = function () {
      _fingerprint_step = 6;
      t();
      _fingerprint_step = 7;
      "function" !== typeof this.toJson && (this.toJson = function (n) {
        var e = typeof n;
        if ("undefined" === e || null === n) return "null";
        if ("number" === e || "boolean" === e) return n + "";
        if ("object" === e && n && n.constructor === Array) {
          e = [];
          for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f]));
          return "[" + (e + "]")
        }
        if ("object" === e) {
          e = [];
          for (f in n) n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f]));
          return "{" + (e + "}")
        }
      });
      this.sdkCollectInit()
    };
    this.sdkCollectInit = function () {
      try {
        try {
          bp_bizid && (this.bizId = bp_bizid)
        } catch (f) {
          this.bizId = "jsDefault"
        }
        var n = navigator.userAgent.toLowerCase(),
          e = !n.match(/(iphone|ipad|ipod)/i) && (-1 < n.indexOf("android") || -1 < n.indexOf("adr"));
        this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp");
        this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr");
        this.deviceInfo.userAgent = navigator.userAgent;
        this.deviceInfo.isAndroid = e;
        this.createWorker()
      } catch (f) { }
    };
    this.db = function (n, e) {
      try {
        _fingerprint_step = "m";
        if (window.openDatabase) {
          var f = window.openDatabase("sqlite_jdtdstorage", "", "jdtdstorage", 1048576);
          void 0 !== e && "" != e ? f.transaction(function (r) {
            r.executeSql(
              "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))",
              [],
              function (k, g) { },
              function (k, g) { });
            r.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [n, e],
              function (k, g) { },
              function (k, g) { })
          }) : f.transaction(function (r) {
            r.executeSql("SELECT value FROM cache WHERE name=?", [n], function (k, g) {
              1 <= g.rows.length && (_JdEid = g.rows.item(0).value)
            }, function (k, g) { })
          })
        }
        _fingerprint_step = "n"
      } catch (r) { }
    };
    this.setCookie = function (n, e) {
      void 0 !== e && "" != e && (document.cookie = n + "=" + e +
        "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + _root_domain)
    };
    this.tdencrypt = function (n) {
      n = this.toJson(n);
      n = encodeURIComponent(n);
      var e = "",
        f = 0;
      do {
        var r = n.charCodeAt(f++);
        var k = n.charCodeAt(f++);
        var g = n.charCodeAt(f++);
        var m = r >> 2;
        r = (r & 3) << 4 | k >> 4;
        var a = (k & 15) << 2 | g >> 6;
        var b = g & 63;
        isNaN(k) ? a = b = 64 : isNaN(g) && (b = 64);
        e = e + "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(m) +
          "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(r) +
          "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(a) +
          "23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-".charAt(b)
      } while (f < n.length);
      return e + "/"
    };
    this.collect = function () {
      var n = new Date;
      try {
        var e = document.createElement("div"),
          f = {},
          r =
            "ActiveBorder ActiveCaption AppWorkspace Background ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText"
              .split(" ");
        if (window.getComputedStyle)
          for (var k = 0; k < r.length; k++) document.body.appendChild(e), e.style.color = r[k], f[r[k]] =
            window.getComputedStyle(e).getPropertyValue("color"), document.body.removeChild(e)
      } catch (D) { }
      e = {
        ca: {},
        ts: {},
        m: {}
      };
      r = e.ca;
      r.tdHash = _jdfp_canvas_md5;
      var g = !1;
      if (k = window.WebGLRenderingContext) k = navigator.userAgent, k = k.toLowerCase(), k = (0 < k.indexOf(
        "jdjr-app") || 0 <= k.indexOf("jdapp")) && (0 < k.indexOf("iphone") || 0 < k.indexOf("ipad")) ?
        !0 : !1, k = !k;
      if (k) {
        var m = ["webgl", "experimental-webgl", "moz-webgl", "webkit-3d"],
          a = [],
          b;
        for (k = 0; k < m.length; k++) try {
          var c = !1;
          (c = document.createElement("canvas").getContext(m[k], {
            stencil: !0
          })) && c && (b = c, a.push(m[k]))
        } catch (D) { }
        a.length && (g = {
          name: a,
          gl: b
        })
      }
      if (g) {
        k = g.gl;
        r.contextName = g.name.join();
        r.webglversion = k.getParameter(k.VERSION);
        r.shadingLV = k.getParameter(k.SHADING_LANGUAGE_VERSION);
        r.vendor = k.getParameter(k.VENDOR);
        r.renderer = k.getParameter(k.RENDERER);
        b = [];
        try {
          b = k.getSupportedExtensions(), r.extensions = b
        } catch (D) { }
        try {
          var l = k.getExtension("WEBGL_debug_renderer_info");
          l && (r.wuv = k.getParameter(l.UNMASKED_VENDOR_WEBGL), r.wur = k.getParameter(l.UNMASKED_RENDERER_WEBGL))
        } catch (D) { }
      }
      e.m.documentMode = document.documentMode;
      e.m.compatMode = document.compatMode;
      l = [];
      // r = new v;
      // for (k = 0; k < A.length; k++) b = A[k], r.checkSupportFont(b) && l.push(b);
      e.fo = l;
      k = {};
      l = [];
      for (var h in navigator) "object" != typeof navigator[h] && (k[h] = navigator[h]), l.push(h);
      k.enumerationOrder = l;
      k.javaEnabled = false;
      try {
        k.taintEnabled = navigator.taintEnabled()
      } catch (D) { }
      e.n = k;
      k = navigator.userAgent.toLowerCase();
      if (h = k.match(/rv:([\d.]+)\) like gecko/)) var q = h[1];
      if (h = k.match(/msie ([\d.]+)/)) q = h[1];
      h = [];
      if (q)
        for (q =
          "AcroPDF.PDF;Adodb.Stream;AgControl.AgControl;DevalVRXCtrl.DevalVRXCtrl.1;MacromediaFlashPaper.MacromediaFlashPaper;Msxml2.DOMDocument;Msxml2.XMLHTTP;PDF.PdfCtrl;QuickTime.QuickTime;QuickTimeCheckObject.QuickTimeCheck.1;RealPlayer;RealPlayer.RealPlayer(tm) ActiveX Control (32-bit);RealVideo.RealVideo(tm) ActiveX Control (32-bit);rmocx.RealPlayer G2 Control;Scripting.Dictionary;Shell.UIHelper;ShockwaveFlash.ShockwaveFlash;SWCtl.SWCtl;TDCCtl.TDCCtl;WMPlayer.OCX"
            .split(";"), k = 0; k < q.length; k++) {
          var z = q[k];
          try {
            var C = new ActiveXObject(z);
            l = {};
            l.name = z;
            try {
              l.version = C.GetVariable("$version")
            } catch (D) { }
            try {
              l.version = C.GetVersions()
            } catch (D) { }
            l.version && 0 < l.version.length || (l.version = "");
            h.push(l)
          } catch (D) { }
        } else {
        q = navigator.plugins;
        l = {};
        for (k = 0; k < q.length; k++) z = q[k], l[z.name] = 1, h.push(x(z));
        for (k = 0; k < y.length; k++) C = y[k], l[C] || (z = q[C], z && h.push(x(z)))
      }
      q =
        "availHeight availWidth colorDepth bufferDepth deviceXDPI deviceYDPI height width logicalXDPI logicalYDPI pixelDepth updateInterval"
          .split(" ");
      z = {};
      for (k = 0; q.length > k; k++) C = q[k], void 0 !== screen[C] && (z[C] = screen[C]);
      q = ["devicePixelRatio", "screenTop", "screenLeft"];
      l = {};
      for (k = 0; q.length > k; k++) C = q[k], void 0 !== window[C] && (l[C] = window[C]);
      e.p = h;
      e.w = l;
      e.s = z;
      e.sc = f;
      e.tz = n.getTimezoneOffset();
      e.lil = w.sort().join("|");
      e.wil = "";
      f = {};
      try {
        f.cookie = navigator.cookieEnabled, f.localStorage = !!window.localStorage, f.sessionStorage = !!
          window.sessionStorage, f.globalStorage = !!window.globalStorage, f.indexedDB = !!window.indexedDB
      } catch (D) { }
      e.ss = f;
      e.ts.deviceTime = n.getTime();
      e.ts.deviceEndTime = (new Date).getTime();
      return this.tdencrypt(e)
    };
    this.collectSdk = function (n) {
      try {
        var e = this,
          f = !1,
          r = e.getLocal("BATQW722QTLYVCRD");
        if (null != r && void 0 != r && "" != r) try {
          var k = JSON.parse(r),
            g = (new Date).getTime();
          null != k && void 0 != k.t && "number" == typeof k.t && (12E5 >= g - k.t && void 0 != k.tk &&
            null != k.tk && "" != k.tk && k.tk.startsWith("jdd") ? (e.deviceInfo.sdkToken = k.tk,
              f = !0) : void 0 != k.tk && null != k.tk && "" != k.tk && (e.deviceInfo.sdkToken =
                k.tk))
        } catch (m) { }
        r = !1;
        e.deviceInfo.isJdApp ? (e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2], (r = 0 < e.compareVersion(
          e.deviceInfo.clientVersion, "7.0.2")) && !f && e.getJdSdkCacheToken(function (m) {
            e.deviceInfo.sdkToken = m;
            null != m && "" != m && m.startsWith("jdd") || e.getJdBioToken(n)
          })) : e.deviceInfo.isJrApp && (e.deviceInfo.clientVersion = navigator.userAgent.match(
            /clientVersion=([^&]*)(&|$)/)[1], (r = 0 < e.compareVersion(e.deviceInfo.clientVersion,
              "4.6.0")) && !f && e.getJdJrSdkCacheToken(function (m) {
                e.deviceInfo.sdkToken = m;
                null != m && "" != m && m.startsWith("jdd") || e.getJdJrBioToken(n)
              }));
        "function" == typeof n && n(e.deviceInfo)
      } catch (m) { }
    };
    this.compareVersion = function (n, e) {
      try {
        if (n === e) return 0;
        var f = n.split(".");
        var r = e.split(".");
        for (n = 0; n < f.length; n++) {
          var k = parseInt(f[n]);
          if (!r[n]) return 1;
          var g = parseInt(r[n]);
          if (k < g) break;
          if (k > g) return 1
        }
      } catch (m) { }
      return -1
    };
    this.isWKWebView = function () {
      return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || 1 == window._is_jdsh_wkwebview ? !0 : !1
    };
    this.getErrorToken = function (n) {
      try {
        if (n) {
          var e = (n + "").match(/"token":"(.*?)"/);
          if (e && 1 < e.length) return e[1]
        }
      } catch (f) { }
      return ""
    };
    this.getJdJrBioToken = function (n) {
      var e = this;
      "undefined" != typeof JrBridge && null != JrBridge && "undefined" != typeof JrBridge._version && (0 > e
        .compareVersion(JrBridge._version, "2.0.0") ? console.error(
          "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio") : JrBridge.callNative({
            type: e.bioConfig.type,
            operation: e.bioConfig.operation,
            biometricData: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            }
          }, function (f) {
            try {
              "object" != typeof f && (f = JSON.parse(f)), e.deviceInfo.sdkToken = f.token
            } catch (r) {
              console.error(r)
            }
            null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = {
              tk: e.deviceInfo.sdkToken,
              t: (new Date).getTime()
            }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))
          }))
    };
    this.getJdJrSdkCacheToken = function (n) {
      var e = this;
      try {
        "undefined" == typeof JrBridge || null == JrBridge || "undefined" == typeof JrBridge._version || 0 >
          e.compareVersion(JrBridge._version, "2.0.0") || JrBridge.callNative({
            type: e.bioConfig.type,
            operation: 5,
            biometricData: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            }
          }, function (f) {
            var r = "";
            try {
              "object" != typeof f && (f = JSON.parse(f)), r = f.token
            } catch (k) {
              console.error(k)
            }
            null != r && "" != r && "function" == typeof n && (n(r), r.startsWith("jdd") && (f = {
              tk: r,
              t: (new Date).getTime()
            }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))))
          })
      } catch (f) { }
    };
    this.getJdBioToken = function (n) {
      var e = this;
      n = JSON.stringify({
        businessType: "bridgeBiologicalProbe",
        callBackName: "_bioDeviceCb",
        params: {
          pin: "",
          jsonData: {
            type: e.bioConfig.type,
            operation: e.bioConfig.operation,
            data: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            },
            biometricData: {
              bizId: e.bizId,
              duraTime: e.bioConfig.duraTime,
              interval: e.bioConfig.interval
            }
          }
        }
      });
      e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({
        method: "notifyMessageToNative",
        params: n
      }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n);
      window._bioDeviceCb = function (f) {
        try {
          var r = "object" == typeof f ? f : JSON.parse(f);
          if (void 0 != r && null != r && "0" != r.status) return;
          null != r.data.token && void 0 != r.data.token && "" != r.data.token && (e.deviceInfo.sdkToken =
            r.data.token)
        } catch (k) {
          f = e.getErrorToken(f), null != f && "" != f && (e.deviceInfo.sdkToken = f)
        }
        null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = {
          tk: e.deviceInfo.sdkToken,
          t: (new Date).getTime()
        }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))
      }
    };
    this.getJdSdkCacheToken = function (n) {
      try {
        var e = this,
          f = JSON.stringify({
            businessType: "bridgeBiologicalProbe",
            callBackName: "_bioDeviceSdkCacheCb",
            params: {
              pin: "",
              jsonData: {
                type: e.bioConfig.type,
                operation: 5,
                data: {
                  bizId: e.bizId,
                  duraTime: e.bioConfig.duraTime,
                  interval: e.bioConfig.interval
                },
                biometricData: {
                  bizId: e.bizId,
                  duraTime: e.bioConfig.duraTime,
                  interval: e.bioConfig.interval
                }
              }
            }
          });
        e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({
          method: "notifyMessageToNative",
          params: f
        }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f);
        window._bioDeviceSdkCacheCb = function (r) {
          var k = "";
          try {
            var g = "object" == typeof r ? r : JSON.parse(r);
            if (void 0 != g && null != g && "0" != g.status) return;
            k = g.data.token
          } catch (m) {
            k = e.getErrorToken(r)
          }
          null != k && "" != k && "function" == typeof n && (n(k), k.startsWith("jdd") && (r = {
            tk: k,
            t: (new Date).getTime()
          }, e.store("BATQW722QTLYVCRD", JSON.stringify(r))))
        }
      } catch (r) { }
    };
    this.store = function (n, e) {
      try {
        this.setCookie(n, e)
      } catch (f) { }
      try {
        window.localStorage && window.localStorage.setItem(n, e)
      } catch (f) { }
      try {
        window.sessionStorage && window.sessionStorage.setItem(n, e)
      } catch (f) { }
      try {
        window.globalStorage && window.globalStorage[".localdomain"].setItem(n, e)
      } catch (f) { }
      try {
        this.db(n, _JdEid)
      } catch (f) { }
    };
    this.getLocal = function (n) {
      var e = {},
        f = null;
      try {
        var r = document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"),
          "$1");
        0 !== r.length && (e.cookie = r)
      } catch (g) { }
      try {
        window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage =
          window.localStorage.getItem(n))
      } catch (g) { }
      try {
        window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[
          n])
      } catch (g) { }
      try {
        p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"][n])
      } catch (g) { }
      try {
        d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load(
          "jdgia_user_data"), e.userData = d.getAttribute(n))
      } catch (g) { }
      try {
        E.indexedDbId && (e.indexedDb = E.indexedDbId)
      } catch (g) { }
      try {
        E.webDbId && (e.webDb = E.webDbId)
      } catch (g) { }
      try {
        for (var k in e)
          if (32 < e[k].length) {
            f = e[k];
            break
          }
      } catch (g) { }
      try {
        if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n)
      } catch (g) { }
      return f
    };
    this.createWorker = function () {
      if (window.Worker) {
        try {
          var n = new Blob([
            "onmessage = function (event) {\n    var data = JSON.parse(event.data);\n    try {\n        var httpRequest;\n        try {\n            httpRequest = new XMLHttpRequest();\n        } catch (h) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n            } catch (l) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n            } catch (r) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n            } catch (n) {}\n\n        if(data){\n            httpRequest['open']('POST', data.url, false);\n            httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            httpRequest['onreadystatechange'] = function () {\n                if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n                    postMessage(httpRequest.responseText);\n                }\n            };\n            httpRequest['send'](data.data);\n        }\n\n    }catch (e){console.error(e);}\n};"
          ], {
            type: "application/javascript"
          })
        } catch (e) {
          window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder, n =
            new BlobBuilder, n.append(
              "onmessage = function (event) {\n    var data = JSON.parse(event.data);\n    try {\n        var httpRequest;\n        try {\n            httpRequest = new XMLHttpRequest();\n        } catch (h) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n            } catch (l) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n            } catch (r) {}\n        if (!httpRequest)\n            try {\n                httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n            } catch (n) {}\n\n        if(data){\n            httpRequest['open']('POST', data.url, false);\n            httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            httpRequest['onreadystatechange'] = function () {\n                if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n                    postMessage(httpRequest.responseText);\n                }\n            };\n            httpRequest['send'](data.data);\n        }\n\n    }catch (e){console.error(e);}\n};"
            ), n = n.getBlob()
        }
        try {
          this.worker = new Worker(URL.createObjectURL(n))
        } catch (e) { }
      }
    };
    this.reportWorker = function (n, e, f, r) {
      try {
        null != this.worker && (this.worker.postMessage(JSON.stringify({
          url: n,
          data: e,
          success: !1,
          async: !1
        })), this.worker.onmessage = function (k) { })
      } catch (k) { }
    }
};

function td_collect_exe() {
  _fingerprint_step = 8;
  var t = td_collect.collect();
  td_collect.collectSdk();
  var u = "string" === typeof orderId ? orderId : "",
    v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1;
  u = {
    pin: _jdJrTdCommonsObtainPin(v),
    oid: u,
    p: "https:" == document.location.protocol ? "s" : "h",
    fp: risk_jd_local_fingerprint,
    ctype: v,
    v: "2.7.10.4",
    f: "3"
  };
  try {
    u.o = _CurrentPageUrl, u.qs = _url_query_str
  } catch (w) { }
  _fingerprint_step = 9;
  0 >= _JdEid.length && (_JdEid = td_collect.obtainLocal(), 0 < _JdEid.length && (_eidFlag = !0));
  u.fc = _JdEid;
  try {
    u.t = jd_risk_token_id
  } catch (w) { }
  try {
    if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) u.qi = gia_fp_qd_uuid;
    else {
      var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid");
      u.qi = void 0 == x ? "" : x
    }
  } catch (w) { }
  "undefined" != typeof jd_shadow__ && 0 < jd_shadow__.length && (u.jtb = jd_shadow__);
  try {
    td_collect.deviceInfo && void 0 != td_collect.deviceInfo && null != td_collect.deviceInfo.sdkToken && "" !=
      td_collect.deviceInfo.sdkToken ? (u.stk = td_collect.deviceInfo.sdkToken, td_collect.isRpTok = !0) :
      td_collect.isRpTok = !1
  } catch (w) {
    td_collect.isRpTok = !1
  }
  x = td_collect.tdencrypt(u);
  // console.log(u)
  return { a: x, d: t }
}

function _jdJrTdCommonsObtainPin(t) {
  var u = "";
  "string" === typeof jd_jr_td_risk_pin && 1 == t ? u = jd_jr_td_risk_pin : "string" === typeof pin ? u = pin :
    "object" === typeof pin && "string" === typeof jd_jr_td_risk_pin && (u = jd_jr_td_risk_pin);
  return u
};

function getBody(url = document.location.href) {
  navigator.userAgent = UA
  let href = url
  let choose = /((https?:)\/\/([^\/]+))(.+)/.exec(url)
  let [, origin, protocol, host, pathname] = choose;
  document.location.href = href
  document.location.origin = origin
  document.location.protocol = protocol
  document.location.host = host
  document.location.pathname = pathname
  const JF = new JdJrTdRiskFinger();
  let fp = JF.f.get(function (t) {
    risk_jd_local_fingerprint = t
    return t
  });
  let arr = td_collect_exe()
  return { fp, ...arr }
}

JdJrTdRiskFinger.getBody = getBody;
module.exports = JdJrTdRiskFinger;

================================================
FILE: JD_extra_cookie.js
================================================
/*
感谢github@dompling的PR

Author: 2Ya

Github: https://github.com/dompling

===================
特别说明:
1.获取多个京东cookie的脚本,不和NobyDa的京东cookie冲突。注:如与NobyDa的京东cookie重复,建议在BoxJs处删除重复的cookie
===================
===================
使用方式:在代理软件配置好下方配置后,复制 https://home.m.jd.com/myJd/newhome.action 到浏览器打开 ,在个人中心自动获取 cookie,
若弹出成功则正常使用。否则继续再此页面继续刷新一下试试。

注:建议通过脚本去获取cookie,若要在BoxJs处手动修改,请按照JSON格式修改(注:可使用此JSON校验 https://www.bejson.com/json/format)
示例:[{"userName":"jd_xxx","cookie":"pt_key=AAJ;pt_pin=jd_xxx;"},{"userName":"jd_66","cookie":"pt_key=AAJ;pt_pin=jd_66;"}]
===================
new Env('获取多账号京东Cookie');//此处忽略即可,为自动生成iOS端软件配置文件所需
===================
[MITM]
hostname = me-api.jd.com

===================Quantumult X=====================
[rewrite_local]
# 获取多账号京东Cookie
https:\/\/me-api\.jd\.com\/user_new\/info\/GetJDUserInfoUnion url script-request-header JD_extra_cookie.js

===================Loon===================
[Script]
http-request https:\/\/me-api\.jd\.com\/user_new\/info\/GetJDUserInfoUnion script-path=JD_extra_cookie.js, tag=获取多账号京东Cookie

===================Surge===================
[Script]
获取多账号京东Cookie = type=http-request,pattern=^https:\/\/me-api\.jd\.com\/user_new\/info\/GetJDUserInfoUnion,requires-body=1,max-size=0,script-path=JD_extra_cookie.js,script-update-interval=0
 */

const APIKey = "CookiesJD";
$ = new API(APIKey, true);
const CacheKey = `#${APIKey}`;
if ($request) GetCookie();

function getCache() {
  var cache = $.read(CacheKey) || "[]";
  $.log(cache);
  return JSON.parse(cache);
}

function GetCookie() {
  try {
    if ($request.headers && $request.url.indexOf("GetJDUserInfoUnion") > -1) {
      var CV = $request.headers["Cookie"] || $request.headers["cookie"];
      if (CV.match(/(pt_key=.+?pt_pin=|pt_pin=.+?pt_key=)/)) {
        var CookieValue = CV.match(/pt_key=.+?;/) + CV.match(/pt_pin=.+?;/);
        var UserName = CookieValue.match(/pt_pin=([^; ]+)(?=;?)/)[1];
        var DecodeName = decodeURIComponent(UserName);
        var CookiesData = getCache();
        var updateCookiesData = [...CookiesData];
        var updateIndex;
        var CookieName = "【账号】";
        var updateCodkie = CookiesData.find((item, index) => {
          var ck = item.cookie;
          var Account = ck
            ? ck.match(/pt_pin=.+?;/)
              ? ck.match(/pt_pin=([^; ]+)(?=;?)/)[1]
              : null
            : null;
          const verify = UserName === Account;
          if (verify) {
            updateIndex = index;
          }
          return verify;
        });
        var tipPrefix = "";
        if (updateCodkie) {
          updateCookiesData[updateIndex].cookie = CookieValue;
          CookieName = `【账号${updateIndex + 1}】`;
          tipPrefix = "更新京东";
        } else {
          updateCookiesData.push({
            userName: DecodeName,
            cookie: CookieValue,
          });
          CookieName = "【账号" + updateCookiesData.length + "】";
          tipPrefix = "首次写入京东";
        }
        const cacheValue = JSON.stringify(updateCookiesData, null, "\t");
        $.write(cacheValue, CacheKey);
        $.notify(
          "用户名: " + DecodeName,
          "",
          tipPrefix + CookieName + "Cookie成功 🎉"
        );
      } else {
        $.notify("写入京东Cookie失败", "", "请查看脚本内说明, 登录网页获取 ‼️");
      }
      $.done();
      return;
    } else {
      $.notify("写入京东Cookie失败", "", "请检查匹配URL或配置内脚本类型 ‼️");
    }
  } catch (eor) {
    $.write("", CacheKey);
    $.notify("写入京东Cookie失败", "", "已尝试清空历史Cookie, 请重试 ⚠️");
    console.log(
      `\n写入京东Cookie出现错误 ‼️\n${JSON.stringify(
        eor
      )}\n\n${eor}\n\n${JSON.stringify($request.headers)}\n`
    );
  }
  $.done();
}

// prettier-ignore
function ENV(){const isQX=typeof $task!=="undefined";const isLoon=typeof $loon!=="undefined";const isSurge=typeof $httpClient!=="undefined"&&!isLoon;const isJSBox=typeof require=="function"&&typeof $jsbox!="undefined";const isNode=typeof require=="function"&&!isJSBox;const isRequest=typeof $request!=="undefined";const isScriptable=typeof importModule!=="undefined";return{isQX,isLoon,isSurge,isNode,isJSBox,isRequest,isScriptable}}
// prettier-ignore
function HTTP(baseURL,defaultOptions={}){const{isQX,isLoon,isSurge,isScriptable,isNode}=ENV();const methods=["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"];function send(method,options){options=typeof options==="string"?{url:options}:options;options.url=baseURL?baseURL+options.url:options.url;options={...defaultOptions,...options};const timeout=options.timeout;const events={...{onRequest:()=>{},onResponse:(resp)=>resp,onTimeout:()=>{},},...options.events,};events.onRequest(method,options);let worker;if(isQX){worker=$task.fetch({method,...options})}else if(isLoon||isSurge||isNode){worker=new Promise((resolve,reject)=>{const request=isNode?require("request"):$httpClient;request[method.toLowerCase()](options,(err,response,body)=>{if(err)reject(err);else resolve({statusCode:response.status||response.statusCode,headers:response.headers,body,})})})}else if(isScriptable){const request=new Request(options.url);request.method=method;re
Download .txt
gitextract__96w9huk/

├── .editorconfig
├── .gitattributes
├── .gitignore
├── CK_WxPusherUid.json
├── JDJRSignValidator.js
├── JDJRValidator_Pure.js
├── JDSignValidator.js
├── JD_extra_cookie.js
├── JS_USER_AGENTS.js
├── README.md
├── TS_JDHelloWorld.d.ts
├── TS_JDHelloWorld.js
├── TS_USER_AGENTS.ts
├── USER_AGENTS.js
├── ZooFaker_Necklace.js
├── activity/
│   ├── JD_extra_cookie.js
│   ├── jd_0yuankanjia.js
│   ├── jd_15_5.js
│   ├── jd_15_8.js
│   ├── jd_19E.js
│   ├── jd_19EPZ_help.js
│   ├── jd_19E_friends.js
│   ├── jd_19E_help.js
│   ├── jd_19_5.js
│   ├── jd_29_8.js
│   ├── jd_5_2.js
│   ├── jd_618lottery.js
│   ├── jd_TreasureRank.js
│   ├── jd_angryBean.js
│   ├── jd_bean_sign.js
│   ├── jd_beauty_ex.js
│   ├── jd_big_winner.js
│   ├── jd_bigwinner.py
│   ├── jd_bridge.js
│   ├── jd_btnyx.py
│   ├── jd_bzlshdgt.js
│   ├── jd_car.js
│   ├── jd_cash.js
│   ├── jd_cfd.js
│   ├── jd_cfd_fresh.js
│   ├── jd_cfd_fresh_exchange.js
│   ├── jd_cfd_hb.js
│   ├── jd_cfd_loop.js
│   ├── jd_cfd_mooncake.js
│   ├── jd_cfd_mooncake_help.js
│   ├── jd_cfd_pearl.js
│   ├── jd_cfd_pearl_ex.js
│   ├── jd_city_exchange.js
│   ├── jd_city_lottery.js
│   ├── jd_citytx.js
│   ├── jd_cityzl.js
│   ├── jd_daily_egg.js
│   ├── jd_daily_lottery.js
│   ├── jd_decompression.js
│   ├── jd_delCoupon.js
│   ├── jd_desire.js
│   ├── jd_djyyj.js
│   ├── jd_dlpj.js
│   ├── jd_duobao.js
│   ├── jd_dwapp.js
│   ├── jd_dyj_help.js
│   ├── jd_exchangejxbeans.js
│   ├── jd_fc_winner.js
│   ├── jd_fcdyj_help_wx.js
│   ├── jd_festivalhb_cash.js
│   ├── jd_fission.js
│   ├── jd_freshgoods.js
│   ├── jd_ftzy_help.js
│   ├── jd_gouwuche.js
│   ├── jd_gyp.js
│   ├── jd_haier.js
│   ├── jd_half_redrain.js
│   ├── jd_hb.js
│   ├── jd_health_exchange.py
│   ├── jd_health_plant.py
│   ├── jd_hotNeight.js
│   ├── jd_hyj.js
│   ├── jd_hyj_help.py
│   ├── jd_industrial_task.js
│   ├── jd_insight.js
│   ├── jd_jchsign.js
│   ├── jd_jfcz.js
│   ├── jd_jika.js
│   ├── jd_jin_tie.js
│   ├── jd_jingsubang.js
│   ├── jd_joy.js
│   ├── jd_joy_feedPets.js
│   ├── jd_joy_park_newtask.js
│   ├── jd_joy_run.js
│   ├── jd_joy_steal.js
│   ├── jd_joy_tx.js
│   ├── jd_jump.js
│   ├── jd_jxdzz.js
│   ├── jd_jxg.js
│   ├── jd_jxgckc.js
│   ├── jd_jxhlk.js
│   ├── jd_jxhlk.py
│   ├── jd_jxlhb.js
│   ├── jd_jxmc.js
│   ├── jd_jxmc_hb.js
│   ├── jd_jxnc.js
│   ├── jd_jxnn.js
│   ├── jd_koi_Help.js
│   ├── jd_live_redrain.js
│   ├── jd_ljd.js
│   ├── jd_lotteryMachine.js
│   ├── jd_lottery_drew.js
│   ├── jd_lsj.js
│   ├── jd_lxLottery.js
│   ├── jd_m_sign.js
│   ├── jd_market_lottery.js
│   ├── jd_marketmh.js
│   ├── jd_mhyyl.js
│   ├── jd_mhyyl_prize.js
│   ├── jd_mnyyn.js
│   ├── jd_mofang.js
│   ├── jd_mofang.ts
│   ├── jd_mofang_ex.js
│   ├── jd_mohe.js
│   ├── jd_mohe_help.js
│   ├── jd_moneyTree.js
│   ├── jd_moneyTree_help.js
│   ├── jd_ms.js
│   ├── jd_mx_shop.js
│   ├── jd_neight1.js
│   ├── jd_neight2.js
│   ├── jd_newTreasure.py
│   ├── jd_nzmh.js
│   ├── jd_opencardDPLHTY.js
│   ├── jd_opencardty.js
│   ├── jd_pigPet.js
│   ├── jd_redPacket_help.js
│   ├── jd_sendBeans.js
│   ├── jd_shop.js
│   ├── jd_shophelp.js
│   ├── jd_sign.js
│   ├── jd_sign_graphics.js
│   ├── jd_sjnhj.js
│   ├── jd_speed.js
│   ├── jd_superBrandSign.js
│   ├── jd_superBrandzd.js
│   ├── jd_superMarket.js
│   ├── jd_super_mh.js
│   ├── jd_sxLottery.js
│   ├── jd_tiger_help.js
│   ├── jd_travel.js
│   ├── jd_travel_help.js
│   ├── jd_unsubscribe.js
│   ├── jd_wq_wxsign.js
│   ├── jd_wxCollectionActivity.js
│   ├── jd_wxShopFollowActivity.js
│   ├── jd_wyw.js
│   ├── jd_xgyl_wx.js
│   ├── jd_xinruimz.js
│   ├── jd_xp.js
│   ├── jd_xqscjd.js
│   ├── jd_xtg.js
│   ├── jd_xyhy.js
│   ├── jd_year.js
│   ├── jd_yijia.js
│   ├── jd_ys.js
│   ├── jd_zbjmh.js
│   ├── jd_zjd.js
│   ├── jd_zns_award.js
│   ├── jd_zzt.js
│   └── jx_sign.js
├── backUp/
│   ├── GetJdCookie.md
│   ├── GetJdCookie2.md
│   ├── TG_PUSH.md
│   ├── gitSync.md
│   ├── iCloud.md
│   ├── iOS_Weather_AQI_Standard.js
│   ├── jdMsLogs.js
│   ├── jd_AJMH.js
│   ├── jd_AJYX.js
│   ├── jd_YSLD.js
│   ├── jd_a2.js
│   ├── jd_angryKoi_log.js
│   ├── jd_bean_sign.js
│   ├── jd_beauty_ex.js
│   ├── jd_cash_panda.js
│   ├── jd_cash_windfg.js
│   ├── jd_cfd.js
│   ├── jd_cfd_loop.js
│   ├── jd_cfd_mooncake.js
│   ├── jd_cfd_mooncake_help.js
│   ├── jd_computer.js
│   ├── jd_dpqd.js
│   ├── jd_dreamFactory.js
│   ├── jd_dreamFactory_help.js
│   ├── jd_dreamFactory_tuan.js
│   ├── jd_fc.js
│   ├── jd_finance.js
│   ├── jd_fruit.js
│   ├── jd_getFollowGift.py
│   ├── jd_gold_sign_log.js
│   ├── jd_gua_cleancart_Windfgg.js
│   ├── jd_health.js
│   ├── jd_homeRain.js
│   ├── jd_jdfactory.js
│   ├── jd_jdfactory_help.js
│   ├── jd_jdzz.js
│   ├── jd_jinli_hongbao.ts
│   ├── jd_joyjd_open.js
│   ├── jd_joyopen.js
│   ├── jd_jxmfljp.js
│   ├── jd_live.js
│   ├── jd_lottery.js
│   ├── jd_mall_active.js
│   ├── jd_mndt.js
│   ├── jd_mohe.js
│   ├── jd_ms.js
│   ├── jd_ms_log.js
│   ├── jd_nzmh.js
│   ├── jd_pet.js
│   ├── jd_plantBean.js
│   ├── jd_qbyql.js
│   ├── jd_redrain.js
│   ├── jd_redrain_half.js
│   ├── jd_shangou.js
│   ├── jd_superBrandSign.js
│   ├── jd_supergz.js
│   ├── jd_supermh.js
│   ├── jd_tanwei.js
│   ├── jd_teamAJ.js
│   ├── jd_try.py
│   ├── jd_tyt.js
│   ├── jd_tyt_ks.js
│   ├── jd_unsubscribe.js
│   ├── jd_wish.js
│   ├── jd_wskey_Windfgg.py
│   ├── jd_wskey_logout.js
│   ├── jd_wxCollectionActivity.js
│   ├── jd_wyjg.js
│   ├── jd_xmf_log.js
│   ├── jd_zjd.ts
│   ├── jd_zmlyx.js
│   ├── jx_sign_xd.js
│   ├── kill_ck.js
│   ├── kill_wskey.js
│   ├── tencentscf.md
│   ├── webhook.js
│   ├── xiaomibushu.py
│   └── xmSports.js
├── cleancart_activity.js
├── config/
│   ├── CK_WxPusherUid.json
│   ├── code.sh
│   ├── task_after.sh
│   ├── task_after2.sh
│   └── task_before.sh
├── depend.py
├── docker/
│   ├── Dockerfile
│   ├── README.md
│   ├── Readme.md
│   ├── auto_help.sh
│   ├── bot/
│   │   ├── jd_bot
│   │   ├── requirements.txt
│   │   └── setup.py
│   ├── crontab_list.sh
│   ├── default_task.sh
│   ├── docker-compose.yml
│   ├── docker_entrypoint.sh
│   ├── example/
│   │   ├── custom-append.yml
│   │   ├── custom-overwrite.yml
│   │   ├── default.yml
│   │   ├── docker多账户使用独立容器使用说明.md
│   │   ├── jd_scripts.custom-append.syno.json
│   │   ├── jd_scripts.custom-overwrite.syno.json
│   │   ├── jd_scripts.syno.json
│   │   └── multi.yml
│   ├── extra.sh
│   ├── notify_docker_user.js
│   ├── proc_file.sh
│   ├── ql1key.sh
│   └── task_before.sh
├── function/
│   ├── JDJRValidator_Pure_smiek.js
│   ├── TS_USER_AGENTS.ts
│   ├── cache/
│   │   └── index.js
│   ├── common.js
│   ├── config.js
│   ├── dylant.js
│   ├── dylanx.js
│   ├── dylany.js
│   ├── dylanz.js
│   ├── eval.js
│   ├── getToken.js
│   ├── h5st.ts
│   ├── jdValidate.js
│   ├── jdcookie.js
│   ├── jinli_log.ts
│   ├── jxAlgo.js
│   ├── krgetSign.js
│   ├── krgetToken.js
│   ├── krh5st.js
│   ├── magic.js
│   ├── mfdps.js
│   ├── proxy.js
│   ├── ql.js
│   ├── sendNotify.js
│   ├── signUpdateLog.log
│   ├── sign_graphics_validate.js
│   ├── signdps.js
│   └── zjdtool.js
├── h5.js
├── h5sts.js
├── index.js
├── jdCookie.js
├── jdCookie.py
├── jdDreamFactoryShareCodes.js
├── jdEnv.py
├── jdFactoryShareCodes.js
├── jdFruitShareCodes.js
├── jdJxncShareCodes.js
├── jdJxncTokens.js
├── jdMsLogs.js
├── jdPetShareCodes.js
├── jdPlantBeanShareCodes.js
├── jd_AJMH.js
├── jd_AJYX.js
├── jd_CheckCK.js
├── jd_CkSeq.js
├── jd_DailyBonus_Mod.js
├── jd_OpenCard_Force.js
├── jd_SuperBrandJXZ.js
├── jd_UpdateUIDtoRemark.js
├── jd_aid_factory.js
├── jd_aid_fortune.js
├── jd_bean_change.js
├── jd_bean_home.js
├── jd_bean_info.js
├── jd_bean_sign.js
├── jd_beans_7days.py
├── jd_beauty.js
├── jd_beauty_ex.js
├── jd_beauty_plant.py
├── jd_bigwinner.py
├── jd_blackHome.js
├── jd_captian.js
├── jd_car.js
├── jd_car_play.js
├── jd_car_play_exchange.js
├── jd_card_force.js
├── jd_cash.js
├── jd_cash_nolan.js
├── jd_cash_wx.js
├── jd_cashsign.js
├── jd_categoryUnion.js
├── jd_categoryUnion_draw.js
├── jd_check_dependence.py
├── jd_check_dependent.py
├── jd_cjdaily.js
├── jd_cjhy_completeInfoActivity.js
├── jd_cjhy_daily.js
├── jd_cjhy_sevenDay.js
├── jd_cjhy_signActivity.js
├── jd_cjhy_wxCollectionActivity.js
├── jd_cjhy_wxDrawActivity.js
├── jd_cjhy_wxGameActivity.js
├── jd_cjhy_wxKnowledgeActivity.js
├── jd_cjhy_wxMcLevelAndBirthGifts.js
├── jd_cjhy_wxShopFollowActivity.js
├── jd_cjhy_wxShopGift.js
├── jd_cjhydz_microDz.js
├── jd_cjhydz_wxTeam.js
├── jd_cjzdgf.js
├── jd_ckck3.sh
├── jd_clean_car.js
├── jd_cleancart_nolan.js
├── jd_club_lottery.js
├── jd_code2url.js
├── jd_comment.js
├── jd_completeInfoActivity.js
├── jd_couponspace.js
├── jd_cxxb_award.js
├── jd_daily.js
├── jd_dapai_draw.js
├── jd_dapai_task.js
├── jd_dd_follow_cc.js
├── jd_ddnc_farmpark.js
├── jd_delCoupon.js
├── jd_disable.py
├── jd_doTreasureRank.py
├── jd_dpcj.py
├── jd_dplh0320.js
├── jd_dplh0325.js
├── jd_dpqd.js
├── jd_dpqd_dsb.js
├── jd_dpsign.js
├── jd_drawCenter.js
├── jd_dreamFactory.js
├── jd_dreamFactory_help.js
├── jd_dreamFactory_tuan.js
├── jd_dwapp.js
├── jd_dygetbeans.js
├── jd_exchange.js
├── jd_fans.js
├── jd_fans_dou.js
├── jd_fans_fansactiveall.js
├── jd_fans_video.js
├── jd_fanshb.js
├── jd_farautomation.js
├── jd_fardel.js
├── jd_farhelp.js
├── jd_farm_automation.js
├── jd_fc_winner.js
├── jd_fcwb.py
├── jd_fcwb_mfhelp.js
├── jd_fcwb_nolan.js
├── jd_fen2bean.js
├── jd_follow.js
├── jd_follow_shop.js
├── jd_fruit.js
├── jd_fruit_friend.js
├── jd_fruit_task.js
├── jd_fruit_watering.js
├── jd_fuli.js
├── jd_gehugame.js
├── jd_gold_creation.js
├── jd_gua_MMdou_Mod.js
├── jd_gwxj_v.js
├── jd_half_redrain.js
├── jd_harmony_auto.js
├── jd_hbCount.py
├── jd_hcredrain.js
├── jd_health.js
├── jd_health_collect.js
├── jd_health_exchange.py
├── jd_health_help.js
├── jd_health_plant.py
├── jd_identical211.py
├── jd_identicaln214.py
├── jd_insight.js
├── jd_inviteFriendsGift.py
├── jd_jdfactory.js
├── jd_jdfactory_help.js
├── jd_jdjoypark.js
├── jd_jdkd1.js
├── jd_jdsupermarket_sign.js
├── jd_jdzz_dh.js
├── jd_jfk.js
├── jd_jgyx.js
├── jd_jin_tie.js
├── jd_jingBeanReceive.py
├── jd_jinggengInvite.py
├── jd_jinggeng_showInviteJoin.js
├── jd_jinli_hongbao.ts
├── jd_joinCommon_opencard.py
├── jd_joy_feedPets.js
├── jd_joy_park_run.js
├── jd_joy_park_run.ts
├── jd_joy_run.js
├── jd_joy_run_reward.ts
├── jd_joy_withdraw.js
├── jd_joyjd_open.js
├── jd_joymanor_task.js
├── jd_joymatch.js
├── jd_joyopen.js
├── jd_joypark_synthesis.js
├── jd_jr_draws.js
├── jd_jrsign.js
├── jd_js_cash.js
├── jd_jxgckc.js
├── jd_jxmc.js
├── jd_jxzl.js
├── jd_kanjia.js
├── jd_kd.js
├── jd_kuaid.js
├── jd_kuaidi_leaf.js
├── jd_live.js
├── jd_loreal_interact_ljqdysl.js
├── jd_lottery.js
├── jd_lottery_cart.js
├── jd_lottery_eight.js
├── jd_lottery_newyear.js
├── jd_lotterys.js
├── jd_lotty2.js
├── jd_luck_draw.js
├── jd_lzaddCart.js
├── jd_lzdz_categoryUnion.js
├── jd_lzkjInteract.py
├── jd_lzkj_daily.js
├── jd_lzkj_interact_yqrhyl.js
├── jd_lzkj_interactsaas_gzspyl.js
├── jd_lzkj_interactsaas_gzyl.js
├── jd_lzkj_interactsaas_jgyl.js
├── jd_lzkj_interactsaas_qrqd.js
├── jd_lzkj_interactsaas_rlqd.js
├── jd_lzkj_interactsaas_yqhyrh.js
├── jd_lzkj_loreal_cart.js
├── jd_lzkj_loreal_draw.js
├── jd_lzkj_loreal_followShop.js
├── jd_lzkj_loreal_invite.js
├── jd_lzkj_sevenDay.js
├── jd_lzkj_signActivity2.js
├── jd_lzkj_wxBuildActivity.js
├── jd_lzkj_wxCollectionActivity.js
├── jd_lzkj_wxDrawActivity.js
├── jd_lzkj_wxGameActivity.js
├── jd_lzkj_wxKnowledgeActivity.js
├── jd_lzkj_wxShopFollowActivity.js
├── jd_lzkj_wxShopGift.js
├── jd_lzkjdz.js
├── jd_lzkjdz_wxTeam.js
├── jd_m_sign.js
├── jd_makemoneyshop.js
├── jd_makemoneyshop_award.js
├── jd_makemoneyshop_reward.js
├── jd_malls.js
├── jd_marketmh.js
├── jd_marketxxl.js
├── jd_mf_new.js
├── jd_mfredrain.js
├── jd_mhtask.js
├── jd_mofang_ex.js
├── jd_mofangj.js
├── jd_morningSc.js
├── jd_mpdz_car_help.js
├── jd_mpdz_carv.js
├── jd_necklace_6dy.js
├── jd_notify.js
├── jd_openLuckBag.js
├── jd_opencardH0320.py
├── jd_opencardJBK.js
├── jd_opencardJoy.js
├── jd_opencardL300.js
├── jd_opencardL302.js
├── jd_pay_contract.js
├── jd_phoneDiscount.py
├── jd_pigPet.js
├── jd_pl.js
├── jd_plantBean.js
├── jd_plantBean_help.js
├── jd_plus2bean.js
├── jd_pluscore.js
├── jd_ppdt.js
├── jd_price.js
├── jd_prices.js
├── jd_prodev.js
├── jd_prodev.py
├── jd_pzhb_notify.py
├── jd_qbyql.js
├── jd_ql_log_scan.py
├── jd_sevenDay.js
├── jd_sevenDayjk.js
├── jd_sgmh.js
├── jd_shangou.js
├── jd_share.js
├── jd_share2.js
├── jd_shop.js
├── jd_shopCollectGift.py
├── jd_shopDraw.js
├── jd_shopGifts.js
├── jd_shopLeague_opencard.py
├── jd_shop_draw.js
├── jd_signFree.js
├── jd_sign_graphics.js
├── jd_sign_graphics1.js
├── jd_signbeanact.js
├── jd_sk2_draw.js
├── jd_speed_redpocke.js
├── jd_speed_sign.js
├── jd_speed_sign_Part1.js
├── jd_speed_sign_Part2.js
├── jd_speed_sign_Part3.js
├── jd_speed_sign_Part4.js
├── jd_speed_sign_Part5.js
├── jd_splitHongbao.js
├── jd_superBrandJKK.js
├── jd_superBrandJK_1.js
├── jd_superBrandJXZ.js
├── jd_superBrandSign.js
├── jd_superBrandStar.js
├── jd_superBrandXZ.js
├── jd_superBrandZII.js
├── jd_superBrandz.js
├── jd_supergz.js
├── jd_supermarket.js
├── jd_supermarket1.js
├── jd_supermarket_dh.js
├── jd_supermarket_ex.js
├── jd_supermarket_exchange.js
├── jd_supermarket_task.js
├── jd_supermohe.js
├── jd_tanwei.js
├── jd_team60.js
├── jd_team_exchange.js
├── jd_tenbean.js
├── jd_tewu.ts
├── jd_tj_sign.js
├── jd_tj_signcash.js
├── jd_tmplottery.js
├── jd_track.ts
├── jd_try.js
├── jd_try_notify.py
├── jd_twCard.js
├── jd_twjk_new.js
├── jd_txgzyl.js
├── jd_txzj_cart_item.js
├── jd_txzj_collect_item.js
├── jd_txzj_collect_shop.js
├── jd_txzj_lottery.js
├── jd_txzj_sign_in.js
├── jd_ty_help.js
├── jd_unsubscriLive.js
├── jd_unsubscribe.js
├── jd_unsubscribeShop.js
├── jd_vipgrowth.js
├── jd_washbeans.js
├── jd_wdz.js
├── jd_wdz.py
├── jd_wdzfd.js
├── jd_wechat_zz.ts
├── jd_whx_drawShopGift.js
├── jd_wish.js
├── jd_work_validate.js
├── jd_wq_wxsign.js
├── jd_wsdlb.js
├── jd_wxBirthGifts.py
├── jd_wxBuildActivity.js
├── jd_wxBulidActivity.py
├── jd_wxCartKoi.js
├── jd_wxCollectCard.js
├── jd_wxCollectionActivity.js
├── jd_wxCollectionActivity.py
├── jd_wxCollectionActivity2.js
├── jd_wxCompleteInfo.py
├── jd_wxFansInterActionActivity.js
├── jd_wxKnowledgeActivity.js
├── jd_wxMcLevelAndBirthGifts.js
├── jd_wxSecond.js
├── jd_wxShareActivity.js
├── jd_wxShopFollow.py
├── jd_wxShopFollowActivity.js
├── jd_wxShopGift.js
├── jd_wxShopGift.py
├── jd_wxSignRed.js
├── jd_wxUnPackingActivity.js
├── jd_wxgame.js
├── jd_wxttzq.js
├── jd_wyw.js
├── jd_wzqddnh.js
├── jd_xbhdl.js
├── jd_xinruimz.js
├── jd_xkmh.js
├── jd_xs_zzl.js
├── jd_zdjr.js
├── jd_zjb.js
├── jd_zjd_new.js
├── jd_zml.js
├── jd_zns_draw.js
├── jd_zns_game1.js
├── jd_zns_game2.js
├── jx_aid_cashback.js
├── jx_factory_automation.js
├── jx_festivalhb.js
├── jx_one2shopping.js
├── jx_sign_help.js
├── jx_sign_xd.js
├── magic.js
├── magic.py
├── main.py
├── ql.js
├── scan.json
├── sendNotify.js
├── sendNotify.py
├── sign_graphics_validate.js
├── test.js
├── utils/
│   ├── JDJRValidator.js
│   ├── JDJRValidator_Pure.js
│   ├── JDSignValidator.js
│   ├── JD_DailyBonus.js
│   ├── MoveMentFaker.js
│   ├── TS_USER_AGENTS.ts
│   ├── USER_AGENTS.js
│   ├── V3.ts
│   ├── ZooFaker_Necklace.js
│   ├── account_demo.json
│   ├── common.js
│   ├── config.js
│   ├── empty.json
│   ├── eval.js
│   ├── exceptCookie.json
│   ├── h5st.ts
│   ├── jdCookie.py
│   ├── jdShareCodes.js
│   ├── jdValidate.js
│   ├── jd_appopen.js
│   ├── jd_joy_getInvokeKey.ts
│   ├── jd_joy_validate.js
│   ├── jd_jxmcToken.js
│   ├── jd_zjd_tool.js
│   ├── jdcookie.js
│   ├── jinli_log.ts
│   ├── jxAlgo.js
│   ├── magic.js
│   ├── mf_log.ts
│   ├── pe.js
│   ├── pushplus.ts
│   ├── ql.js
│   ├── sendNotify.js
│   ├── shareCodesTool.ts
│   ├── sharecodes.json
│   ├── sign_graphics_validate.js
│   └── validate_single.js
└── wskey.py
Download .txt
Showing preview only (1,240K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (13896 symbols across 637 files)

FILE: JDJRSignValidator.js
  function t (line 43) | function t(a) {
  function u (line 135) | function u(a, b, c, l, h, q) {
  function v (line 140) | function v(a, b, c, l, h, q, z) {
  function x (line 144) | function x(a, b, c, l, h, q, z) {
  function w (line 148) | function w(a, b, c, l, h, q, z) {
  function A (line 152) | function A(a, b) {
  class JdJrTdRiskFinger (line 207) | class JdJrTdRiskFinger {
  function g (line 707) | function g() {}
  function g (line 938) | function g(m) {
  function g (line 973) | function g(a, b, c) {
  class JDDMAC (line 1305) | class JDDMAC {
    method t (line 1306) | static t() {
    method mac (line 1312) | mac(v) {
  function t (line 1359) | function t() {
  function u (line 1406) | function u(n) {
  function v (line 1411) | function v() {
  function x (line 1438) | function x(n) {
  function td_collect_exe (line 2009) | function td_collect_exe() {
  function _jdJrTdCommonsObtainPin (line 2053) | function _jdJrTdCommonsObtainPin(t) {
  function getBody (line 2060) | function getBody(url = document.location.href) {

FILE: JDJRValidator_Pure.js
  constant PNG (line 6) | const PNG = require('png-js');
  function randomString (line 10) | function randomString(e) {
  function sleep (line 27) | function sleep(timeout) {
  class PNGDecoder (line 31) | class PNGDecoder extends PNG {
    method constructor (line 32) | constructor(args) {
    method decodeToPixels (line 37) | decodeToPixels() {
    method getImageData (line 46) | getImageData(x, y, w, h) {
  constant PUZZLE_GAP (line 55) | const PUZZLE_GAP = 8;
  constant PUZZLE_PAD (line 56) | const PUZZLE_PAD = 10;
  class PuzzleRecognizer (line 58) | class PuzzleRecognizer {
    method constructor (line 59) | constructor(bg, patch, y) {
    method run (line 75) | async run() {
    method recognize (line 82) | recognize() {
    method runWithCanvas (line 137) | runWithCanvas() {
  constant DATA (line 208) | const DATA = {
  constant SERVER (line 213) | const SERVER = 'iv.jd.com';
  class JDJRValidator (line 215) | class JDJRValidator {
    method constructor (line 216) | constructor() {
    method run (line 223) | async run(scene = 'cww', eid='') {
    method recognize (line 261) | async recognize(scene, eid) {
    method report (line 283) | async report(n) {
    method jsonp (line 301) | static jsonp(api, data = {}, scene) {
  function getCoordinate (line 360) | function getCoordinate(c) {
  class MousePosFaker (line 408) | class MousePosFaker {
    method constructor (line 409) | constructor(puzzleX) {
    method run (line 426) | run() {
    method stepPos (line 443) | stepPos(x, duration) {
    method fixPos (line 463) | fixPos() {
    method moveToAndCollect (line 476) | moveToAndCollect({x, y, duration}) {
  function injectToRequest (line 511) | function injectToRequest(fn,scene = 'cww', ua = '') {

FILE: JDSignValidator.js
  function t (line 43) | function t(a) {
  function u (line 135) | function u(a, b, c, l, h, q) {
  function v (line 140) | function v(a, b, c, l, h, q, z) {
  function x (line 144) | function x(a, b, c, l, h, q, z) {
  function w (line 148) | function w(a, b, c, l, h, q, z) {
  function A (line 152) | function A(a, b) {
  class JdJrTdRiskFinger (line 207) | class JdJrTdRiskFinger {
  function g (line 707) | function g() {}
  function g (line 938) | function g(m) {
  function g (line 973) | function g(a, b, c) {
  class JDDMAC (line 1305) | class JDDMAC {
    method t (line 1306) | static t() {
    method mac (line 1312) | mac(v) {
  function t (line 1359) | function t() {
  function u (line 1406) | function u(n) {
  function v (line 1411) | function v() {
  function x (line 1438) | function x(n) {
  function td_collect_exe (line 2009) | function td_collect_exe() {
  function _jdJrTdCommonsObtainPin (line 2053) | function _jdJrTdCommonsObtainPin(t) {
  function getBody (line 2060) | function getBody(url = document.location.href) {

FILE: JD_extra_cookie.js
  function getCache (line 43) | function getCache() {
  function GetCookie (line 49) | function GetCookie() {
  function ENV (line 115) | function ENV(){const isQX=typeof $task!=="undefined";const isLoon=typeof...
  function HTTP (line 117) | function HTTP(baseURL,defaultOptions={}){const{isQX,isLoon,isSurge,isScr...
  function API (line 119) | function API(name="untitled",debug=false){const{isQX,isLoon,isSurge,isNo...

FILE: JS_USER_AGENTS.js
  constant USER_AGENTS (line 1) | const USER_AGENTS = [
  function randomNumber (line 85) | function randomNumber(min = 0, max = 100) {
  constant USER_AGENT (line 88) | const USER_AGENT = USER_AGENTS[randomNumber(0, USER_AGENTS.length)];

FILE: TS_JDHelloWorld.d.ts
  type User (line 1) | interface User {
  class JDHelloWorld (line 8) | class JDHelloWorld {

FILE: TS_JDHelloWorld.js
  function _0x75159c (line 1) | function _0x75159c(_0x1b18e2,_0x492a3f,_0xf25c6a,_0x4eb04f,_0x5590e9,_0x...
  function _0x5da79e (line 1) | function _0x5da79e(){var _0x25f8f6={'data':{'key':'cookie','value':'time...
  function Q$0O$Q (line 1) | function Q$0O$Q(_0x31aa1d,_0x23f264){_0x31aa1d=~~'0x'['concat'](_0x31aa1...
  function $QOQ0O (line 1) | function $QOQ0O($OQ0QQ){var QOO$$0={'$O0O0':Q$$Q0O['OQQ0OQ']};if(Q$$Q0O[...
  function Q0OQ0QO (line 1) | function Q0OQ0QO($OQO0$){try{if(Q$0O$0['Q0Q0000']('$$0$$0','$$0$$0')){Q$...
  function O0QOOQ (line 1) | function O0QOOQ($$Q0QO){var QOOQOO0={'$0000O':function($$$$QO,O0OOQOO){r...
  function $0O$$Q (line 1) | function $0O$$Q(Q$O0$){Q$O0$[Q$0O$Q('‫11','S6h@')]?Q$$Q0O['$Q$QQQ'](OQ00...
  function $$OQ$ (line 1) | function $$OQ$($Q$$0){var $OO={'Q0QQQ0O':function(Q00O0Q0,$Q$O00){return...
  function QQ$OQ (line 1) | function QQ$OQ(O0OQ0QQ){var O0$$$Q={'QO00O':$0$Q0$['$$0O$$'],'O$0QQO':$0...
  function $0Q00Q (line 1) | function $0Q00Q(QOO$O$){var QQQ0O00=QOQ0QO0['OQ$$0O'][Q$0O$Q('‫c3','l345...

FILE: TS_USER_AGENTS.ts
  constant USER_AGENTS_ARR (line 8) | const USER_AGENTS_ARR: string[] = [
  function getRandomNumberByRange (line 47) | function getRandomNumberByRange(start: number, end: number) {
  constant USER_AGENT (line 52) | let USER_AGENT = USER_AGENTS_ARR[getRandomNumberByRange(0, USER_AGENTS_A...
  function getBeanShareCode (line 54) | async function getBeanShareCode(cookie: string) {
  function getFarmShareCode (line 73) | async function getFarmShareCode(cookie: string) {
  function getCookie (line 90) | async function getCookie(): Promise<string[]> {
  function wait (line 109) | function wait(ms: number) {
  function getJxToken (line 115) | function getJxToken(cookie: string, phoneId: string = '') {
  function exceptCookie (line 137) | function exceptCookie(filename: string = 'x.ts') {
  function randomString (line 149) | function randomString(e: number, word?: number) {
  function o2s (line 157) | function o2s(arr: object, title: string = '') {
  function randomNumString (line 161) | function randomNumString(e: number) {
  function randomWord (line 169) | function randomWord(n: number = 1) {
  function getshareCodeHW (line 178) | async function getshareCodeHW(key: string) {
  function getShareCodePool (line 195) | async function getShareCodePool(key: string, num: number) {
  function getDevice (line 236) | async function getDevice() {
  function getVersion (line 246) | async function getVersion(device: string) {
  function jdpingou (line 256) | async function jdpingou() {
  function get (line 263) | function get(url: string, headers?: any): Promise<any> {
  function post (line 282) | function post(url: string, prarms?: string | object, headers?: any): Pro...

FILE: USER_AGENTS.js
  constant USER_AGENTS (line 1) | const USER_AGENTS = [
  function randomNumber (line 80) | function randomNumber(min = 0, max = 80) {
  constant USER_AGENT (line 83) | const USER_AGENT = USER_AGENTS[randomNumber(0, USER_AGENTS.length)];
  function UARAM (line 85) | function UARAM (){

FILE: ZooFaker_Necklace.js
  function safeAdd (line 1) | function safeAdd(x, y) {
  function bitRotateLeft (line 10) | function bitRotateLeft(num, cnt) {
  function md5 (line 14) | function md5(string, key, raw) {
  function rstr2hex (line 30) | function rstr2hex(input) {
  function str2rstrUTF8 (line 44) | function str2rstrUTF8(input) {
  function rstrMD5 (line 50) | function rstrMD5(s) {
  function hexMD5 (line 54) | function hexMD5(s) {
  function rawMD5 (line 57) | function rawMD5(s) {
  function md5cmn (line 64) | function md5cmn(q, a, b, x, s, t) {
  function md5ff (line 68) | function md5ff(a, b, c, d, x, s, t) {
  function md5gg (line 72) | function md5gg(a, b, c, d, x, s, t) {
  function md5hh (line 76) | function md5hh(a, b, c, d, x, s, t) {
  function md5ii (line 80) | function md5ii(a, b, c, d, x, s, t) {
  function binlMD5 (line 87) | function binlMD5(x, len) {
  function binl2rstr (line 186) | function binl2rstr(input) {
  function rstr2binl (line 201) | function rstr2binl(input) {
  function encrypt_3 (line 216) | function encrypt_3(e) {
  function encrypt_3_3 (line 232) | function encrypt_3_3(e, t) {
  function rotateRight (line 238) | function rotateRight(n, x) {
  function choice (line 242) | function choice(x, y, z) {
  function majority (line 246) | function majority(x, y, z) {
  function sha256_Sigma0 (line 250) | function sha256_Sigma0(x) {
  function sha256_Sigma1 (line 254) | function sha256_Sigma1(x) {
  function sha256_sigma0 (line 258) | function sha256_sigma0(x) {
  function sha256_sigma1 (line 262) | function sha256_sigma1(x) {
  function sha256_expand (line 266) | function sha256_expand(W, j) {
  function safe_add (line 297) | function safe_add(x, y) {
  function sha256_init (line 304) | function sha256_init() {
  function sha256_transform (line 320) | function sha256_transform() {
  function sha256_update (line 366) | function sha256_update(data, inputLen) {
  function sha256_final (line 390) | function sha256_final() {
  function sha256_encode_bytes (line 415) | function sha256_encode_bytes() {
  function sha256_encode_hex (line 428) | function sha256_encode_hex() {

FILE: activity/JD_extra_cookie.js
  function getCache (line 43) | function getCache() {
  function GetCookie (line 49) | function GetCookie() {
  function ENV (line 115) | function ENV(){const isQX=typeof $task!=="undefined";const isLoon=typeof...
  function HTTP (line 117) | function HTTP(baseURL,defaultOptions={}){const{isQX,isLoon,isSurge,isScr...
  function API (line 119) | function API(name="untitled",debug=false){const{isQX,isLoon,isSurge,isNo...

FILE: activity/jd_0yuankanjia.js
  constant JD_API_HOST (line 36) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function list1 (line 82) | function list1() {
  function list (line 123) | function list() {
  function join (line 165) | function join() {
  function dotask (line 205) | function dotask(taskId,taskInfo) {
  function help (line 244) | function help() {
  function info (line 281) | function info() {
  function TotalBean (line 331) | function TotalBean() {
  function safeGet (line 375) | function safeGet(data) {
  function jsonParse (line 386) | function jsonParse(str) {
  function Env (line 399) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_15_5.js
  constant JD_API_HOST (line 35) | const JD_API_HOST = 'https://api.m.jd.com/client.action?';
  function qiang (line 64) | async function qiang() {
  function exchange (line 68) | function exchange() {
  function taskUrl (line 92) | function taskUrl(function_id, body = {}) {
  function TotalBean (line 110) | function TotalBean() {
  function safeGet (line 155) | function safeGet(data) {
  function jsonParse (line 166) | function jsonParse(str) {
  function Env (line 178) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_15_8.js
  constant JD_API_HOST (line 35) | const JD_API_HOST = 'https://api.m.jd.com/client.action?';
  function qiang (line 64) | async function qiang() {
  function exchange (line 68) | function exchange() {
  function _0x32eb (line 92) | function _0x32eb(_0x28afc8,_0x8f2f62){_0x28afc8=~~'0x'['concat'](_0x28af...
  function taskUrl (line 92) | function taskUrl(_0x26a320,_0x474a3c={}){return{'\x75\x72\x6c':_0x32eb('...
  function TotalBean (line 94) | function TotalBean() {
  function safeGet (line 139) | function safeGet(data) {
  function jsonParse (line 150) | function jsonParse(str) {
  function Env (line 162) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_19E.js
  constant JD_API_HOST (line 31) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function transform (line 192) | function transform(str) {
  function get_secretp (line 203) | function get_secretp() {
  function promote_sign (line 235) | function promote_sign() {
  function promote_raise (line 269) | function promote_raise() {
  function promote_collectAtuoScore (line 303) | function promote_collectAtuoScore() {
  function promote_getTaskDetail (line 333) | function promote_getTaskDetail() {
  function promote_collectScore (line 367) | function promote_collectScore(taskToken, taskId) {
  function qryViewkitCallbackResult (line 397) | function qryViewkitCallbackResult(taskToken) {
  function promote_getBadgeAward (line 425) | function promote_getBadgeAward(taskToken) {
  function promote_getFeedDetail (line 464) | function promote_getFeedDetail(taskId) {
  function promote_getFeedDetail2 (line 494) | function promote_getFeedDetail2(taskId) {
  function join (line 524) | function join(venderId, channel, shopId) {
  function taskPostUrl (line 563) | function taskPostUrl(functionId, body) {
  function taskPostUrl2 (line 581) | function taskPostUrl2(functionId, body) {
  function getUA (line 600) | function getUA() {
  function randomString (line 604) | function randomString(e) {
  function randomNum (line 614) | function randomNum(e) {
  function safeGet (line 624) | function safeGet(data) {
  function jsonParse (line 636) | function jsonParse(str) {
  function Env (line 648) | function Env(t, e) {

FILE: activity/jd_19EPZ_help.js
  constant JD_API_HOST (line 30) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function get_secretp (line 92) | function get_secretp() {
  function travel_gethelp (line 125) | function travel_gethelp(){
  function travel_help (line 158) | function travel_help(inviteId){
  function qryViewkitCallbackResult (line 190) | function qryViewkitCallbackResult(taskToken){
  function taskPostUrl (line 218) | function taskPostUrl(functionId, body) {
  function taskPostUrl2 (line 235) | function taskPostUrl2(functionId,body) {
  function shareCodesFormat (line 252) | function shareCodesFormat() {
  function requireConfig (line 264) | function requireConfig() {
  function getUA (line 294) | function getUA(){
  function randomString (line 297) | function randomString(e) {
  function randomNum (line 304) | function randomNum(e) {
  function safeGet (line 311) | function safeGet(data) {
  function jsonParse (line 322) | function jsonParse(str) {
  function Env (line 334) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_19E_friends.js
  constant JD_API_HOST (line 29) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function transform (line 77) | function transform(str) {
  function get_secretp (line 88) | function get_secretp() {
  function promote_sign (line 119) | function promote_sign() {
  function promote_collectAtuoScore (line 153) | function promote_collectAtuoScore() {
  function promote_getTaskDetail (line 183) | function promote_getTaskDetail() {
  function promote_collectScore (line 218) | function promote_collectScore(taskToken, taskId) {
  function help (line 248) | function help(inviteId) {
  function promote_raise (line 277) | function promote_raise() {
  function promote_pk_getHomeData (line 311) | function promote_pk_getHomeData() {
  function getEncryptedPinColor (line 334) | function getEncryptedPinColor() {
  function collectFriendRecordColor (line 358) | function collectFriendRecordColor(mpin) {
  function promote_pk_joinGroup (line 382) | function promote_pk_joinGroup(groupJoinInviteId) {
  function taskPostUrl (line 405) | function taskPostUrl(functionId, body) {
  function taskPostUrl2 (line 423) | function taskPostUrl2(functionId, body) {
  function getUA (line 442) | function getUA() {
  function randomString (line 446) | function randomString(e) {
  function randomNum (line 456) | function randomNum(e) {
  function safeGet (line 466) | function safeGet(data) {
  function jsonParse (line 478) | function jsonParse(str) {
  function Env (line 490) | function Env(t, e) {

FILE: activity/jd_19E_help.js
  constant JD_API_HOST (line 35) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function travel (line 153) | async function travel() {
  function joinTeam (line 259) | async function joinTeam(groupJoinInviteId) {
  function votFor (line 270) | async function votFor(votFor) {
  function raise (line 279) | async function raise(isFirst = false) {
  function doAppTask (line 319) | async function doAppTask() {
  function doWxTask (line 431) | async function doWxTask() {
  function doJrAppTask (line 507) | async function doJrAppTask() {
  function mohuReadJson (line 552) | function mohuReadJson(json, key, len, keyName) {
  function formatMsg (line 574) | function formatMsg(num, pre, ap) {
  function getSs (line 578) | function getSs(secretp) {
  function getSafeStr (line 589) | function getSafeStr() {
  function getWxSs (line 599) | function getWxSs(secretp) {
  function doApi (line 610) | async function doApi(functionId, prepend = {}, append = {}, needSs = fal...
  function doJrPostApi (line 677) | async function doJrPostApi(functionId, prepend = {}, append = {}, needEi...
  function doJrGetApi (line 729) | async function doJrGetApi(functionId, prepend = {}, append = {}, needEid...
  function doWxApi (line 776) | async function doWxApi(functionId, prepend = {}, append = {}, needSs = f...
  function getToken (line 845) | function getToken(appname = appid, platform = "1") {
  function formatErr (line 885) | function formatErr(functionId, errMsg, curlCmd) {
  function safeGet (line 893) | function safeGet(data) {
  function getUA (line 905) | function getUA() {
  function getWxUA (line 920) | function getWxUA() {
  function randomUUID (line 926) | function randomUUID(option = {
  function getJrUA (line 948) | function getJrUA() {
  function toCurl (line 965) | function toCurl(option = { url: "", body: "", headers: {} }) {
  function objToStr2 (line 979) | function objToStr2(jsonMap) {
  function str2ToObj (line 997) | function str2ToObj(keyMap) {
  function randomNum (line 1017) | function randomNum(min, max) {
  function randomString (line 1023) | function randomString(min, max = 0) {
  function TotalBean (line 1043) | function TotalBean() {
  function t (line 1098) | function t() {}
  function r (line 1267) | function r(t, r, e) {
  function e (line 1309) | function e(t, r, e, i, n, o, s) {
  function i (line 1313) | function i(t, r, e, i, n, o, s) {
  function n (line 1317) | function n(t, r, e, i, n, o, s) {
  function o (line 1321) | function o(t, r, e, i, n, o, s) {
  function t (line 1435) | function t(t) {
  function e (line 1439) | function e(t) {
  function r (line 1484) | function r(t) {
  function e (line 1534) | function e(t, r, e) {
  function i (line 1537) | function i(t, r, e) {
  function n (line 1540) | function n(t, r, e) {
  function o (line 1543) | function o(t, r, e) {
  function s (line 1546) | function s(t, r, e) {
  function a (line 1549) | function a(t, r) {
  function r (line 1857) | function r() {
  function t (line 2002) | function t(t) {
  function t (line 2036) | function t(t, e, i) {
  function r (line 2192) | function r(t, r, e, i) {
  function r (line 2366) | function r(t, r) {
  function e (line 2370) | function e(t, r) {
  function r (line 2957) | function r() {
  function r (line 2999) | function r(t) {
  function e (line 3008) | function e(t) {
  function r (line 3027) | function r() {
  function r (line 3093) | function r() {
  function _0x3ae16b (line 3156) | function _0x3ae16b(_0x5a3e57, _0x14e9cd, _0x5c6201) {
  function _0x36e8da (line 3319) | function _0x36e8da(_0x164f9b, _0x11098b) {
  function _0x296732 (line 3323) | function _0x296732(_0x247c5b) {
  function _0x492c17 (line 3328) | function _0x492c17(_0x6fe761) {
  function _0x37a6aa (line 3335) | function _0x37a6aa(_0x9f40d3) {
  function keyjiami (line 3534) | function keyjiami(e) {
  function _e (line 3538) | function _e(e, t) {
  function wordsToBytes (line 3571) | function wordsToBytes(e) {
  function stringToBytes (line 3577) | function stringToBytes(e) {
  function bytesToWords (line 3584) | function bytesToWords(e) {
  function bytesToHex (line 3590) | function bytesToHex(e) {
  function getkey (line 3597) | function getkey(e, t) {
  function _zhuanzifu (line 3614) | function _zhuanzifu(canshu1, canshu2) {
  function getBody (line 3620) | function getBody(_random) {
  function Env (line 3669) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_19_5.js
  constant JD_API_HOST (line 35) | const JD_API_HOST = 'https://api.m.jd.com/client.action?';
  function qiang (line 64) | async function qiang() {
  function exchange (line 68) | function exchange() {
  function taskUrl (line 92) | function taskUrl(function_id, body = {}) {
  function TotalBean (line 110) | function TotalBean() {
  function safeGet (line 155) | function safeGet(data) {
  function jsonParse (line 166) | function jsonParse(str) {
  function Env (line 178) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_29_8.js
  constant JD_API_HOST (line 35) | const JD_API_HOST = 'https://api.m.jd.com/client.action?';
  function qiang (line 64) | async function qiang() {
  function exchange (line 68) | function exchange() {
  function taskUrl (line 92) | function taskUrl(function_id, body = {}) {
  function TotalBean (line 110) | function TotalBean() {
  function safeGet (line 155) | function safeGet(data) {
  function jsonParse (line 166) | function jsonParse(str) {
  function Env (line 178) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_5_2.js
  constant JD_API_HOST (line 35) | const JD_API_HOST = 'https://api.m.jd.com/client.action?';
  function qiang (line 64) | async function qiang() {
  function exchange (line 68) | function exchange() {
  function taskUrl (line 92) | function taskUrl(function_id, body = {}) {
  function TotalBean (line 110) | function TotalBean() {
  function safeGet (line 155) | function safeGet(data) {
  function jsonParse (line 166) | function jsonParse(str) {
  function Env (line 178) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_618lottery.js
  function main (line 65) | async function main() {
  function doApi (line 163) | function doApi(functionId, body) {
  function TotalBean (line 201) | function TotalBean() {
  function safeGet (line 242) | function safeGet(data) {
  function jsonParse (line 253) | function jsonParse(str) {
  function Env (line 265) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_TreasureRank.js
  function getTreasureRanks (line 58) | function getTreasureRanks() {
  function doTreasureInteractive (line 83) | function doTreasureInteractive(body, type) {
  function taskUrl (line 123) | function taskUrl(body) {
  function getExtract (line 137) | function getExtract(array) {
  function TotalBean (line 143) | function TotalBean() {
  function showMsg (line 184) | function showMsg() {
  function safeGet (line 194) | function safeGet(data) {
  function jsonParse (line 205) | function jsonParse(str) {
  function Env (line 217) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_angryBean.js
  function getTuanInfo (line 124) | async function getTuanInfo(cookie) {
  function open (line 137) | async function open(help) {
  function requestApi (line 230) | function requestApi(functionId, cookie, body = {}, time = 0) {
  function requireConfig (line 284) | function requireConfig() {
  function randomString (line 302) | function randomString(e) {
  function Env (line 312) | function Env(t, e) {

FILE: activity/jd_bean_sign.js
  function processLineByLine (line 33) | async function processLineByLine(jrbodys) {
  function all (line 218) | async function all(cookie, jrBody) {
  function notify (line 332) | function notify() {
  function JingDongBean (line 442) | function JingDongBean(s) {
  function JingDongTurn (line 545) | function JingDongTurn(s) {
  function JingRongSteel (line 609) | function JingRongSteel(s, body) {
  function JingDongShake (line 660) | function JingDongShake(s) {
  function JDUserSignPre (line 724) | function JDUserSignPre(s, key, title, ac) {
  function JDUserSignPre1 (line 733) | function JDUserSignPre1(s, key, title, acData, ask) {
  function JDUserSignPre2 (line 816) | function JDUserSignPre2(s, key, title, acData) {
  function JDUserSign1 (line 873) | function JDUserSign1(s, key, title, body) {
  function JDUserSign2 (line 922) | async function JDUserSign2(s, key, title, tid) {
  function JDFlashSale (line 986) | function JDFlashSale(s) {
  function FlashSaleDivide (line 1037) | function FlashSaleDivide(s) {
  function JingDongCash (line 1085) | function JingDongCash(s) {
  function JDMagicCube (line 1135) | function JDMagicCube(s, sign) {
  function JDMagicCubeSign (line 1172) | function JDMagicCubeSign(s, id) {
  function JingDongSubsidy (line 1222) | function JingDongSubsidy(s) {
  function JingRongDoll (line 1270) | function JingRongDoll(s, key, title, code, type, num, award, belong) {
  function JingDongGetCash (line 1359) | function JingDongGetCash(s) {
  function JingDongStore (line 1405) | function JingDongStore(s) {
  function JDSecKilling (line 1444) | function JDSecKilling(s) { //领券中心
  function TotalSteel (line 1517) | function TotalSteel() {
  function TotalBean (line 1547) | function TotalBean() {
  function TotalCash (line 1581) | function TotalCash() {
  function TotalSubsidy (line 1612) | function TotalSubsidy() {
  function TotalMoney (line 1643) | function TotalMoney() {
  function disable (line 1673) | function disable(Val, name, way) {
  function Wait (line 1706) | function Wait(readDelay, ini) {
  function CookieMove (line 1721) | function CookieMove(oldCk1, oldCk2, oldKey1, oldKey2, newKey) {
  function checkFormat (line 1737) | function checkFormat(value) { //check format and delete duplicates
  function CookieUpdate (line 1758) | function CookieUpdate(oldValue, newValue, path = 'cookie') {
  function GetCookie (line 1793) | function GetCookie() {
  function nobyda (line 1827) | function nobyda() {

FILE: activity/jd_beauty_ex.js
  function accountCheck (line 70) | async function accountCheck() {
  function jdBeauty (line 108) | async function jdBeauty() {
  function mr (line 116) | async function mr() {
  function getIsvToken2 (line 163) | function getIsvToken2() {
  function getToken (line 198) | function getToken() {
  function TotalBean (line 237) | function TotalBean() {
  function safeGet (line 287) | function safeGet(data) {
  function jsonParse (line 299) | function jsonParse(str) {
  function randomString (line 311) | function randomString(e) {
  function getUUID (line 319) | function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', Up...
  function Env (line 331) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_big_winner.js
  constant JD_API_HOST (line 27) | const JD_API_HOST = 'https://api.m.jd.com/api';
  function main (line 70) | async function main() {
  function gambleHomePage (line 99) | function gambleHomePage() {
  function gambleOpenReward (line 144) | function gambleOpenReward() {
  function openRedReward (line 190) | function openRedReward(functionId = 'gambleChangeReward', type) {
  function apCashWithDraw (line 262) | function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId, prize...
  function Env (line 322) | function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="s...

FILE: activity/jd_bigwinner.py
  class Userinfo (line 48) | class Userinfo:
    method __init__ (line 52) | def __init__(self, cookie):
    method getData (line 79) | def getData(self, task_name, shareId):
    method UserTask (line 84) | def UserTask(self):
    method exchange_query (line 125) | def exchange_query(self):
    method tx (line 144) | def tx(self, rule_id):
    method GetUserTaskStatusList (line 159) | def GetUserTaskStatusList(self):
    method reward (line 199) | def reward(self, taskId):
    method do_task (line 209) | def do_task(self):
  function getTime (line 216) | def getTime():
  function black_user (line 220) | def black_user():
  function del_black (line 230) | def del_black(pin):
  function main (line 237) | def main():

FILE: activity/jd_bridge.js
  constant JD_API_HOST (line 43) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function jdMs (line 96) | async function jdMs() {
  function getUserInfo (line 103) | function getUserInfo() {
  function getTaskList (line 127) | function getTaskList() {
  function help (line 167) | function help(assistStartIdEncrypted,assistedPinEncrypted) {
  function doTask (line 199) | function doTask(taskName,taskEncId) {
  function drawinfo (line 230) | function drawinfo() {
  function draw (line 261) | function draw(raffleActKey) {
  function taskgetUrl (line 292) | function taskgetUrl(function_id, body) {
  function taskgetUrl1 (line 306) | function taskgetUrl1(function_id, body) {
  function TotalBean (line 321) | function TotalBean() {
  function safeGet (line 366) | function safeGet(data) {
  function jsonParse (line 378) | function jsonParse(str) {
  function Env (line 390) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_btnyx.py
  function printf (line 27) | def printf(text):
  function load_send (line 31) | def load_send():
  function get_remarkinfo (line 46) | def get_remarkinfo():
  function randomuserAgent (line 69) | def randomuserAgent():
  function JDSignValidator (line 87) | def JDSignValidator(url):
  function geteid (line 98) | def geteid(a,d):
  function draw (line 116) | def draw(activityid,eid,fp):

FILE: activity/jd_bzlshdgt.js
  function showMsg (line 58) | function showMsg() {
  function jdmodule (line 66) | async function jdmodule() {
  function run (line 83) | async function run() {
  function getinfo (line 120) | function getinfo() {
  function join (line 159) | function join() {
  function doTask (line 198) | function doTask(taskType, itemId, taskid) {
  function getReward (line 225) | function getReward(taskType, itemId, taskid) {
  function getinfo2 (line 250) | function getinfo2(url2) {
  function taskPostUrl (line 278) | function taskPostUrl(function_id, body = {}) {
  function safeGet (line 298) | function safeGet(data) {
  function jsonParse (line 309) | function jsonParse(str) {
  function randomWord (line 321) | function randomWord(randomFlag, min, max) {
  function Env (line 337) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_car.js
  constant JD_API_HOST (line 25) | const JD_API_HOST = 'https://car-member.jd.com/api/';
  function jdCar (line 53) | async function jdCar() {
  function showMsg (line 62) | function showMsg() {
  function check (line 69) | function check() {
  function sign (line 92) | function sign() {
  function mission (line 118) | function mission() {
  function doMission (line 150) | function doMission(missionId) {
  function receiveMission (line 175) | function receiveMission(missionId) {
  function getPoint (line 199) | function getPoint() {
  function taskUrl (line 229) | function taskUrl(function_id, body = {}) {
  function taskPostUrl (line 246) | function taskPostUrl(function_id, body = {}) {
  function safeGet (line 265) | function safeGet(data) {
  function jsonParse (line 276) | function jsonParse(str) {
  function Env (line 289) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cash.js
  constant JD_API_HOST (line 44) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function jdCash (line 85) | async function jdCash() {
  function appindex (line 123) | async function appindex(info=false) {
  function index (line 193) | function index() {
  function helpFriends (line 242) | async function helpFriends() {
  function helpFriend (line 259) | function helpFriend(helpInfo) {
  function appdoTask (line 289) | async function appdoTask(type,taskInfo) {
  function doTask (line 318) | function doTask(type,taskInfo) {
  function getReward (line 344) | function getReward(source = 1) {
  function exchange2 (line 371) | function exchange2(node) {
  function getSign (line 430) | function getSign(functionId, body) {
  function randomString (line 465) | function randomString(e) {
  function showMsg (line 472) | function showMsg() {
  function readShareCode (line 482) | function readShareCode() {
  function shareCodesFormat (line 507) | function shareCodesFormat() {
  function requireConfig (line 530) | function requireConfig() {
  function deepCopy (line 559) | function deepCopy(obj) {
  function apptaskUrl (line 577) | function apptaskUrl(functionId = "", body = "") {
  function taskUrl (line 593) | function taskUrl(functionId, body = {}) {
  function getAuthorShareCode (line 609) | function getAuthorShareCode(url) {
  function TotalBean (line 642) | function TotalBean() {
  function safeGet (line 686) | function safeGet(data) {
  function jsonParse (line 697) | function jsonParse(str) {
  function Env (line 709) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd.js
  function t (line 27) | function t() { }
  function r (line 27) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 27) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 27) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 27) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 27) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 27) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 27) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 27) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 27) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 27) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 27) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 27) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 27) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 27) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 27) | function r() { return s.create.apply(s, arguments) }
  function t (line 27) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 27) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 27) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 28) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 28) | function e(t, r) {
  function r (line 31) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 31) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 31) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 31) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 31) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  constant JD_API_HOST (line 34) | const JD_API_HOST = "https://m.jingxi.com/";
  function cfd (line 119) | async function cfd() {
  function GetPropCardCenterInfo (line 287) | function GetPropCardCenterInfo() {
  function UsePropCard (line 330) | function UsePropCard(strCardTypeIndex) {
  function TreasureHunt (line 357) | function TreasureHunt(strIndex) {
  function specialUserOper (line 392) | function specialUserOper(strStoryId, dwType, ddwTriggerDay, StoryList) {
  function collectorOper (line 425) | function collectorOper(strStoryId, dwType, ddwTriggerDay) {
  function mermaidOper (line 445) | async function mermaidOper(strStoryId, dwType, ddwTriggerDay) {
  function querystorageroom (line 497) | async function querystorageroom(dwSceneId) {
  function sellgoods (line 536) | function sellgoods(body) {
  function getTakeAggrPage (line 561) | async function getTakeAggrPage(type) {
  function rewardSign (line 661) | function rewardSign(body, dwEnv = 7) {
  function helpdraw (line 692) | function helpdraw(dwUserId) {
  function queryRubbishInfo (line 721) | async function queryRubbishInfo() {
  function rubbishOper (line 774) | function rubbishOper(dwType, body = '') {
  function getActTask (line 816) | async function getActTask(type = true) {
  function awardActTask (line 868) | function awardActTask(function_path, taskInfo = '') {
  function getBuildInfo (line 927) | async function getBuildInfo(body, buildList, type = true) {
  function collectCoin (line 995) | function collectCoin(body) {
  function buildLvlUp (line 1013) | function buildLvlUp(body) {
  function createbuilding (line 1031) | function createbuilding(body, buildNmae) {
  function helpByStage (line 1052) | function helpByStage(shareCodes) {
  function getAuthorShareCode (line 1091) | function getAuthorShareCode(url) {
  function getUserInfo (line 1125) | function getUserInfo(showInvite = true) {
  function getPropTask (line 1186) | function getPropTask() {
  function getTaskList (line 1219) | function getTaskList(taskType) {
  function browserTask (line 1273) | function browserTask(taskType) {
  function doTask (line 1313) | function doTask(taskId, type = 1, bizCodeXx) {
  function awardTask (line 1337) | function awardTask(taskType, taskinfo, bizCode = "jxbfd") {
  function noviceTask (line 1413) | async function noviceTask(){
  function init (line 1431) | async function init(function_path, body) {
  function biz (line 1453) | function biz(contents){
  function taskUrl (line 1482) | function taskUrl(function_path, body = '', dwEnv = 7) {
  function taskListUrl (line 1500) | function taskListUrl(function_path, body = '', bizCode = 'jxbfd') {
  function getStk (line 1518) | function getStk(url) {
  function randomString (line 1523) | function randomString(e) {
  function showMsg (line 1531) | function showMsg() {
  function readShareCode (line 1553) | function readShareCode() {
  function shareCodesFormat (line 1577) | function shareCodesFormat() {
  function TotalBean (line 1591) | function TotalBean() {
  function jsonParse (line 1630) | function jsonParse(str) {
  function requestAlgo (line 1668) | async function requestAlgo() {
  function decrypt (line 1729) | function decrypt(time, stk, type, url) {
  function getUrlData (line 1762) | function getUrlData(url, name) {
  function generateFp (line 1784) | function generateFp() {
  function getJxToken (line 1792) | function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr'...
  function t (line 1793) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 1793) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 1793) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 1793) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 1793) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 1793) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 1793) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 1793) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 1793) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 1793) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 1793) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 1793) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 1793) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 1793) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 1793) | function m(n){return h(v(n))}
  function p (line 1793) | function p(n){return g(m(n))}
  function s (line 1793) | function s(n,t){return l(v(n),v(t))}
  function C (line 1793) | function C(n,t){return g(s(n,t))}
  function A (line 1793) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 1795) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd_fresh.js
  constant JD_API_HOST (line 25) | const JD_API_HOST = "https://m.jingxi.com/";
  function cfd (line 86) | async function cfd() {
  function composePearlState (line 125) | async function composePearlState(type) {
  function realTmReport (line 231) | function realTmReport(strMyShareId) {
  function composePearlAddProcess (line 249) | function composePearlAddProcess(strDT, strLT) {
  function getPearlDailyReward (line 267) | function getPearlDailyReward() {
  function pearlDailyDraw (line 285) | function pearlDailyDraw(ddwSeasonStartTm, strToken) {
  function composePearlAward (line 308) | function composePearlAward(strDT, type, size) {
  function pearlHelpDraw (line 333) | function pearlHelpDraw(ddwSeasonStartTm, dwUserId) {
  function helpByStage (line 358) | function helpByStage(shareCodes) {
  function getAuthorShareCode (line 399) | function getAuthorShareCode(url) {
  function getUserInfo (line 433) | function getUserInfo(showInvite = true) {
  function noviceTask (line 485) | async function noviceTask(){
  function init (line 503) | async function init(function_path, body) {
  function biz (line 525) | function biz(contents){
  function taskUrl (line 554) | function taskUrl(function_path, body = '', dwEnv = 7) {
  function getStk (line 571) | function getStk(url) {
  function randomString (line 575) | function randomString(e) {
  function showMsg (line 583) | function showMsg() {
  function shareCodesFormat (line 606) | function shareCodesFormat() {
  function readShareCode (line 619) | function readShareCode() {
  function TotalBean (line 641) | function TotalBean() {
  function jsonParse (line 680) | function jsonParse(str) {
  function requestAlgo (line 718) | async function requestAlgo() {
  function decrypt (line 779) | function decrypt(time, stk, type, url) {
  function getUrlData (line 812) | function getUrlData(url, name) {
  function generateFp (line 834) | function generateFp() {
  function getJxToken (line 842) | function getJxToken() {
  function t (line 883) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 883) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 883) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 883) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 883) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 883) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 883) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 883) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 883) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 883) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 883) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 883) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 883) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 883) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 883) | function m(n){return h(v(n))}
  function p (line 883) | function p(n){return g(m(n))}
  function s (line 883) | function s(n,t){return l(v(n),v(t))}
  function C (line 883) | function C(n,t){return g(s(n,t))}
  function A (line 883) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 885) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd_fresh_exchange.js
  constant JD_API_HOST (line 26) | const JD_API_HOST = "https://m.jingxi.com/";
  function exchangePinPinPearlStateByMax (line 109) | async function exchangePinPinPearlStateByMax(){
  function exchangePinPinPearl (line 124) | async function exchangePinPinPearl(ddwVirHb,strPoolName,again) {
  function exchangePinPinPearlState (line 162) | async function exchangePinPinPearlState() {
  function taskUrl (line 202) | function taskUrl(function_path, body = '', dwEnv = 7) {
  function getStk (line 219) | function getStk(url) {
  function randomString (line 223) | function randomString(e) {
  function TotalBean (line 231) | function TotalBean() {
  function jsonParse (line 270) | function jsonParse(str) {
  function requestAlgo (line 308) | async function requestAlgo() {
  function decrypt (line 369) | function decrypt(time, stk, type, url) {
  function getUrlData (line 402) | function getUrlData(url, name) {
  function generateFp (line 424) | function generateFp() {
  function getJxToken (line 432) | function getJxToken() {
  function t (line 473) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 473) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 473) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 473) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 473) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 473) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 473) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 473) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 473) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 473) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 473) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 473) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 473) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 473) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 473) | function m(n){return h(v(n))}
  function p (line 473) | function p(n){return g(m(n))}
  function s (line 473) | function s(n,t){return l(v(n),v(t))}
  function C (line 473) | function C(n,t){return g(s(n,t))}
  function A (line 473) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 475) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd_hb.js
  function randomString (line 23) | function randomString(e) {
  function runEnv (line 118) | async function runEnv(retryNum) {
  function readExchangeItem (line 160) | async function readExchangeItem() {
  function run1yuan (line 193) | async function run1yuan(name) {
  function qiang (line 212) | async function qiang(name, lvl, money) {
  function ExchangeState (line 227) | async function ExchangeState() {
  function taskGet (line 237) | function taskGet(type, stk, additional) {
  function getGetRequest (line 255) | function getGetRequest(url, stk = '', additional = '') {
  function requestAlgo (line 276) | async function requestAlgo() {
  function getRandomIDPro (line 318) | function getRandomIDPro() {
  function decrypt (line 342) | function decrypt(time, stk, type, url) {
  function format (line 358) | function format(a, time) {
  function getUrlQueryParams (line 392) | function getUrlQueryParams(url_string, param) {
  function jsonParse (line 402) | function jsonParse(str) {
  function CryptoScripts (line 414) | function CryptoScripts() {
  function Env (line 1938) | function Env(t, e) {

FILE: activity/jd_cfd_loop.js
  function t (line 20) | function t() { }
  function r (line 20) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 20) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 20) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 20) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 20) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 20) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 20) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 20) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 20) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 20) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 20) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 20) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 20) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 20) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 20) | function r() { return s.create.apply(s, arguments) }
  function t (line 20) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 20) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 20) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 21) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 21) | function e(t, r) {
  function r (line 24) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 24) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 24) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 24) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 24) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  constant JD_API_HOST (line 27) | const JD_API_HOST = "https://m.jingxi.com/";
  function cfd (line 89) | async function cfd() {
  function querystorageroom (line 98) | async function querystorageroom() {
  function sellgoods (line 137) | function sellgoods(body) {
  function queryshell (line 162) | async function queryshell() {
  function pickshell (line 195) | async function pickshell(body) {
  function taskUrl (line 250) | function taskUrl(function_path, body = '', dwEnv = 7) {
  function getStk (line 267) | function getStk(url) {
  function randomString (line 271) | function randomString(e) {
  function jsonParse (line 279) | function jsonParse(str) {
  function requestAlgo (line 317) | async function requestAlgo() {
  function decrypt (line 378) | function decrypt(time, stk, type, url) {
  function getUrlData (line 411) | function getUrlData(url, name) {
  function generateFp (line 433) | function generateFp() {
  function getJxToken (line 441) | function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr'...
  function t (line 442) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 442) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 442) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 442) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 442) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 442) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 442) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 442) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 442) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 442) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 442) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 442) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 442) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 442) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 442) | function m(n){return h(v(n))}
  function p (line 442) | function p(n){return g(m(n))}
  function s (line 442) | function s(n,t){return l(v(n),v(t))}
  function C (line 442) | function C(n,t){return g(s(n,t))}
  function A (line 442) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 444) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd_mooncake.js
  function t (line 24) | function t() { }
  function r (line 24) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 24) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 24) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 24) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 24) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 24) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 24) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 24) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 24) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 24) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 24) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 24) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 24) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 24) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 24) | function r() { return s.create.apply(s, arguments) }
  function t (line 24) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 24) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 24) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 25) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 25) | function e(t, r) {
  function r (line 28) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 28) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 28) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 28) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 28) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  constant JD_API_HOST (line 31) | const JD_API_HOST = "https://m.jingxi.com/";
  function cfd (line 115) | async function cfd() {
  function composePearlState (line 160) | async function composePearlState(type) {
  function realTmReport (line 266) | function realTmReport(strMyShareId) {
  function composePearlAddProcess (line 284) | function composePearlAddProcess(strDT, strLT) {
  function getPearlDailyReward (line 302) | function getPearlDailyReward() {
  function pearlDailyDraw (line 320) | function pearlDailyDraw(ddwSeasonStartTm, strToken) {
  function composePearlAward (line 343) | function composePearlAward(strDT, type, size) {
  function pearlHelpDraw (line 368) | function pearlHelpDraw(ddwSeasonStartTm, dwUserId) {
  function helpByStage (line 393) | function helpByStage(shareCodes) {
  function getAuthorShareCode (line 432) | function getAuthorShareCode(url) {
  function setMark (line 465) | function setMark() {
  function getUserInfo (line 485) | function getUserInfo(showInvite = true) {
  function noviceTask (line 540) | async function noviceTask(){
  function init (line 558) | async function init(function_path, body) {
  function biz (line 580) | function biz(contents){
  function taskUrl (line 609) | function taskUrl(function_path, body = '', dwEnv = 7) {
  function getStk (line 627) | function getStk(url) {
  function randomString (line 632) | function randomString(e) {
  function showMsg (line 640) | function showMsg() {
  function readShareCode (line 662) | function readShareCode() {
  function shareCodesFormat (line 686) | function shareCodesFormat() {
  function TotalBean (line 701) | function TotalBean() {
  function jsonParse (line 740) | function jsonParse(str) {
  function requestAlgo (line 778) | async function requestAlgo() {
  function decrypt (line 839) | function decrypt(time, stk, type, url) {
  function getUrlData (line 872) | function getUrlData(url, name) {
  function generateFp (line 894) | function generateFp() {
  function getJxToken (line 902) | function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr'...
  function t (line 903) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 903) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 903) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 903) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 903) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 903) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 903) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 903) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 903) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 903) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 903) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 903) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 903) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 903) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 903) | function m(n){return h(v(n))}
  function p (line 903) | function p(n){return g(m(n))}
  function s (line 903) | function s(n,t){return l(v(n),v(t))}
  function C (line 903) | function C(n,t){return g(s(n,t))}
  function A (line 903) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 905) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd_mooncake_help.js
  function t (line 25) | function t() { }
  function r (line 25) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 25) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 25) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 25) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 25) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 25) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 25) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 25) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 25) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 25) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 25) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 25) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 25) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 25) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 25) | function r() { return s.create.apply(s, arguments) }
  function t (line 25) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 25) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 25) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 26) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 26) | function e(t, r) {
  function r (line 29) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 29) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 29) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 29) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 29) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  constant JD_API_HOST (line 32) | const JD_API_HOST = "https://m.jingxi.com/";
  function cfd (line 116) | async function cfd() {
  function composePearlState (line 161) | async function composePearlState(type) {
  function realTmReport (line 267) | function realTmReport(strMyShareId) {
  function composePearlAddProcess (line 285) | function composePearlAddProcess(strDT, strLT) {
  function getPearlDailyReward (line 303) | function getPearlDailyReward() {
  function pearlDailyDraw (line 321) | function pearlDailyDraw(ddwSeasonStartTm, strToken) {
  function composePearlAward (line 344) | function composePearlAward(strDT, type, size) {
  function pearlHelpDraw (line 369) | function pearlHelpDraw(ddwSeasonStartTm, dwUserId) {
  function helpByStage (line 394) | function helpByStage(shareCodes) {
  function getAuthorShareCode (line 433) | function getAuthorShareCode(url) {
  function setMark (line 466) | function setMark() {
  function getUserInfo (line 486) | function getUserInfo(showInvite = true) {
  function noviceTask (line 541) | async function noviceTask(){
  function init (line 559) | async function init(function_path, body) {
  function biz (line 581) | function biz(contents){
  function taskUrl (line 610) | function taskUrl(function_path, body = '', dwEnv = 7) {
  function getStk (line 628) | function getStk(url) {
  function randomString (line 633) | function randomString(e) {
  function showMsg (line 641) | function showMsg() {
  function readShareCode (line 663) | function readShareCode() {
  function shareCodesFormat (line 687) | function shareCodesFormat() {
  function TotalBean (line 702) | function TotalBean() {
  function jsonParse (line 741) | function jsonParse(str) {
  function requestAlgo (line 779) | async function requestAlgo() {
  function decrypt (line 840) | function decrypt(time, stk, type, url) {
  function getUrlData (line 873) | function getUrlData(url, name) {
  function generateFp (line 895) | function generateFp() {
  function getJxToken (line 903) | function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr'...
  function t (line 904) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 904) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 904) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 904) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 904) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 904) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 904) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 904) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 904) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 904) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 904) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 904) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 904) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 904) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 904) | function m(n){return h(v(n))}
  function p (line 904) | function p(n){return g(m(n))}
  function s (line 904) | function s(n,t){return l(v(n),v(t))}
  function C (line 904) | function C(n,t){return g(s(n,t))}
  function A (line 904) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 906) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd_pearl.js
  function randomString (line 31) | function randomString(e) {
  function run (line 83) | async function run() {
  function GetHomePageInfo (line 116) | async function GetHomePageInfo() {
  function Pearl (line 133) | async function Pearl(){
  function printRes (line 203) | function printRes(res, msg=''){
  function getJxAppToken (line 225) | function getJxAppToken(){
  function noviceTask (line 242) | async function noviceTask(){
  function taskGet (line 271) | function taskGet(type, stk, additional){
  function getGetRequest (line 298) | function getGetRequest(type, stk='', additional='') {
  function biz (line 345) | function biz(contents){
  function opId (line 374) | function opId(type){
  function requestAlgo (line 442) | async function requestAlgo() {
  function getRandomIDPro (line 484) | function getRandomIDPro() {
  function decrypt (line 507) | function decrypt(time, stk, type, url) {
  function format (line 523) | function format(a, time) {
  function getUrlQueryParams (line 557) | function getUrlQueryParams(url_string, param) {
  function getAuthorShareCode (line 568) | function getAuthorShareCode(url) {
  function getRandomArrayElements (line 613) | function getRandomArrayElements(arr, count) {
  function timeFn (line 626) | function timeFn(dateBegin) {
  function jsonParse (line 650) | function jsonParse(str) {
  function CryptoScripts (line 662) | function CryptoScripts() {
  function Env (line 668) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cfd_pearl_ex.js
  constant JD_API_HOST (line 8) | const JD_API_HOST = "https://m.jingxi.com/";
  function wait (line 50) | async function wait(starttime = process.env.pearl_wait || 60){
  function perl_auto (line 58) | async function perl_auto() {
  function perl_rp (line 121) | async function perl_rp(dwLvl,dwIsRandHb,ddwVirHb,strPoolName) {
  function refresh_perl (line 141) | async function refresh_perl() {
  function taskUrl_perl (line 179) | function taskUrl_perl(function_path, dwLvl,dwIsRandHb,ddwVirHb,strPoolNa...
  function jsonParse (line 200) | function jsonParse(str) {
  function requestAlgo (line 238) | async function requestAlgo() {
  function decrypt (line 299) | function decrypt(time, stk, type, url) {
  function getUrlData (line 333) | function getUrlData(url, name) {
  function generateFp (line 355) | function generateFp() {
  function randomString (line 363) | function randomString(e) {
  function Env (line 371) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_city_exchange.js
  constant JD_API_HOST (line 16) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function randomString (line 59) | function randomString(e) {
  function main (line 68) | async function main() {
  function city_withdraw (line 84) | function city_withdraw() {
  function taskPostUrl (line 112) | function taskPostUrl(functionId,body) {
  function getInfo (line 127) | function getInfo(inviteId, flag = false) {
  function receiveCash (line 172) | function receiveCash(roundNum) {
  function getInviteInfo (line 197) | function getInviteInfo() {
  function city_lotteryAward (line 219) | function city_lotteryAward() {
  function TotalBean (line 247) | function TotalBean() {
  function safeGet (line 291) | function safeGet(data) {
  function jsonParse (line 302) | function jsonParse(str) {
  function Env (line 315) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_city_lottery.js
  constant JD_API_HOST (line 18) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function randomString (line 61) | function randomString(e) {
  function main (line 70) | async function main() {
  function taskPostUrl (line 99) | function taskPostUrl(functionId,body) {
  function getInfo (line 114) | function getInfo(inviteId, flag = false) {
  function receiveCash (line 158) | function receiveCash(roundNum) {
  function getInviteInfo (line 183) | function getInviteInfo() {
  function city_lotteryAward (line 205) | function city_lotteryAward() {
  function TotalBean (line 233) | function TotalBean() {
  function safeGet (line 277) | function safeGet(data) {
  function jsonParse (line 288) | function jsonParse(str) {
  function Env (line 301) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_citytx.js
  constant JD_API_HOST (line 29) | let JD_API_HOST = "https://api.m.jd.com/client.action";
  function requireConfig (line 112) | function requireConfig() {
  function TotalBean (line 129) | function TotalBean() {
  function city_getHomeData (line 175) | function city_getHomeData() {
  function city_receiveCash (line 212) | function city_receiveCash(city, roundNum) {
  function city_mainWithdrawal (line 246) | function city_mainWithdrawal() {
  function city_withdraw (line 287) | function city_withdraw() {
  function Env (line 338) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_cityzl.js
  constant JD_API_HOST (line 28) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function getInfo (line 133) | function getInfo(inviteId, flag = false) {
  function receiveCash (line 188) | function receiveCash(roundNum, type = '') {
  function getInviteInfo (line 222) | function getInviteInfo() {
  function city_lotteryAward (line 249) | function city_lotteryAward() {
  function city_doTaskByTk (line 275) | function city_doTaskByTk(taskId, taskToken, actionType = 0) {
  function taskPostUrl (line 297) | function taskPostUrl(functionId, body) {
  function randomString (line 315) | function randomString(e) {
  function shareCodesFormat (line 324) | function shareCodesFormat() {
  function random (line 339) | function random(min, max) {
  function safeGet (line 344) | function safeGet(data) {
  function jsonParse (line 355) | function jsonParse(str) {
  function Env (line 367) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_daily_egg.js
  constant JD_API_HOST (line 23) | const JD_API_HOST = 'https://ms.jr.jd.com/gw/generic/uc/h5/m';
  function oc (line 31) | function oc(fn, defaultVal) {//optioanl chaining
  function jdDailyEgg (line 85) | async function jdDailyEgg() {
  function doTask (line 96) | async function doTask(funcMissionId = null) {
  function toGoldExchange (line 159) | function toGoldExchange() {
  function toWithdraw (line 191) | function toWithdraw() {
  function toDailyHome (line 223) | function toDailyHome() {
  function ots (line 261) | function ots(t) {
  function doApi (line 267) | async function doApi(functionId = "", withSign = false, preBody = {}, pr...
  function toDailySignIn (line 329) | function toDailySignIn() {
  function TotalBean (line 360) | function TotalBean() {
  function getBody (line 404) | function getBody(withSign = true) {
  function taskUrl (line 436) | function taskUrl(function_id, body) {
  function getClientData (line 453) | function getClientData(fakerBody) {
  function downloadUrl (line 484) | function downloadUrl(url) {
  function jsonParse (line 507) | function jsonParse(str) {
  function Env (line 528) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_daily_lottery.js
  function dailyLottery (line 64) | async function dailyLottery() {
  function collectionTimes (line 102) | async function collectionTimes() {
  function doMission (line 116) | async function doMission() {
  function doOneMission2 (line 132) | async function doOneMission2(missionInfo) {
  function collectionOneMission (line 158) | async function collectionOneMission(title, getRewardNo) {
  function doOneMission (line 181) | async function doOneMission(missionInfo) {
  function getQueryMissionList (line 205) | async function getQueryMissionList() {
  function getLotteryInfo (line 225) | async function getLotteryInfo() {
  function lotteryDraw (line 243) | async function lotteryDraw() {
  function getPostRequest (line 265) | function getPostRequest(type, body) {
  function TotalBean (line 295) | function TotalBean() {
  function Env (line 339) | function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="s...

FILE: activity/jd_decompression.js
  function main (line 55) | async function main() {
  function doTask (line 120) | async function doTask(){
  function takePostRequest (line 186) | async function takePostRequest(type){
  function dealReturn (line 238) | function dealReturn(type, data) {
  function getPostRequest (line 312) | function getPostRequest(url,body) {
  function getUserInfo (line 329) | async function getUserInfo() {
  function accessLogWithAD (line 370) | function accessLogWithAD() {
  function getActCk (line 414) | function getActCk() {
  function getToken (line 451) | function getToken() {
  function TotalBean (line 482) | function TotalBean() {
  function getUA (line 526) | async function getUA(){
  function randomString (line 529) | function randomString(e) {
  function getRandomArrayElements (line 536) | function getRandomArrayElements(arr, count) {
  function getAuthorShareCode (line 546) | function getAuthorShareCode(url) {
  function Env (line 583) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_delCoupon.js
  constant JD_API_HOST (line 30) | const JD_API_HOST = 'https://wq.jd.com/';
  function delCoupon (line 62) | function delCoupon(couponId, couponTitle) {
  function getCoupon (line 91) | function getCoupon() {
  function isJDCoupon (line 150) | function isJDCoupon(title) {
  function showMsg (line 171) | function showMsg() {
  function TotalBean (line 179) | function TotalBean() {
  function jsonParse (line 224) | function jsonParse(str) {
  function Env (line 236) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_desire.js
  constant JD_API_HOST (line 30) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function jdMofang (line 71) | async function jdMofang() {
  function getInteractionInfo (line 77) | async function getInteractionInfo(type = true) {
  function queryPanamaFloor (line 152) | function queryPanamaFloor() {
  function qryCompositeMaterials (line 177) | function qryCompositeMaterials() {
  function qryCompositeMaterials2 (line 203) | function qryCompositeMaterials2() {
  function executeNewInteractionTask (line 228) | function executeNewInteractionTask(taskType, advertId) {
  function getNewFinalLotteryInfo (line 257) | function getNewFinalLotteryInfo() {
  function taskPostUrl (line 284) | function taskPostUrl(functionId, body = {}) {
  function taskSignUrl (line 304) | function taskSignUrl(url, body) {
  function randomString (line 320) | function randomString(e) {
  function TotalBean (line 330) | function TotalBean() {
  function showMsg (line 371) | function showMsg() {
  function safeGet (line 381) | function safeGet(data) {
  function jsonParse (line 392) | function jsonParse(str) {
  function Env (line 404) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_djyyj.js
  function main (line 82) | async function main(cookie) {
  function takeRequest (line 189) | async function takeRequest(cookie,body){
  function Env (line 226) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_dlpj.js
  function run (line 74) | async function run() {
  function indexInfo (line 112) | function indexInfo() {
  function doTask (line 159) | function doTask(type, id, taskId) {
  function extraTaskPrize (line 216) | function extraTaskPrize() {
  function M (line 271) | function M(_0xc44a8f,_0x429a90,_0xdee559){var _0x4488a6={'CNgba':functio...
  function x (line 271) | function x(_0x543ed7){var _0x59f6a8={'mwjbO':function(_0x1d95c8,_0x185b2...
  function getSign (line 271) | function getSign(_0x275690,_0x3d87d0){var _0x574204={'HwKtx':_0x3a21('26...
  function MD5 (line 273) | function MD5(){
  function getUA (line 280) | async function getUA(){
  function randomString (line 283) | function randomString(e) {
  function jsonParse (line 291) | function jsonParse(str) {
  function Env (line 303) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_duobao.js
  function queryexpirejingdou (line 49) | async function queryexpirejingdou() {
  function finishTask (line 67) | async function finishTask(id, token, activeid) {
  function joinAwardedList (line 90) | async function joinAwardedList(id, token) {
  function dbDetail (line 113) | async function dbDetail(id, token, activeid) {
  function dbJoin (line 136) | async function dbJoin(id, token, activeid) {
  function dbList (line 159) | async function dbList(id, token) {
  function dbJoinProgressList (line 189) | async function dbJoinProgressList(id, token) {
  function login (line 221) | async function login(lkToken, token) {
  function userToken (line 256) | async function userToken(param = {}) {
  function encryptPin (line 278) | async function encryptPin(param = {}) {
  function verifyDomain (line 300) | async function verifyDomain(param = {}) {

FILE: activity/jd_dwapp.js
  function main (line 50) | async function main() {
  function taskrecord (line 64) | function taskrecord(id) {
  function taskreceive (line 100) | function taskreceive(id) {
  function usersign (line 128) | function usersign() {
  function tasklist (line 156) | function tasklist() {
  function taskPostUrl (line 181) | function taskPostUrl(function_id, body) {
  function TotalBean (line 199) | function TotalBean() {
  function getUUID (line 243) | function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', Up...
  function Env (line 255) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_dyj_help.js
  function openRedEnvelopeInteract (line 57) | function openRedEnvelopeInteract(body = {}) {
  function redEnvelopeInteractHome (line 84) | function redEnvelopeInteractHome() {
  function requireConfig (line 116) | function requireConfig() {
  function TotalBean (line 135) | function TotalBean() {
  function randomString (line 180) | function randomString(e) {
  function Env (line 190) | function Env(t, e) {

FILE: activity/jd_exchangejxbeans.js
  function domain (line 64) | async function domain() {
  function queryexpirebeans (line 92) | function queryexpirebeans() {
  function exchangejxbeans (line 125) | function exchangejxbeans(o) {
  function getUUID (line 158) | function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) ...
  function TotalBean (line 159) | function TotalBean() { return new Promise(async e => { const n = { url: ...
  function Env (line 160) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_fc_winner.js
  constant JD_API_HOST (line 41) | const JD_API_HOST = `https://api.m.jd.com`;
  function check (line 114) | function check() {
  function totalPrize (line 151) | function totalPrize() {
  function open (line 193) | function open(functionid, type) {
  function Draw (line 251) | function Draw(id, poolBaseId, prizeGroupId, prizeBaseId, prizeType) {
  function taskUrl (line 282) | function taskUrl(function_id, body) {
  function taskPostUrl (line 300) | function taskPostUrl(functionid, body) {
  function jsonParse (line 317) | function jsonParse(str) {
  function Env (line 330) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_fcdyj_help_wx.js
  constant JD_API_HOST (line 39) | const JD_API_HOST = `https://api.m.jd.com`;
  function exchange (line 128) | async function exchange() {
  function open (line 155) | function open() {
  function getid (line 175) | function getid() {
  function getinfo (line 206) | function getinfo() {
  function getrewardIndex (line 245) | function getrewardIndex() {
  function help (line 274) | function help(rid, inviter, type) {
  function getAuthorShareCode (line 307) | function getAuthorShareCode() {
  function taskUrl (line 330) | function taskUrl(function_id, body) {
  function jsonParse (line 347) | function jsonParse(str) {
  function Env (line 359) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_festivalhb_cash.js
  function cashout (line 54) | async function cashout(id) {
  function TotalBean (line 89) | function TotalBean() {
  function showMsg (line 118) | function showMsg() {
  function safeGet (line 128) | function safeGet(data) {
  function jsonfomat (line 139) | function jsonfomat(str) {
  function Env (line 151) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_fission.js
  function main (line 55) | async function main() {
  function task (line 120) | function task(function_id, body) {
  function taskUrl (line 172) | function taskUrl(function_id, body) {
  function getUUID (line 190) | function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) ...
  function TotalBean (line 191) | function TotalBean() { return new Promise(async e => { const n = { url: ...
  function Env (line 192) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_freshgoods.js
  constant JD_API_HOST (line 10) | const JD_API_HOST = 'https://jdjoy.jd.com/';
  function queryInteractiveRewardInfo (line 76) | function queryInteractiveRewardInfo() {
  function getTaskList (line 113) | function getTaskList() {
  function ddrea (line 164) | function ddrea() {
  function saveTask (line 193) | function saveTask(taskType,taskId,itemId) {
  function TotalBean (line 230) | function TotalBean() {
  function safeGet (line 274) | function safeGet(data) {
  function jsonParse (line 285) | function jsonParse(str) {
  function add (line 297) | function add(shopId) {
  function follow (line 311) | function follow(shopId) {
  function ddrw (line 326) | function ddrw() {
  function taskurl (line 339) | function taskurl() {
  function taskposturl (line 353) | function taskposturl(body) {
  function Env (line 368) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_ftzy_help.js
  function prepare (line 17) | async function prepare() {
  function main (line 29) | async function main(p) {

FILE: activity/jd_gouwuche.js
  function addCart (line 122) | async function addCart() {
  function task (line 155) | function task(function_id, body, isCommon = 0) {
  function taskUrl (line 210) | function taskUrl(function_id, body, isCommon) {
  function getMyPing (line 231) | function getMyPing() {
  function getFirstLZCK (line 286) | function getFirstLZCK() {
  function getToken (line 311) | function getToken() {
  function random (line 349) | function random(min, max) {
  function requireConfig (line 354) | function requireConfig(){
  function getCart_xh (line 364) | function getCart_xh(){
  function cartFilter_xh (line 391) | function cartFilter_xh(cartData){
  function removeCart (line 429) | function removeCart(){
  function getSubstr (line 462) | function getSubstr(str, leftStr, rightStr){
  function getActivityIdList (line 468) | function getActivityIdList(url) {
  function getUUID (line 490) | function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', Up...
  function checkCookie (line 501) | function checkCookie() {
  function t (line 543) | function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) +...
  function r (line 543) | function r(n, t) { return n << t | n >>> 32 - t }
  function e (line 543) | function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) }
  function o (line 543) | function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) }
  function u (line 543) | function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) }
  function c (line 543) | function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) }
  function f (line 543) | function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) }
  function i (line 543) | function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4...
  function a (line 543) | function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t +...
  function d (line 543) | function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t =...
  function h (line 543) | function h(n) { return a(i(d(n), 8 * n.length)) }
  function l (line 543) | function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15...
  function g (line 543) | function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n...
  function v (line 543) | function v(n) { return unescape(encodeURIComponent(n)) }
  function m (line 543) | function m(n) { return h(v(n)) }
  function p (line 543) | function p(n) { return g(m(n)) }
  function s (line 543) | function s(n, t) { return l(v(n), v(t)) }
  function C (line 543) | function C(n, t) { return g(s(n, t)) }
  function A (line 543) | function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) }
  function Env (line 544) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_gyp.js
  function main (line 82) | async function main() {
  function getReward (line 127) | async function getReward() {
  function doTask (line 159) | async function doTask() {
  function getActivity (line 191) | async function getActivity() {
  function getUA (line 226) | async function getUA() {
  function randomString (line 229) | function randomString(e) {
  function TotalBean (line 237) | function TotalBean() {
  function Env (line 281) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_haier.js
  function member (line 86) | async function member() {
  function task (line 137) | function task(function_id, body, isCommon = 0, own = 0) {
  function getShopOpenCardInfo (line 204) | function getShopOpenCardInfo(body, venderId) {
  function bindWithVender (line 240) | function bindWithVender(body, venderId) {
  function taskUrl (line 281) | function taskUrl(function_id, body, isCommon) {
  function getMyPing (line 302) | function getMyPing() {
  function getFirstLZCK (line 373) | function getFirstLZCK() {
  function getToken (line 413) | function getToken() {
  function random (line 451) | function random(min, max) {
  function getUUID (line 456) | function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', Up...
  function checkCookie (line 467) | function checkCookie() {
  function t (line 509) | function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) +...
  function r (line 509) | function r(n, t) { return n << t | n >>> 32 - t }
  function e (line 509) | function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) }
  function o (line 509) | function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) }
  function u (line 509) | function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) }
  function c (line 509) | function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) }
  function f (line 509) | function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) }
  function i (line 509) | function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4...
  function a (line 509) | function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t +...
  function d (line 509) | function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t =...
  function h (line 509) | function h(n) { return a(i(d(n), 8 * n.length)) }
  function l (line 509) | function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15...
  function g (line 509) | function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n...
  function v (line 509) | function v(n) { return unescape(encodeURIComponent(n)) }
  function m (line 509) | function m(n) { return h(v(n)) }
  function p (line 509) | function p(n) { return g(m(n)) }
  function s (line 509) | function s(n, t) { return l(v(n), v(t)) }
  function C (line 509) | function C(n, t) { return g(s(n, t)) }
  function A (line 509) | function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) }
  function Env (line 510) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_half_redrain.js
  constant JD_API_HOST (line 32) | const JD_API_HOST = "https://api.m.jd.com/api";
  function showMsg (line 104) | function showMsg() {
  function receiveRedRain (line 111) | function receiveRedRain() {
  function redRainId (line 144) | function redRainId(url) {
  function rraUrl (line 175) | function rraUrl() {
  function isNotify (line 185) | function isNotify() {
  function taskUrl (line 194) | function taskUrl(function_id, body = {}) {
  function TotalBean (line 211) | function TotalBean() {
  function safeGet (line 256) | function safeGet(data) {
  function jsonParse (line 268) | function jsonParse(str) {
  function Env (line 280) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_hb.js
  function main (line 54) | async function main() {
  function task (line 66) | function task() {
  function uuidRandom (line 103) | function uuidRandom() {
  function random (line 110) | function random(min, max) {
  function TotalBean (line 114) | function TotalBean() { return new Promise(async e => { const n = { url: ...
  function Env (line 115) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_health_exchange.py
  function printT (line 89) | def printT(s):
  function getEnvs (line 94) | def getEnvs(label):
  class msg (line 169) | class msg(object):
    method __init__ (line 170) | def __init__(self, m=''):
    method message (line 173) | def message(self):
    method getsendNotify (line 183) | def getsendNotify(self, a=0):
    method main (line 204) | def main(self):
  function get_xpsid (line 228) | def get_xpsid():
  function exchange (line 248) | def exchange(Didi_jifen_token,xpsid,account,exchange_jkd_numb):

FILE: activity/jd_health_plant.py
  function printT (line 78) | def printT(s):
  function getEnvs (line 82) | def getEnvs(label):
  function userAgent (line 135) | def userAgent():
  class msg (line 155) | class msg(object):
    method __init__ (line 156) | def __init__(self, m=''):
    method message (line 159) | def message(self):
    method getsendNotify (line 169) | def getsendNotify(self, a=0):
    method main (line 190) | def main(self):
  function setName (line 212) | def setName(cookie):
  function get_ck (line 225) | def get_ck(token,sid_ck,account):
  function get_Authorization (line 255) | def get_Authorization(access_token,account):
  function get_planted_info (line 285) | def get_planted_info(cookies,sid,account):
  function get_sleep (line 321) | def get_sleep(cookies,sid):
  function get_task (line 350) | def get_task(cookies,sid,account):
  function get_task2 (line 390) | def get_task2(cookies,sid,account):
  function do_task (line 426) | def do_task(cookies,taskName,taskId,taskToken,sid,account):
  function do_task2 (line 460) | def do_task2(cookies,taskName,taskId,taskToken,sid,account):
  function charge (line 490) | def charge(charge_targe_id,cookies,sid,account):
  function start (line 528) | def start():

FILE: activity/jd_hotNeight.js
  function main (line 116) | async function main(cookie) {
  function takeRequest (line 150) | async function takeRequest(cookie,functionId,bodyInfo='{}'){
  function TotalBean (line 184) | function TotalBean() {
  function Env (line 229) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_hyj.js
  constant JD_API_HOST (line 22) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function transform (line 189) | function transform(str) {
  function get_secretp (line 200) | function get_secretp() {
  function travel_sign (line 230) | function travel_sign() {
  function travel_raise (line 264) | function travel_raise() {
  function travel_collectAtuoScore (line 298) | function travel_collectAtuoScore() {
  function travel_getTaskDetail (line 328) | function travel_getTaskDetail() {
  function travel_collectScore (line 362) | function travel_collectScore(taskToken, taskId) {
  function qryViewkitCallbackResult (line 392) | function qryViewkitCallbackResult(taskToken) {
  function travel_getBadgeAward (line 420) | function travel_getBadgeAward(taskToken) {
  function travel_getFeedDetail (line 459) | function travel_getFeedDetail(taskId) {
  function travel_getFeedDetail2 (line 489) | function travel_getFeedDetail2(taskId) {
  function join (line 519) | function join(venderId, channel, shopId) {
  function taskPostUrl (line 558) | function taskPostUrl(functionId, body) {
  function taskPostUrl2 (line 574) | function taskPostUrl2(functionId, body) {
  function shareCodesFormat (line 591) | function shareCodesFormat() {
  function requireConfig (line 604) | function requireConfig() {
  function getUA (line 635) | function getUA() {
  function randomString (line 639) | function randomString(e) {
  function randomNum (line 649) | function randomNum(e) {
  function safeGet (line 659) | function safeGet(data) {
  function jsonParse (line 671) | function jsonParse(str) {
  function Env (line 683) | function Env(t, e) {

FILE: activity/jd_hyj_help.py
  function userAgent (line 35) | def userAgent():
  class getJDCookie (line 56) | class getJDCookie(object):
    method getckfile (line 58) | def getckfile(self):
    method getCookie (line 86) | def getCookie(self):
    method getUserInfo (line 121) | def getUserInfo(self, ck, pinName, userNum):
    method iscookie (line 151) | def iscookie(self):
  function buildHeaders (line 195) | def buildHeaders(ck):
  function getHomeData (line 211) | def getHomeData(header):
  function getinviteId (line 221) | def getinviteId(ck):
  function travel_getTaskDetail (line 231) | def travel_getTaskDetail(header):
  function travel_collectScore (line 241) | def travel_collectScore(header, taskId, taskToken, secretp):
  function friendsHelp (line 251) | def friendsHelp(ck, inviteId, secretp, nickname):
  function travel_pk_receiveAward (line 272) | def travel_pk_receiveAward(ck):
  function travel_pk_collectPkExpandScore (line 281) | def travel_pk_collectPkExpandScore(ck, inviteId, secretp):
  function start (line 294) | def start():

FILE: activity/jd_industrial_task.js
  function get_tasklist (line 63) | function get_tasklist(code) {
  function do_task (line 126) | function do_task(body) {
  function taskUrl (line 153) | function taskUrl(body) {
  function origin (line 173) | function origin() {
  function randomString (line 189) | function randomString(len,char) {
  function randomEid (line 198) | function randomEid() {
  function safeGet (line 207) | function safeGet(data) {
  function jsonParse (line 219) | function jsonParse(str) {
  function showMsg (line 231) | function showMsg() {
  function Env (line 239) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_insight.js
  function main (line 64) | async function main() {
  function random (line 92) | function random(min, max) {
  function getUUID (line 96) | function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) {
  function GetSurveyList (line 105) | function GetSurveyList() {
  function TotalBean (line 135) | function TotalBean() {
  function Env (line 167) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_jchsign.js
  function main (line 71) | async function main() {
  function task (line 80) | function task(function_id, body) {
  function checkCookie (line 113) | function checkCookie() {
  function uuid (line 154) | function uuid() {
  function Env (line 157) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_jfcz.js
  function TotalBean (line 98) | function TotalBean() {
  function needleMyPrize (line 144) | function needleMyPrize() {
  function getNeedleLevelInfo (line 200) | function getNeedleLevelInfo(currentLevel) {
  function saveNeedleLevelInfo (line 260) | function saveNeedleLevelInfo(currentLevel) {
  function apCashWithDraw (line 315) | function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId) {
  function safeGet (line 375) | function safeGet(data) {
  function Env (line 389) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jika.js
  function main (line 68) | async function main() {
  function doTask (line 119) | async function doTask(taskList){
  function takeGetRequest (line 138) | async function takeGetRequest(type) {
  function dealReturn (line 174) | function dealReturn(type, data) {
  function getPostRequest (line 236) | function getPostRequest(url,body) {
  function randomWord (line 252) | function randomWord(randomFlag, min, max){
  function getRandomArrayElements (line 272) | function getRandomArrayElements(arr, count) {
  function TotalBean (line 282) | function TotalBean() {
  function Env (line 324) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jin_tie.js
  function main (line 57) | async function main() {
  function channelUserSignInfo_xh (line 66) | function channelUserSignInfo_xh() {
  function channelSignInSubsidy_xh (line 112) | function channelSignInSubsidy_xh() {
  function channelUserSubsidyInfo_xh (line 155) | function channelUserSubsidyInfo_xh() {
  function taskUrl_xh (line 192) | function taskUrl_xh(function_id, body, type = 'mission') {
  function TotalBean (line 210) | function TotalBean() {
  function Env (line 253) | function Env(t, e) {

FILE: activity/jd_jingsubang.js
  function PostRequest (line 94) | function PostRequest(uri,body) {
  function PostRequests (line 100) | function PostRequests(body) {
  function GetRequest (line 106) | function GetRequest(uri) {
  function quiz (line 114) | async function quiz(){
  function control (line 136) | async function control(){
  function first (line 140) | async function first(){
  function getshareid (line 156) | async function getshareid(){
  function Zy (line 182) | async function Zy(){
  function dosupport (line 186) | async function dosupport(shareid){
  function zy (line 209) | async function zy(){
  function getlist (line 216) | async function getlist(){
  function showmsg (line 248) | async function showmsg() {
  function jsonParse (line 267) | function jsonParse(str) {
  function distinct (line 278) | function distinct(array){
  function Env (line 282) | function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="s...

FILE: activity/jd_joy.js
  constant FEED_NUM (line 45) | let FEED_NUM = ($.getdata('joyFeedCount') * 1) || 10;
  function jdJoy (line 92) | async function jdJoy() {
  function deskGoodsTask (line 121) | async function deskGoodsTask() {
  function joinTwoPeopleRun (line 139) | async function joinTwoPeopleRun() {
  function petTask (line 225) | async function petTask() {
  function appPetTask (line 383) | async function appPetTask() {
  function getDeskGoodDetails (line 401) | function getDeskGoodDetails() {
  function followScan (line 420) | function followScan(sku) {
  function scanMarket (line 444) | function scanMarket(type, body) {
  function doScanMarket (line 463) | function doScanMarket(type, body) {
  function appScanMarket (line 484) | function appScanMarket(type, body) {
  function getFood (line 506) | function getFood(type) {
  function followShop (line 526) | function followShop(shopId) {
  function dofollowShop (line 546) | function dofollowShop(shopId) {
  function enterRoom (line 566) | function enterRoom() {
  function appGetPetTaskConfig (line 588) | function appGetPetTaskConfig() {
  function feedPets (line 608) | function feedPets(feedNum) {
  function getPetTaskConfig (line 659) | function getPetTaskConfig() {
  function getPetRace (line 679) | function getPetRace() {
  function getRankList (line 699) | function getRankList() {
  function runMatch (line 723) | function runMatch(teamLevel, timeout = 5000) {
  function getBackupInfo (line 746) | function getBackupInfo() {
  function getWinCoin (line 766) | function getWinCoin() {
  function receiveJoyRunAward (line 788) | function receiveJoyRunAward() {
  function energySupplyStation (line 808) | async function energySupplyStation(showOrder) {
  function getSupplyInfo (line 829) | function getSupplyInfo(showOrder) {
  function showMsg (line 850) | function showMsg() {
  function TotalBean (line 858) | function TotalBean() {
  function taskUrl (line 897) | function taskUrl(url) {
  function taskPostUrl (line 936) | function taskPostUrl(url, body) {
  function jsonParse (line 985) | function jsonParse(str) {
  function t (line 997) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 997) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 997) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 997) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 997) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 997) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 997) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 997) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 997) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8){r+=String.fromC...
  function d (line 997) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 997) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 997) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 997) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1){t=n.charCodeAt(r),e+...
  function v (line 997) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 997) | function m(n){return h(v(n))}
  function p (line 997) | function p(n){return g(m(n))}
  function s (line 997) | function s(n,t){return l(v(n),v(t))}
  function C (line 997) | function C(n,t){return g(s(n,t))}
  function A (line 997) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 999) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_joy_feedPets.js
  constant JD_API_HOST (line 41) | const JD_API_HOST = 'https://jdjoy.jd.com'
  constant FEED_NUM (line 42) | let FEED_NUM = ($.getdata('joyFeedCount') * 1) || 10;
  function showMsg (line 92) | function showMsg() {
  function feedPets (line 99) | function feedPets(feedNum) {
  function ThreeMeals (line 166) | function ThreeMeals() {
  function jsonParse (line 203) | function jsonParse(str) {
  function TotalBean (line 214) | function TotalBean() {
  function t (line 254) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 254) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 254) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 254) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 254) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 254) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 254) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 254) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 254) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8){r+=String.fromC...
  function d (line 254) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 254) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 254) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 254) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1){t=n.charCodeAt(r),e+...
  function v (line 254) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 254) | function m(n){return h(v(n))}
  function p (line 254) | function p(n){return g(m(n))}
  function s (line 254) | function s(n,t){return l(v(n),v(t))}
  function C (line 254) | function C(n,t){return g(s(n,t))}
  function A (line 254) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 256) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_joy_park_newtask.js
  constant JD_API_HOST (line 24) | const JD_API_HOST = `https://api.m.jd.com/client.action`;
  function getJoyBaseInfo (line 64) | function getJoyBaseInfo(taskId = '', inviteType = '', inviterPin = '', p...
  function getJoyList (line 88) | function getJoyList(printLog = false) {
  function getGameShopList (line 124) | function getGameShopList() {
  function doJoyMoveDownAll (line 145) | async function doJoyMoveDownAll(workJoyInfoList) {
  function doJoyMergeAll (line 162) | async function doJoyMergeAll(activityJoyList) {
  function doJoyMove (line 174) | function doJoyMove(joyId, location) {
  function doJoyMerge (line 197) | function doJoyMerge(joyId1, joyId2) {
  function doJoyBuy (line 219) | async function doJoyBuy(level) {
  function showMsg (line 252) | function showMsg() {
  function doJoyRecovery (line 259) | function doJoyRecovery(joyId) {
  function taskPostClientActionUrl (line 280) | function taskPostClientActionUrl(body, functionId) {
  function taskGetClientActionUrl (line 295) | function taskGetClientActionUrl(body, functionId) {
  function jsonParse (line 310) | function jsonParse(str) {
  function Env (line 322) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_joy_run.js
  constant JD_BASE_API (line 49) | const JD_BASE_API = `https://draw.jdfcloud.com//pet`;
  function main (line 112) | async function main() {
  function getToken (line 185) | async function getToken() {
  function readToken (line 258) | function readToken() {
  function showMsg (line 288) | function showMsg() {
  function invite (line 306) | async function invite(invite_pins) {
  function enterRoom (line 354) | function enterRoom(invitePin) {
  function helpInviteFriend (line 386) | function helpInviteFriend(friendPin) {
  function run (line 421) | async function run(run_pins) {
  function combatHelp (line 453) | function combatHelp(friendPin) {
  function combatDetail (line 488) | function combatDetail(invitePin) {
  function isURL (line 517) | function isURL(domain, reg) {
  function jsonParse (line 521) | function jsonParse(str) {
  function getRandomArrayElements (line 532) | function getRandomArrayElements(arr, count) {
  function getFriendPins (line 542) | function getFriendPins() {
  function t (line 571) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 571) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 571) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 571) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 571) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 571) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 571) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 571) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 571) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8){r+=String.fromC...
  function d (line 571) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 571) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 571) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 571) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1){t=n.charCodeAt(r),e+...
  function v (line 571) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 571) | function m(n){return h(v(n))}
  function p (line 571) | function p(n){return g(m(n))}
  function s (line 571) | function s(n,t){return l(v(n),v(t))}
  function C (line 571) | function C(n,t){return g(s(n,t))}
  function A (line 571) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 573) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_joy_steal.js
  constant JD_API_HOST (line 47) | const JD_API_HOST = 'https://jdjoy.jd.com/pet';
  function jdJoySteal (line 106) | async function jdJoySteal() {
  function stealFriendsFood (line 197) | async function stealFriendsFood() {
  function stealFriendCoinFun (line 227) | async function stealFriendCoinFun() {
  function helpFriendsFeed (line 247) | async function helpFriendsFeed() {
  function enterRoom (line 287) | function enterRoom() {
  function getFriends (line 324) | function getFriends(currentPage = '1') {
  function stealFriendCoin (line 365) | async function stealFriendCoin(friendPin) {
  function enterFriendRoom (line 384) | function enterFriendRoom(friendPin) {
  function getFriendCoin (line 411) | function getFriendCoin(friendPin) {
  function helpFeed (line 434) | function helpFeed(friendPin) {
  function doubleRandomFood (line 458) | function doubleRandomFood(friendPin) {
  function getRandomFood (line 478) | function getRandomFood(friendPin) {
  function getCoinChanges (line 501) | function getCoinChanges() {
  function showMsg (line 555) | function showMsg() {
  function TotalBean (line 577) | function TotalBean() {
  function taskUrl (line 616) | function taskUrl(functionId, friendPin) {
  function timeFormat (line 636) | function timeFormat(time) {
  function jsonParse (line 645) | function jsonParse(str) {
  function t (line 657) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 657) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 657) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 657) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 657) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 657) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 657) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 657) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 657) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8){r+=String.fromC...
  function d (line 657) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 657) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 657) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 657) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1){t=n.charCodeAt(r),e+...
  function v (line 657) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 657) | function m(n){return h(v(n))}
  function p (line 657) | function p(n){return g(m(n))}
  function s (line 657) | function s(n,t){return l(v(n),v(t))}
  function C (line 657) | function C(n,t){return g(s(n,t))}
  function A (line 657) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 659) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_joy_tx.js
  function TotalBean (line 69) | function TotalBean() {
  function signPrizeDetailList (line 116) | function signPrizeDetailList() {
  function apCashWithDraw (line 176) | function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId) {
  function safeGet (line 235) | function safeGet(data) {
  function Env (line 248) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jump.js
  function jump (line 72) | async function jump() {
  function rewards (line 189) | async function rewards() {
  function getReward (line 215) | async function getReward() {
  function domission (line 225) | async function domission() {
  function throwDice (line 241) | async function throwDice() {
  function getBeanRewards (line 262) | async function getBeanRewards() {
  function doTask (line 281) | async function doTask() {
  function addCart (line 306) | async function addCart(skuList) {
  function getTaskList (line 328) | async function getTaskList() {
  function receive (line 348) | async function receive() {
  function getOneJumpInfo (line 369) | async function getOneJumpInfo() {
  function getGameList (line 391) | async function getGameList() {
  function getGetRequest (line 412) | function getGetRequest(type, body) {
  function getPostRequest (line 428) | function getPostRequest(type, body) {
  function sortNumber (line 446) | function sortNumber(a, b) {
  function TotalBean (line 450) | function TotalBean() {
  function Env (line 493) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jxdzz.js
  function PostRequest (line 97) | function PostRequest(uri,body) {
  function doTask (line 112) | async function doTask(){
  function DoTask (line 134) | async function DoTask(){
  function Lottery (line 156) | async function Lottery(){
  function getLottery (line 178) | async function getLottery(){
  function Ariszy (line 200) | async function Ariszy(){
  function scans (line 211) | async function scans(){
  function zy (line 221) | async function zy(){
  function Zy (line 227) | async function Zy(){
  function control (line 235) | async function control(){
  function dosupport (line 242) | async function dosupport(){
  function getlist (line 264) | async function getlist(){
  function scan (line 319) | async function scan(){
  function gethelpcode (line 345) | async function gethelpcode(){
  function userScore (line 370) | async function userScore(){
  function showmsg (line 397) | async function showmsg() {
  function safeGet (line 416) | function safeGet(data) {
  function jsonParse (line 428) | function jsonParse(str) {
  function Env (line 451) | function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="s...

FILE: activity/jd_jxg.js
  function jxg (line 112) | async function jxg(){
  function randomsort (line 164) | function randomsort(a, b) {
  function getFlowList (line 169) | async function getFlowList(){
  function transferBoxCard (line 202) | async function transferBoxCard(cordId){
  function sendBoxCard (line 228) | async function sendBoxCard(userCardId){
  function getCardDetail (line 249) | async function getCardDetail(type){
  function getBigReward (line 269) | async function getBigReward(){
  function synthesize (line 296) | async function synthesize(){
  function doMission (line 316) | async function doMission(){
  function getCard (line 350) | async function getCard(code){
  function setUserHasView (line 370) | async function setUserHasView(){
  function signIn (line 390) | async function signIn(){
  function getNewShare (line 410) | async function getNewShare(){
  function getQueryRuleInfo (line 431) | async function getQueryRuleInfo(){
  function getCardInfo (line 451) | async function getCardInfo(){
  function getBoxUserRewardWinners (line 471) | async function getBoxUserRewardWinners(){
  function helpFriend (line 490) | async function helpFriend(helpCode){
  function getPostRequest (line 516) | function getPostRequest(type,body){
  function TotalBean (line 545) | function TotalBean() {
  function Env (line 588) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jxgckc.js
  constant JD_API_HOST (line 5) | const JD_API_HOST = 'https://m.jingxi.com/';
  function getCookies (line 35) | function getCookies() {
  function getCommodityList (line 51) | function getCommodityList() {
  function getCommodityDetail (line 71) | function getCommodityDetail(commodityId, num) {
  function taskUrl (line 94) | function taskUrl(function_path, body) {
  function Env (line 111) | function Env(t,s){return new class{constructor(t,s){this.name=t,this.dat...

FILE: activity/jd_jxhlk.js
  constant JD_API_HOST (line 41) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function help_all (line 98) | async function help_all() {
  function getAuthorShareCode (line 107) | function getAuthorShareCode(url) {
  function info (line 142) | function info() {
  function test (line 182) | function test() {
  function help (line 297) | function help() {
  function taskPostUrl (line 337) | async function taskPostUrl(functionId, body) {
  function TotalBean (line 354) | async function TotalBean() {
  function safeGet (line 398) | async function safeGet(data) {
  function jsonParse (line 410) | function jsonParse(str) {
  function Env (line 423) | function Env(t, e) {

FILE: activity/jd_jxhlk.py
  function env (line 8) | def env(key):

FILE: activity/jd_jxlhb.js
  function t (line 23) | function t() { }
  function r (line 23) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 23) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 23) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 23) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 23) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 23) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 23) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 23) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 23) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 23) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 23) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 23) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 23) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 23) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 23) | function r() { return s.create.apply(s, arguments) }
  function t (line 23) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 23) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 23) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 24) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 24) | function e(t, r) {
  function r (line 27) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 27) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 27) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 27) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 27) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function _0x3625 (line 30) | function _0x3625(_0x50f146,_0x11f3b9){_0x50f146=~~'0x'['concat'](_0x50f1...
  function main (line 30) | async function main(){$[_0x3625('49')]=![];await joinActive();await $[_0...
  function joinActive (line 30) | function joinActive(){return new Promise(_0x8007ea=>{$[_0x3625('4a')](ta...
  function getUserInfo (line 30) | function getUserInfo(){return new Promise(_0x14e405=>{$[_0x3625('4a')](t...
  function enrollFriend (line 30) | function enrollFriend(_0x141a9d){return new Promise(_0x59fafd=>{$[_0x362...
  function openRedPack (line 30) | function openRedPack(_0x3b4840,_0x254b14){return new Promise(_0x17698d=>...
  function getAuthorShareCode (line 30) | function getAuthorShareCode(_0x4cc0bf){return new Promise(async _0x585bb...
  function taskurl (line 30) | function taskurl(_0xc676ab,_0x4eb197=''){let _0x1e9f96=_0x3625('73');let...
  function getStk (line 30) | function getStk(_0x244cee){let _0x8e36b7=_0x244cee[_0x3625('84')]('\x26'...
  function randomString (line 30) | function randomString(_0x432350){_0x432350=_0x432350||0x20;let _0x333d39...
  function TotalBean (line 30) | function TotalBean(){return new Promise(_0x4b8f08=>{const _0x18ac19={'\x...
  function requestAlgo (line 30) | async function requestAlgo(){$[_0x3625('a2')]=await generateFp();const _...
  function decrypt (line 30) | function decrypt(_0xd1c068,_0x2981f4,_0x2548fc,_0x5ab987){_0x2981f4=_0x2...
  function getUrlData (line 30) | function getUrlData(_0x1fba2e,_0x444d1b){if(typeof URL!==_0x3625('c2')){...
  function generateFp (line 30) | function generateFp(){let _0x5196d3=_0x3625('c6');let _0x452bbe=0xd;let ...
  function getJxToken (line 31) | function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr'...
  function t (line 32) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 32) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 32) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 32) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 32) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 32) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 32) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 32) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 32) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 32) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 32) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 32) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 32) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 32) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 32) | function m(n){return h(v(n))}
  function p (line 32) | function p(n){return g(m(n))}
  function s (line 32) | function s(n,t){return l(v(n),v(t))}
  function C (line 32) | function C(n,t){return g(s(n,t))}
  function A (line 32) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 34) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jxmc.js
  function t (line 23) | function t() { }
  function r (line 23) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 23) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 23) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 23) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 23) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 23) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 23) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 23) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 23) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 23) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 23) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 23) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 23) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 23) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 23) | function r() { return s.create.apply(s, arguments) }
  function t (line 23) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 23) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 23) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 24) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 24) | function e(t, r) {
  function r (line 27) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 27) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 27) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 27) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 27) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function oc (line 37) | function oc(fn, defaultVal) {//optioanl chaining
  function pasture (line 148) | async function pasture() {
  function buyNewPet (line 406) | async function buyNewPet(isHungery = false) {
  function doTask (line 430) | async function doTask(j) {
  function takeGetRequest (line 475) | async function takeGetRequest(type) {
  function getStk (line 628) | function getStk(url) {
  function isNew (line 633) | function isNew(step, getNextStep = false) {
  function dealReturn (line 650) | function dealReturn(type, data) {
  function getGetRequest (line 848) | function getGetRequest(type, url) {
  function randomString (line 861) | function randomString(e) {
  function getAuthorShareCode (line 869) | function getAuthorShareCode(url) {
  function shareCodesFormat (line 903) | function shareCodesFormat() {
  function readShareCode (line 916) | function readShareCode() {
  function decrypt (line 940) | function decrypt(time, stk, type, url) {
  function requestAlgo (line 965) | async function requestAlgo() {
  function getUrlData (line 1051) | function getUrlData(url, name) {
  function generateFp (line 1069) | function generateFp() {
  function TotalBean (line 1078) | function TotalBean() {
  function getJxToken (line 1119) | function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr'...
  function t (line 1120) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 1120) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 1120) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 1120) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 1120) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 1120) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 1120) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 1120) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 1120) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 1120) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 1120) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 1120) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 1120) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 1120) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 1120) | function m(n){return h(v(n))}
  function p (line 1120) | function p(n){return g(m(n))}
  function s (line 1120) | function s(n,t){return l(v(n),v(t))}
  function C (line 1120) | function C(n,t){return g(s(n,t))}
  function A (line 1120) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 1122) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jxmc_hb.js
  function t (line 7) | function t() { }
  function r (line 7) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 7) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 7) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 7) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 7) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 7) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 7) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 7) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 7) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 7) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 7) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 7) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 7) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 7) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 7) | function r() { return s.create.apply(s, arguments) }
  function t (line 7) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 7) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 7) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 8) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 8) | function e(t, r) {
  function r (line 11) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 11) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 11) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 11) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 11) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function getShareCode (line 130) | function getShareCode(name) {
  function pasture (line 155) | async function pasture() {
  function takeGetRequest (line 194) | async function takeGetRequest(type) {
  function dealReturn (line 303) | function dealReturn(type, data) {
  function getGetRequest (line 458) | function getGetRequest(url) {
  function randomWord (line 481) | function randomWord(randomFlag, min, max){
  function decrypt (line 497) | function decrypt(time, stk, type, url) {
  function requestAlgo (line 522) | async function requestAlgo() {
  function getUrlData (line 608) | function getUrlData(url, name) {
  function generateFp (line 626) | function generateFp() {
  function TotalBean (line 635) | function TotalBean() {
  function getJxToken (line 680) | function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr'...
  function t (line 681) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 681) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 681) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 681) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 681) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 681) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 681) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 681) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 681) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 681) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 681) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 681) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 681) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 681) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 681) | function m(n){return h(v(n))}
  function p (line 681) | function p(n){return g(m(n))}
  function s (line 681) | function s(n,t){return l(v(n),v(t))}
  function C (line 681) | function C(n,t){return g(s(n,t))}
  function A (line 681) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function t (line 683) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 683) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 683) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 683) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 683) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 683) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 683) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 683) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 683) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 683) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 683) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 683) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 683) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 683) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 683) | function m(n){return h(v(n))}
  function p (line 683) | function p(n){return g(m(n))}
  function s (line 683) | function s(n,t){return l(v(n),v(t))}
  function C (line 683) | function C(n,t){return g(s(n,t))}
  function A (line 683) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 685) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jxnc.js
  constant JXNC_API_HOST (line 44) | const JXNC_API_HOST = 'https://wq.jd.com/';
  function t (line 56) | function t() { }
  function r (line 56) | function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % ...
  function e (line 56) | function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; ...
  function i (line 56) | function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; ...
  function n (line 56) | function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; retur...
  function o (line 56) | function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; re...
  function t (line 56) | function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i))...
  function e (line 56) | function e(t) { return 4294967296 * (t - (0 | t)) | 0 }
  function r (line 56) | function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 }
  function e (line 56) | function e(t, r, e) { return t ^ r ^ e }
  function i (line 56) | function i(t, r, e) { return t & r | ~t & e }
  function n (line 56) | function n(t, r, e) { return (t | ~r) ^ e }
  function o (line 56) | function o(t, r, e) { return t & e | r & ~e }
  function s (line 56) | function s(t, r, e) { return t ^ (r | ~e) }
  function a (line 56) | function a(t, r) { return t << r | t >>> 32 - r }
  function r (line 56) | function r() { return s.create.apply(s, arguments) }
  function t (line 56) | function t(t) { return "string" == typeof t ? m : w }
  function t (line 56) | function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r...
  function r (line 56) | function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); ...
  function r (line 57) | function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this...
  function e (line 57) | function e(t, r) {
  function r (line 60) | function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n ...
  function r (line 60) | function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e ...
  function e (line 60) | function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t }
  function r (line 60) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function r (line 60) | function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e]...
  function changeShareCodeJson (line 119) | function changeShareCodeJson(code) {
  function requireConfig (line 129) | function requireConfig() {
  function TotalBean (line 216) | function TotalBean() {
  function tokenFormat (line 259) | function tokenFormat() {
  function shareCodesFormat (line 271) | function shareCodesFormat() {
  function jdJXNC (line 286) | async function jdJXNC() {
  function getTaskList (line 342) | function getTaskList() {
  function browserTask (line 372) | function browserTask() {
  function answerTask (line 409) | function answerTask() {
  function getMessage (line 460) | function getMessage(endInfo, startInfo) {
  function submitInviteId (line 491) | function submitInviteId(userName) {
  function getAssistUser (line 525) | function getAssistUser() {
  function helpFriends (line 561) | async function helpFriends() {
  function helpShareCode (line 582) | function helpShareCode(smp, active, joinnum) {
  function doTask (line 631) | function doTask({tasklevel, left, taskname, eachtimeget}) {
  function taskUrl (line 666) | function taskUrl(function_path, body, stk) {
  function randomString (line 687) | function randomString() {
  function showMsg (line 695) | async function showMsg() {
  function requestAlgo (line 734) | async function requestAlgo() {
  function decrypt (line 795) | function decrypt(time, stk, type, url) {
  function getUrlData (line 828) | function getUrlData(url, name) {
  function generateFp (line 850) | function generateFp() {
  function jsonParse (line 859) | function jsonParse(str) {
  function getJxToken (line 872) | function getJxToken(){var _0xa422={'lGSBc':_0xa80f('0','9qEv'),'zYXMd':f...
  function t (line 874) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 874) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 874) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 874) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 874) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 874) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 874) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 874) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 874) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCh...
  function d (line 874) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 874) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 874) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 874) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+=...
  function v (line 874) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 874) | function m(n){return h(v(n))}
  function p (line 874) | function p(n){return g(m(n))}
  function s (line 874) | function s(n,t){return l(v(n),v(t))}
  function C (line 874) | function C(n,t){return g(s(n,t))}
  function A (line 874) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 875) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_jxnn.js
  function getShareCode (line 103) | function getShareCode(name, author = 'KingRan521', num = -1, shuffle = f...
  function help (line 134) | async function help(sharecode) {
  function drawUserTask (line 172) | async function drawUserTask() {
  function UserSignNew (line 226) | async function UserSignNew() {
  function decrypturl (line 247) | function decrypturl(url, stk, params, appId = 10012) {
  function decrypt (line 255) | function decrypt(url, stk, appId) {
  function getJxmcUrlData (line 280) | function getJxmcUrlData(url, name) {
  function api (line 298) | async function api(fn, stk, params) {
  function taskUrl (line 321) | function taskUrl(url) {
  function randomWord (line 338) | function randomWord(randomFlag, min, max) {
  function TotalBean (line 354) | function TotalBean() {
  function Env (line 427) | function Env(t, e) {

FILE: activity/jd_koi_Help.js
  constant JD_API_HOST (line 20) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function help (line 59) | async function help(){
  function requestApi (line 75) | function requestApi(functionId, body = {}) {
  function requireConfig (line 100) | function requireConfig() {
  function gettimestamp (line 119) | function gettimestamp() {
  function random (line 124) | function random(min, max) {
  function randomString (line 130) | function randomString(e) {
  function Env (line 141) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_live_redrain.js
  constant JD_API_HOST (line 39) | const JD_API_HOST = 'https://api.m.jd.com/api';
  function showMsg (line 114) | function showMsg() {
  function getRedRain (line 121) | function getRedRain() {
  function receiveRedRain (line 167) | function receiveRedRain(actId) {
  function taskGetUrl (line 200) | function taskGetUrl(url, body) {
  function taskPostUrl (line 218) | function taskPostUrl(function_id, body = body) {
  function taskUrl (line 233) | function taskUrl(function_id, body = {}) {
  function getRedRainIds (line 250) | function getRedRainIds(url = "https://raw.githubusercontent.com/gitupdat...
  function TotalBean (line 286) | function TotalBean() {
  function safeGet (line 331) | function safeGet(data) {
  function jsonParse (line 343) | function jsonParse(str) {
  function Env (line 355) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_ljd.js
  function taskUrl_xh (line 47) | function taskUrl_xh(functionId, body){
  function main (line 57) | async function main(){
  function taskRequest (line 100) | function taskRequest(functionId, body){
  function safeGet (line 153) | function safeGet(data){
  function Env (line 166) | function Env(t, e){

FILE: activity/jd_lotteryMachine.js
  function main (line 27) | async function main() {
  function help (line 46) | async function help() {
  function interact_template_getHomeData (line 100) | function interact_template_getHomeData(timeout = 0) {
  function harmony_collectScore (line 174) | function harmony_collectScore(timeout = 0) {
  function updateShareCodes (line 219) | function updateShareCodes(url = 'https://raw.githubusercontent.com/yangt...
  function updateShareCodesCDN (line 253) | function updateShareCodesCDN(url = 'https://cdn.jsdelivr.net/gh/yangting...
  function Env (line 274) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_lottery_drew.js
  constant JD_API_HOST (line 29) | const JD_API_HOST = 'https://api.m.jd.com';
  function vvipscdp_raffle_auto_send_bean (line 79) | function vvipscdp_raffle_auto_send_bean(channelCode) {
  function taskPostUrl (line 101) | function taskPostUrl(function_id, body = {}) {
  function TotalBean (line 120) | function TotalBean() {
  function safeGet (line 165) | function safeGet(data) {
  function jsonParse (line 177) | function jsonParse(str) {
  function getUUID (line 189) | function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', Up...
  function Env (line 201) | function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e...

FILE: activity/jd_lsj.js
  function start (line 111) | async function start() {
  function getinfo (line 153) | function getinfo() {
  function getAwardList (line 194) | function getAwardList() {
  function gettoken (line 241) | function gettoken() {
  function getnick (line 271) | function getnick() {
  function doshop (line 305) | function doshop(goodsNumId) {
  function doliulan (line 338) | function doliulan(goodsNumId) {
  function doGoods (line 369) | function doGoods(goodsNumId) {
  function doadd (line 400) | function doadd(goodsNumId) {
  function dotree (line 431) | function dotree(goodsNumId) {
  function dohelp (line 463) | function dohelp(inviterNick) {
  function dojoinMember (line 500) | function dojoinMember(id) {
  function playgame (line 533) | function playgame() {
  function ljd (line 574) | function ljd(awardId) {
  function showMsg (line 607) | function showMsg() {
  function duihuan (line 615) | function duihuan() {
  function TotalBean (line 646) | async function TotalBean() {
  function jsonParse (line 691) | function jsonParse(str) {
  function Env (line 703) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_lxLottery.js
  function showMsg (line 77) | function showMsg() {
  function jdmodule (line 85) | async function jdmodule() {
  function run (line 106) | async function run() {
  function getinfo (line 130) | function getinfo() {
  function join (line 169) | function join() {
  function doTask (line 208) | function doTask(taskType, itemId) {
  function getReward (line 235) | function getReward(taskType, itemId) {
  function taskPostUrl (line 262) | function taskPostUrl(function_id, body = {}) {
  function TotalBean (line 282) | function TotalBean() {
  function safeGet (line 324) | function safeGet(data) {
  function jsonParse (line 335) | function jsonParse(str) {
  function randomWord (line 347) | function randomWord(randomFlag, min, max){
  function Env (line 363) | function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e...

FILE: activity/jd_m_sign.js
  constant JD_API_HOST (line 28) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function jdsign (line 63) | async function jdsign() {
  function getInfo (line 82) | async function getInfo(url) {
  function doInteractiveAssignment (line 104) | async function doInteractiveAssignment(encryptProjectId, AssignmentId) {
  function taskUrl (line 137) | function taskUrl(functionId, body = {}) {
  function TotalBean (line 154) | function TotalBean() {
  function showMsg (line 195) | function showMsg() {
  function safeGet (line 205) | function safeGet(data) {
  function jsonParse (line 216) | function jsonParse(str) {
  function Env (line 228) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_market_lottery.js
  constant JD_API_HOST (line 40) | const JD_API_HOST = "https://api.m.jd.com/client.action";
  function showMsg (line 70) | function showMsg() {
  function main (line 76) | async function main() {
  function getInfo (line 80) | async function getInfo(url) {
  function doTask (line 122) | function doTask(enAwardK) {
  function doLottery (line 141) | function doLottery(enAwardK,authType="2") {
  function taskUrl (line 161) | function taskUrl(function_id, body = {}) {
  function safeGet (line 175) | function safeGet(data) {
  function Env (line 188) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_marketmh.js
  constant JD_API_HOST (line 25) | const JD_API_HOST = `https://api.m.jd.com/client.action`;
  function main (line 56) | async function main() {
  function starShopPageInfo (line 92) | function starShopPageInfo(body) {
  function starShopDraw (line 119) | function starShopDraw(body) {
  function apTaskList (line 157) | function apTaskList(body) {
  function apTaskDetail (line 182) | function apTaskDetail(body) {
  function apDoTask (line 208) | function apDoTask(body) {
  function helpShare (line 234) | function helpShare(body) {
  function openBox (line 260) | function openBox(body) {
  function getUA (line 286) | function getUA() {
  function getToken (line 300) | function getToken(timeout = 0) {
  function taskGetUrl (line 325) | function taskGetUrl(functionId, body = {}) {
  function taskPostUrl (line 340) | function taskPostUrl(functionId, body = {}) {
  function jsonParse (line 355) | function jsonParse(str) {
  function Env (line 367) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_mhyyl.js
  function main (line 49) | async function  main(ck) {
  function getRandomArrayElements (line 61) | function getRandomArrayElements(arr, count) {
  function takePost (line 71) | async function takePost(info,ck,UA){
  function randomWord (line 107) | function randomWord(randomFlag, min, max){
  function Env (line 123) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_mhyyl_prize.js
  function main (line 40) | async function  main(ck) {
  function takePost (line 80) | async function takePost(info,ck,UA){
  function randomWord (line 116) | function randomWord(randomFlag, min, max){
  function Env (line 132) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_mnyyn.js
  function run (line 22) | async function run(){const b9=b6,c={'cmGQy':function(d,f){return d!=f;},...
  function takePostRequest (line 22) | async function takePostRequest(c){const ba=b6,d={'JEHLK':ba(0x47f,'F!M%'...
  function dealReturn (line 22) | async function dealReturn(c,d){const bd=b6,f={'WhQHZ':function(h,j){retu...
  function getPostRequest (line 22) | function getPostRequest(c,d,e=b6(0x3fd,'#7)W')){const bf=b6,f={'mQVik':b...
  function b (line 22) | function b(c,d){const e=a;return b=function(f,g){f=f-0xcb;let h=e[f];if(...
  function getCk (line 22) | function getCk(){const bg=b6,c={'fksmJ':function(d,e){return d==e;},'wuP...
  function setActivityCookie (line 22) | function setActivityCookie(c){const bn=b6,d={'MUMzN':function(e,f){retur...
  function getUA (line 22) | async function getUA(){const bo=b6,c={'ZhQfe':function(d,e){return d(e);...
  function randomString (line 22) | function randomString(c){const bp=b6,d={'MKtvC':function(i,j){return i||...
  function jsonParse (line 22) | function jsonParse(c){const bq=b6,d={'uxzUn':bq(0x38d,'&XY4'),'ZzGKR':fu...
  function joinShop (line 22) | async function joinShop(){const br=b6,c={'ptAJa':br(0x188,'S5n7'),'EzPMX...
  function getshopactivityId (line 22) | async function getshopactivityId(){const bv=b6,c={'jmiLm':bv(0x4ac,'(^*(...
  function getAuthorCodeList (line 22) | function getAuthorCodeList(c){const by=b6,d={'RUMOY':function(e,f){retur...
  function random (line 22) | function random(c,d){const bB=b6,e={'Ywbmb':function(f,g){return f+g;},'...
  function jsonParse (line 22) | function jsonParse(c){const bC=b6,d={'JmwaF':function(f,g){return f==g;}...
  function Env (line 25) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_mofang.js
  function main (line 71) | async function main() {
  function doInteractiveAssignment (line 120) | function doInteractiveAssignment(projectId, encryptAssignmentId, itemId,...
  function queryInteractiveInfo (line 145) | function queryInteractiveInfo(projectId) {
  function getInteractionHomeInfo (line 169) | function getInteractionHomeInfo() {
  function taskPostUrl (line 197) | function taskPostUrl(function_id, body) {
  function getUUID (line 213) | function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) ...
  function TotalBean (line 214) | function TotalBean() { return new Promise(async e => { const n = { url: ...
  function Env (line 215) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_mofang.ts
  function api (line 157) | async function api(params: string) {
  function getLog (line 169) | async function getLog() {

FILE: activity/jd_mofang_ex.js
  constant JD_API_HOST (line 39) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function jdMofang (line 74) | async function jdMofang() {
  function getInteractionHomeInfo (line 79) | async function getInteractionHomeInfo() {
  function queryInteractiveInfo (line 104) | async function queryInteractiveInfo(encryptProjectId, sourceCode) {
  function queryInteractiveRewardInfo (line 121) | async function queryInteractiveRewardInfo(encryptProjectId, sourceCode, ...
  function doInteractiveAssignment (line 187) | async function doInteractiveAssignment(encryptProjectId, AssignmentId, s...
  function taskUrl (line 218) | function taskUrl(functionId, body = {}) {
  function randomString (line 235) | function randomString(e) {
  function TotalBean (line 245) | function TotalBean() {
  function showMsg (line 286) | function showMsg() {
  function safeGet (line 296) | function safeGet(data) {
  function jsonParse (line 307) | function jsonParse(str) {
  function Env (line 319) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_mohe.js
  constant JD_API_HOST (line 36) | const JD_API_HOST = 'https://api.m.jd.com/api';
  function task0 (line 87) | async function task0() {
  function conf (line 110) | function conf() {
  function homeGoBrowse (line 124) | function homeGoBrowse(type, id) {
  function taskHomeCoin (line 138) | function taskHomeCoin(type, id) {
  function getCoin (line 152) | function getCoin() {
  function taskList (line 175) | async function taskList() {
  function browseProduct (line 231) | function browseProduct(skuId) {
  function strollActive (line 246) | function strollActive(index) {
  function followShop (line 261) | function followShop(shopId) {
  function taskCoin (line 276) | function taskCoin(type) {
  function getAward (line 290) | async function getAward() {
  function coin (line 318) | function coin() {
  function lottery (line 333) | function lottery() {
  function shareUrl (line 347) | function shareUrl() {
  function taskurl (line 369) | function taskurl(body = {}) {
  function jsonParse (line 384) | function jsonParse(str) {
  function Env (line 397) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_mohe_help.js
  constant JD_API_HOST (line 36) | const JD_API_HOST = 'https://api.m.jd.com/api';
  function addShare (line 95) | function addShare(shareId) {
  function shareUrl (line 120) | function shareUrl() {
  function taskurl (line 141) | function taskurl(body = {}) {
  function jsonParse (line 156) | function jsonParse(str) {
  function Env (line 169) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_moneyTree.js
  constant JD_API_HOST (line 41) | const JD_API_HOST = 'https://ms.jr.jd.com/gw/generic/uc/h5/m';
  function jd_moneyTree (line 84) | async function jd_moneyTree() {
  function user_info (line 101) | function user_info() {
  function dayWork (line 162) | function dayWork() {
  function harvest (line 260) | function harvest() {
  function sell (line 304) | function sell() {
  function myWealth (line 360) | function myWealth() {
  function sign (line 394) | function sign() {
  function signIndex (line 404) | function signIndex() {
  function signEveryDay (line 432) | function signEveryDay() {
  function signOne (line 459) | function signOne(signDay) {
  function getSignAward (line 489) | function getSignAward() {
  function setUserLinkStatus (line 520) | async function setUserLinkStatus(missionId) {
  function receiveAward (line 564) | function receiveAward(mid) {
  function share (line 597) | function share(data) {
  function stealFriendFruit (line 610) | async function stealFriendFruit() {
  function friendRank (line 638) | async function friendRank() {
  function friendTreeRoom (line 686) | async function friendTreeRoom(friendPin) {
  function stealFruit (line 735) | async function stealFruit(friendPin, stoleId) {
  function request (line 784) | async function request(function_id, body = {}) {
  function taskurl (line 809) | function taskurl(function_id, body) {
  function TotalBean (line 828) | function TotalBean() {
  function jsonParse (line 873) | function jsonParse(str) {
  function Env (line 885) | function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="s...

FILE: activity/jd_moneyTree_help.js
  constant JD_API_HOST (line 40) | const JD_API_HOST = 'https://ms.jr.jd.com/gw/generic/uc/h5/m';
  function helpFriends (line 111) | async function helpFriends() {
  function getsharePin (line 126) | function getsharePin() {
  function help (line 165) | function help(sharePin) {
  function taskurl (line 213) | function taskurl(function_id, body) {
  function requireConfig (line 232) | function requireConfig() {
  function shareCodesFormat (line 259) | function shareCodesFormat() {
  function TotalBean (line 278) | function TotalBean() {
  function jsonParse (line 323) | function jsonParse(str) {
  function Env (line 335) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_ms.js
  constant JD_API_HOST (line 41) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function jdMs (line 77) | async function jdMs() {
  function getActInfo (line 93) | function getActInfo() {
  function getUserInfo (line 118) | function getUserInfo(info=true) {
  function getTaskList (line 143) | function getTaskList() {
  function doTask (line 215) | function doTask(body) {
  function tttsign (line 239) | function tttsign() {
  function readpacksign (line 264) | function readpacksign() {
  function showMsg (line 290) | function showMsg() {
  function ttt (line 297) | function ttt(body) {
  function readpack (line 312) | function readpack(body) {
  function taskPostUrl (line 327) | function taskPostUrl(function_id, body = {}, extra = '', function_id2) {
  function TotalBean (line 345) | function TotalBean() {
  function safeGet (line 390) | function safeGet(data) {
  function jsonParse (line 402) | function jsonParse(str) {
  function Env (line 414) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_mx_shop.js
  function main (line 106) | async function main() {
  function help (line 161) | async function help(){
  function getReward (line 210) | async function getReward() {
  function starShop (line 241) | async function starShop() {
  function takePostRequest (line 296) | async function takePostRequest(type) {
  function dealReturn (line 341) | function dealReturn(type, data) {
  function getPostRequest (line 395) | function getPostRequest(body) {
  function getInfo (line 411) | async function getInfo() {
  function TotalBean (line 448) | function TotalBean() {
  function getAuthorShareCode (line 492) | function getAuthorShareCode(url) {
  function getRandomArrayElements (line 535) | function getRandomArrayElements(arr, count) {
  function Env (line 546) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_neight1.js
  function main (line 41) | async function main(cookie) {
  function takeRequest (line 56) | async function takeRequest(cookie,functionId,bodyInfo='{}',h5stFlag=false){
  function Env (line 93) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_neight2.js
  function main (line 41) | async function main(cookie) {
  function takeRequest (line 55) | async function takeRequest(cookie,functionId,bodyInfo='{}',h5stFlag=false){
  function Env (line 92) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_newTreasure.py
  function get_pin (line 35) | def get_pin(cookie):
  function ua (line 46) | def ua():
  function gettimestamp (line 55) | def gettimestamp():
  class Judge_env (line 59) | class Judge_env(object):
    method main_run (line 60) | def main_run(self):
    method v4_cookie (line 69) | def v4_cookie(self):
  function getUserInfo (line 83) | def getUserInfo(cookie):
  class Msg (line 114) | class Msg(object):
    method getsendNotify (line 115) | def getsendNotify(self, a=1):
    method main (line 128) | def main(self,n=1):
  function taskPostUrl (line 156) | async def taskPostUrl(functionId, body, cookie, resp=True):
  function taskPostUrl_2 (line 181) | async def taskPostUrl_2(functionId, body, cookie, resp=True):
  function taskPostUrl_3 (line 206) | async def taskPostUrl_3(functionId, body, cookie, resp=True):
  function taskPostUrl_4 (line 230) | async def taskPostUrl_4(functionId, body, cookie, resp=True):
  function taskPostUrl_5 (line 254) | async def taskPostUrl_5(functionId, body, cookie, resp=True):
  function task_assignment (line 279) | async def task_assignment(cookie,assignmentId,projectId,advGrpId1,advGrp...
  function skuList_task (line 310) | async def skuList_task(cookie,assignmentId,projectId,skuList):
  function page_task (line 336) | async def page_task(cookie,assignmentId,projectId,title,itemId):
  function page_taskid (line 360) | async def page_taskid(cookie,assignmentId,projectId):
  function get_inviteId (line 388) | async def get_inviteId(cookie,assignmentId,projectId):
  function boost (line 418) | async def boost(cookie,assignmentId,projectId,inviteId):
  function boost_help (line 444) | async def boost_help(cookie,assignmentId,projectId,inviteId,agid_list):
  function boost_lottery (line 468) | async def boost_lottery(cookie,assignmentId,projectId):
  function task_id (line 490) | async def task_id(cookie):
  function task_id_help (line 651) | async def task_id_help(cookie):
  function main (line 766) | def main():

FILE: activity/jd_nzmh.js
  function jdMh (line 76) | async function jdMh(url) {
  function showMsg (line 92) | function showMsg() {
  function getInfo (line 102) | function getInfo(url) {
  function getUserInfo (line 122) | function getUserInfo() {
  function doTask (line 150) | function doTask(taskId) {
  function draw (line 178) | function draw() {
  function taskUrl (line 205) | function taskUrl(function_id, body = '') {
  function TotalBean (line 222) | function TotalBean() {
  function safeGet (line 267) | function safeGet(data) {
  function jsonParse (line 279) | function jsonParse(str) {
  function Env (line 291) | function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="s...

FILE: activity/jd_opencardDPLHTY.js
  function run (line 78) | async function run(){const a5=a3,c={'RqKoW':a5(0x547,'Hsm9'),'PDEnL':a5(...
  function takePostRequest (line 78) | async function takePostRequest(c){const a6=a3,d={'sGxXX':function(j,k){r...
  function dealReturn (line 78) | async function dealReturn(c,d){const a9=a3,f={'ePCqO':function(h,j){retu...
  function getPostRequest (line 78) | function getPostRequest(c,d,e=a3(0x60d,'2X0O')){const aa=a3,f={'rBkOX':a...
  function taskPostUrl (line 78) | function taskPostUrl(c,d){const ab=a3,e={'iOsXC':ab(0x39e,'$1[J'),'MJDon...
  function random (line 78) | function random(c,d){const ac=a3,e={'qVJql':function(f,g){return f-g;}};...
  function mpdzSign (line 78) | function mpdzSign(c){const ad=a3,d={'POOYY':ad(0x1e3,'X*pu'),'KQtOm':fun...
  function getUa (line 78) | async function getUa(){const ae=a3,c={'JSxqI':ae(0x131,'9mu8'),'HNWjd':f...
  function randomString (line 78) | function randomString(c){const af=a3,d={'lKqUp':function(i,j){return i||...
  function jsonParse (line 78) | function jsonParse(c){const ag=a3,d={'CTBEb':function(f,g,h){return f(g,...
  function joinShop (line 78) | async function joinShop(){const ah=a3,c={'YPbHI':function(d){return d();...
  function getshopactivityId (line 78) | async function getshopactivityId(){const ap=a3,c={'MfOnl':ap(0x41e,'Bq8a...
  function getAuthorCodeList (line 78) | function getAuthorCodeList(c){const ay=a3,d={'zsMWE':function(e,f){retur...
  function random (line 78) | function random(c,d){const aE=a3,e={'JeHIq':function(f,g){return f+g;},'...
  function getBlacklist (line 78) | function getBlacklist(){const aF=a3,c={'IJoAy':aF(0x5b1,'ex8e'),'xZwrA':...
  function b (line 78) | function b(c,d){const e=a();return b=function(f,g){f=f-0xe9;let h=e[f];i...
  function a (line 78) | function a(){const aI=(function(){return[...[version_,'uxBujKBCsVjiaWymq...
  function toFirst (line 78) | function toFirst(c,d){const aG=a3;d!=0x0&&c[aG(0x45a,'FwzE')](c[aG(0x448...
  function getWhitelist (line 78) | function getWhitelist(){const aH=a3,c={'rpxVD':function(g,h){return g==h...
  function Env (line 80) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_opencardty.js
  function run (line 60) | async function run() {
  function getActivity (line 189) | function getActivity(code,name,flag) {
  function doTask (line 244) | function doTask(body) {
  function getReward (line 288) | function getReward(body, flag = 0) {
  function statistic (line 327) | function statistic(body) {
  function join (line 357) | function join(venderId) {
  function getshopactivityId (line 410) | function getshopactivityId() {
  function shopactivityId (line 440) | function shopactivityId(functionId) {
  function getHtml (line 455) | function getHtml() {
  function getEid (line 482) | function getEid(arr) {
  function getUA (line 515) | async function getUA(){
  function randomString (line 521) | function randomString(e) {
  function jsonParse (line 529) | function jsonParse(str) {
  function _0x5108 (line 541) | function _0x5108(_0x3342fd,_0x5f6e22){_0x3342fd=~~'0x'['concat'](_0x3342...
  function _0x3534cb (line 541) | function _0x3534cb(_0x38c8d4,_0x199698,_0x36add5,_0xed6320,_0xee582c,_0x...
  function _0x5722 (line 541) | function _0x5722(_0x49c4b5,_0x101f70){_0x49c4b5=~~'\x30\x78'[_0x5108('9e...
  function requestAlgo (line 541) | async function requestAlgo(){var _0x162fa0={'fqadZ':function(_0x24ecb1,_...
  function getRandomIDPro (line 541) | function getRandomIDPro(){var _0x867da0={'BCJdQ':function(_0x2931e4,_0x5...
  function h5stSign (line 541) | function h5stSign(_0x453191){var _0x149d34={'BUaSH':function(_0x350af8,_...
  function format (line 541) | function format(_0x53ea2b,_0x3c66e3){var _0x550bde={'jSqbf':_0x5108('103...
  function CryptoScripts (line 544) | function CryptoScripts() {
  function Env (line 549) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_pigPet.js
  constant JD_API_HOST (line 24) | const JD_API_HOST = 'https://ms.jr.jd.com/gw/generic/uc/h5/m';
  constant MISSION_BASE_API (line 25) | const MISSION_BASE_API = `https://ms.jr.jd.com/gw/generic/mission/h5/m`;
  function jdPigPet (line 100) | async function jdPigPet() {
  function pigPetLottery (line 120) | async function pigPetLottery() {
  function pigPetSign (line 128) | async function pigPetSign() {
  function pigPetSignOne (line 135) | function pigPetSignOne() {
  function pigPetUserBag (line 176) | function pigPetUserBag() {
  function pigPetAddFood (line 228) | function pigPetAddFood(skuId) {
  function pigPetLogin (line 266) | function pigPetLogin() {
  function pigPetOpenBox (line 314) | function pigPetOpenBox() {
  function pigPetLotteryIndex (line 355) | function pigPetLotteryIndex() {
  function pigPetRank (line 397) | function pigPetRank() {
  function pigPetFriendIndex (line 442) | function pigPetFriendIndex(friendId) {
  function pigPetRobFood (line 479) | async function pigPetRobFood(friendId) {
  function pigPetSignIndex (line 520) | function pigPetSignIndex() {
  function pigPetLotteryPlay (line 560) | function pigPetLotteryPlay() {
  function pigPetLotteryHelpFriend (line 604) | function pigPetLotteryHelpFriend(helpId) {
  function missions (line 645) | async function missions() {
  function pigPetDoMission (line 679) | function pigPetDoMission(mid) {
  function pigPetMissionList (line 719) | function pigPetMissionList() {
  function getJumpInfo (line 756) | function getJumpInfo(juid) {
  function queryMissionReceiveAfterStatus (line 793) | function queryMissionReceiveAfterStatus(missionId) {
  function finishReadMission (line 831) | function finishReadMission(missionId, readTime) {
  function getAuthorShareCode (line 868) | function getAuthorShareCode(url) {
  function TotalBean (line 888) | function TotalBean() {
  function taskUrl (line 932) | function taskUrl(function_id, body) {
  function jsonParse (line 950) | function jsonParse(str) {
  function Env (line 962) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_redPacket_help.js
  constant JD_API_HOST (line 38) | const JD_API_HOST = 'https://api.m.jd.com/api';
  function redPacket (line 113) | async function redPacket() {
  function showMsg (line 125) | function showMsg() {
  function doLuckDrawFun (line 129) | async function doLuckDrawFun() {
  function doLuckDrawEntrance (line 134) | function doLuckDrawEntrance() {
  function doTask (line 180) | async function doTask() {
  function red (line 231) | async function red() {
  function taskHomePage (line 268) | function taskHomePage() {
  function startTask (line 287) | function startTask(taskType) {
  function active (line 311) | async function active(taskType) {
  function getTaskDetailForColor (line 333) | function getTaskDetailForColor(taskType) {
  function taskReportForColor (line 354) | function taskReportForColor(taskType, detailId) {
  function receiveTaskRedpacket (line 377) | function receiveTaskRedpacket(taskType) {
  function jinli_h5assist (line 401) | function jinli_h5assist(redPacketId) {
  function h5receiveRedpacketAll (line 432) | function h5receiveRedpacketAll() {
  function h5launch (line 457) | function h5launch() {
  function h5activityIndex (line 487) | function h5activityIndex() {
  function doAppTask (line 516) | async function doAppTask(type = '1') {
  function getCcTaskList (line 541) | function getCcTaskList(functionId, body, type = '1') {
  function getAuthorShareCode (line 585) | function getAuthorShareCode(url) {
  function taskUrl (line 619) | function taskUrl(functionId, body = {}) {
  function TotalBean (line 639) | function TotalBean() {
  function jsonParse (line 681) | function jsonParse(str) {
  function t (line 693) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 693) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 693) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 693) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 693) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 693) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 693) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 693) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 693) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8){r+=String.fromC...
  function d (line 693) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 693) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 693) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 693) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1){t=n.charCodeAt(r),e+...
  function v (line 693) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 693) | function m(n){return h(v(n))}
  function p (line 693) | function p(n){return g(m(n))}
  function s (line 693) | function s(n,t){return l(v(n),v(t))}
  function C (line 693) | function C(n,t){return g(s(n,t))}
  function A (line 693) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 695) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_sendBeans.js
  function getActivityInfo (line 146) | async function getActivityInfo(){
  function myReward (line 172) | async function myReward(){
  function getActivityList (line 221) | async function getActivityList(){
  function openTuan (line 259) | async function openTuan(){
  function helpMain (line 291) | async function helpMain(){
  function rewardMain (line 318) | async function rewardMain(){
  function rewardBean (line 339) | async function rewardBean(){
  function getRandomArrayElements (line 377) | function getRandomArrayElements(arr, count) {
  function help (line 388) | async function help() {
  function invite (line 429) | async function invite() {
  function getActivityDetail (line 474) | async function getActivityDetail() {
  function TotalBean (line 511) | function TotalBean() {
  function t (line 553) | function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<...
  function r (line 553) | function r(n,t){return n<<t|n>>>32-t}
  function e (line 553) | function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}
  function o (line 553) | function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}
  function u (line 553) | function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}
  function c (line 553) | function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}
  function f (line 553) | function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}
  function i (line 553) | function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l...
  function a (line 553) | function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8){r+=String.fromC...
  function d (line 553) | function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+...
  function h (line 553) | function h(n){return a(i(d(n),8*n.length))}
  function l (line 553) | function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length...
  function g (line 553) | function g(n){var t,r,e="";for(r=0;r<n.length;r+=1){t=n.charCodeAt(r),e+...
  function v (line 553) | function v(n){return unescape(encodeURIComponent(n))}
  function m (line 553) | function m(n){return h(v(n))}
  function p (line 553) | function p(n){return g(m(n))}
  function s (line 553) | function s(n,t){return l(v(n),v(t))}
  function C (line 553) | function C(n,t){return g(s(n,t))}
  function A (line 553) | function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}
  function Env (line 555) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_shop.js
  constant JD_API_HOST (line 35) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function jdShop (line 70) | async function jdShop() {
  function doTask (line 103) | function doTask(taskId) {
  function getTask (line 134) | function getTask(body = {}) {
  function TotalBean (line 163) | function TotalBean() {
  function jsonParse (line 207) | function jsonParse(str) {
  function Env (line 219) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_shophelp.js
  function _0x4e42x7 (line 14) | function _0x4e42x7(_0x4e42x8,_0x4e42x9,_0x4e42xa,_0x4e42xb,_0x4e42xc,_0x...
  function _0x32ed (line 14) | function _0x32ed(_0x4e42x11,_0x4e42x12){_0x4e42x11=  ~~__Oxef653[0x1d8][...
  function getAuthorCodeList (line 14) | function getAuthorCodeList(_0x4e42x60){var _0x4e42x61={'\x69\x6C\x6C\x43...
  function random (line 14) | function random(_0x4e42x79,_0x4e42x7a){var _0x4e42x7b={'\x49\x6A\x73\x4B...
  function getUUID (line 14) | function getUUID(_0x4e42x7f= _0x32ed(__Oxef653[0x2cc],__Oxef653[0x205]),...
  function checkCookie (line 14) | function checkCookie(){var _0x4e42x8e={'\x76\x58\x7A\x4D\x74':function(_...
  function main (line 14) | async function main(){var _0x4e42xa1={'\x51\x42\x6C\x49\x53':function(_0...
  function takePost (line 14) | async function takePost(_0x4e42xb2,_0x4e42xb3){var _0x4e42xb4={'\x77\x57...
  function dealCK (line 14) | function dealCK(_0x4e42xde){var _0x4e42xdf={'\x42\x4E\x4D\x62\x62':funct...
  function getToken (line 14) | async function getToken(){var _0x4e42xec={'\x50\x5A\x42\x79\x54':_0x32ed...
  function getSign (line 14) | function getSign(_0x4e42x10a,_0x4e42x10b){var _0x4e42x10c={'\x62\x62\x44...
  function getUA (line 14) | function getUA(){var _0x4e42x121={'\x51\x67\x53\x61\x50':function(_0x4e4...
  function randomString (line 14) | function randomString(_0x4e42x13b,_0x4e42x13c= 0x0){var _0x4e42x13d={'\x...
  function randomNum (line 14) | function randomNum(_0x4e42x155,_0x4e42x156){var _0x4e42x157={'\x69\x62\x...
  function t (line 16) | function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) +...
  function r (line 16) | function r(n, t) { return n << t | n >>> 32 - t }
  function e (line 16) | function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) }
  function o (line 16) | function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) }
  function u (line 16) | function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) }
  function c (line 16) | function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) }
  function f (line 16) | function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) }
  function i (line 16) | function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4...
  function a (line 16) | function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t +...
  function d (line 16) | function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t =...
  function h (line 16) | function h(n) { return a(i(d(n), 8 * n.length)) }
  function l (line 16) | function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15...
  function g (line 16) | function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n...
  function v (line 16) | function v(n) { return unescape(encodeURIComponent(n)) }
  function m (line 16) | function m(n) { return h(v(n)) }
  function p (line 16) | function p(n) { return g(m(n)) }
  function s (line 16) | function s(n, t) { return l(v(n), v(t)) }
  function C (line 16) | function C(n, t) { return g(s(n, t)) }
  function A (line 16) | function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) }
  function Env (line 17) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_sign.js
  function signBeanIndex (line 20) | async function signBeanIndex() {
  function cgame (line 40) | async function cgame() {

FILE: activity/jd_sign_graphics.js
  constant PNG (line 17) | const PNG = require('png-js');
  constant JD_API_HOST (line 29) | let JD_API_HOST = 'https://jdjoy.jd.com'
  function showMsg (line 94) | async function showMsg() {
  function signRun (line 98) | async function signRun() {
  function Login (line 116) | function Login(i) {
  function Sign (line 189) | function Sign(i,t) {
  function getEid (line 234) | function getEid(arr) {
  function taskUrl (line 267) | function taskUrl(turnTableId) {
  function tasPostkUrl (line 287) | function tasPostkUrl(turnTableId) {
  function requestAlgo (line 310) | async function requestAlgo() {
  function getRandomIDPro (line 346) | function getRandomIDPro() {
  function geth5st (line 369) | function geth5st(t){
  function format (line 382) | function format(a, time) {
  function jsonParse (line 415) | function jsonParse(str) {
  function getUA (line 427) | function getUA(){
  function randomString (line 430) | function randomString(e) {
  function injectToRequest (line 439) | async function injectToRequest(scene = 'cww') {
  function sleep (line 456) | function sleep(timeout) {
  class PNGDecoder (line 459) | class PNGDecoder extends PNG {
    method constructor (line 460) | constructor(args) {
    method decodeToPixels (line 464) | decodeToPixels() {
    method getImageData (line 472) | getImageData(x, y, w, h) {
  constant PUZZLE_GAP (line 479) | const PUZZLE_GAP = 8;
  constant PUZZLE_PAD (line 480) | const PUZZLE_PAD = 10;
  class PuzzleRecognizer (line 481) | class PuzzleRecognizer {
    method constructor (line 482) | constructor(bg, patch, y) {
    method run (line 497) | async run() {
    method recognize (line 503) | recognize() {
    method runWithCanvas (line 551) | runWithCanvas() {
  constant DATA (line 611) | const DATA = {
  constant SERVER (line 616) | const SERVER = 'iv.jd.com';
  class JDJRValidator (line 617) | class JDJRValidator {
    method constructor (line 618) | constructor() {
    method run (line 624) | async run(scene = 'cww', eid='') {
    method recognize (line 660) | async recognize(scene, eid) {
    method report (line 684) | async report(n) {
    method jsonp (line 702) | static jsonp(api, data = {}, scene) {
  function getCoordinate (line 760) | function getCoordinate(c) {
  class MousePosFaker (line 808) | class MousePosFaker {
    method constructor (line 809) | constructor(puzzleX) {
    method run (line 826) | run() {
    method stepPos (line 843) | stepPos(x, duration) {
    method fixPos (line 863) | fixPos() {
    method moveToAndCollect (line 876) | moveToAndCollect({x, y, duration}) {
  function CryptoScripts (line 911) | function CryptoScripts() {
  function Env (line 918) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_sjnhj.js
  function main (line 40) | async function  main(ck) {
  function takePost (line 73) | async function takePost(info,ck,UA){
  function randomWord (line 109) | function randomWord(randomFlag, min, max){
  function Env (line 125) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_speed.js
  constant JD_API_HOST (line 44) | const JD_API_HOST = 'https://api.m.jd.com/'
  function showMsg (line 86) | function showMsg() {
  function jDSpeedUp (line 94) | function jDSpeedUp(sourceId) {
  function spaceEventList (line 178) | function spaceEventList() {
  function spaceEventHandleEvent (line 233) | function spaceEventHandleEvent(spaceEventList) {
  function energyPropList (line 288) | function energyPropList() {
  function receiveEnergyProp (line 338) | function receiveEnergyProp(CID) {
  function energyPropUsaleList (line 391) | function energyPropUsaleList(EID) {
  function useEnergy (line 448) | function useEnergy(PropID) {
  function getMemBerList (line 500) | function getMemBerList() {
  function getMemBerGetTask (line 553) | function getMemBerGetTask(sourceId) {
  function getReward (line 585) | function getReward(uuid) {
  function TotalBean (line 617) | function TotalBean() {
  function jsonParse (line 661) | function jsonParse(str) {
  function safeGet (line 672) | function safeGet(data) {
  function Env (line 684) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_superBrandSign.js
  function getid (line 79) | function getid(functionid, source) {
  function doTask (line 116) | function doTask(source, pid, encryptAssignmentId, id, type) {
  function superBrandTaskLottery (line 147) | function superBrandTaskLottery(source = "sign", enpid, signeid) {
  function taskPostUrl (line 199) | function taskPostUrl(functionid, body) {
  function jsonParse (line 217) | function jsonParse(str) {
  function getUUID (line 229) | function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', Up...
  function Env (line 241) | function Env(t, e) { "undefined" != typeof process && JSON.stringify(pro...

FILE: activity/jd_superBrandzd.js
  function main (line 82) | async function main() {
  function doTask (line 124) | async function doTask(){
  function takeRequest (line 182) | async function takeRequest(type,bodyInfo = '') {
  function dealReturn (line 231) | function dealReturn(type, data) {
  function getRequest (line 303) | function getRequest(url) {
  function randomWord (line 318) | function randomWord(randomFlag, min, max){
  function TotalBean (line 334) | function TotalBean() {
  function getRandomArrayElements (line 378) | function getRandomArrayElements(arr, count) {
  function Env (line 389) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_superMarket.js
  constant JD_API_HOST (line 33) | const JD_API_HOST = 'https://api.m.jd.com/api';
  function jdSuperMarket (line 80) | async function jdSuperMarket() {
  function showMsg (line 108) | function showMsg() {
  function drawLottery (line 116) | async function drawLottery() {
  function help (line 139) | async function help() {
  function doDailyTask (line 148) | async function doDailyTask() {
  function receiveGoldCoin (line 210) | async function receiveGoldCoin() {
  function smtgHome (line 225) | function smtgHome() {
  function receiveLimitProductBlueCoin (line 263) | async function receiveLimitProductBlueCoin() {
  function receiveBlueCoin (line 272) | function receiveBlueCoin(timeout = 0) {
  function daySign (line 309) | async function daySign() {
  function BeanSign (line 324) | async function BeanSign() {
  function smtgSign (line 331) | function smtgSign(body) {
  function businessCircleActivity (line 351) | async function businessCircleActivity() {
  function myProductList (line 518) | async function myProductList() {
  function unlockProductByCategory (line 574) | async function unlockProductByCategory(category) {
  function upgrade (line 593) | async function upgrade() {
  function manageProduct (line 668) | async function manageProduct() {
  function limitTimeProduct (line 710) | async function limitTimeProduct() {
  function receiveUserUpgradeBlue (line 749) | async function receiveUserUpgradeBlue() {
  function Home (line 767) | async function Home() {
  function smtg_shopIndex (line 781) | function smtg_shopIndex() {
  function smtg_shelfUnlock (line 832) | function smtg_shelfUnlock(body) {
  function smtg_shelfUpgrade (line 851) | function smtg_shelfUpgrade(body) {
  function smtg_sellMerchandise (line 871) | function smtg_sellMerchandise(body) {
  function updatePkActivityId (line 891) | function updatePkActivityId(url = '') {
  function updatePkActivityIdCDN (line 909) | function updatePkActivityIdCDN(url) {
  function smtgDoShopTask (line 932) | function smtgDoShopTask(taskId, itemId) {
  function smtgObtainShopTaskPrize (line 957) | function smtgObtainShopTaskPrize(taskId) {
  function smtgQueryShopTask (line 978) | function smtgQueryShopTask() {
  function smtgSignList (line 996) | function smtgSignList() {
  function smtgQueryPkTask (line 1016) | function smtgQueryPkTask() {
  function smtgDoAssistPkTask (line 1060) | function smtgDoAssistPkTask(code) {
  function smtgReceiveCoin (line 1078) | function smtgReceiveCoin(body) {
  function smtgObtainPkTaskPrize (line 1098) | function smtgObtainPkTaskPrize(taskId) {
  function smtgDoPkTask (line 1116) | function smtgDoPkTask(taskId, itemId) {
  function smtg_joinPkTeam (line 1134) | function smtg_joinPkTeam(teamId, inviteCode, sharePkActivityId) {
  function smtg_getTeamPkDetailInfo (line 1152) | function smtg_getTeamPkDetailInfo() {
  function smtg_businessCirclePKDetail (line 1170) | function smtg_businessCirclePKDetail() {
  function smtg_getBusinessCircleList (line 1188) | function smtg_getBusinessCircleList() {
  function smtg_joinBusinessCircle (line 1207) | function smtg_joinBusinessCircle(circleId) {
  function smtg_businessCircleIndex (line 1225) | function smtg_businessCircleIndex() {
  function smtg_receivedPkTeamPrize (line 1243) | function smtg_receivedPkTeamPrize() {
  function smtg_getPkPrize (line 1262) | function smtg_getPkPrize() {
  function smtg_quitBusinessCircle (line 1280) | function smtg_quitBusinessCircle() {
  function smtg_shelfList (line 1299) | function smtg_shelfList() {
  function smtg_shelfProductList (line 1318) | function smtg_shelfProductList(shelfId) {
  function smtg_upgradeProduct (line 1339) | function smtg_upgradeProduct(productId) {
  function smtg_unlockProduct (line 1360) | function smtg_unlockProduct(productId) {
  function smtg_upgradeShelf (line 1381) | function smtg_upgradeShelf(shelfId) {
  function smtg_unlockShelf (line 1402) | function smtg_unlockShelf(shelfId) {
  function smtg_ground (line 1422) | function smtg_ground(productId, shelfId) {
  function smtg_productList (line 1441) | function smtg_productList() {
  function smtg_lotteryIndex (line 1459) | function smtg_lotteryIndex() {
  function smtg_drawLottery (line 1477) | function smtg_drawLottery() {
  function sortSyData (line 1496) | function sortSyData(a, b) {
  function sortTotalPriceGold (line 1499) | function sortTotalPriceGold(a, b) {
  function shareCodesFormat (line 1503) | function shareCodesFormat() {
  function requireConfig (line 1517) | function requireConfig() {
  function TotalBean (line 1541) | function TotalBean() {
  function getTeam (line 1582) | function getTeam() {
  function taskUrl (line 1605) | function taskUrl(function_id, body = {}) {
  function randomNumber (line 1625) | function randomNumber(min = 0, max = 100) {
  function jsonParse (line 1628) | function jsonParse(str) {
  function helpAuthor (line 1640) | async function helpAuthor() {
  function bigWinner (line 1675) | async function bigWinner() {
  function _618 (line 1685) | function _618(redEnvelopeId, inviter, helpType = '1', linkId = 'PFbUR7wt...
  function getAuthorShareCode2 (line 1703) | function getAuthorShareCode2(url) {
  function getRandomArrayElements (line 1738) | function getRandomArrayElements(arr, count) {
  function Env (line 1749) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_super_mh.js
  function jdMh (line 85) | async function jdMh(url) {
  function mhId (line 101) | function mhId(url) {
  function mhUrl (line 130) | function mhUrl() {
  function showMsg (line 141) | function showMsg() {
  function getInfo (line 152) | function getInfo(url = code) {
  function getUserInfo (line 173) | function getUserInfo() {
  function doTask (line 201) | function doTask(taskId) {
  function draw (line 225) | function draw() {
  function taskUrl (line 250) | function taskUrl(function_id, body = '') {
  function TotalBean (line 267) | function TotalBean() {
  function safeGet (line 312) | function safeGet(data) {
  function jsonParse (line 324) | function jsonParse(str) {
  function Env (line 336) | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.en...

FILE: activity/jd_sxLottery.js
  function showMsg (line 72) | function showMsg() {
  function jdmodule (line 80) | async function jdmodule() {
  function run (line 97) | async function run() {
  function getCode (line 125) | function getCode() {
  function getinfo (line 157) | function getinfo() {
  function join (line 196) | function join() {
  function doTask (line 235) | function doTask(taskType, itemId, taskid) {
  function getReward (line 262) | function getReward(taskType, itemId, taskid) {
  function getJump (line 287) | function getJump(url2) {
  function taskPostUrl (line 315) | function taskPostUrl(function_id, body = {}) {
  function TotalBean (line 335) | function TotalBean() {
  function safeGet (line 377) | function safeGet(data) {
  function jsonParse (line 388) | function jsonParse(str) {
  function randomWord (line 400) | function randomWord(randomFlag, min, max) {
  function Env (line 416) | function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e...

FILE: activity/jd_tiger_help.js
  function getAuthorShareCode (line 139) | async function getAuthorShareCode(url) {
  function wait (line 158) | function wait(time) {
  function api (line 166) | async function api(r_body) {
  function getShareCodePool (line 193) | async function getShareCodePool(key, num) {
  function getTaskDetail (line 214) | async function getTaskDetail(taskGroupId) {

FILE: activity/jd_travel.js
  constant JD_API_HOST (line 32) | const JD_API_HOST = 'https://api.m.jd.com/client.action';
  function travel (line 161) | async function travel() {
  function team (line 233) | async function team() {
  function dealHelpRes (line 366) | async function dealHelpRes(functionId, inviteId, pin) {
  function joinTeam (line 391) | async function joinTeam(groupJoinInviteId) {
  function votFor (line 402) | async function votFor(votFor) {
  function raise (line 411) | async function raise(isFirst = false) {
  function doAppTask (line 451) | async function doAppTask() {
  function doWxTask (line 563) | async function doWxTask() {
  function doJrAppTask (line 639) | async function doJrAppTask() {
  function mohuReadJson (line 684) | function mohuReadJson(json, key, len, keyName) {
  function formatMsg (line 706) | function formatMsg(num, pre, ap) {
  function getSs (line 710) | function getSs(secretp) {
  function getSafeStr (line 721) | function getSafeStr() {
  function getWxSs (line 731) | function getWxSs(secretp) {
  function doApi (line 742) | async function doApi(functionId, prepend = {}, append = {}, needSs = fal...
  function doJrPostApi (line 808) | async function doJrPostApi(functionId, prepend = {}, append = {}, needEi...
  function doJrGetApi (line 860) | async function doJrGetApi(functionId, prepend = {}, append = {}, needEid...
  function doWxApi (line 907) | async function doWxApi(functionId, prepend = {}, append = {}, needSs = f...
  function getToken (line 976) | function getToken(appname = appid, platform = "1") {
  function formatErr (line 1016) | function formatErr(functionId, errMsg, curlCmd) {
  function safeGet (line 1024) | function safeGet(data) {
  function getUA (line 1036) | function getUA() {
  function getWxUA (line 1051) | function getWxUA() {
  function randomUUID (line 1057) | function randomUUID(option = {
  function getJrUA (line 1079) | function getJrUA() {
  function toCurl (line 1096) | function toCurl(option = { url: "", body: "", headers: {} }) {
  function objToStr2 (line 1110) | function objToStr2(jsonMap) {
  function str2ToObj (line 1128) | function str2ToObj(keyMap) {
  function randomNum (line 1148) | function randomNum(min, max) {
  function randomString (line 1154) | function randomString(min, max = 0) {
  function TotalBean (line 1174) | function TotalBean() {
  function safeRequire (line 1215) | function safeRequire(path = "") {
  function safeAdd (line 1255) | function safeAdd(_0x44c887,_0x316ac4){var _0x4a0b86={'xvNJL':function(_0...
  function randomRangeNum (line 1255) | function randomRangeNum(_0x382cc3,_0x4cef6c){var _0x420fe6={'AhIQT':func...
  function bitRotateLeft (line 1255) | function bitRotateLeft(_0x16a501,_0x2c98f0){var _0xc4f0e={'mthZY':functi...
  function md5 (line 1255) | function md5(_0x438835,_0x1dff6b,_0x169a5b){var _0xfd5ab={'DPkIq':functi...
  function rstr2hex (line 1255) | function rstr2hex(_0x5e3ebf){var _0x493f7e={'juzGM':'0123456789abcdef','...
  function str2rstrUTF8 (line 1255) | function str2rstrUTF8(_0xecb573){var _0x1f0376={'JpUuD':function(_0x2e73...
  function rstrMD5 (line 1255) | function rstrMD5(_0x5a229a){var _0x50e450={'JWPWl':function(_0x4ecf9e,_0...
  function hexMD5 (line 1255) | function hexMD5(_0x783939){var _0x426d71={'KWnTL':function(_0x4d799a,_0x...
  function rawMD5 (line 1255) | function rawMD5(_0x38502f){var _0x26e81b={'bUPlY':function(_0x108606,_0x...
  function md5cmn (line 1255) | function md5cmn(_0x3eba82,_0xb67127,_0x38c5e4,_0x1de66d,_0x20e0ad,_0x56b...
  function md5ff (line 1255) | function md5ff(_0x4221a4,_0x2d6a46,_0x40f9e3,_0x173b37,_0x16784b,_0x54ab...
  function md5gg (line 1255) | function md5gg(_0x5302c7,_0x39bd3f,_0x3a8f4f,_0x13b19a,_0x2d984b,_0x2ceb...
  function md5hh (line 1255) | function md5hh(_0x46445b,_0x529d08,_0x371ca1,_0x5e0cf1,_0xfcc880,_0x4c6b...
  function md5ii (line 1255) | function md5ii(_0x31ce03,_0x4e15dd,_0x203d22,_0x2737bf,_0x325b5e,_0x5805...
  function binlMD5 (line 1255) | function binlMD5(_0x26057b,_0x1af68f){var _0x6485ba={'KIYdi':function(_0...
  function binl2rstr (line 1255) | function binl2rstr(_0x21c611){var _0x27327a={'AjrpZ':function(_0x2bdbaa,...
  function rstr2binl (line 1255) | function rstr2binl(_0x50a7c8){var _0x2ac90f={'SIPSL':function(_0x4d0ea9,...
  function encrypt_3 (line 1255) | function encrypt_3(_0x4f2962){var _0x36bfa0={'NHqFw':function(_0x91e929,...
  function encrypt_3_3 (line 1255) | function encrypt_3_3(_0x32c29e,_0x48241b){var _0x150a11={'zyexk':functio...
  function rotateRight (line 1255) | function rotateRight(_0x1fbdd8,_0x1469ff){var _0x1dfd5b={'IZXVe':functio...
  function choice (line 1255) | function choice(_0x4260e7,_0x297199,_0x1ac8fc){var _0x4af9ac={'eyEVf':fu...
  function majority (line 1255) | function majority(_0x5b738a,_0x3ea0c2,_0x3b8d76){var _0x4df876={'XnKcd':...
  function sha256_Sigma0 (line 1255) | function sha256_Sigma0(_0x5a63a7){var _0xe88c02={'WCFTJ':function(_0x5a6...
  function sha256_Sigma1 (line 1255) | function sha256_Sigma1(_0x318687){var _0x47b075={'aCzqn':function(_0x318...
  function sha256_sigma0 (line 1255) | function sha256_sigma0(_0x497a5e){var _0x251e47={'RuiSS':function(_0x281...
  function sha256_sigma1 (line 1255) | function sha256_sigma1(_0x3ae473){var _0x349236={'ZRskS':function(_0x3ae...
  function sha256_expand (line 1255) | function sha256_expand(_0x6befae,_0x121109){var _0x47bb32={'pbYUq':funct...
  function safe_add (line 1255) | function safe_add(_0x18c6bb,_0x41b729){var _0x222001={'wbotI':function(_...
  function sha256_init (line 1255) | function sha256_init(){var _0x21a7ff={'CZuUR':'6|3|8|11|5|1|10|9|2|0|7|4...
  function sha256_transform (line 1255) | function sha256_transform(){var _0xbf3404={'xduce':function(_0x1cfe25,_0...
  function sha256_update (line 1255) | function sha256_update(_0x26f603,_0x336d79){var _0x5a36ab={'XoNeM':funct...
  function sha256_final (line 1255) | function sha256_final(){var _0x436906={'dHKcN':function(_0x5d17ee,_0x5aa...
  function sha256_encode_bytes (line 1255) | function sha256_encode_bytes(){var _0x1b0321={'VJJru':function(_0x40f0ec...
  function sha256_encode_hex
Copy disabled (too large) Download .json
Condensed preview — 705 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (51,589K chars).
[
  {
    "path": ".editorconfig",
    "chars": 137,
    "preview": "# editorconfig.org\nroot = true\n\n[*]\nindent_style = space\nindent_size = 4\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_"
  },
  {
    "path": ".gitattributes",
    "chars": 37,
    "preview": "* text eol=lf\n*.png -text\n*.jpg -text"
  },
  {
    "path": ".gitignore",
    "chars": 6961,
    "preview": "model\n/.idea\n/code\n/.github\n/images\n/icon\n/sample\n/shareCodes\n/ModScript\n/NoUsed\nconfig.sample.sh.new\njd_update.js\npacka"
  },
  {
    "path": "CK_WxPusherUid.json",
    "chars": 186,
    "preview": "[\n  {\n    \"pt_pin\": \"ptpin1\",\n    \"Uid\": \"UID_AAAAAAAAAAAA\"\n  },\n  {\n    \"pt_pin\": \"ptpin2\",\n    \"Uid\": \"UID_BBBBBBBBBB\""
  },
  {
    "path": "JDJRSignValidator.js",
    "chars": 85817,
    "preview": "const UA = require('./USER_AGENTS.js').USER_AGENT;\n\nconst navigator = {\n  userAgent: UA,\n  plugins: { length: 0 },\n  lan"
  },
  {
    "path": "JDJRValidator_Pure.js",
    "chars": 14986,
    "preview": "const https = require('https');\nconst http = require('http');\nconst stream = require('stream');\nconst zlib = require('zl"
  },
  {
    "path": "JDSignValidator.js",
    "chars": 85818,
    "preview": "const UA = require('../USER_AGENTS.js').USER_AGENT;\n\nconst navigator = {\n  userAgent: UA,\n  plugins: { length: 0 },\n  la"
  },
  {
    "path": "JD_extra_cookie.js",
    "chars": 9146,
    "preview": "/*\n感谢github@dompling的PR\n\nAuthor: 2Ya\n\nGithub: https://github.com/dompling\n\n===================\n特别说明:\n1.获取多个京东cookie的脚本,不"
  },
  {
    "path": "JS_USER_AGENTS.js",
    "chars": 41242,
    "preview": "const USER_AGENTS = [\n  'jdltapp;iPad;3.7.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/"
  },
  {
    "path": "README.md",
    "chars": 4,
    "preview": "# 自用"
  },
  {
    "path": "TS_JDHelloWorld.d.ts",
    "chars": 1149,
    "preview": "interface User {\n    index: number;\n    UserName: string;\n    cookie: string;\n    UserAgent: string;\n    end?: boolean;\n"
  },
  {
    "path": "TS_JDHelloWorld.js",
    "chars": 63605,
    "preview": "var OO0$='jsjiami.com.v6',OO0$_=['‮OO0$'],QO$$00=[OO0$,'w67DnQ7CvMO+wqU=','UsO8ZSouJA==','w6QpB0R4AFLCvcOU','fcKiw5dTZGo"
  },
  {
    "path": "TS_USER_AGENTS.ts",
    "chars": 15575,
    "preview": "import axios from \"axios\"\nimport {Md5} from \"ts-md5\"\nimport * as dotenv from \"dotenv\"\nimport {existsSync, readFileSync} "
  },
  {
    "path": "USER_AGENTS.js",
    "chars": 13522,
    "preview": "const USER_AGENTS = [\n  \"jdapp;android;11.2.8;;;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv)"
  },
  {
    "path": "ZooFaker_Necklace.js",
    "chars": 34976,
    "preview": "function safeAdd(x, y) {\n    var lsw = (x & 0xffff) + (y & 0xffff)\n    var msw = (x >> 16) + (y >> 16) + (lsw >> 16)\n   "
  },
  {
    "path": "activity/JD_extra_cookie.js",
    "chars": 9178,
    "preview": "/*\n感谢github@dompling的PR\n\nAuthor: 2Ya\n\nGithub: https://github.com/dompling\n\n===================\n特别说明:\n1.获取多个京东cookie的脚本,不"
  },
  {
    "path": "activity/jd_0yuankanjia.js",
    "chars": 21898,
    "preview": "/*\n第一步 运行脚本一次日志查看商品ID\n获取你要砍价的ID后变量填写\nexport skuId=\"这里填获取的商品ID\"\n第二部 再运行一次日志查看商品activityId变量填写\nexport activity=\"这里填获取的商品ac"
  },
  {
    "path": "activity/jd_15_5.js",
    "chars": 18398,
    "preview": "/*\n极速版抢卷\n\n============Quantumultx===============\n[task_local]\n#极速版抢卷\n58 59 6,9,14,17,20 * * * https://raw.githubusercont"
  },
  {
    "path": "activity/jd_15_8.js",
    "chars": 18948,
    "preview": "/*\n极速版抢卷\n\n============Quantumultx===============\n[task_local]\n#极速版抢卷\n58 59 8,11,14,16,19 * * * https://raw.githubusercon"
  },
  {
    "path": "activity/jd_19E.js",
    "chars": 36347,
    "preview": "if (process.env.JD_19E != \"true\") {\n    console.log('\\n默认不运行,安全性自行衡量,设置变量export JD_19E=\"true\"来运行\\n')\n    return\n}\n\n/*\n\n建"
  },
  {
    "path": "activity/jd_19EPZ_help.js",
    "chars": 18533,
    "preview": "if (process.env.JD_19E != \"true\") {\n    console.log('\\n默认不运行,安全性自行衡量,设置变量export JD_19E=\"true\"来运行\\n')\n    return\n}\n\n/*\n11"
  },
  {
    "path": "activity/jd_19E_friends.js",
    "chars": 27879,
    "preview": "if (process.env.JD_19E != \"true\") {\n    console.log('\\n默认不运行,安全性自行衡量,设置变量export JD_19E=\"true\"来运行\\n')\n    return\n}\n/*\n建议手"
  },
  {
    "path": "activity/jd_19E_help.js",
    "chars": 173230,
    "preview": "if (process.env.JD_19E != \"true\") {\n    console.log('\\n默认不运行,安全性自行衡量,设置变量export JD_19E=\"true\"来运行\\n')\n    return\n}\n/*\n\n建议"
  },
  {
    "path": "activity/jd_19_5.js",
    "chars": 18822,
    "preview": "/*\n极速版抢卷\n\n============Quantumultx===============\n[task_local]\n#极速版抢卷\n58 59 9,17,22,23 * * * https://raw.githubuserconten"
  },
  {
    "path": "activity/jd_29_8.js",
    "chars": 18409,
    "preview": "/*\n极速版抢卷\n\n============Quantumultx===============\n[task_local]\n#极速版抢卷\n58 59 8,11,14,16,19 * * * https://raw.githubusercon"
  },
  {
    "path": "activity/jd_5_2.js",
    "chars": 18477,
    "preview": "/*\n极速版抢卷\n\n============Quantumultx===============\n[task_local]\n#极速版抢卷\n58 59 6,9,14,17,20 * * * https://raw.githubusercont"
  },
  {
    "path": "activity/jd_618lottery.js",
    "chars": 18696,
    "preview": "/*\n618天天抽奖\n\n请求太频繁会被黑ip\n\n\n活动网址:\nhttps://prodev.m.jd.com/mall/active/2tSZSK78Bm63pM4yGwA1rKChafQz/index.html\n\ncron:33 7 * "
  },
  {
    "path": "activity/jd_TreasureRank.js",
    "chars": 16955,
    "preview": "\n/*\n10豆 \n入口:排行榜-宝藏榜\nupdatetime: 2022/9/29\nauthor: https://github.com/6dylan6/jdpro\n */\n\nconst $ = new Env('京东宝藏榜');\ncons"
  },
  {
    "path": "activity/jd_angryBean.js",
    "chars": 26410,
    "preview": "/*\n真·抢京豆\n更新时间:2021-10-29\n备注:高速并发抢京豆,专治偷助力。设置环境变量angryBeanPins为指定账号助力,默认不助力。环境变量angryBeanMode可选值priority(优先模式)、smart(智能模式"
  },
  {
    "path": "activity/jd_bean_sign.js",
    "chars": 83465,
    "preview": "/*\nNode.JS专用\nconst $ = new Env('京东多合一签到');\ncron 0 0 * * *  jd_bean_sign.js\n金融签到有一定使用门槛,需要请仔细阅读下方文字:\nJRBODY抓取网站:ms.jr.jd."
  },
  {
    "path": "activity/jd_beauty_ex.js",
    "chars": 19947,
    "preview": "/*\n美丽研究院--兑换\n更新时间:2021-06-08\n活动入口:京东app首页-美妆馆-底部中间按钮\n只支持Node.js支持N个京东账号\n脚本兼容: Node.js\ncron 1 7,12,19 * * * jd_beauty_ex."
  },
  {
    "path": "activity/jd_big_winner.js",
    "chars": 19214,
    "preview": "/*\n省钱大赢家之翻翻乐\n一天可翻多次,但有上限\n运气好每次可得0.3元以上的微信现金(需京东账号绑定到微信)\n脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js\n=================="
  },
  {
    "path": "activity/jd_bigwinner.py",
    "chars": 11542,
    "preview": "# -*- coding:utf-8 -*-\n\"\"\"\nPython 3.9.7\n作者:doubi\n日期:2022年10月30日\n注:脚本运行后会生成一个black.txt,之后如果出现车头pin找不到的情况下,请在black.txt搜索然后"
  },
  {
    "path": "activity/jd_bridge.js",
    "chars": 19988,
    "preview": "/*\n搞鸡玩家-战豆大挑战\nLast Modified time: 2022-1-25\n活动入口:https://zcjb-increase.jd.com/#/Invite?channel=TASK_PLATFORM_CHANNEL_68&"
  },
  {
    "path": "activity/jd_btnyx.py",
    "chars": 7379,
    "preview": "# -*- coding:utf-8 -*-\n#pip install PyExecJS\n\n\n\"\"\"\ncron: 23 11 * * *\nnew Env('京东金融灯火星河闹元宵');\n\"\"\"\n\n\nimport requests\nimpor"
  },
  {
    "path": "activity/jd_bzlshdgt.js",
    "chars": 20183,
    "preview": "/*\n[task_local]\n#把智能生活带给TA\n10 7 * * * jd_bzlshdgt.js, tag=把智能生活带给TA, enabled=true\n */\nconst $ = new Env('把智能生活带给TA');\nco"
  },
  {
    "path": "activity/jd_car.js",
    "chars": 16241,
    "preview": "/*\n京东汽车,签到满500赛点可兑换500京豆,一天运行一次即可\n长期活动\n活动入口:京东APP首页-京东汽车-屏幕右中部,车主福利\ncron \"10 7 * * *\" script-path=jd_car.js, tag=京东汽车\n *"
  },
  {
    "path": "activity/jd_cash.js",
    "chars": 32453,
    "preview": "/*\n签到领现金,每日2毛~5毛\n可互助,助力码每日不变,只变日期\n活动入口:京东APP搜索领现金进入\n更新时间:2021-06-07\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge"
  },
  {
    "path": "activity/jd_cfd.js",
    "chars": 137741,
    "preview": "/*\n京喜财富岛\ncron 1 0-23/2 * * * jd_cfd.js\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛\n\n原作者仓库:https://github.com/Aaron-lv/sync\n\n已支持IO"
  },
  {
    "path": "activity/jd_cfd_fresh.js",
    "chars": 47950,
    "preview": "/*\n京喜财富岛合成生鲜\ncron 45 * * * * jd_cfd_fresh.js\n更新时间:2021-9-11\n活动入口:微信京喜-我的-京喜财富岛\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: Quantu"
  },
  {
    "path": "activity/jd_cfd_fresh_exchange.js",
    "chars": 30486,
    "preview": "/*\n京喜财富岛合成生鲜兑换\ncron 0 12 * * * jd_cfd_fresh_exchange.js   整点好像不放库存  默认0点12点   整点有毛自己改\n更新时间:2021-11-19\n活动入口:微信京喜-我的-京喜财富岛"
  },
  {
    "path": "activity/jd_cfd_hb.js",
    "chars": 117109,
    "preview": "\n/*\n财富岛兑换红包\n作者:gaoyucindy\n============Quantumultx===============\n[task_local]\n#财富岛兑换红包\n50 * * * * https://raw.githubuser"
  },
  {
    "path": "activity/jd_cfd_loop.js",
    "chars": 91275,
    "preview": "/*\n京喜财富岛热气球\ncron 30 0-23/3 * * * jd_cfd_loop.js\n活动入口:京喜APP-我的-京喜财富岛\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge"
  },
  {
    "path": "activity/jd_cfd_mooncake.js",
    "chars": 107608,
    "preview": "/*\n京喜财富岛合成珍珠\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node"
  },
  {
    "path": "activity/jd_cfd_mooncake_help.js",
    "chars": 107670,
    "preview": "/*\n京喜财富岛合成珍珠互助\ncron 20 0 * * * jd_cfd_mooncake.js\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: "
  },
  {
    "path": "activity/jd_cfd_pearl.js",
    "chars": 80022,
    "preview": "/*\n京喜财富岛合成珍珠\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛合成珍珠\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, "
  },
  {
    "path": "activity/jd_cfd_pearl_ex.js",
    "chars": 20953,
    "preview": "/*\n财富岛珍珠兑换\ncron 59 0-23/1 * * * jd_cfd_pearl_ex.js\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛-最左侧建筑\n */\nconst $ = new Env(\"财富岛珍珠"
  },
  {
    "path": "activity/jd_city_exchange.js",
    "chars": 19167,
    "preview": "/*\n城城领现金换红包,会把奖励全部兑换成红包\n */\nconst $ = new Env('城城领现金换红包');\nconst notify = $.isNode() ? require('./sendNotify') : '';\ncon"
  },
  {
    "path": "activity/jd_city_lottery.js",
    "chars": 18851,
    "preview": "/*\n城城领现金抽奖\ncron 0 2,4 30 10 * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_city.js\n */\nconst $ = new Env"
  },
  {
    "path": "activity/jd_citytx.js",
    "chars": 20034,
    "preview": "/*\n城城领现金提现\n活动时间:2021-10-20到2021-10-30\n更新时间:2021-10-21 23:30\n脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js\n变量说明\n JD_CITY_"
  },
  {
    "path": "activity/jd_cityzl.js",
    "chars": 20117,
    "preview": "/*\n城城领现金助力助力\n默认助力前3账号,第一账号助力作者\n[task_local]\n#城城领现金助力\n1 0,16 9-13 12 * jd_cityzl.js, tag=城城领现金助力, img-url=https://raw.git"
  },
  {
    "path": "activity/jd_daily_egg.js",
    "chars": 25338,
    "preview": "/*\n活动入口:京东金融-天天提鹅\n定时收鹅蛋,兑换金币\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n============Quan"
  },
  {
    "path": "activity/jd_daily_lottery.js",
    "chars": 18238,
    "preview": "/*\n小鸽有礼-每日抽奖\n活动入口:惊喜-》我的-》寄件服务-》寻味四季-》右侧瓜分千万京豆\n\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n===================quantu"
  },
  {
    "path": "activity/jd_decompression.js",
    "chars": 30003,
    "preview": "/**\n * 蚊子腿豆子,活动时间:9.21-10.16 10月16号应该可以参与瓜分\n * 第一个号会给作者助力,其他号会给第一个号助力,活动期间貌似只有一次助力机会\n cron  \"5 6,18 * * *\" https://raw.g"
  },
  {
    "path": "activity/jd_delCoupon.js",
    "chars": 16177,
    "preview": "/*\n活动入口:京东APP我的-优惠券\n脚本:删除优惠券\n更新时间:2021-01-21\n说明:1、删除优惠券名称中不含“京东”、“超市”、“生鲜”关键字的券;2、删除优惠券名称中含“XX旗舰店”的券;3、已删除的券可以在回收站中还原\n *"
  },
  {
    "path": "activity/jd_desire.js",
    "chars": 23274,
    "preview": "/*\n京东集魔方\n===========================\n\ncron:2 0,11 * * *\n============Quantumultx===============\n[task_local]\n#集魔方\n2 0,11 "
  },
  {
    "path": "activity/jd_djyyj.js",
    "chars": 19190,
    "preview": "/**\n 电竞预言家瓜分京豆,链接: u.jd.com/3wyVFhp\n 必须得做完任务才能参与竞猜,有加购,没开卡,参与竞猜后,如果猜对了,第二天可以瓜分京豆(蚊子腿。。。)\n 暂时还有24号和25号  2场,,,\n cron 23 10"
  },
  {
    "path": "activity/jd_dlpj.js",
    "chars": 28773,
    "preview": "/*\n\nhttps://prodev.m.jd.com/mall/active/2VyRHGE7jM1igBJcrjoB6ak1JJWV/index.html\n\n\n如需加购请设置环境变量[guaunknownTask_addSku1]为\"t"
  },
  {
    "path": "activity/jd_duobao.js",
    "chars": 13033,
    "preview": "//40,45 23 * * * m_jd_duobao.js\n/*\n[task_local]\n京豆夺宝\n40,45 23 * * * jd_duobao.js, tag=京豆夺宝, enabled=true\n==============="
  },
  {
    "path": "activity/jd_dwapp.js",
    "chars": 15408,
    "preview": "/*\n积分换话费\n入口:首页-生活·缴费-积分换话费\ncron \"33 5,17 * * *\" jd_dwapp.js\n*/\nconst $ = new Env('积分换话费');\nconst notify = $.isNode() ? r"
  },
  {
    "path": "activity/jd_dyj_help.js",
    "chars": 21299,
    "preview": "/*\n发财大赢家助力-快速\n活动入口: 微信小程序-京东好物街-发财大赢家\n环境变量:\nexport dyjHelpPins=\"pin值\"  多个账号请使用@链接\n11 0,5 * * * https://raw.githubusercon"
  },
  {
    "path": "activity/jd_exchangejxbeans.js",
    "chars": 16493,
    "preview": "/**\n过期京豆兑换为喜豆\ncron 33 9 * * * jd_exchangejxbeans.js\nTG频道:https://t.me/sheeplost\n*/\nconst $ = new Env('京豆兑换为喜豆');\nconst n"
  },
  {
    "path": "activity/jd_fc_winner.js",
    "chars": 21165,
    "preview": "/*\n发财大赢家之翻翻乐\n\n需京东账号绑定到微信\n\n脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js\n=================================Quantumultx===="
  },
  {
    "path": "activity/jd_fcdyj_help_wx.js",
    "chars": 23043,
    "preview": "/*\n活动入口: 京东极速版-我的-发财大赢家\n * /\n * 助力逻辑:优先助力互助码环境变量\n * 环境变量:export dyjCode=\"cab8da78fc144424b1f2eee0531a4e3f202516320672056"
  },
  {
    "path": "activity/jd_festivalhb_cash.js",
    "chars": 14276,
    "preview": "\n/*\n1 1 1 1 * jd_festivalhb_cash.js\n默认提现1元,可多次提现\n其他金额id,自己改id\nc47654fb387a2b2d84ffc19f16b52690  20元\n6e53192e506af5d1fe57"
  },
  {
    "path": "activity/jd_fission.js",
    "chars": 18437,
    "preview": "/*\ncron 47 0,9 * * * jd_fission.js\n东东超市限时抢京豆:\n入口-主页-京东超市-右侧\n\n每个号只有一次助力机会,默认助力CK1,并且无上限,测试好像8个CK就满了.一天30豆左右\n*/\nconst $ = "
  },
  {
    "path": "activity/jd_freshgoods.js",
    "chars": 19308,
    "preview": "/*\n活动地址:https://u.jd.com/PLeoIEU\nby:搞鸡玩家\ncron 0-59/8 1,2,3 5-7 2 *\n*/\nconst $ = new Env('春节游戏互动');\nconst notify = $.isNo"
  },
  {
    "path": "activity/jd_ftzy_help.js",
    "chars": 1742,
    "preview": "let common = require(\"./function/common\");\nlet $ = new common.env('京东沸腾之夜助力');\nlet min = 3,\n    help = $.config[$.filena"
  },
  {
    "path": "activity/jd_gouwuche.js",
    "chars": 35609,
    "preview": "if (![\"true\"].includes(process.env.JD_LZCLIENT)) {\n    console.log(\"请设置环境变量JD_LZCLIENT为\\\"true\\\")来运行本脚本\")\n\tconsole.log('本"
  },
  {
    "path": "activity/jd_gyp.js",
    "chars": 19785,
    "preview": "/*\n京东工业品,可抽奖获得京豆,\n活动入口:京东工业品 旁边的立即抽奖\nby:小手冰凉 tg:@chianPLA\n交流群:https://t.me/jdPLA2\n脚本更新时间:2021-12-12 14:20\n脚本兼容: Node.js\n"
  },
  {
    "path": "activity/jd_haier.js",
    "chars": 36904,
    "preview": "/*\n瓜分海尔万元小家电\n\nhttps://lzdz4-isv.isvjcloud.com/dingzhi/haier/active/activity/5774784?activityId=dz2109100000178201&shareU"
  },
  {
    "path": "activity/jd_half_redrain.js",
    "chars": 17690,
    "preview": "/*\n半点京豆雨\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n[task_local]\n#半点京豆雨\n30 16-23/1 * * *"
  },
  {
    "path": "activity/jd_hb.js",
    "chars": 14697,
    "preview": "/**\n 开新红包\n cron 5 0,12 * * * jd_hb.js\n */\nconst $ = new Env('开新红包');\nconst notify = $.isNode() ? require('./sendNotify')"
  },
  {
    "path": "activity/jd_health_exchange.py",
    "chars": 14556,
    "preview": "#!/bin/env python3\n# -*- coding: utf-8 -*\n'''\n\n感谢CurtinLV提供的其他脚本供我参考\n感谢aburd ch大佬的指导抓包\n项目名称:jd_health_exchange.py\nAuthor"
  },
  {
    "path": "activity/jd_health_plant.py",
    "chars": 30328,
    "preview": "#!/bin/env python3\n# -*- coding: utf-8 -*\n'''\n感谢Curtin提供的其他脚本供我参考\n感谢aburd ch大佬的指导\n项目名称:xF_jd_health_plant.py\nAuthor: 一风一"
  },
  {
    "path": "activity/jd_hotNeight.js",
    "chars": 17126,
    "preview": "/**\n沸腾之夜\n更新时间:2021-10-31\n脚本实现:预约,匹配,脚本内互助\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n============Quantumultx========"
  },
  {
    "path": "activity/jd_hyj.js",
    "chars": 37749,
    "preview": "//cron 11 0-20/5 * * * 环游记 自动入会、签到、任务、升级、开宝箱、捡金币\n//半残品随便跑跑\nconst $ = new Env('环游记');\n\nconst jdCookieNode = $.isNode() ? "
  },
  {
    "path": "activity/jd_hyj_help.py",
    "chars": 13796,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*\n'''\n项目名称: JD-Script / jd_hyj \nAuthor: Curtin\n功能:环游记\n    1、好友助力,默认按顺序助力,每个号"
  },
  {
    "path": "activity/jd_industrial_task.js",
    "chars": 15272,
    "preview": "/*\n京东工业品任务\n做完任务有4豆。要跑至少2次。\ncron 13 5,16 * * * https://raw.githubusercontent.com/ickel00/gd_test/main/jd_industrial_task."
  },
  {
    "path": "activity/jd_insight.js",
    "chars": 13897,
    "preview": "/**\n京洞察问卷通知\ncron 0 0 9 * * ? jd_insight.js\n*/\nconst $ = new Env('京洞察问卷通知');\nconst notify = $.isNode() ? require('./sendN"
  },
  {
    "path": "activity/jd_jchsign.js",
    "chars": 14502,
    "preview": "/*\n京东京车会签到\n入口:京东京车会APP,我的-右上角\nby:lost\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n======="
  },
  {
    "path": "activity/jd_jfcz.js",
    "chars": 24445,
    "preview": "/*\n见缝插针\n活动地址: 京东极速版-百元生活费-玩游戏现金可提现\n作者by:jiulan\n更新时间:2021-11-30\n脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js\n==========="
  },
  {
    "path": "activity/jd_jika.js",
    "chars": 20132,
    "preview": "/*\n活动入口:首页 -> 领券 -> 集卡赢大奖\ncron 10 7,18 * * * jd_jika.js\n */\nconst $ = new Env('集魔力卡召唤大奖');\nconst notify = $.isNode() ? r"
  },
  {
    "path": "activity/jd_jin_tie.js",
    "chars": 21705,
    "preview": "/*\n 领金贴(只签到) Fixed By X1a0He\n Last Modified time: 2022-05-28 15:00:00\n Last Modified By X1a0He\n 活动入口:京东APP首页-领金贴,[活动地址]("
  },
  {
    "path": "activity/jd_jingsubang.js",
    "chars": 18474,
    "preview": "/*\ntgchannel:https://t.me/Ariszy8028\ngithub:https://github.com/Ariszy/Private-Script\nboxjs:https://raw.githubusercontent"
  },
  {
    "path": "activity/jd_joy.js",
    "chars": 45277,
    "preview": "/*\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\nIOS用户支持京东双账号,NodeJs用户支持N个京东账号\n更新时间:2021-6-6\n活动入口:京东APP我的-更多工具-宠汪汪\n建议先凌"
  },
  {
    "path": "activity/jd_joy_feedPets.js",
    "chars": 20319,
    "preview": "/*\n宠汪汪喂食(如果喂食80g失败,降级一个档次喂食(40g),依次类推),三餐,建议一小时运行一次\n更新时间:2021-6-6\n活动入口:京东APP我的-更多工具-宠汪汪\n支持京东多个账号\n脚本兼容: QuantumultX, Surg"
  },
  {
    "path": "activity/jd_joy_park_newtask.js",
    "chars": 19600,
    "preview": "/*\n抄自@Tsukasa007 汪汪乐园脚本\n\n仅用于完成汪汪乐园新手引导\n\n\n*/\n// 兼容elecV2P用户\n// @grant    require\n\nconst $ = new Env('汪汪乐园过新手任务');\nconst j"
  },
  {
    "path": "activity/jd_joy_run.js",
    "chars": 33242,
    "preview": "/*\nLast Modified time: 2021-6-6 21:22:37\n宠汪汪邀请助力与赛跑助力脚本,感谢github@Zero-S1提供帮助\n活动入口:京东APP我的-更多工具-宠汪汪\ntoken时效很短,几个小时就失效了,闲麻"
  },
  {
    "path": "activity/jd_joy_steal.js",
    "chars": 34242,
    "preview": "/*\nLast Modified time: 2021-6-6 10:22:37\n活动入口:京东APP我的-更多工具-宠汪汪\n最近经常出现给偷好友积分与狗粮失败的情况,故建议cron设置为多次\njd宠汪汪偷好友积分与狗粮,及给好友喂食\n偷好"
  },
  {
    "path": "activity/jd_joy_tx.js",
    "chars": 17311,
    "preview": "/*\n汪汪乐园提现\n活动地址: 京东极速版-汪汪乐园\n活动时间:\n更新时间:2021-11-30\n[task_local]\n#汪汪乐园提现\ncron \"15 15 * * *\" script-path=jd_joy_withdraw.js,"
  },
  {
    "path": "activity/jd_jump.js",
    "chars": 22372,
    "preview": "/*\n跳跳乐瓜分京豆脚本\n更新时间:2021-05-21\n活动入口:来客有礼(微信小程序)=>跳跳乐或京东APP=》首页=》母婴馆=》底部中间\n注:脚本好像还是会加商品到购物车,慎使用\n脚本兼容: QuantumultX, Surge, L"
  },
  {
    "path": "activity/jd_jxdzz.js",
    "chars": 22828,
    "preview": "/*\ntgchannel:https://t.me/Ariszy8028\ngithub:https://github.com/Ariszy/Private-Script\nboxjs:https://raw.githubusercontent"
  },
  {
    "path": "activity/jd_jxg.js",
    "chars": 25010,
    "preview": "/*\n活动:京小鸽吾悦寄\n活动路径:边玩边赚-》京小鸽吾悦寄\n很小的几率能抽到实物。\n*/\nconst $ = new Env('京小鸽吾悦寄');\nconst notify = $.isNode() ? require('./sendNo"
  },
  {
    "path": "activity/jd_jxgckc.js",
    "chars": 10855,
    "preview": "/*\ncron \"10 10 * * *\" script-path=jx_products_detail.js,tag=京喜工厂商品列表详情\n**/\nconst $ = new Env('京喜工厂商品列表详情');\nconst JD_API"
  },
  {
    "path": "activity/jd_jxhlk.js",
    "chars": 29376,
    "preview": "/*\n#惊喜欢乐砍\n##惊喜欢乐砍 自定义变量 入口惊喜APP我的 惊喜欢乐砍\nexport launchid=\"4559dd7b3f555c9260393166e0674875\" ##你的邀请码\nexport first=\"false\"\n"
  },
  {
    "path": "activity/jd_jxhlk.py",
    "chars": 3449,
    "preview": "# -*- coding: utf8 -*-\n\"\"\"\ncron: 55 1 * * *\nnew Env('京喜欢乐砍');\n活动入口:https://st.jingxi.com/sns/202103/20/jxhlk/list.html\n\""
  },
  {
    "path": "activity/jd_jxlhb.js",
    "chars": 108242,
    "preview": "/*\n京喜领88元红包\n活动入口:京喜APP-我的-签到领红包-天天领红包\n助力逻辑:自己京东账号相互助力\n温馨提示:如提示助力火爆,可尝试寻找京东客服\n脚本兼容: Quantumult X, Surge, Loon, JSBox, Nod"
  },
  {
    "path": "activity/jd_jxmc.js",
    "chars": 122132,
    "preview": "/*\n京喜牧场\n更新时间:2021-11-7\n活动入口:京喜APP-我的-京喜牧场\n温馨提示:请先手动完成【新手指导任务】再运行脚本\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n======"
  },
  {
    "path": "activity/jd_jxmc_hb.js",
    "chars": 106850,
    "preview": "/**\n 惊喜牧场\n cron 23 0-23/3 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_jxmc.js\n */\n// prettier-ign"
  },
  {
    "path": "activity/jd_jxnc.js",
    "chars": 105470,
    "preview": "/*\n特别声明:\n本脚本搬运自 https://github.com/whyour/hundun/blob/master/quanx/jx_nc.js\n感谢 @whyour 大佬\n\n无需京喜token,只需京东cookie即可.\n\n京喜农场"
  },
  {
    "path": "activity/jd_jxnn.js",
    "chars": 27154,
    "preview": "/**\n京喜-首页-牛牛福利\n更新时间:2021-10-31\n脚本实现:助力拿金币任务\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n============Quantumultx======"
  },
  {
    "path": "activity/jd_koi_Help.js",
    "chars": 12718,
    "preview": "/*\n锦鲤红包互助\n入口:[京东App领券频道]\n仅内部互助,注意写死LOG怕的请不要用!\n\n============Quantumultx===============\n[task_local]\n#锦鲤红包互助\n1 0,20 * * * "
  },
  {
    "path": "activity/jd_live_redrain.js",
    "chars": 20276,
    "preview": "/*\n超级直播间红包雨\n更新时间:2021-06-24\n下一场超级直播间时间:06月25日  20:00,直播间地址:https://h5.m.jd.com/dev/3pbY8ZuCx4ML99uttZKLHC2QcAMn/live.htm"
  },
  {
    "path": "activity/jd_ljd.js",
    "chars": 18226,
    "preview": "/*\n#领京豆-首页领京豆\n\n[task_local]\n#领京豆\n20 0,8 * * * jd_ljd.js, tag=领京豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/m"
  },
  {
    "path": "activity/jd_lotteryMachine.js",
    "chars": 17984,
    "preview": "/*\n京东抽奖机 https://raw.githubusercontent.com/yangtingxiao/QuantumultX/master/scripts/jd/jd_lotteryMachine.js\nauthor:yangti"
  },
  {
    "path": "activity/jd_lottery_drew.js",
    "chars": 15600,
    "preview": "/*\n长期活动\nby:小手冰凉 tg:@chianPLA\n脚本更新时间:2021-11-18 14:20\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n新手写脚本,难免有bug,能用且用。\n="
  },
  {
    "path": "activity/jd_lsj.js",
    "chars": 42671,
    "preview": "/*\n#京东零食街\n#入口 京东 频道 美食馆\n\n由zero205基于柠檬大佬原版修改\n取消入会,加购功能\n优化脚本输出,查询金币数量,添加金币兑换牛奶提醒\n助力逻辑:优先账号内互助,然后再帮我助力\n\n零食街自动兑换变量 \nexport l"
  },
  {
    "path": "activity/jd_lxLottery.js",
    "chars": 20403,
    "preview": "/*\n京东我的理想家,可抽奖获得京豆,\n活动入口:京东我的理想家 https://u.jd.com/nw7Fv3T 旁边的立即抽奖\nby:小手冰凉 tg:@chianPLA\n交流群:https://t.me/jdPLA2\n脚本更新时间:20"
  },
  {
    "path": "activity/jd_m_sign.js",
    "chars": 16863,
    "preview": "\n/*\n京东通天塔--签到\n脚本更新时间:2021-12-17 14:20\n脚本兼容: Node.js\n===========================\n[task_local]\n#京东通天塔--签到\n3 1,11 * * * jd_"
  },
  {
    "path": "activity/jd_market_lottery.js",
    "chars": 13525,
    "preview": "// author: 疯疯\n/*\n幸运大转盘\n活动地址:https://pro.m.jd.com/mall/active/3ryu78eKuLyY5YipWWVSeRQEpLQP/index.html\n脚本兼容: Quantumult X,"
  },
  {
    "path": "activity/jd_marketmh.js",
    "chars": 23355,
    "preview": "/*\n超市盲盒\n入口:京东APP-更多-超市盲盒\n25 10,20 * * *  jd_marketmh.js\nupdatetime:2022-12-8\njdpro\n */\n\nconst $ = new Env('超市盲盒');\n//Nod"
  },
  {
    "path": "activity/jd_mhyyl.js",
    "chars": 12356,
    "preview": "/*\n萌虎摇摇乐\ncron 0 9,23 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_mhyyl.js\n* */\nconst $ = new Env("
  },
  {
    "path": "activity/jd_mhyyl_prize.js",
    "chars": 12326,
    "preview": "/*\n萌虎摇摇乐账号获奖情况\ncron 10 22 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_mhyyl_prize.js\n* */\nconst $"
  },
  {
    "path": "activity/jd_mnyyn.js",
    "chars": 112295,
    "preview": "/*\n2.1-2.28 云养牛,免费赢好礼\n\n第一个账号助力作者 其他依次助力CK1\n第一个CK失效会退出脚本\n\n\n入口:[ 2.1-2.28 云养牛,免费赢好礼]\n\n请求太频繁会被黑ip\n过10分钟再执行\n\ncron:11 11 11 1"
  },
  {
    "path": "activity/jd_mofang.js",
    "chars": 17814,
    "preview": "/*\n京东小魔方\nLast Modified time: 2022-1-21 \nBY:搞鸡玩家\n活动入口:京东 首页新品 魔方\n更新地址:jd_xmf.js\n已支持IOS双京东账号, Node.js支持N个京东账号\n脚本兼容: Quantu"
  },
  {
    "path": "activity/jd_mofang.ts",
    "chars": 10887,
    "preview": "/**\n * const $ = new Env('京东新品-集魔方兑换-接口版');\n * cron: 10 8 * * *\n * 默认魔方满3/6自动兑换\n */\n\nimport {requireConfig, wait, post, "
  },
  {
    "path": "activity/jd_mofang_ex.js",
    "chars": 21759,
    "preview": "\n/*\n京东小魔方--收集兑换\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\nby:小手冰凉 tg:@chianPLA\n========"
  },
  {
    "path": "activity/jd_mohe.js",
    "chars": 21976,
    "preview": "/*\n5G超级盲盒,可抽奖获得京豆,建议在凌晨0点时运行脚本,白天抽奖基本没有京豆,4小时运行一次收集热力值\n活动地址: https://blindbox5g.jd.com\n活动时间:2021年11月1日00:00:00-2022年1月28"
  },
  {
    "path": "activity/jd_mohe_help.js",
    "chars": 14253,
    "preview": "/*\n5G超级盲盒,可抽奖获得京豆,建议在凌晨0点时运行脚本,白天抽奖基本没有京豆,4小时运行一次收集热力值\n活动地址: https://blindbox5g.jd.com\n活动时间:2021年11月1日00:00:00-2022年1月28"
  },
  {
    "path": "activity/jd_moneyTree.js",
    "chars": 33209,
    "preview": "/*\n京东摇钱树 :jd_moneyTree.js\n更新时间:2021-4-23\n活动入口:京东APP我的-更多工具-摇钱树,[活动链接](https://uua.jr.jd.com/uc-fe-wxgrowing/moneytree/in"
  },
  {
    "path": "activity/jd_moneyTree_help.js",
    "chars": 20533,
    "preview": "/*\n*\n京东摇钱树助力\n活动入口:京东APP我的-更多工具-摇钱树,[活动链接](https://uua.jr.jd.com/uc-fe-wxgrowing/moneytree/index/?channel=yxhd)\n助力逻辑:优先账号"
  },
  {
    "path": "activity/jd_ms.js",
    "chars": 22003,
    "preview": "/*\n搞鸡玩家-秒秒币\nLast Modified time: 2022-1-21\n活动入口:京东 首页秒杀\n更新地址:jd_ms.js\n已支持IOS双京东账号, Node.js支持N个京东账号\n脚本兼容: QuantumultX, Sur"
  },
  {
    "path": "activity/jd_mx_shop.js",
    "chars": 29531,
    "preview": "/*\n明星小店\n更新时间:2021-09-10\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n============Quantumul"
  },
  {
    "path": "activity/jd_neight1.js",
    "chars": 11140,
    "preview": "//一次性\nconst $ = new Env('沸腾之夜开场红包');\nconst jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';\nconst notify = $.i"
  },
  {
    "path": "activity/jd_neight2.js",
    "chars": 11092,
    "preview": "//还有21 22 23点\nconst $ = new Env('沸腾之夜摇一摇');\nconst jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';\nconst notif"
  },
  {
    "path": "activity/jd_newTreasure.py",
    "chars": 33293,
    "preview": "# 发现新宝藏\n# 入口>   京东>12.0:/¥J5iAk3pzZUJgE4%,复制口令进入京东APP给我助力,一起瓜分1亿京豆!\n# 脚本功能为 完成全部任务,内部互助,抽奖\n# 已完成的任务会显示火爆,当然也可能你是黑号...\n# "
  },
  {
    "path": "activity/jd_nzmh.js",
    "chars": 16667,
    "preview": "/*\n女装盲盒\n活动入口:京东app-女装馆-赢京豆\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n============Quantu"
  },
  {
    "path": "activity/jd_opencardDPLHTY.js",
    "chars": 86117,
    "preview": "/*\n大牌联合通用开卡\n新增开卡脚本,一次性脚本\n\n2022.9.11 优化开卡火爆问题,加入重试\n\n通用大牌联合通用开卡:\n活动地址:https://jinggengjcq-isv.isvjcloud.com/xxxx/xxx/xxx\n\n"
  },
  {
    "path": "activity/jd_opencardty.js",
    "chars": 111265,
    "preview": "/*\n一次性脚本\ncron:30 2,16 21-31 5 *\n============Quantumultx===============\n[task_local]\n30 2,16 21-31 5 * jd_opencardty.js, "
  },
  {
    "path": "activity/jd_pigPet.js",
    "chars": 39474,
    "preview": "/*\n*\n京东金融养猪猪\n活动入口:京东金融养猪猪,\n加了个邀新助力,不过应该没啥用。邀请码变量:PIGPETSHARECODES,变量仅支持单账号邀请码\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: Quantumu"
  },
  {
    "path": "activity/jd_redPacket_help.js",
    "chars": 36581,
    "preview": "/*\n京东全民开红包\nLast Modified time: 2021-05-19 16:27:18\n活动入口:京东APP首页-领券-锦鲤红包。[活动地址](https://happy.m.jd.com/babelDiy/zjyw/3uge"
  },
  {
    "path": "activity/jd_sendBeans.js",
    "chars": 30740,
    "preview": "/*\n送豆得豆\n活动入口:来客有礼小程序\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n============Quantumultx="
  },
  {
    "path": "activity/jd_shop.js",
    "chars": 15187,
    "preview": "/*\n进店领豆,每天可拿四京豆\n活动入口:京东APP首页-领京豆-进店领豆\n更新时间:2020-11-03\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox,"
  },
  {
    "path": "activity/jd_shophelp.js",
    "chars": 141719,
    "preview": "/*\n店铺活动助力\n\n仅助力作者\n\n或者禁止助力变量:export NOHELP=\"false\"\n\ncron:33 16,20 11 11 *\n============Quantumultx===============\n[task_loc"
  },
  {
    "path": "activity/jd_sign.js",
    "chars": 1882,
    "preview": "//48 9,22 * * * jd_sign.js\n/*\n[task_local]\n京东签到\n48 9,22 * * * jd_sign.js, tag=京东签到, enabled=true\n================Loon==="
  },
  {
    "path": "activity/jd_sign_graphics.js",
    "chars": 84938,
    "preview": "/* \ncron 14 10 * * * https://raw.githubusercontent.com/smiek2121/scripts/master/jd_sign_graphics.js\n\n*/\n\n// const Faker="
  },
  {
    "path": "activity/jd_sjnhj.js",
    "chars": 12680,
    "preview": "/*\n手机年货节\n日常任务,10豆的样子,先到先得\ncron 10 0 1-30 1 * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_sjnhj.js\n* */\n"
  },
  {
    "path": "activity/jd_speed.js",
    "chars": 32065,
    "preview": "/*\n京东天天加速链接:jd_speed.js\n更新时间:2020-12-25\n活动入口:京东APP我的-更多工具-天天加速\n活动地址:https://h5.m.jd.com/babelDiy/Zeus/6yCQo2eDJPbyPXrC3e"
  },
  {
    "path": "activity/jd_superBrandSign.js",
    "chars": 19529,
    "preview": "/*\n特物Z\n抄自 @yangtingxiao 抽奖机脚本\n活动入口:\n更新地址:https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_superBrand.js\n已支"
  },
  {
    "path": "activity/jd_superBrandzd.js",
    "chars": 24787,
    "preview": "/**\n 特务Z,默认选择左边战队\n 脚本没有自动开卡,会尝试领取开卡奖励\n cron 23 1,14,20 * * * jd_superBrandzd.js\n */\nconst $ = new Env('特务Z');\nconst noti"
  },
  {
    "path": "activity/jd_superMarket.js",
    "chars": 68985,
    "preview": "/*\n东东超市\nLast Modified time: 2021-09-04 19:42:00\nModified By X1a0He\n活动入口:京东APP首页-京东超市-底部东东超市\nSome Functions Modified From"
  },
  {
    "path": "activity/jd_super_mh.js",
    "chars": 19347,
    "preview": "/*\n超级直播间盲盒抽京豆\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js\n==============Quantumult X===="
  },
  {
    "path": "activity/jd_sxLottery.js",
    "chars": 24102,
    "preview": "/*\n京东生鲜每日抽奖,可抽奖获得京豆,\n活动入口:京东生鲜每日抽奖\nby:小手冰凉\n交流群:https://t.me/jdPLA2\n脚本更新时间:2021-12-31\n脚本兼容: Node.js\n新手写脚本,难免有bug,能用且用。\n=="
  },
  {
    "path": "activity/jd_tiger_help.js",
    "chars": 8595,
    "preview": "/*\n萌虎摇摇乐\nhttps://yearfestival.jd.com\n优先内部互助,剩余次数助力作者\ncron 8 0,18 * * * jd_tiger_help.js\n转义自HW大佬\nconst $ = new Env('萌虎摇摇乐"
  },
  {
    "path": "activity/jd_travel.js",
    "chars": 318973,
    "preview": "/*\nTG https://t.me/aaron_scriptsG\n被内鬼偷给柠檬了,大家一起玩吧\n33 0,6-23/2 * * * jd_travel.js\n*/\nconst $ = new Env('炸年兽');\nconst noti"
  },
  {
    "path": "activity/jd_travel_help.js",
    "chars": 314406,
    "preview": "/*\nTG https://t.me/aaron_scriptsG\n被内鬼偷给柠檬了,大家一起玩吧\n2 0,18 * * * jd_travel.js\n*/\nconst $ = new Env('炸年兽互助');\nconst notify "
  },
  {
    "path": "activity/jd_unsubscribe.js",
    "chars": 30928,
    "preview": "/*\n * @Author: X1a0He\n * @Date: 2021-09-04 11:50:47\n * @LastEditTime: 2021-11-10 22:30:00\n * @LastEditors: X1a0He\n * @De"
  },
  {
    "path": "activity/jd_wq_wxsign.js",
    "chars": 14391,
    "preview": "/*\n微信签到领红包\nby:小手冰凉 tg:@chianPLA\n交流群:https://t.me/jdPLA2\n脚本更新时间:2022-01-01\n脚本兼容: Node.js\n新手写脚本,难免有bug,能用且用。\n============="
  },
  {
    "path": "activity/jd_wxCollectionActivity.js",
    "chars": 36465,
    "preview": "/*\nhttps://lzkj-isv.isvjcloud.com/wxgame/activity/8530275?activityId=\n\n作者:小埋\n不能并发\nJD_CART_REMOVESIZE || 20; // 运行一次取消多全部"
  },
  {
    "path": "activity/jd_wxShopFollowActivity.js",
    "chars": 30384,
    "preview": "/*\n作者:小埋\n活动链接:https://lzkj-isv.isvjcloud.com//activity/xxx?activityId=xxx\nSHOP_FOLLOW_ID // 活动ID 以逗号分隔\n*/\n\nconst $ = new"
  },
  {
    "path": "activity/jd_wyw.js",
    "chars": 12166,
    "preview": "/*\n\n\n[task_local]\n#玩一玩成就\n0 8 * * * jd_wyw.js, tag=玩一玩成就, img-url=https://raw.githubusercontent.com/tsukasa007/icon/maste"
  },
  {
    "path": "activity/jd_xgyl_wx.js",
    "chars": 19970,
    "preview": "/*\n小鸽有礼-京小哥助手(微信小程序)\n每天抽奖25豆\n活动入口:微信小程序-京小哥助手\n活动时间:2021年4月16日~2021年5月17日\n\n已支持IOS双京东账号, Node.js支持N个京东账号\n脚本兼容: QuantumultX"
  },
  {
    "path": "activity/jd_xinruimz.js",
    "chars": 30256,
    "preview": "if (![\"true\"].includes(process.env.JD_Xinruimz)) {\n    console.log(\"避免自动运行请设置环境变量JD_Xinruimz为\\\"true\\\"来运行本脚本\")\n    return"
  },
  {
    "path": "activity/jd_xp.js",
    "chars": 115788,
    "preview": "/*\n默认开卡、加购。\n\n小鹏5.18-5.21\n============Quantumultx===============\n[task_local]\n#小鹏5.18-5.21\n31 15 18-21 5 * jd_xp.js, tag="
  },
  {
    "path": "activity/jd_xqscjd.js",
    "chars": 29083,
    "preview": "/*\n写情书抽京豆\n更新时间:2021-12.12\n活动入口:写情书抽京豆\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n======"
  },
  {
    "path": "activity/jd_xtg.js",
    "chars": 20394,
    "preview": "/**\n 星推官\n cron 22 3,4 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_xtg.js\n * */\nconst $ = new Env("
  },
  {
    "path": "activity/jd_xyhy.js",
    "chars": 41053,
    "preview": "/*\n1.6-1.31 轩辕虎越,风生水起\n\n1.邀请一人获得抽奖机会\n2.签到\n3.关注\n4.加购\n5.抽奖\n\n第一个账号助力作者 其他依次助力CK1\n\ncron:30 17 6-31 1 *\n============Quantumult"
  },
  {
    "path": "activity/jd_year.js",
    "chars": 28531,
    "preview": "/**\n京东超市年货日历\ncron 36 4,16 * * * jd_year.js\nTG频道:https://t.me/sheeplost\n*/\nconst $ = new Env(\"京东超市年货日历\");\nconst jdCookieN"
  },
  {
    "path": "activity/jd_yijia.js",
    "chars": 36980,
    "preview": "/*\n一加 9RT新品发布\n\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/yijia/collectvalue/activity/5063373?activityId=dz2109100000194701"
  },
  {
    "path": "activity/jd_ys.js",
    "chars": 25886,
    "preview": "/*\n预售福利机\n\n助力逻辑:CK1 助力作者,其余账号助力CK1 CK1活动火爆按顺序顺延\n\n活动入口:https://prodev.m.jd.com/mall/active/3QvpPkepEuB5hRgtQvWJ2bjRTCA8/in"
  },
  {
    "path": "activity/jd_zbjmh.js",
    "chars": 16832,
    "preview": "/*\n直播间盲盒抽京豆\n活动地址:https://h5.m.jd.com/babelDiy/Zeus/3eeruLXVbXge6CexVq8XkBbBvAfy/index.html\n活动入口:京东app-女装馆-赢京豆\n已支持IOS双京东账"
  },
  {
    "path": "activity/jd_zjd.js",
    "chars": 195330,
    "preview": "/*\n赚京豆-瓜分京豆\n\n活动入口:赚京豆-瓜分京豆(微信小程序)-赚京豆-瓜分京豆-瓜分京豆\n\n能用多久不清楚,反正不偷CK不偷助力。造谣死妈。\n\n变量:export helpnum=\"5\" 车头数量  车头助力完成后后面账号之间互助。\n"
  },
  {
    "path": "activity/jd_zns_award.js",
    "chars": 14019,
    "preview": "\n/*\n炸年兽组队奖励领取\n12 12 12 12 * jd_zns_award.js\nupdatetime:2022/12/26\n */\n\nconst $ = new Env('炸年兽组队奖励领取');\nconst notify = $."
  },
  {
    "path": "activity/jd_zzt.js",
    "chars": 21361,
    "preview": "/*\n* 活动:潮玩儿制躁团\n* 入口:不知道\n* 说明:貌似没有加购,没有开卡,蚊子腿豆子,抽到啥看下日志(PS有概率能抽到融创门票)\ncron 23 11,12 * * * https://raw.githubusercontent.c"
  },
  {
    "path": "activity/jx_sign.js",
    "chars": 91115,
    "preview": "/*\n京喜签到\ncron 20 1,8 * * * jx_sign.js\n活动入口:京喜APP-我的-京喜签到\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSB"
  },
  {
    "path": "backUp/GetJdCookie.md",
    "chars": 917,
    "preview": "## 浏览器获取京东cookie教程\n\n **以下浏览器都行**\n\n - Chrome浏览器\n - 新版Edge浏览器\n - 国产360,QQ浏览器切换到极速模式\n\n### 操作步骤\n\n1. 电脑浏览器打开京东网址 [https://m.j"
  },
  {
    "path": "backUp/GetJdCookie2.md",
    "chars": 1263,
    "preview": "## 浏览器插件获取京东cookie教程\n > 此教程内容由tg用户@wukongdada提供,特此感谢\n\n **以下浏览器都行**\n\n - Chrome浏览器\n - 新版Edge浏览器(chrome内核)\n\n### 操作步骤\n\n1. 电脑"
  },
  {
    "path": "backUp/TG_PUSH.md",
    "chars": 607,
    "preview": "**TG_PUSH教程**\n\n利用Telegram机器人推送通知,需要在环境变量填入正确的```TG_BOT_TOKEN```以及```TG_USER_ID```,以下教程简明阐述如何获取token以及UserID\n\nⅠ.首先在Telegr"
  },
  {
    "path": "backUp/gitSync.md",
    "chars": 2914,
    "preview": "## 保持自己github的forks自动和上游仓库同步的教程\n - 信息来源于 [https://github.com/wei/pull](https://github.com/wei/pull)\n - 以下教程仅是出于个人爱好,不保证本"
  },
  {
    "path": "backUp/iCloud.md",
    "chars": 7708,
    "preview": "## 1.安装 Node.js 环境\n\n[下载地址](https://nodejs.org/zh-tw/download/ )\n\n根据自己的操作系统下载\n\n傻瓜式安装,一直下一步即可。\n\n\n\n## 2.下载源码\n\n![BclSld.png]"
  },
  {
    "path": "backUp/iOS_Weather_AQI_Standard.js",
    "chars": 12799,
    "preview": "// Developed by Hackl0us (https://github.com/hackl0us)\n\n// STEP 1: 前往 https://aqicn.org/data-platform/token/ 注册账户,将申请的 A"
  },
  {
    "path": "backUp/jdMsLogs.js",
    "chars": 2073,
    "preview": "let mslogs =[\n    {\n        \"random\": \"68158533\",\n        \"log\": \"1650387168548~1nxjKo8hcLaMDFCR2RCbjAxMQ==.c3FRcl16cFVw"
  },
  {
    "path": "backUp/jd_AJMH.js",
    "chars": 71903,
    "preview": "/*\n3.1-3.31 安佳做任务开盲盒,赢好礼\n\n\n做任务,邀请,抽奖\n\n\n请求太频繁会被黑ip\n过10分钟再执行\n\ncron:11 11 11 11 *\n============Quantumultx===============\n[t"
  },
  {
    "path": "backUp/jd_AJYX.js",
    "chars": 79036,
    "preview": "/*\n3.1-3.31 安佳 邀新有礼\n\n\n1.开1张卡\n2.已开卡的不算有效人数\n\n活动规则:\n邀请1人积分,邀请3人,邀请5人\n\n最多可以获取10次机会,最大化收入:50*10\n\n领取一次算一次机会,并扣除邀请人数,所以就不限制多少自动"
  },
  {
    "path": "backUp/jd_YSLD.js",
    "chars": 73433,
    "preview": "/*\n3.1-3.31 雅诗兰黛奢雅邀请入会有礼\n新增开卡脚本\n一次性脚本\n\n1.每邀请满3人一次抽奖机会\n2.上限10组 1组3人\n3.开1张卡\n4.已开卡的不算有效人数\n\n第一个账号助力作者 其他依次助力CK1\n第一个CK失效会退出脚本"
  },
  {
    "path": "backUp/jd_a2.js",
    "chars": 69396,
    "preview": "/*\n3.1-3.31 a2集成长值赢千元礼包\n\n任务本,邀请不清楚,抽奖概率豆子\n\n————————————————\n入口:[ 3.1-3.31 a2集成长值赢千元礼包 ]\n\n请求太频繁会被黑ip\n过10分钟再执行\n\ncron:11 11"
  },
  {
    "path": "backUp/jd_angryKoi_log.js",
    "chars": 29996,
    "preview": "/*\n愤怒的锦鲤\n更新时间:2022-04-13\n备注:高速并发请求,专治偷助力。在kois环境变量中填入需要助力的pt_pin,有多个请用@符号连接\n\n作者:LingFeng魔改版\n\n需要安装依赖:\npnpm install -g glo"
  },
  {
    "path": "backUp/jd_bean_sign.js",
    "chars": 16159,
    "preview": "/*\n京东多合一签到,自用,可N个京东账号\n活动入口:各处的签到汇总\n更新时间:2021-6-18\n\ncron \"0 7 * * *\" script-path= jd_bean_sign.js,tag= 京东多合一签到\n */\n\nconst"
  },
  {
    "path": "backUp/jd_beauty_ex.js",
    "chars": 21984,
    "preview": "/*\n美丽研究院--兑换\n更新时间:2021-06-08\n活动入口:京东app首页-美妆馆-底部中间按钮\n只支持Node.js支持N个京东账号\n脚本兼容: Node.js\ncron 1 7,12,19 * * * jd_beauty_ex."
  },
  {
    "path": "backUp/jd_cash_panda.js",
    "chars": 25197,
    "preview": "/*\n签到领现金,每日2毛~5毛\n可互助,助力码每日不变,只变日期\n活动入口:京东APP搜索领现金进入\n更新时间:2021-06-07\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge"
  },
  {
    "path": "backUp/jd_cash_windfg.js",
    "chars": 32547,
    "preview": "/**\n * 签到领现金_Windfgg,每日2毛~5毛\n * 定时随机,避免大量访问导致接口错误\n * \n * 无助力活动 助力码无用\n * 活动入口:京东APP搜索领现金进入\n * 满30提现 目前有3、8、15、30的红包\n */\n "
  },
  {
    "path": "backUp/jd_cfd.js",
    "chars": 109074,
    "preview": "/*\n京喜财富岛\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n"
  },
  {
    "path": "backUp/jd_cfd_loop.js",
    "chars": 90974,
    "preview": "/*\n京喜财富岛热气球\ncron 30 0-23/3 * * * jd_cfd_loop.js\n活动入口:京喜APP-我的-京喜财富岛\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge"
  },
  {
    "path": "backUp/jd_cfd_mooncake.js",
    "chars": 106821,
    "preview": "/*\n京喜财富岛合成珍珠\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node"
  },
  {
    "path": "backUp/jd_cfd_mooncake_help.js",
    "chars": 106882,
    "preview": "/*\n京喜财富岛合成珍珠互助\ncron 20 0 * * * jd_cfd_mooncake.js\n更新时间:2021-9-11\n活动入口:京喜APP-我的-京喜财富岛\n\n已支持IOS双京东账号,Node.js支持N个京东账号\n脚本兼容: "
  },
  {
    "path": "backUp/jd_computer.js",
    "chars": 27628,
    "preview": "/*\n#电脑配件ID任务jd_computer,自行加入以下环境变量,多个ID用@连接\nexport computer_activityIdList=\"17\"  \n\n即时任务,无需cron\n*/\n\nconst $ = new Env('电脑"
  },
  {
    "path": "backUp/jd_dpqd.js",
    "chars": 21638,
    "preview": "/*\n店铺签到,各类店铺签到,有新的店铺直接添加token即可\n============Quantumultx===============\n[task_local]\n#店铺签到\n15 2,14 * * * https://raw.gith"
  },
  {
    "path": "backUp/jd_dreamFactory.js",
    "chars": 118039,
    "preview": "/*\n京东京喜工厂\n更新时间:2021-8-20\n修复做任务、收集电力出现火爆,不能完成任务,重新计算h5st验证\n参考自 :https://www.orzlee.com/web-development/2021/03/03/lxk0301"
  },
  {
    "path": "backUp/jd_dreamFactory_help.js",
    "chars": 93045,
    "preview": "/*\n京喜工厂招工互助\n更新时间:2021-8-20\n修复做任务、收集电力出现火爆,不能完成任务,重新计算h5st验证\n参考自 :https://www.orzlee.com/web-development/2021/03/03/lxk03"
  },
  {
    "path": "backUp/jd_dreamFactory_tuan.js",
    "chars": 105286,
    "preview": "/*\n京东京喜工厂\n更新时间:2021-8-20\n修复做任务、收集电力出现火爆,不能完成任务,重新计算h5st验证\n参考自 :https://www.orzlee.com/web-development/2021/03/03/lxk0301"
  },
  {
    "path": "backUp/jd_fc.js",
    "chars": 14648,
    "preview": "/*\n#发财大赢家\n#自定义邀请码环境变量\nexport redEnvelopeId=\"\" ##本期活动ID\nexport inviter=\"\" ##邀请码\n[task_local]\n#发财大赢家\n============Quantumul"
  },
  {
    "path": "backUp/jd_finance.js",
    "chars": 17027,
    "preview": "/*\n京东金融 每周领取权益活动\n活动入口:京东金融APP首页-会员中心-生活特权\n目前已知领取一次 ,其他的未知。\nby:小手冰凉 tg:@chianPLA\n交流群:https://t.me/jdPLA2\n脚本更新时间:2021-12-6"
  },
  {
    "path": "backUp/jd_fruit.js",
    "chars": 78535,
    "preview": "/*\n东东水果:脚本更新地址 jd_fruit.js\n更新时间:2021-5-18\n活动入口:京东APP我的-更多工具-东东农场\n东东农场活动链接:https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTu"
  },
  {
    "path": "backUp/jd_getFollowGift.py",
    "chars": 21421,
    "preview": "#!/bin/env python3\n# -*- coding: utf-8 -*\n'''\n项目名称: JD-Script / jd_getFollowGift \nAuthor: Curtin\n功能:\nDate: 2021/6/6 上午7:"
  },
  {
    "path": "backUp/jd_gold_sign_log.js",
    "chars": 19911,
    "preview": "/*\n京东金榜\n活动入口:https://h5.m.jd.com/babelDiy/Zeus/2H5Ng86mUJLXToEo57qWkJkjFPxw/index.html\nby:小手冰凉 tg:@chianPLA\n脚本更新时间:2021-"
  },
  {
    "path": "backUp/jd_gua_cleancart_Windfgg.js",
    "chars": 19081,
    "preview": "/*\n清空购物车_Windfgg接口专用版\n更新时间:2021-10-27\n因其他脚本会加入商品到购物车,故此脚本用来清空购物车\n包括预售\n需要算法支持\n默认:不执行 如需要请添加环境变量\nexport WindfggToken=\"\" # "
  },
  {
    "path": "backUp/jd_health.js",
    "chars": 21982,
    "preview": "/*\n东东健康社区\n更新时间:2021-4-22\n活动入口:京东APP首页搜索 \"玩一玩\"即可\n\n脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js\n===================quant"
  },
  {
    "path": "backUp/jd_homeRain.js",
    "chars": 15495,
    "preview": "\n/*\n一次性,主页红包雨\ncron:29 20 * * *\n============Quantumultx===============\n[task_local]\n#整点红包雨\n29 20 * * * jd_homeRain.js, ta"
  },
  {
    "path": "backUp/jd_jdfactory.js",
    "chars": 41028,
    "preview": "/*\n东东工厂,不是京喜工厂\n活动入口:京东APP首页-数码电器-东东工厂\n免费产生的电量(10秒1个电量,500个电量满,5000秒到上限不生产,算起来是84分钟达到上限)\n故建议1小时运行一次\n开会员任务和去京东首页点击“数码电器任务目"
  }
]

// ... and 505 more files (download for full content)

About this extraction

This page contains the full source code of the gys619/jdd GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 705 files (45.9 MB), approximately 12.1M tokens, and a symbol index with 13896 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!