-
Notifications
You must be signed in to change notification settings - Fork 59
/
jd_dreamFactory.js
1732 lines (1707 loc) · 146 KB
/
jd_dreamFactory.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
京东京喜工厂
更新时间:2021-6-25
修复做任务、收集电力出现火爆,不能完成任务,重新计算h5st验证
参考自 :https://www.orzlee.com/web-development/2021/03/03/lxk0301-jingdong-signin-scriptjingxi-factory-solves-the-problem-of-unable-to-signin.html
活动入口:京东APP-游戏与互动-查看更多-京喜工厂
或者: 京东APP首页搜索 "玩一玩" ,造物工厂即可
已支持IOS双京东账号,Node.js支持N个京东账号
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
============Quantumultx===============
[task_local]
#京喜工厂
10 * * * * jd_dreamFactory.js, tag=京喜工厂, img-url=https://github.com/58xinian/icon/raw/master/jdgc.png, enabled=true
================Loon==============
[Script]
cron "10 * * * *" script-path=jd_dreamFactory.js,tag=京喜工厂
===============Surge=================
京喜工厂 = type=cron,cronexp="10 * * * *",wake-system=1,timeout=3600,script-path=jd_dreamFactory.js
============小火箭=========
京喜工厂 = type=cron,script-path=jd_dreamFactory.js, cronexpr="10 * * * *", timeout=3600, enable=true
*/
// prettier-ignore
!function ( t, r ) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define( [], r ) : t.CryptoJS = r() }( this, function () {
var t = t || function ( t, r ) { var e = Object.create || function () { function t () { } return function ( r ) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function ( t ) { var r = e( this ); return t && r.mixIn( t ), r.hasOwnProperty( "init" ) && this.init !== r.init || ( r.init = function () { r.$super.init.apply( this, arguments ) } ), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply( t, arguments ), t }, init: function () { }, mixIn: function ( t ) { for ( var r in t ) t.hasOwnProperty( r ) && ( this[ r ] = t[ r ] ); t.hasOwnProperty( "toString" ) && ( this.toString = t.toString ) }, clone: function () { return this.init.prototype.extend( this ) } } }(), s = n.WordArray = o.extend( { init: function ( t, e ) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function ( t ) { return ( t || c ).stringify( this ) }, concat: function ( t ) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if ( this.clamp(), i % 4 ) for ( var o = 0; o < n; o++ ) { var s = e[ o >>> 2 ] >>> 24 - o % 4 * 8 & 255; r[ i + o >>> 2 ] |= s << 24 - ( i + o ) % 4 * 8 } else for ( var o = 0; o < n; o += 4 )r[ i + o >>> 2 ] = e[ o >>> 2 ]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[ e >>> 2 ] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil( e / 4 ) }, clone: function () { var t = o.clone.call( this ); return t.words = this.words.slice( 0 ), t }, random: function ( r ) { for ( var e, i = [], n = function ( r ) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * ( 65535 & e ) + ( e >> 16 ) & i, r = 18e3 * ( 65535 & r ) + ( r >> 16 ) & i; var n = ( e << 16 ) + r & i; return n /= 4294967296, n += .5, n * ( t.random() > .5 ? 1 : -1 ) } }, o = 0; o < r; o += 4 ) { var a = n( 4294967296 * ( e || t.random() ) ); e = 987654071 * a(), i.push( 4294967296 * a() | 0 ) } return new s.init( i, r ) } } ), a = i.enc = {}, c = a.Hex = { stringify: function ( t ) { for ( var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++ ) { var o = r[ n >>> 2 ] >>> 24 - n % 4 * 8 & 255; i.push( ( o >>> 4 ).toString( 16 ) ), i.push( ( 15 & o ).toString( 16 ) ) } return i.join( "" ) }, parse: function ( t ) { for ( var r = t.length, e = [], i = 0; i < r; i += 2 )e[ i >>> 3 ] |= parseInt( t.substr( i, 2 ), 16 ) << 24 - i % 8 * 4; return new s.init( e, r / 2 ) } }, h = a.Latin1 = { stringify: function ( t ) { for ( var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++ ) { var o = r[ n >>> 2 ] >>> 24 - n % 4 * 8 & 255; i.push( String.fromCharCode( o ) ) } return i.join( "" ) }, parse: function ( t ) { for ( var r = t.length, e = [], i = 0; i < r; i++ )e[ i >>> 2 ] |= ( 255 & t.charCodeAt( i ) ) << 24 - i % 4 * 8; return new s.init( e, r ) } }, l = a.Utf8 = { stringify: function ( t ) { try { return decodeURIComponent( escape( h.stringify( t ) ) ) } catch ( t ) { throw new Error( "Malformed UTF-8 data" ) } }, parse: function ( t ) { return h.parse( unescape( encodeURIComponent( t ) ) ) } }, f = n.BufferedBlockAlgorithm = o.extend( { reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function ( t ) { "string" == typeof t && ( t = l.parse( t ) ), this._data.concat( t ), this._nDataBytes += t.sigBytes }, _process: function ( r ) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil( c ) : t.max( ( 0 | c ) - this._minBufferSize, 0 ); var h = c * o, l = t.min( 4 * h, n ); if ( h ) { for ( var f = 0; f < h; f += o )this._doProcessBlock( i, f ); var u = i.splice( 0, h ); e.sigBytes -= l } return new s.init( u, l ) }, clone: function () { var t = o.clone.call( this ); return t._data = this._data.clone(), t }, _minBufferSize: 0 } ), u = ( n.Hasher = f.extend( { cfg: o.extend(), init: function ( t ) { this.cfg = this.cfg.extend( t ), this.reset() }, reset: function () { f.reset.call( this ), this._doReset() }, update: function ( t ) { return this._append( t ), this._process(), this }, finalize: function ( t ) { t && this._append( t ); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function ( t ) { return function ( r, e ) { return new t.init( e ).finalize( r ) } }, _createHmacHelper: function ( t ) { return function ( r, e ) { return new u.HMAC.init( t, e ).finalize( r ) } } } ), i.algo = {} ); return i }( Math ); return function () { function r ( t, r, e ) { for ( var i = [], o = 0, s = 0; s < r; s++ )if ( s % 4 ) { var a = e[ t.charCodeAt( s - 1 ) ] << s % 4 * 2, c = e[ t.charCodeAt( s ) ] >>> 6 - s % 4 * 2; i[ o >>> 2 ] |= ( a | c ) << 24 - o % 4 * 8, o++ } return n.create( i, o ) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function ( t ) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for ( var n = [], o = 0; o < e; o += 3 )for ( var s = r[ o >>> 2 ] >>> 24 - o % 4 * 8 & 255, a = r[ o + 1 >>> 2 ] >>> 24 - ( o + 1 ) % 4 * 8 & 255, c = r[ o + 2 >>> 2 ] >>> 24 - ( o + 2 ) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++ )n.push( i.charAt( h >>> 6 * ( 3 - l ) & 63 ) ); var f = i.charAt( 64 ); if ( f ) for ( ; n.length % 4; )n.push( f ); return n.join( "" ) }, parse: function ( t ) { var e = t.length, i = this._map, n = this._reverseMap; if ( !n ) { n = this._reverseMap = []; for ( var o = 0; o < i.length; o++ )n[ i.charCodeAt( o ) ] = o } var s = i.charAt( 64 ); if ( s ) { var a = t.indexOf( s ); a !== -1 && ( e = a ) } return r( t, e, n ) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function ( r ) { function e ( t, r, e, i, n, o, s ) { var a = t + ( r & e | ~r & i ) + n + s; return ( a << o | a >>> 32 - o ) + r } function i ( t, r, e, i, n, o, s ) { var a = t + ( r & i | e & ~i ) + n + s; return ( a << o | a >>> 32 - o ) + r } function n ( t, r, e, i, n, o, s ) { var a = t + ( r ^ e ^ i ) + n + s; return ( a << o | a >>> 32 - o ) + r } function o ( t, r, e, i, n, o, s ) { var a = t + ( e ^ ( r | ~i ) ) + n + s; return ( a << o | a >>> 32 - o ) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for ( var t = 0; t < 64; t++ )f[ t ] = 4294967296 * r.abs( r.sin( t + 1 ) ) | 0 }(); var u = l.MD5 = h.extend( { _doReset: function () { this._hash = new c.init( [ 1732584193, 4023233417, 2562383102, 271733878 ] ) }, _doProcessBlock: function ( t, r ) { for ( var s = 0; s < 16; s++ ) { var a = r + s, c = t[ a ]; t[ a ] = 16711935 & ( c << 8 | c >>> 24 ) | 4278255360 & ( c << 24 | c >>> 8 ) } var h = this._hash.words, l = t[ r + 0 ], u = t[ r + 1 ], d = t[ r + 2 ], v = t[ r + 3 ], p = t[ r + 4 ], _ = t[ r + 5 ], y = t[ r + 6 ], g = t[ r + 7 ], B = t[ r + 8 ], w = t[ r + 9 ], k = t[ r + 10 ], S = t[ r + 11 ], m = t[ r + 12 ], x = t[ r + 13 ], b = t[ r + 14 ], H = t[ r + 15 ], z = h[ 0 ], A = h[ 1 ], C = h[ 2 ], D = h[ 3 ]; z = e( z, A, C, D, l, 7, f[ 0 ] ), D = e( D, z, A, C, u, 12, f[ 1 ] ), C = e( C, D, z, A, d, 17, f[ 2 ] ), A = e( A, C, D, z, v, 22, f[ 3 ] ), z = e( z, A, C, D, p, 7, f[ 4 ] ), D = e( D, z, A, C, _, 12, f[ 5 ] ), C = e( C, D, z, A, y, 17, f[ 6 ] ), A = e( A, C, D, z, g, 22, f[ 7 ] ), z = e( z, A, C, D, B, 7, f[ 8 ] ), D = e( D, z, A, C, w, 12, f[ 9 ] ), C = e( C, D, z, A, k, 17, f[ 10 ] ), A = e( A, C, D, z, S, 22, f[ 11 ] ), z = e( z, A, C, D, m, 7, f[ 12 ] ), D = e( D, z, A, C, x, 12, f[ 13 ] ), C = e( C, D, z, A, b, 17, f[ 14 ] ), A = e( A, C, D, z, H, 22, f[ 15 ] ), z = i( z, A, C, D, u, 5, f[ 16 ] ), D = i( D, z, A, C, y, 9, f[ 17 ] ), C = i( C, D, z, A, S, 14, f[ 18 ] ), A = i( A, C, D, z, l, 20, f[ 19 ] ), z = i( z, A, C, D, _, 5, f[ 20 ] ), D = i( D, z, A, C, k, 9, f[ 21 ] ), C = i( C, D, z, A, H, 14, f[ 22 ] ), A = i( A, C, D, z, p, 20, f[ 23 ] ), z = i( z, A, C, D, w, 5, f[ 24 ] ), D = i( D, z, A, C, b, 9, f[ 25 ] ), C = i( C, D, z, A, v, 14, f[ 26 ] ), A = i( A, C, D, z, B, 20, f[ 27 ] ), z = i( z, A, C, D, x, 5, f[ 28 ] ), D = i( D, z, A, C, d, 9, f[ 29 ] ), C = i( C, D, z, A, g, 14, f[ 30 ] ), A = i( A, C, D, z, m, 20, f[ 31 ] ), z = n( z, A, C, D, _, 4, f[ 32 ] ), D = n( D, z, A, C, B, 11, f[ 33 ] ), C = n( C, D, z, A, S, 16, f[ 34 ] ), A = n( A, C, D, z, b, 23, f[ 35 ] ), z = n( z, A, C, D, u, 4, f[ 36 ] ), D = n( D, z, A, C, p, 11, f[ 37 ] ), C = n( C, D, z, A, g, 16, f[ 38 ] ), A = n( A, C, D, z, k, 23, f[ 39 ] ), z = n( z, A, C, D, x, 4, f[ 40 ] ), D = n( D, z, A, C, l, 11, f[ 41 ] ), C = n( C, D, z, A, v, 16, f[ 42 ] ), A = n( A, C, D, z, y, 23, f[ 43 ] ), z = n( z, A, C, D, w, 4, f[ 44 ] ), D = n( D, z, A, C, m, 11, f[ 45 ] ), C = n( C, D, z, A, H, 16, f[ 46 ] ), A = n( A, C, D, z, d, 23, f[ 47 ] ), z = o( z, A, C, D, l, 6, f[ 48 ] ), D = o( D, z, A, C, g, 10, f[ 49 ] ), C = o( C, D, z, A, b, 15, f[ 50 ] ), A = o( A, C, D, z, _, 21, f[ 51 ] ), z = o( z, A, C, D, m, 6, f[ 52 ] ), D = o( D, z, A, C, v, 10, f[ 53 ] ), C = o( C, D, z, A, k, 15, f[ 54 ] ), A = o( A, C, D, z, u, 21, f[ 55 ] ), z = o( z, A, C, D, B, 6, f[ 56 ] ), D = o( D, z, A, C, H, 10, f[ 57 ] ), C = o( C, D, z, A, y, 15, f[ 58 ] ), A = o( A, C, D, z, x, 21, f[ 59 ] ), z = o( z, A, C, D, p, 6, f[ 60 ] ), D = o( D, z, A, C, S, 10, f[ 61 ] ), C = o( C, D, z, A, d, 15, f[ 62 ] ), A = o( A, C, D, z, w, 21, f[ 63 ] ), h[ 0 ] = h[ 0 ] + z | 0, h[ 1 ] = h[ 1 ] + A | 0, h[ 2 ] = h[ 2 ] + C | 0, h[ 3 ] = h[ 3 ] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[ n >>> 5 ] |= 128 << 24 - n % 32; var o = r.floor( i / 4294967296 ), s = i; e[ ( n + 64 >>> 9 << 4 ) + 15 ] = 16711935 & ( o << 8 | o >>> 24 ) | 4278255360 & ( o << 24 | o >>> 8 ), e[ ( n + 64 >>> 9 << 4 ) + 14 ] = 16711935 & ( s << 8 | s >>> 24 ) | 4278255360 & ( s << 24 | s >>> 8 ), t.sigBytes = 4 * ( e.length + 1 ), this._process(); for ( var a = this._hash, c = a.words, h = 0; h < 4; h++ ) { var l = c[ h ]; c[ h ] = 16711935 & ( l << 8 | l >>> 24 ) | 4278255360 & ( l << 24 | l >>> 8 ) } return a }, clone: function () { var t = h.clone.call( this ); return t._hash = this._hash.clone(), t } } ); s.MD5 = h._createHelper( u ), s.HmacMD5 = h._createHmacHelper( u ) }( Math ), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend( { _doReset: function () { this._hash = new i.init( [ 1732584193, 4023233417, 2562383102, 271733878, 3285377520 ] ) }, _doProcessBlock: function ( t, r ) { for ( var e = this._hash.words, i = e[ 0 ], n = e[ 1 ], o = e[ 2 ], a = e[ 3 ], c = e[ 4 ], h = 0; h < 80; h++ ) { if ( h < 16 ) s[ h ] = 0 | t[ r + h ]; else { var l = s[ h - 3 ] ^ s[ h - 8 ] ^ s[ h - 14 ] ^ s[ h - 16 ]; s[ h ] = l << 1 | l >>> 31 } var f = ( i << 5 | i >>> 27 ) + c + s[ h ]; f += h < 20 ? ( n & o | ~n & a ) + 1518500249 : h < 40 ? ( n ^ o ^ a ) + 1859775393 : h < 60 ? ( n & o | n & a | o & a ) - 1894007588 : ( n ^ o ^ a ) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[ 0 ] = e[ 0 ] + i | 0, e[ 1 ] = e[ 1 ] + n | 0, e[ 2 ] = e[ 2 ] + o | 0, e[ 3 ] = e[ 3 ] + a | 0, e[ 4 ] = e[ 4 ] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[ i >>> 5 ] |= 128 << 24 - i % 32, r[ ( i + 64 >>> 9 << 4 ) + 14 ] = Math.floor( e / 4294967296 ), r[ ( i + 64 >>> 9 << 4 ) + 15 ] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call( this ); return t._hash = this._hash.clone(), t } } ); r.SHA1 = n._createHelper( a ), r.HmacSHA1 = n._createHmacHelper( a ) }(), function ( r ) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t ( t ) { for ( var e = r.sqrt( t ), i = 2; i <= e; i++ )if ( !( t % i ) ) return !1; return !0 } function e ( t ) { return 4294967296 * ( t - ( 0 | t ) ) | 0 } for ( var i = 2, n = 0; n < 64; )t( i ) && ( n < 8 && ( a[ n ] = e( r.pow( i, .5 ) ) ), c[ n ] = e( r.pow( i, 1 / 3 ) ), n++ ), i++ }(); var h = [], l = s.SHA256 = o.extend( { _doReset: function () { this._hash = new n.init( a.slice( 0 ) ) }, _doProcessBlock: function ( t, r ) { for ( var e = this._hash.words, i = e[ 0 ], n = e[ 1 ], o = e[ 2 ], s = e[ 3 ], a = e[ 4 ], l = e[ 5 ], f = e[ 6 ], u = e[ 7 ], d = 0; d < 64; d++ ) { if ( d < 16 ) h[ d ] = 0 | t[ r + d ]; else { var v = h[ d - 15 ], p = ( v << 25 | v >>> 7 ) ^ ( v << 14 | v >>> 18 ) ^ v >>> 3, _ = h[ d - 2 ], y = ( _ << 15 | _ >>> 17 ) ^ ( _ << 13 | _ >>> 19 ) ^ _ >>> 10; h[ d ] = p + h[ d - 7 ] + y + h[ d - 16 ] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = ( i << 30 | i >>> 2 ) ^ ( i << 19 | i >>> 13 ) ^ ( i << 10 | i >>> 22 ), k = ( a << 26 | a >>> 6 ) ^ ( a << 21 | a >>> 11 ) ^ ( a << 7 | a >>> 25 ), S = u + k + g + c[ d ] + h[ d ], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[ 0 ] = e[ 0 ] + i | 0, e[ 1 ] = e[ 1 ] + n | 0, e[ 2 ] = e[ 2 ] + o | 0, e[ 3 ] = e[ 3 ] + s | 0, e[ 4 ] = e[ 4 ] + a | 0, e[ 5 ] = e[ 5 ] + l | 0, e[ 6 ] = e[ 6 ] + f | 0, e[ 7 ] = e[ 7 ] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[ n >>> 5 ] |= 128 << 24 - n % 32, e[ ( n + 64 >>> 9 << 4 ) + 14 ] = r.floor( i / 4294967296 ), e[ ( n + 64 >>> 9 << 4 ) + 15 ] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call( this ); return t._hash = this._hash.clone(), t } } ); e.SHA256 = o._createHelper( l ), e.HmacSHA256 = o._createHmacHelper( l ) }( Math ), function () { function r ( t ) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function ( t ) { for ( var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2 ) { var o = r[ n >>> 2 ] >>> 16 - n % 4 * 8 & 65535; i.push( String.fromCharCode( o ) ) } return i.join( "" ) }, parse: function ( t ) { for ( var r = t.length, e = [], i = 0; i < r; i++ )e[ i >>> 1 ] |= t.charCodeAt( i ) << 16 - i % 2 * 16; return n.create( e, 2 * r ) } }; o.Utf16LE = { stringify: function ( t ) { for ( var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2 ) { var s = r( e[ o >>> 2 ] >>> 16 - o % 4 * 8 & 65535 ); n.push( String.fromCharCode( s ) ) } return n.join( "" ) }, parse: function ( t ) { for ( var e = t.length, i = [], o = 0; o < e; o++ )i[ o >>> 1 ] |= r( t.charCodeAt( o ) << 16 - o % 2 * 16 ); return n.create( i, 2 * e ) } } }(), function () { if ( "function" == typeof ArrayBuffer ) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function ( t ) { if ( t instanceof ArrayBuffer && ( t = new Uint8Array( t ) ), ( t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array ) && ( t = new Uint8Array( t.buffer, t.byteOffset, t.byteLength ) ), t instanceof Uint8Array ) { for ( var r = t.byteLength, e = [], i = 0; i < r; i++ )e[ i >>> 2 ] |= t[ i ] << 24 - i % 4 * 8; n.call( this, e, r ) } else n.apply( this, arguments ) }; o.prototype = i } }(), function ( r ) { function e ( t, r, e ) { return t ^ r ^ e } function i ( t, r, e ) { return t & r | ~t & e } function n ( t, r, e ) { return ( t | ~r ) ^ e } function o ( t, r, e ) { return t & e | r & ~e } function s ( t, r, e ) { return t ^ ( r | ~e ) } function a ( t, r ) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 ] ), v = l.create( [ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 ] ), p = l.create( [ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ] ), _ = l.create( [ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ] ), y = l.create( [ 0, 1518500249, 1859775393, 2400959708, 2840853838 ] ), g = l.create( [ 1352829926, 1548603684, 1836072691, 2053994217, 0 ] ), B = u.RIPEMD160 = f.extend( { _doReset: function () { this._hash = l.create( [ 1732584193, 4023233417, 2562383102, 271733878, 3285377520 ] ) }, _doProcessBlock: function ( t, r ) { for ( var c = 0; c < 16; c++ ) { var h = r + c, l = t[ h ]; t[ h ] = 16711935 & ( l << 8 | l >>> 24 ) | 4278255360 & ( l << 24 | l >>> 8 ) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[ 0 ], m = u = z[ 1 ], x = B = z[ 2 ], b = w = z[ 3 ], H = k = z[ 4 ]; for ( var F, c = 0; c < 80; c += 1 )F = f + t[ r + D[ c ] ] | 0, F += c < 16 ? e( u, B, w ) + A[ 0 ] : c < 32 ? i( u, B, w ) + A[ 1 ] : c < 48 ? n( u, B, w ) + A[ 2 ] : c < 64 ? o( u, B, w ) + A[ 3 ] : s( u, B, w ) + A[ 4 ], F |= 0, F = a( F, E[ c ] ), F = F + k | 0, f = k, k = w, w = a( B, 10 ), B = u, u = F, F = S + t[ r + R[ c ] ] | 0, F += c < 16 ? s( m, x, b ) + C[ 0 ] : c < 32 ? o( m, x, b ) + C[ 1 ] : c < 48 ? n( m, x, b ) + C[ 2 ] : c < 64 ? i( m, x, b ) + C[ 3 ] : e( m, x, b ) + C[ 4 ], F |= 0, F = a( F, M[ c ] ), F = F + H | 0, S = H, H = b, b = a( x, 10 ), x = m, m = F; F = z[ 1 ] + B + b | 0, z[ 1 ] = z[ 2 ] + w + H | 0, z[ 2 ] = z[ 3 ] + k + S | 0, z[ 3 ] = z[ 4 ] + f + m | 0, z[ 4 ] = z[ 0 ] + u + x | 0, z[ 0 ] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[ i >>> 5 ] |= 128 << 24 - i % 32, r[ ( i + 64 >>> 9 << 4 ) + 14 ] = 16711935 & ( e << 8 | e >>> 24 ) | 4278255360 & ( e << 24 | e >>> 8 ), t.sigBytes = 4 * ( r.length + 1 ), this._process(); for ( var n = this._hash, o = n.words, s = 0; s < 5; s++ ) { var a = o[ s ]; o[ s ] = 16711935 & ( a << 8 | a >>> 24 ) | 4278255360 & ( a << 24 | a >>> 8 ) } return n }, clone: function () { var t = f.clone.call( this ); return t._hash = this._hash.clone(), t } } ); c.RIPEMD160 = f._createHelper( B ), c.HmacRIPEMD160 = f._createHmacHelper( B ) }( Math ), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend( { init: function ( t, r ) { t = this._hasher = new t.init, "string" == typeof r && ( r = o.parse( r ) ); var e = t.blockSize, i = 4 * e; r.sigBytes > i && ( r = t.finalize( r ) ), r.clamp(); for ( var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++ )a[ h ] ^= 1549556828, c[ h ] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update( this._iKey ) }, update: function ( t ) { return this._hasher.update( t ), this }, finalize: function ( t ) { var r = this._hasher, e = r.finalize( t ); r.reset(); var i = r.finalize( this._oKey.clone().concat( e ) ); return i } } ) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend( { cfg: i.extend( { keySize: 4, hasher: s, iterations: 1 } ), init: function ( t ) { this.cfg = this.cfg.extend( t ) }, compute: function ( t, r ) { for ( var e = this.cfg, i = a.create( e.hasher, t ), o = n.create(), s = n.create( [ 1 ] ), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l; ) { var u = i.update( r ).finalize( s ); i.reset(); for ( var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++ ) { p = i.finalize( p ), i.reset(); for ( var y = p.words, g = 0; g < v; g++ )d[ g ] ^= y[ g ] } o.concat( u ), h[ 0 ]++ } return o.sigBytes = 4 * l, o } } ); r.PBKDF2 = function ( t, r, e ) { return c.create( e ).compute( t, r ) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend( { cfg: i.extend( { keySize: 4, hasher: s, iterations: 1 } ), init: function ( t ) { this.cfg = this.cfg.extend( t ) }, compute: function ( t, r ) { for ( var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a; ) { h && i.update( h ); var h = i.update( t ).finalize( r ); i.reset(); for ( var l = 1; l < c; l++ )h = i.finalize( h ), i.reset(); o.concat( h ) } return o.sigBytes = 4 * a, o } } ); r.EvpKDF = function ( t, r, e ) { return a.create( e ).compute( t, r ) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend( { _doReset: function () { this._hash = new i.init( [ 3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428 ] ) }, _doFinalize: function () { var t = o._doFinalize.call( this ); return t.sigBytes -= 4, t } } ); r.SHA224 = o._createHelper( s ), r.HmacSHA224 = o._createHmacHelper( s ) }(), function ( r ) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend( { init: function ( t, r ) { this.high = t, this.low = r } } ), s.WordArray = n.extend( { init: function ( t, e ) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for ( var t = this.words, r = t.length, e = [], i = 0; i < r; i++ ) { var n = t[ i ]; e.push( n.high ), e.push( n.low ) } return o.create( e, this.sigBytes ) }, clone: function () { for ( var t = n.clone.call( this ), r = t.words = this.words.slice( 0 ), e = r.length, i = 0; i < e; i++ )r[ i ] = r[ i ].clone(); return t } } ) }(), function ( r ) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for ( var t = 1, r = 0, e = 0; e < 24; e++ ) { h[ t + 5 * r ] = ( e + 1 ) * ( e + 2 ) / 2 % 64; var i = r % 5, n = ( 2 * t + 3 * r ) % 5; t = i, r = n } for ( var t = 0; t < 5; t++ )for ( var r = 0; r < 5; r++ )l[ t + 5 * r ] = r + ( 2 * t + 3 * r ) % 5 * 5; for ( var o = 1, s = 0; s < 24; s++ ) { for ( var c = 0, u = 0, d = 0; d < 7; d++ ) { if ( 1 & o ) { var v = ( 1 << d ) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[ s ] = a.create( c, u ) } }(); var u = []; !function () { for ( var t = 0; t < 25; t++ )u[ t ] = a.create() }(); var d = c.SHA3 = o.extend( { cfg: o.cfg.extend( { outputLength: 512 } ), _doReset: function () { for ( var t = this._state = [], r = 0; r < 25; r++ )t[ r ] = new a.init; this.blockSize = ( 1600 - 2 * this.cfg.outputLength ) / 32 }, _doProcessBlock: function ( t, r ) { for ( var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++ ) { var o = t[ r + 2 * n ], s = t[ r + 2 * n + 1 ]; o = 16711935 & ( o << 8 | o >>> 24 ) | 4278255360 & ( o << 24 | o >>> 8 ), s = 16711935 & ( s << 8 | s >>> 24 ) | 4278255360 & ( s << 24 | s >>> 8 ); var a = e[ n ]; a.high ^= s, a.low ^= o } for ( var c = 0; c < 24; c++ ) { for ( var d = 0; d < 5; d++ ) { for ( var v = 0, p = 0, _ = 0; _ < 5; _++ ) { var a = e[ d + 5 * _ ]; v ^= a.high, p ^= a.low } var y = u[ d ]; y.high = v, y.low = p } for ( var d = 0; d < 5; d++ )for ( var g = u[ ( d + 4 ) % 5 ], B = u[ ( d + 1 ) % 5 ], w = B.high, k = B.low, v = g.high ^ ( w << 1 | k >>> 31 ), p = g.low ^ ( k << 1 | w >>> 31 ), _ = 0; _ < 5; _++ ) { var a = e[ d + 5 * _ ]; a.high ^= v, a.low ^= p } for ( var S = 1; S < 25; S++ ) { var a = e[ S ], m = a.high, x = a.low, b = h[ S ]; if ( b < 32 ) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[ l[ S ] ]; H.high = v, H.low = p } var z = u[ 0 ], A = e[ 0 ]; z.high = A.high, z.low = A.low; for ( var d = 0; d < 5; d++ )for ( var _ = 0; _ < 5; _++ ) { var S = d + 5 * _, a = e[ S ], C = u[ S ], D = u[ ( d + 1 ) % 5 + 5 * _ ], R = u[ ( d + 2 ) % 5 + 5 * _ ]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[ 0 ], E = f[ c ]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = ( 8 * this._nDataBytes, 8 * t.sigBytes ), o = 32 * this.blockSize; e[ i >>> 5 ] |= 1 << 24 - i % 32, e[ ( r.ceil( ( i + 1 ) / o ) * o >>> 5 ) - 1 ] |= 128, t.sigBytes = 4 * e.length, this._process(); for ( var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++ ) { var f = s[ l ], u = f.high, d = f.low; u = 16711935 & ( u << 8 | u >>> 24 ) | 4278255360 & ( u << 24 | u >>> 8 ), d = 16711935 & ( d << 8 | d >>> 24 ) | 4278255360 & ( d << 24 | d >>> 8 ), h.push( d ), h.push( u ) } return new n.init( h, a ) }, clone: function () { for ( var t = o.clone.call( this ), r = t._state = this._state.slice( 0 ), e = 0; e < 25; e++ )r[ e ] = r[ e ].clone(); return t } } ); e.SHA3 = o._createHelper( d ), e.HmacSHA3 = o._createHmacHelper( d ) }( Math ), function () { function r () { return s.create.apply( s, arguments ) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [ r( 1116352408, 3609767458 ), r( 1899447441, 602891725 ), r( 3049323471, 3964484399 ), r( 3921009573, 2173295548 ), r( 961987163, 4081628472 ), r( 1508970993, 3053834265 ), r( 2453635748, 2937671579 ), r( 2870763221, 3664609560 ), r( 3624381080, 2734883394 ), r( 310598401, 1164996542 ), r( 607225278, 1323610764 ), r( 1426881987, 3590304994 ), r( 1925078388, 4068182383 ), r( 2162078206, 991336113 ), r( 2614888103, 633803317 ), r( 3248222580, 3479774868 ), r( 3835390401, 2666613458 ), r( 4022224774, 944711139 ), r( 264347078, 2341262773 ), r( 604807628, 2007800933 ), r( 770255983, 1495990901 ), r( 1249150122, 1856431235 ), r( 1555081692, 3175218132 ), r( 1996064986, 2198950837 ), r( 2554220882, 3999719339 ), r( 2821834349, 766784016 ), r( 2952996808, 2566594879 ), r( 3210313671, 3203337956 ), r( 3336571891, 1034457026 ), r( 3584528711, 2466948901 ), r( 113926993, 3758326383 ), r( 338241895, 168717936 ), r( 666307205, 1188179964 ), r( 773529912, 1546045734 ), r( 1294757372, 1522805485 ), r( 1396182291, 2643833823 ), r( 1695183700, 2343527390 ), r( 1986661051, 1014477480 ), r( 2177026350, 1206759142 ), r( 2456956037, 344077627 ), r( 2730485921, 1290863460 ), r( 2820302411, 3158454273 ), r( 3259730800, 3505952657 ), r( 3345764771, 106217008 ), r( 3516065817, 3606008344 ), r( 3600352804, 1432725776 ), r( 4094571909, 1467031594 ), r( 275423344, 851169720 ), r( 430227734, 3100823752 ), r( 506948616, 1363258195 ), r( 659060556, 3750685593 ), r( 883997877, 3785050280 ), r( 958139571, 3318307427 ), r( 1322822218, 3812723403 ), r( 1537002063, 2003034995 ), r( 1747873779, 3602036899 ), r( 1955562222, 1575990012 ), r( 2024104815, 1125592928 ), r( 2227730452, 2716904306 ), r( 2361852424, 442776044 ), r( 2428436474, 593698344 ), r( 2756734187, 3733110249 ), r( 3204031479, 2999351573 ), r( 3329325298, 3815920427 ), r( 3391569614, 3928383900 ), r( 3515267271, 566280711 ), r( 3940187606, 3454069534 ), r( 4118630271, 4000239992 ), r( 116418474, 1914138554 ), r( 174292421, 2731055270 ), r( 289380356, 3203993006 ), r( 460393269, 320620315 ), r( 685471733, 587496836 ), r( 852142971, 1086792851 ), r( 1017036298, 365543100 ), r( 1126000580, 2618297676 ), r( 1288033470, 3409855158 ), r( 1501505948, 4234509866 ), r( 1607167915, 987167468 ), r( 1816402316, 1246189591 ) ], l = []; !function () { for ( var t = 0; t < 80; t++ )l[ t ] = r() }(); var f = c.SHA512 = n.extend( { _doReset: function () { this._hash = new a.init( [ new s.init( 1779033703, 4089235720 ), new s.init( 3144134277, 2227873595 ), new s.init( 1013904242, 4271175723 ), new s.init( 2773480762, 1595750129 ), new s.init( 1359893119, 2917565137 ), new s.init( 2600822924, 725511199 ), new s.init( 528734635, 4215389547 ), new s.init( 1541459225, 327033209 ) ] ) }, _doProcessBlock: function ( t, r ) { for ( var e = this._hash.words, i = e[ 0 ], n = e[ 1 ], o = e[ 2 ], s = e[ 3 ], a = e[ 4 ], c = e[ 5 ], f = e[ 6 ], u = e[ 7 ], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++ ) { var Z = l[ T ]; if ( T < 16 ) var q = Z.high = 0 | t[ r + 2 * T ], G = Z.low = 0 | t[ r + 2 * T + 1 ]; else { var J = l[ T - 15 ], $ = J.high, Q = J.low, V = ( $ >>> 1 | Q << 31 ) ^ ( $ >>> 8 | Q << 24 ) ^ $ >>> 7, Y = ( Q >>> 1 | $ << 31 ) ^ ( Q >>> 8 | $ << 24 ) ^ ( Q >>> 7 | $ << 25 ), tt = l[ T - 2 ], rt = tt.high, et = tt.low, it = ( rt >>> 19 | et << 13 ) ^ ( rt << 3 | et >>> 29 ) ^ rt >>> 6, nt = ( et >>> 19 | rt << 13 ) ^ ( et << 3 | rt >>> 29 ) ^ ( et >>> 6 | rt << 26 ), ot = l[ T - 7 ], st = ot.high, at = ot.low, ct = l[ T - 16 ], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + ( G >>> 0 < Y >>> 0 ? 1 : 0 ), G = G + nt, q = q + it + ( G >>> 0 < nt >>> 0 ? 1 : 0 ), G = G + lt, q = q + ht + ( G >>> 0 < lt >>> 0 ? 1 : 0 ); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = ( C >>> 28 | D << 4 ) ^ ( C << 30 | D >>> 2 ) ^ ( C << 25 | D >>> 7 ), _t = ( D >>> 28 | C << 4 ) ^ ( D << 30 | C >>> 2 ) ^ ( D << 25 | C >>> 7 ), yt = ( O >>> 14 | U << 18 ) ^ ( O >>> 18 | U << 14 ) ^ ( O << 23 | U >>> 9 ), gt = ( U >>> 14 | O << 18 ) ^ ( U >>> 18 | O << 14 ) ^ ( U << 23 | O >>> 9 ), Bt = h[ T ], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + ( St >>> 0 < N >>> 0 ? 1 : 0 ), St = St + ut, mt = mt + ft + ( St >>> 0 < ut >>> 0 ? 1 : 0 ), St = St + kt, mt = mt + wt + ( St >>> 0 < kt >>> 0 ? 1 : 0 ), St = St + G, mt = mt + q + ( St >>> 0 < G >>> 0 ? 1 : 0 ), xt = _t + vt, bt = pt + dt + ( xt >>> 0 < _t >>> 0 ? 1 : 0 ); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + ( U >>> 0 < W >>> 0 ? 1 : 0 ) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + ( D >>> 0 < St >>> 0 ? 1 : 0 ) | 0 } v = i.low = v + D, i.high = d + C + ( v >>> 0 < D >>> 0 ? 1 : 0 ), _ = n.low = _ + E, n.high = p + R + ( _ >>> 0 < E >>> 0 ? 1 : 0 ), g = o.low = g + F, o.high = y + M + ( g >>> 0 < F >>> 0 ? 1 : 0 ), w = s.low = w + W, s.high = B + P + ( w >>> 0 < W >>> 0 ? 1 : 0 ), S = a.low = S + U, a.high = k + O + ( S >>> 0 < U >>> 0 ? 1 : 0 ), x = c.low = x + K, c.high = m + I + ( x >>> 0 < K >>> 0 ? 1 : 0 ), H = f.low = H + L, f.high = b + X + ( H >>> 0 < L >>> 0 ? 1 : 0 ), A = u.low = A + N, u.high = z + j + ( A >>> 0 < N >>> 0 ? 1 : 0 ) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[ i >>> 5 ] |= 128 << 24 - i % 32, r[ ( i + 128 >>> 10 << 5 ) + 30 ] = Math.floor( e / 4294967296 ), r[ ( i + 128 >>> 10 << 5 ) + 31 ] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call( this ); return t._hash = this._hash.clone(), t }, blockSize: 32 } ); e.SHA512 = n._createHelper( f ), e.HmacSHA512 = n._createHmacHelper( f ) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend( { _doReset: function () { this._hash = new n.init( [ new i.init( 3418070365, 3238371032 ), new i.init( 1654270250, 914150663 ), new i.init( 2438529370, 812702999 ), new i.init( 355462360, 4144912697 ), new i.init( 1731405415, 4290775857 ), new i.init( 2394180231, 1750603025 ), new i.init( 3675008525, 1694076839 ), new i.init( 1203062813, 3204075428 ) ] ) }, _doFinalize: function () { var t = s._doFinalize.call( this ); return t.sigBytes -= 16, t } } ); r.SHA384 = s._createHelper( a ), r.HmacSHA384 = s._createHmacHelper( a ) }(), t.lib.Cipher || function ( r ) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = ( a.Utf8, a.Base64 ), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend( { cfg: n.extend(), createEncryptor: function ( t, r ) { return this.create( this._ENC_XFORM_MODE, t, r ) }, createDecryptor: function ( t, r ) { return this.create( this._DEC_XFORM_MODE, t, r ) }, init: function ( t, r, e ) { this.cfg = this.cfg.extend( e ), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call( this ), this._doReset() }, process: function ( t ) { return this._append( t ), this._process() }, finalize: function ( t ) { t && this._append( t ); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t ( t ) { return "string" == typeof t ? m : w } return function ( r ) { return { encrypt: function ( e, i, n ) { return t( i ).encrypt( r, e, i, n ) }, decrypt: function ( e, i, n ) { return t( i ).decrypt( r, e, i, n ) } } } }() } ), u = ( i.StreamCipher = f.extend( { _doFinalize: function () { var t = this._process( !0 ); return t }, blockSize: 1 } ), e.mode = {} ), d = i.BlockCipherMode = n.extend( { createEncryptor: function ( t, r ) { return this.Encryptor.create( t, r ) }, createDecryptor: function ( t, r ) { return this.Decryptor.create( t, r ) }, init: function ( t, r ) { this._cipher = t, this._iv = r } } ), v = u.CBC = function () { function t ( t, e, i ) { var n = this._iv; if ( n ) { var o = n; this._iv = r } else var o = this._prevBlock; for ( var s = 0; s < i; s++ )t[ e + s ] ^= o[ s ] } var e = d.extend(); return e.Encryptor = e.extend( { processBlock: function ( r, e ) { var i = this._cipher, n = i.blockSize; t.call( this, r, e, n ), i.encryptBlock( r, e ), this._prevBlock = r.slice( e, e + n ) } } ), e.Decryptor = e.extend( { processBlock: function ( r, e ) { var i = this._cipher, n = i.blockSize, o = r.slice( e, e + n ); i.decryptBlock( r, e ), t.call( this, r, e, n ), this._prevBlock = o } } ), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function ( t, r ) { for ( var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4 )s.push( n ); var c = o.create( s, i ); t.concat( c ) }, unpad: function ( t ) { var r = 255 & t.words[ t.sigBytes - 1 >>> 2 ]; t.sigBytes -= r } }, y = ( i.BlockCipher = f.extend( { cfg: f.cfg.extend( { mode: v, padding: _ } ), reset: function () { f.reset.call( this ); var t = this.cfg, r = t.iv, e = t.mode; if ( this._xformMode == this._ENC_XFORM_MODE ) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init( this, r && r.words ) : ( this._mode = i.call( e, this, r && r.words ), this._mode.__creator = i ) }, _doProcessBlock: function ( t, r ) { this._mode.processBlock( t, r ) }, _doFinalize: function () { var t = this.cfg.padding; if ( this._xformMode == this._ENC_XFORM_MODE ) { t.pad( this._data, this.blockSize ); var r = this._process( !0 ) } else { var r = this._process( !0 ); t.unpad( r ) } return r }, blockSize: 4 } ), i.CipherParams = n.extend( { init: function ( t ) { this.mixIn( t ) }, toString: function ( t ) { return ( t || this.formatter ).stringify( this ) } } ) ), g = e.format = {}, B = g.OpenSSL = { stringify: function ( t ) { var r = t.ciphertext, e = t.salt; if ( e ) var i = o.create( [ 1398893684, 1701076831 ] ).concat( e ).concat( r ); else var i = r; return i.toString( c ) }, parse: function ( t ) { var r = c.parse( t ), e = r.words; if ( 1398893684 == e[ 0 ] && 1701076831 == e[ 1 ] ) { var i = o.create( e.slice( 2, 4 ) ); e.splice( 0, 4 ), r.sigBytes -= 16 } return y.create( { ciphertext: r, salt: i } ) } }, w = i.SerializableCipher = n.extend( { cfg: n.extend( { format: B } ), encrypt: function ( t, r, e, i ) { i = this.cfg.extend( i ); var n = t.createEncryptor( e, i ), o = n.finalize( r ), s = n.cfg; return y.create( { ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format } ) }, decrypt: function ( t, r, e, i ) { i = this.cfg.extend( i ), r = this._parse( r, i.format ); var n = t.createDecryptor( e, i ).finalize( r.ciphertext ); return n }, _parse: function ( t, r ) { return "string" == typeof t ? r.parse( t, this ) : t } } ), k = e.kdf = {}, S = k.OpenSSL = { execute: function ( t, r, e, i ) { i || ( i = o.random( 8 ) ); var n = l.create( { keySize: r + e } ).compute( t, i ), s = o.create( n.words.slice( r ), 4 * e ); return n.sigBytes = 4 * r, y.create( { key: n, iv: s, salt: i } ) } }, m = i.PasswordBasedCipher = w.extend( { cfg: w.cfg.extend( { kdf: S } ), encrypt: function ( t, r, e, i ) { i = this.cfg.extend( i ); var n = i.kdf.execute( e, t.keySize, t.ivSize ); i.iv = n.iv; var o = w.encrypt.call( this, t, r, n.key, i ); return o.mixIn( n ), o }, decrypt: function ( t, r, e, i ) { i = this.cfg.extend( i ), r = this._parse( r, i.format ); var n = i.kdf.execute( e, t.keySize, t.ivSize, r.salt ); i.iv = n.iv; var o = w.decrypt.call( this, t, r, n.key, i ); return o } } ) }(), t.mode.CFB = function () { function r ( t, r, e, i ) { var n = this._iv; if ( n ) { var o = n.slice( 0 ); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock( o, 0 ); for ( var s = 0; s < e; s++ )t[ r + s ] ^= o[ s ] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend( { processBlock: function ( t, e ) { var i = this._cipher, n = i.blockSize; r.call( this, t, e, n, i ), this._prevBlock = t.slice( e, e + n ) } } ), e.Decryptor = e.extend( { processBlock: function ( t, e ) { var i = this._cipher, n = i.blockSize, o = t.slice( e, e + n ); r.call( this, t, e, n, i ), this._prevBlock = o } } ), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend( { processBlock: function ( t, r ) { this._cipher.encryptBlock( t, r ) } } ), r.Decryptor = r.extend( { processBlock: function ( t, r ) { this._cipher.decryptBlock( t, r ) } } ), r }(), t.pad.AnsiX923 = { pad: function ( t, r ) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[ o >>> 2 ] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function ( t ) { var r = 255 & t.words[ t.sigBytes - 1 >>> 2 ]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function ( r, e ) { var i = 4 * e, n = i - r.sigBytes % i; r.concat( t.lib.WordArray.random( n - 1 ) ).concat( t.lib.WordArray.create( [ n << 24 ], 1 ) ) }, unpad: function ( t ) { var r = 255 & t.words[ t.sigBytes - 1 >>> 2 ]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function ( r, e ) { r.concat( t.lib.WordArray.create( [ 2147483648 ], 1 ) ), t.pad.ZeroPadding.pad( r, e ) }, unpad: function ( r ) { t.pad.ZeroPadding.unpad( r ), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend( { processBlock: function ( t, r ) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && ( o = this._keystream = n.slice( 0 ), this._iv = void 0 ), e.encryptBlock( o, 0 ); for ( var s = 0; s < i; s++ )t[ r + s ] ^= o[ s ] } } ); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function ( r ) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function ( t ) { return t.ciphertext.toString( s ) }, parse: function ( t ) { var r = s.parse( t ); return n.create( { ciphertext: r } ) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for ( var t = [], r = 0; r < 256; r++ )r < 128 ? t[ r ] = r << 1 : t[ r ] = r << 1 ^ 283; for ( var e = 0, i = 0, r = 0; r < 256; r++ ) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[ e ] = n, s[ n ] = e; var p = t[ e ], _ = t[ p ], y = t[ _ ], g = 257 * t[ n ] ^ 16843008 * n; a[ e ] = g << 24 | g >>> 8, c[ e ] = g << 16 | g >>> 16, h[ e ] = g << 8 | g >>> 24, l[ e ] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[ n ] = g << 24 | g >>> 8, u[ n ] = g << 16 | g >>> 16, d[ n ] = g << 8 | g >>> 24, v[ n ] = g, e ? ( e = p ^ t[ t[ t[ y ^ p ] ] ], i ^= t[ t[ i ] ] ) : e = i = 1 } }(); var p = [ 0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54 ], _ = n.AES = i.extend( { _doReset: function () { if ( !this._nRounds || this._keyPriorReset !== this._key ) { for ( var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * ( i + 1 ), s = this._keySchedule = [], a = 0; a < n; a++ )if ( a < e ) s[ a ] = r[ a ]; else { var c = s[ a - 1 ]; a % e ? e > 6 && a % e == 4 && ( c = o[ c >>> 24 ] << 24 | o[ c >>> 16 & 255 ] << 16 | o[ c >>> 8 & 255 ] << 8 | o[ 255 & c ] ) : ( c = c << 8 | c >>> 24, c = o[ c >>> 24 ] << 24 | o[ c >>> 16 & 255 ] << 16 | o[ c >>> 8 & 255 ] << 8 | o[ 255 & c ], c ^= p[ a / e | 0 ] << 24 ), s[ a ] = s[ a - e ] ^ c } for ( var h = this._invKeySchedule = [], l = 0; l < n; l++ ) { var a = n - l; if ( l % 4 ) var c = s[ a ]; else var c = s[ a - 4 ]; l < 4 || a <= 4 ? h[ l ] = c : h[ l ] = f[ o[ c >>> 24 ] ] ^ u[ o[ c >>> 16 & 255 ] ] ^ d[ o[ c >>> 8 & 255 ] ] ^ v[ o[ 255 & c ] ] } } }, encryptBlock: function ( t, r ) { this._doCryptBlock( t, r, this._keySchedule, a, c, h, l, o ) }, decryptBlock: function ( t, r ) { var e = t[ r + 1 ]; t[ r + 1 ] = t[ r + 3 ], t[ r + 3 ] = e, this._doCryptBlock( t, r, this._invKeySchedule, f, u, d, v, s ); var e = t[ r + 1 ]; t[ r + 1 ] = t[ r + 3 ], t[ r + 3 ] = e }, _doCryptBlock: function ( t, r, e, i, n, o, s, a ) { for ( var c = this._nRounds, h = t[ r ] ^ e[ 0 ], l = t[ r + 1 ] ^ e[ 1 ], f = t[ r + 2 ] ^ e[ 2 ], u = t[ r + 3 ] ^ e[ 3 ], d = 4, v = 1; v < c; v++ ) { var p = i[ h >>> 24 ] ^ n[ l >>> 16 & 255 ] ^ o[ f >>> 8 & 255 ] ^ s[ 255 & u ] ^ e[ d++ ], _ = i[ l >>> 24 ] ^ n[ f >>> 16 & 255 ] ^ o[ u >>> 8 & 255 ] ^ s[ 255 & h ] ^ e[ d++ ], y = i[ f >>> 24 ] ^ n[ u >>> 16 & 255 ] ^ o[ h >>> 8 & 255 ] ^ s[ 255 & l ] ^ e[ d++ ], g = i[ u >>> 24 ] ^ n[ h >>> 16 & 255 ] ^ o[ l >>> 8 & 255 ] ^ s[ 255 & f ] ^ e[ d++ ]; h = p, l = _, f = y, u = g } var p = ( a[ h >>> 24 ] << 24 | a[ l >>> 16 & 255 ] << 16 | a[ f >>> 8 & 255 ] << 8 | a[ 255 & u ] ) ^ e[ d++ ], _ = ( a[ l >>> 24 ] << 24 | a[ f >>> 16 & 255 ] << 16 | a[ u >>> 8 & 255 ] << 8 | a[ 255 & h ] ) ^ e[ d++ ], y = ( a[ f >>> 24 ] << 24 | a[ u >>> 16 & 255 ] << 16 | a[ h >>> 8 & 255 ] << 8 | a[ 255 & l ] ) ^ e[ d++ ], g = ( a[ u >>> 24 ] << 24 | a[ h >>> 16 & 255 ] << 16 | a[ l >>> 8 & 255 ] << 8 | a[ 255 & f ] ) ^ e[ d++ ]; t[ r ] = p, t[ r + 1 ] = _, t[ r + 2 ] = y, t[ r + 3 ] = g }, keySize: 8 } ); r.AES = i._createHelper( _ ) }(), function () {
function r ( t, r ) { var e = ( this._lBlock >>> t ^ this._rBlock ) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e ( t, r ) {
var e = ( this._rBlock >>> t ^ this._lBlock ) & r; this._lBlock ^= e, this._rBlock ^= e << t;
} var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [ 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 ], h = [ 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 ], l = [ 1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28 ], f = [ { 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 } ], u = [ 4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679 ], d = a.DES = s.extend( { _doReset: function () { for ( var t = this._key, r = t.words, e = [], i = 0; i < 56; i++ ) { var n = c[ i ] - 1; e[ i ] = r[ n >>> 5 ] >>> 31 - n % 32 & 1 } for ( var o = this._subKeys = [], s = 0; s < 16; s++ ) { for ( var a = o[ s ] = [], f = l[ s ], i = 0; i < 24; i++ )a[ i / 6 | 0 ] |= e[ ( h[ i ] - 1 + f ) % 28 ] << 31 - i % 6, a[ 4 + ( i / 6 | 0 ) ] |= e[ 28 + ( h[ i + 24 ] - 1 + f ) % 28 ] << 31 - i % 6; a[ 0 ] = a[ 0 ] << 1 | a[ 0 ] >>> 31; for ( var i = 1; i < 7; i++ )a[ i ] = a[ i ] >>> 4 * ( i - 1 ) + 3; a[ 7 ] = a[ 7 ] << 5 | a[ 7 ] >>> 27 } for ( var u = this._invSubKeys = [], i = 0; i < 16; i++ )u[ i ] = o[ 15 - i ] }, encryptBlock: function ( t, r ) { this._doCryptBlock( t, r, this._subKeys ) }, decryptBlock: function ( t, r ) { this._doCryptBlock( t, r, this._invSubKeys ) }, _doCryptBlock: function ( t, i, n ) { this._lBlock = t[ i ], this._rBlock = t[ i + 1 ], r.call( this, 4, 252645135 ), r.call( this, 16, 65535 ), e.call( this, 2, 858993459 ), e.call( this, 8, 16711935 ), r.call( this, 1, 1431655765 ); for ( var o = 0; o < 16; o++ ) { for ( var s = n[ o ], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++ )h |= f[ l ][ ( ( c ^ s[ l ] ) & u[ l ] ) >>> 0 ]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call( this, 1, 1431655765 ), e.call( this, 8, 16711935 ), e.call( this, 2, 858993459 ), r.call( this, 16, 65535 ), r.call( this, 4, 252645135 ), t[ i ] = this._lBlock, t[ i + 1 ] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 } ); i.DES = s._createHelper( d ); var v = a.TripleDES = s.extend( { _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor( o.create( r.slice( 0, 2 ) ) ), this._des2 = d.createEncryptor( o.create( r.slice( 2, 4 ) ) ), this._des3 = d.createEncryptor( o.create( r.slice( 4, 6 ) ) ) }, encryptBlock: function ( t, r ) { this._des1.encryptBlock( t, r ), this._des2.decryptBlock( t, r ), this._des3.encryptBlock( t, r ) }, decryptBlock: function ( t, r ) { this._des3.decryptBlock( t, r ), this._des2.encryptBlock( t, r ), this._des1.decryptBlock( t, r ) }, keySize: 6, ivSize: 2, blockSize: 2 } ); i.TripleDES = s._createHelper( v )
}(), function () { function r () { for ( var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++ ) { r = ( r + 1 ) % 256, e = ( e + t[ r ] ) % 256; var o = t[ r ]; t[ r ] = t[ e ], t[ e ] = o, i |= t[ ( t[ r ] + t[ e ] ) % 256 ] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend( { _doReset: function () { for ( var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++ )i[ n ] = n; for ( var n = 0, o = 0; n < 256; n++ ) { var s = n % e, a = r[ s >>> 2 ] >>> 24 - s % 4 * 8 & 255; o = ( o + i[ n ] + a ) % 256; var c = i[ n ]; i[ n ] = i[ o ], i[ o ] = c } this._i = this._j = 0 }, _doProcessBlock: function ( t, e ) { t[ e ] ^= r.call( this ) }, keySize: 8, ivSize: 0 } ); e.RC4 = n._createHelper( s ); var a = o.RC4Drop = s.extend( { cfg: s.cfg.extend( { drop: 192 } ), _doReset: function () { s._doReset.call( this ); for ( var t = this.cfg.drop; t > 0; t-- )r.call( this ) } } ); e.RC4Drop = n._createHelper( a ) }(), t.mode.CTRGladman = function () { function r ( t ) { if ( 255 === ( t >> 24 & 255 ) ) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? ( r = 0, 255 === e ? ( e = 0, 255 === i ? i = 0 : ++i ) : ++e ) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e ( t ) { return 0 === ( t[ 0 ] = r( t[ 0 ] ) ) && ( t[ 1 ] = r( t[ 1 ] ) ), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend( { processBlock: function ( t, r ) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && ( s = this._counter = o.slice( 0 ), this._iv = void 0 ), e( s ); var a = s.slice( 0 ); i.encryptBlock( a, 0 ); for ( var c = 0; c < n; c++ )t[ r + c ] ^= a[ c ] } } ); return i.Decryptor = n, i }(), function () { function r () { for ( var t = this._X, r = this._C, e = 0; e < 8; e++ )a[ e ] = r[ e ]; r[ 0 ] = r[ 0 ] + 1295307597 + this._b | 0, r[ 1 ] = r[ 1 ] + 3545052371 + ( r[ 0 ] >>> 0 < a[ 0 ] >>> 0 ? 1 : 0 ) | 0, r[ 2 ] = r[ 2 ] + 886263092 + ( r[ 1 ] >>> 0 < a[ 1 ] >>> 0 ? 1 : 0 ) | 0, r[ 3 ] = r[ 3 ] + 1295307597 + ( r[ 2 ] >>> 0 < a[ 2 ] >>> 0 ? 1 : 0 ) | 0, r[ 4 ] = r[ 4 ] + 3545052371 + ( r[ 3 ] >>> 0 < a[ 3 ] >>> 0 ? 1 : 0 ) | 0, r[ 5 ] = r[ 5 ] + 886263092 + ( r[ 4 ] >>> 0 < a[ 4 ] >>> 0 ? 1 : 0 ) | 0, r[ 6 ] = r[ 6 ] + 1295307597 + ( r[ 5 ] >>> 0 < a[ 5 ] >>> 0 ? 1 : 0 ) | 0, r[ 7 ] = r[ 7 ] + 3545052371 + ( r[ 6 ] >>> 0 < a[ 6 ] >>> 0 ? 1 : 0 ) | 0, this._b = r[ 7 ] >>> 0 < a[ 7 ] >>> 0 ? 1 : 0; for ( var e = 0; e < 8; e++ ) { var i = t[ e ] + r[ e ], n = 65535 & i, o = i >>> 16, s = ( ( n * n >>> 17 ) + n * o >>> 15 ) + o * o, h = ( ( 4294901760 & i ) * i | 0 ) + ( ( 65535 & i ) * i | 0 ); c[ e ] = s ^ h } t[ 0 ] = c[ 0 ] + ( c[ 7 ] << 16 | c[ 7 ] >>> 16 ) + ( c[ 6 ] << 16 | c[ 6 ] >>> 16 ) | 0, t[ 1 ] = c[ 1 ] + ( c[ 0 ] << 8 | c[ 0 ] >>> 24 ) + c[ 7 ] | 0, t[ 2 ] = c[ 2 ] + ( c[ 1 ] << 16 | c[ 1 ] >>> 16 ) + ( c[ 0 ] << 16 | c[ 0 ] >>> 16 ) | 0, t[ 3 ] = c[ 3 ] + ( c[ 2 ] << 8 | c[ 2 ] >>> 24 ) + c[ 1 ] | 0, t[ 4 ] = c[ 4 ] + ( c[ 3 ] << 16 | c[ 3 ] >>> 16 ) + ( c[ 2 ] << 16 | c[ 2 ] >>> 16 ) | 0, t[ 5 ] = c[ 5 ] + ( c[ 4 ] << 8 | c[ 4 ] >>> 24 ) + c[ 3 ] | 0, t[ 6 ] = c[ 6 ] + ( c[ 5 ] << 16 | c[ 5 ] >>> 16 ) + ( c[ 4 ] << 16 | c[ 4 ] >>> 16 ) | 0, t[ 7 ] = c[ 7 ] + ( c[ 6 ] << 8 | c[ 6 ] >>> 24 ) + c[ 5 ] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend( { _doReset: function () { for ( var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++ )t[ i ] = 16711935 & ( t[ i ] << 8 | t[ i ] >>> 24 ) | 4278255360 & ( t[ i ] << 24 | t[ i ] >>> 8 ); var n = this._X = [ t[ 0 ], t[ 3 ] << 16 | t[ 2 ] >>> 16, t[ 1 ], t[ 0 ] << 16 | t[ 3 ] >>> 16, t[ 2 ], t[ 1 ] << 16 | t[ 0 ] >>> 16, t[ 3 ], t[ 2 ] << 16 | t[ 1 ] >>> 16 ], o = this._C = [ t[ 2 ] << 16 | t[ 2 ] >>> 16, 4294901760 & t[ 0 ] | 65535 & t[ 1 ], t[ 3 ] << 16 | t[ 3 ] >>> 16, 4294901760 & t[ 1 ] | 65535 & t[ 2 ], t[ 0 ] << 16 | t[ 0 ] >>> 16, 4294901760 & t[ 2 ] | 65535 & t[ 3 ], t[ 1 ] << 16 | t[ 1 ] >>> 16, 4294901760 & t[ 3 ] | 65535 & t[ 0 ] ]; this._b = 0; for ( var i = 0; i < 4; i++ )r.call( this ); for ( var i = 0; i < 8; i++ )o[ i ] ^= n[ i + 4 & 7 ]; if ( e ) { var s = e.words, a = s[ 0 ], c = s[ 1 ], h = 16711935 & ( a << 8 | a >>> 24 ) | 4278255360 & ( a << 24 | a >>> 8 ), l = 16711935 & ( c << 8 | c >>> 24 ) | 4278255360 & ( c << 24 | c >>> 8 ), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[ 0 ] ^= h, o[ 1 ] ^= f, o[ 2 ] ^= l, o[ 3 ] ^= u, o[ 4 ] ^= h, o[ 5 ] ^= f, o[ 6 ] ^= l, o[ 7 ] ^= u; for ( var i = 0; i < 4; i++ )r.call( this ) } }, _doProcessBlock: function ( t, e ) { var i = this._X; r.call( this ), s[ 0 ] = i[ 0 ] ^ i[ 5 ] >>> 16 ^ i[ 3 ] << 16, s[ 1 ] = i[ 2 ] ^ i[ 7 ] >>> 16 ^ i[ 5 ] << 16, s[ 2 ] = i[ 4 ] ^ i[ 1 ] >>> 16 ^ i[ 7 ] << 16, s[ 3 ] = i[ 6 ] ^ i[ 3 ] >>> 16 ^ i[ 1 ] << 16; for ( var n = 0; n < 4; n++ )s[ n ] = 16711935 & ( s[ n ] << 8 | s[ n ] >>> 24 ) | 4278255360 & ( s[ n ] << 24 | s[ n ] >>> 8 ), t[ e + n ] ^= s[ n ] }, blockSize: 4, ivSize: 2 } ); e.Rabbit = n._createHelper( h ) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend( { processBlock: function ( t, r ) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && ( o = this._counter = n.slice( 0 ), this._iv = void 0 ); var s = o.slice( 0 ); e.encryptBlock( s, 0 ), o[ i - 1 ] = o[ i - 1 ] + 1 | 0; for ( var a = 0; a < i; a++ )t[ r + a ] ^= s[ a ] } } ); return r.Decryptor = e, r }(), function () { function r () { for ( var t = this._X, r = this._C, e = 0; e < 8; e++ )a[ e ] = r[ e ]; r[ 0 ] = r[ 0 ] + 1295307597 + this._b | 0, r[ 1 ] = r[ 1 ] + 3545052371 + ( r[ 0 ] >>> 0 < a[ 0 ] >>> 0 ? 1 : 0 ) | 0, r[ 2 ] = r[ 2 ] + 886263092 + ( r[ 1 ] >>> 0 < a[ 1 ] >>> 0 ? 1 : 0 ) | 0, r[ 3 ] = r[ 3 ] + 1295307597 + ( r[ 2 ] >>> 0 < a[ 2 ] >>> 0 ? 1 : 0 ) | 0, r[ 4 ] = r[ 4 ] + 3545052371 + ( r[ 3 ] >>> 0 < a[ 3 ] >>> 0 ? 1 : 0 ) | 0, r[ 5 ] = r[ 5 ] + 886263092 + ( r[ 4 ] >>> 0 < a[ 4 ] >>> 0 ? 1 : 0 ) | 0, r[ 6 ] = r[ 6 ] + 1295307597 + ( r[ 5 ] >>> 0 < a[ 5 ] >>> 0 ? 1 : 0 ) | 0, r[ 7 ] = r[ 7 ] + 3545052371 + ( r[ 6 ] >>> 0 < a[ 6 ] >>> 0 ? 1 : 0 ) | 0, this._b = r[ 7 ] >>> 0 < a[ 7 ] >>> 0 ? 1 : 0; for ( var e = 0; e < 8; e++ ) { var i = t[ e ] + r[ e ], n = 65535 & i, o = i >>> 16, s = ( ( n * n >>> 17 ) + n * o >>> 15 ) + o * o, h = ( ( 4294901760 & i ) * i | 0 ) + ( ( 65535 & i ) * i | 0 ); c[ e ] = s ^ h } t[ 0 ] = c[ 0 ] + ( c[ 7 ] << 16 | c[ 7 ] >>> 16 ) + ( c[ 6 ] << 16 | c[ 6 ] >>> 16 ) | 0, t[ 1 ] = c[ 1 ] + ( c[ 0 ] << 8 | c[ 0 ] >>> 24 ) + c[ 7 ] | 0, t[ 2 ] = c[ 2 ] + ( c[ 1 ] << 16 | c[ 1 ] >>> 16 ) + ( c[ 0 ] << 16 | c[ 0 ] >>> 16 ) | 0, t[ 3 ] = c[ 3 ] + ( c[ 2 ] << 8 | c[ 2 ] >>> 24 ) + c[ 1 ] | 0, t[ 4 ] = c[ 4 ] + ( c[ 3 ] << 16 | c[ 3 ] >>> 16 ) + ( c[ 2 ] << 16 | c[ 2 ] >>> 16 ) | 0, t[ 5 ] = c[ 5 ] + ( c[ 4 ] << 8 | c[ 4 ] >>> 24 ) + c[ 3 ] | 0, t[ 6 ] = c[ 6 ] + ( c[ 5 ] << 16 | c[ 5 ] >>> 16 ) + ( c[ 4 ] << 16 | c[ 4 ] >>> 16 ) | 0, t[ 7 ] = c[ 7 ] + ( c[ 6 ] << 8 | c[ 6 ] >>> 24 ) + c[ 5 ] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend( { _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [ t[ 0 ], t[ 3 ] << 16 | t[ 2 ] >>> 16, t[ 1 ], t[ 0 ] << 16 | t[ 3 ] >>> 16, t[ 2 ], t[ 1 ] << 16 | t[ 0 ] >>> 16, t[ 3 ], t[ 2 ] << 16 | t[ 1 ] >>> 16 ], n = this._C = [ t[ 2 ] << 16 | t[ 2 ] >>> 16, 4294901760 & t[ 0 ] | 65535 & t[ 1 ], t[ 3 ] << 16 | t[ 3 ] >>> 16, 4294901760 & t[ 1 ] | 65535 & t[ 2 ], t[ 0 ] << 16 | t[ 0 ] >>> 16, 4294901760 & t[ 2 ] | 65535 & t[ 3 ], t[ 1 ] << 16 | t[ 1 ] >>> 16, 4294901760 & t[ 3 ] | 65535 & t[ 0 ] ]; this._b = 0; for ( var o = 0; o < 4; o++ )r.call( this ); for ( var o = 0; o < 8; o++ )n[ o ] ^= i[ o + 4 & 7 ]; if ( e ) { var s = e.words, a = s[ 0 ], c = s[ 1 ], h = 16711935 & ( a << 8 | a >>> 24 ) | 4278255360 & ( a << 24 | a >>> 8 ), l = 16711935 & ( c << 8 | c >>> 24 ) | 4278255360 & ( c << 24 | c >>> 8 ), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[ 0 ] ^= h, n[ 1 ] ^= f, n[ 2 ] ^= l, n[ 3 ] ^= u, n[ 4 ] ^= h, n[ 5 ] ^= f, n[ 6 ] ^= l, n[ 7 ] ^= u; for ( var o = 0; o < 4; o++ )r.call( this ) } }, _doProcessBlock: function ( t, e ) { var i = this._X; r.call( this ), s[ 0 ] = i[ 0 ] ^ i[ 5 ] >>> 16 ^ i[ 3 ] << 16, s[ 1 ] = i[ 2 ] ^ i[ 7 ] >>> 16 ^ i[ 5 ] << 16, s[ 2 ] = i[ 4 ] ^ i[ 1 ] >>> 16 ^ i[ 7 ] << 16, s[ 3 ] = i[ 6 ] ^ i[ 3 ] >>> 16 ^ i[ 1 ] << 16; for ( var n = 0; n < 4; n++ )s[ n ] = 16711935 & ( s[ n ] << 8 | s[ n ] >>> 24 ) | 4278255360 & ( s[ n ] << 24 | s[ n ] >>> 8 ), t[ e + n ] ^= s[ n ] }, blockSize: 4, ivSize: 2 } ); e.RabbitLegacy = n._createHelper( h ) }(), t.pad.ZeroPadding = { pad: function ( t, r ) { var e = 4 * r; t.clamp(), t.sigBytes += e - ( t.sigBytes % e || e ) }, unpad: function ( t ) { for ( var r = t.words, e = t.sigBytes - 1; !( r[ e >>> 2 ] >>> 24 - e % 4 * 8 & 255 ); )e--; t.sigBytes = e + 1 } }, t
} );
const $ = new Env( '京喜工厂' );
const JD_API_HOST = 'https://m.jingxi.com';
const notify = $.isNode() ? require( './sendNotify' ) : '';
//通知级别 1=生产完毕可兑换通知;2=可兑换通知+生产超时通知+兑换超时通知;3=可兑换通知+生产超时通知+兑换超时通知+未选择商品生产通知(前提:已开通京喜工厂活动);默认第2种通知
let notifyLevel = $.isNode() ? process.env.JXGC_NOTIFY_LEVEL || 2 : 2;
const randomCount = $.isNode() ? 20 : 5;
let tuanActiveId = ``, hasSend = false;
const jxOpenUrl = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://wqsd.jd.com/pingou/dream_factory/index.html%22%20%7D`;
let cookiesArr = [], cookie = '', message = '', allMessage = '';
const inviteCodes = [
'YuUEOVA8YGJL8KfA28Pt5w==@KpJLBYFSYoJS6GiZgYEBew==@wDEMYVNg5pj0ynGOoOnFfQ==@LIrphBi7_PJYODNc1doprA==@1Ap5bF7eXX9Ami_TzDgtaA==@W7RlML-aRsZ55C2Km7aL_Q==',
'YuUEOVA8YGJL8KfA28Pt5w==@KpJLBYFSYoJS6GiZgYEBew==@wDEMYVNg5pj0ynGOoOnFfQ==@LIrphBi7_PJYODNc1doprA==@1Ap5bF7eXX9Ami_TzDgtaA==@W7RlML-aRsZ55C2Km7aL_Q==',
'YuUEOVA8YGJL8KfA28Pt5w==@KpJLBYFSYoJS6GiZgYEBew==@wDEMYVNg5pj0ynGOoOnFfQ==@LIrphBi7_PJYODNc1doprA==@1Ap5bF7eXX9Ami_TzDgtaA==@W7RlML-aRsZ55C2Km7aL_Q==',
'YuUEOVA8YGJL8KfA28Pt5w==@KpJLBYFSYoJS6GiZgYEBew==@wDEMYVNg5pj0ynGOoOnFfQ==@LIrphBi7_PJYODNc1doprA==@1Ap5bF7eXX9Ami_TzDgtaA==@W7RlML-aRsZ55C2Km7aL_Q==',
];
const jdCookieNode = $.isNode() ? require( './jdCookie.js' ) : '';
$.tuanIds = [];
$.appId = 10001;
if ( $.isNode() ) {
Object.keys( jdCookieNode ).forEach( ( item ) => {
cookiesArr.push( jdCookieNode[ item ] )
} )
if ( process.env.JD_DEBUG && process.env.JD_DEBUG === 'false' ) console.log = () => { };
if ( process.env.DREAMFACTORY_FORBID_ACCOUNT ) process.env.DREAMFACTORY_FORBID_ACCOUNT.split( '&' ).map( ( item, index ) => Number( item ) === 0 ? cookiesArr = [] : cookiesArr.splice( Number( item ) - 1 - index, 1 ) )
} else {
cookiesArr = [ $.getdata( 'CookieJD' ), $.getdata( 'CookieJD2' ), ...jsonParse( $.getdata( 'CookiesJD' ) || "[]" ).map( item => item.cookie ) ].filter( item => !!item );
}
!( async () => {
$.CryptoJS = $.isNode() ? require( 'crypto-js' ) : CryptoJS;
await requireConfig();
if ( !cookiesArr[ 0 ] ) {
$.msg( $.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" } );
return;
}
await requestAlgo();
await getActiveId();//自动获取每期拼团活动ID
for ( let i = 0; i < cookiesArr.length; i++ ) {
if ( cookiesArr[ i ] ) {
cookie = cookiesArr[ i ];
$.UserName = decodeURIComponent( cookie.match( /pt_pin=([^; ]+)(?=;?)/ ) && cookie.match( /pt_pin=([^; ]+)(?=;?)/ )[ 1 ] )
$.index = i + 1;
$.isLogin = true;
$.nickName = '';
message = '';
$.ele = 0;
$.pickEle = 0;
$.pickFriendEle = 0;
$.friendList = [];
$.canHelpFlag = true;//能否助力朋友(招工)
$.tuanNum = 0;//成团人数
await TotalBean();
console.log( `\n******开始【京东账号${ $.index }】${ $.nickName || $.UserName }*********\n` );
if ( !$.isLogin ) {
$.msg( $.name, `【提示】cookie已失效`, `京东账号${ $.index } ${ $.nickName || $.UserName }\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" } );
if ( $.isNode() ) {
await notify.sendNotify( `${ $.name }cookie已失效 - ${ $.UserName }`, `京东账号${ $.index } ${ $.UserName }\n请重新登录获取cookie` );
}
continue
}
await jdDreamFactory()
}
}
if ( tuanActiveId ) {
for ( let i = 0; i < cookiesArr.length; i++ ) {
if ( cookiesArr[ i ] ) {
cookie = cookiesArr[ i ];
$.isLogin = true;
$.canHelp = true;//能否参团
$.UserName = decodeURIComponent( cookie.match( /pt_pin=([^; ]+)(?=;?)/ ) && cookie.match( /pt_pin=([^; ]+)(?=;?)/ )[ 1 ] )
if ( ( cookiesArr && cookiesArr.length >= ( $.tuanNum || 5 ) ) && $.canHelp ) {
console.log( `\n账号${ $.UserName } 内部相互进团\n` );
for ( let item of $.tuanIds ) {
console.log( `\n${ $.UserName } 去参加团 ${ item }` );
if ( !$.canHelp ) break;
await JoinTuan( item );
await $.wait( 1000 );
}
}
if ( $.canHelp ) await joinLeaderTuan();//参团
}
}
}
if ( $.isNode() && allMessage ) {
await notify.sendNotify( `${ $.name }`, `${ allMessage }`, { url: jxOpenUrl } )
}
} )()
.catch( ( e ) => {
$.log( '', `❌ ${ $.name }, 失败! 原因: ${ e }!`, '' )
} )
.finally( () => {
$.done();
} )
async function jdDreamFactory () {
try {
await userInfo();
await QueryFriendList();//查询今日招工情况以及剩余助力次数
// await joinLeaderTuan();//参团
await helpFriends();
if ( !$.unActive ) return
// await collectElectricity()
await getUserElectricity();
await taskList();
await investElectric();
await QueryHireReward();//收取招工电力
await PickUp();//收取自家的地下零件
await stealFriend();
if ( tuanActiveId ) {
await tuanActivity();
await QueryAllTuan();
}
await exchangeProNotify();
await showMsg();
} catch ( e ) {
$.logErr( e )
}
}
function getActiveId ( url = 'https://wqsd.jd.com/pingou/dream_factory/index.html' ) {
return new Promise( async resolve => {
const options = {
url: `${ url }?${ new Date() }`, "timeout": 10000, headers: {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88"
}
};
$.get( options, async ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
data = data && data.match( /window\._CONFIG = (.*) ;var __getImgUrl/ )
if ( data ) {
data = JSON.parse( data[ 1 ] );
const tuanConfigs = ( data[ 0 ].skinConfig[ 0 ].adConfig || [] ).filter( vo => !!vo && vo[ 'channel' ] === 'h5' );
if ( tuanConfigs && tuanConfigs.length ) {
for ( let item of tuanConfigs ) {
const start = item.start;
const end = item.end;
const link = item.link;
if ( ( new Date( item.start ).getTime() <= Date.now() ) && ( new Date( item.end ).getTime() > Date.now() ) ) {
if ( link && link.match( /activeId=(.*),/ ) && link.match( /activeId=(.*),/ )[ 1 ] ) {
console.log( `\n团活动ID: ${ link.match( /activeId=(.*),/ )[ 1 ] }\n有效时间:${ start } - ${ end }` );
tuanActiveId = link.match( /activeId=(.*),/ )[ 1 ];
break
}
} else if ( ( new Date( item.start ).getTime() > Date.now() ) && ( new Date( item.end ).getTime() > Date.now() ) ) {
if ( link && link.match( /activeId=(.*),/ ) && link.match( /activeId=(.*),/ )[ 1 ] ) {
console.log( `\n团活动ID: ${ link.match( /activeId=(.*),/ )[ 1 ] }\n有效时间:${ start } - ${ end }\n团ID还未开始` );
tuanActiveId = '';
}
} else {
if ( link && link.match( /activeId=(.*),/ ) && link.match( /activeId=(.*),/ )[ 1 ] ) {
console.log( `\n团活动ID: ${ link.match( /activeId=(.*),/ )[ 1 ] }\n有效时间:${ start } - ${ end }\n团ID已过期` );
tuanActiveId = '';
}
}
}
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 收取发电机的电力
function collectElectricity ( facId = $.factoryId, help = false, master ) {
return new Promise( async resolve => {
// let url = `/dreamfactory/generator/CollectCurrentElectricity?zone=dream_factory&apptoken=&pgtimestamp=&phoneID=&factoryid=${facId}&doubleflag=1&sceneval=2&g_login_type=1`;
// if (help && master) {
// url = `/dreamfactory/generator/CollectCurrentElectricity?zone=dream_factory&factoryid=${facId}&master=${master}&sceneval=2&g_login_type=1`;
// }
let body = `factoryid=${ facId }&apptoken=&pgtimestamp=&phoneID=&doubleflag=1`;
if ( help && master ) {
body += `factoryid=${ facId }&master=${ master }`;
}
$.get( taskurl( `generator/CollectCurrentElectricity`, body, `_time,apptoken,doubleflag,factoryid,pgtimestamp,phoneID,timeStamp,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
if ( help ) {
$.ele += Number( data.data[ 'loginPinCollectElectricity' ] )
console.log( `帮助好友收取 ${ data.data[ 'CollectElectricity' ] } 电力,获得 ${ data.data[ 'loginPinCollectElectricity' ] } 电力` );
message += `【帮助好友】帮助成功,获得 ${ data.data[ 'loginPinCollectElectricity' ] } 电力\n`
} else {
$.ele += Number( data.data[ 'CollectElectricity' ] )
console.log( `收取电力成功: 共${ data.data[ 'CollectElectricity' ] } ` );
message += `【收取发电站】收取成功,获得 ${ data.data[ 'CollectElectricity' ] } 电力\n`
}
} else {
if ( help ) {
console.log( `收取好友电力失败:${ data.msg }\n` );
} else {
console.log( `收取电力失败:${ data.msg }\n` );
}
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 投入电力
function investElectric () {
return new Promise( async resolve => {
// const url = `/dreamfactory/userinfo/InvestElectric?zone=dream_factory&productionId=${$.productionId}&sceneval=2&g_login_type=1`;
$.get( taskurl( 'userinfo/InvestElectric', `productionId=${ $.productionId }`, `_time,productionId,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data.ret === 0 ) {
console.log( `成功投入电力${ data.data.investElectric }电力` );
message += `【投入电力】投入成功,共计 ${ data.data.investElectric } 电力\n`;
} else {
console.log( `投入失败,${ data.msg }` );
message += `【投入电力】投入失败,${ data.msg }\n`;
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 初始化任务
function taskList () {
return new Promise( async resolve => {
// const url = `/newtasksys/newtasksys_front/GetUserTaskStatusList?source=dreamfactory&bizCode=dream_factory&sceneval=2&g_login_type=1`;
$.get( newtasksysUrl( 'GetUserTaskStatusList', '', `_time,bizCode,source` ), async ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
let userTaskStatusList = data[ 'data' ][ 'userTaskStatusList' ];
for ( let i = 0; i < userTaskStatusList.length; i++ ) {
const vo = userTaskStatusList[ i ];
if ( vo[ 'awardStatus' ] !== 1 ) {
if ( vo.completedTimes >= vo.targetTimes ) {
console.log( `任务:${ vo.description }可完成` )
await completeTask( vo.taskId, vo.taskName )
await $.wait( 1000 );//延迟等待一秒
} else {
switch ( vo.taskType ) {
case 2: // 逛一逛任务
case 6: // 浏览商品任务
case 9: // 开宝箱
for ( let i = vo.completedTimes; i <= vo.configTargetTimes; ++i ) {
console.log( `去做任务:${ vo.taskName }` )
await doTask( vo.taskId )
await completeTask( vo.taskId, vo.taskName )
await $.wait( 1000 );//延迟等待一秒
}
break
case 4: // 招工
break
case 5:
// 收集类
break
case 1: // 登陆领奖
default:
break
}
}
}
}
console.log( `完成任务:共领取${ $.ele }电力` )
message += `【每日任务】领奖成功,共计 ${ $.ele } 电力\n`;
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 获得用户电力情况
function getUserElectricity () {
return new Promise( async resolve => {
// const url = `/dreamfactory/generator/QueryCurrentElectricityQuantity?zone=dream_factory&factoryid=${$.factoryId}&sceneval=2&g_login_type=1`
$.get( taskurl( `generator/QueryCurrentElectricityQuantity`, `factoryid=${ $.factoryId }`, `_time,factoryid,zone` ), async ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
console.log( `发电机:当前 ${ data.data.currentElectricityQuantity } 电力,最大值 ${ data.data.maxElectricityQuantity } 电力` )
if ( data.data.currentElectricityQuantity < data.data.maxElectricityQuantity ) {
$.log( `\n本次发电机电力集满分享后${ data.data.nextCollectDoubleFlag === 1 ? '可' : '不可' }获得双倍电力,${ data.data.nextCollectDoubleFlag === 1 ? '故目前不收取电力' : '故现在收取电力' }\n` )
}
if ( data.data.nextCollectDoubleFlag === 1 ) {
if ( data.data.currentElectricityQuantity === data.data.maxElectricityQuantity && data.data.doubleElectricityFlag ) {
console.log( `发电机:电力可翻倍并收获` )
// await shareReport();
await collectElectricity()
} else {
message += `【发电机电力】当前 ${ data.data.currentElectricityQuantity } 电力,未达到收获标准\n`
}
} else {
//再收取双倍电力达到上限时,直接收取,不再等到满级
await collectElectricity()
}
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
//查询有多少的招工电力可收取
function QueryHireReward () {
return new Promise( async resolve => {
// const url = `/dreamfactory/friend/HireAward?zone=dream_factory&date=${new Date().Format("yyyyMMdd")}&type=0&sceneval=2&g_login_type=1`
$.get( taskurl( 'friend/QueryHireReward', ``, `_time,zone` ), async ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
for ( let item of data[ 'data' ][ 'hireReward' ] ) {
if ( item.date !== new Date( new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 ).Format( "yyyyMMdd" ) ) {
await hireAward( item.date, item.type );
}
}
} else {
console.log( `异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 收取招工/劳模电力
function hireAward ( date, type = 0 ) {
return new Promise( async resolve => {
// const url = `/dreamfactory/friend/HireAward?zone=dream_factory&date=${new Date().Format("yyyyMMdd")}&type=0&sceneval=2&g_login_type=1`
$.get( taskurl( 'friend/HireAward', `date=${ date }&type=${ type }`, '_time,date,type,zone' ), async ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
console.log( `打工电力:收取成功` )
message += `【打工电力】:收取成功\n`
} else {
console.log( `打工电力:收取失败,${ data.msg }` )
message += `【打工电力】收取失败,${ data.msg }\n`
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
async function helpFriends () {
let Hours = new Date( new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 ).getHours();
if ( Hours < 6 ) {
console.log( `\n未到招工时间(每日6-24点之间可招工)\n` )
return
}
if ( $.canHelpFlag ) {
await shareCodesFormat();
for ( let code of $.newShareCodes ) {
if ( code ) {
if ( $.encryptPin === code ) {
console.log( `不能为自己助力,跳过` );
continue;
}
const assistFriendRes = await assistFriend( code );
if ( assistFriendRes && assistFriendRes[ 'ret' ] === 0 ) {
console.log( `助力朋友:${ code }成功,因一次只能助力一个,故跳出助力` )
break
} else if ( assistFriendRes && assistFriendRes[ 'ret' ] === 11009 ) {
console.log( `助力朋友[${ code }]失败:${ assistFriendRes.msg },跳出助力` );
break
} else {
console.log( `助力朋友[${ code }]失败:${ assistFriendRes.msg }` )
}
}
}
} else {
$.log( `\n今日助力好友机会已耗尽\n` );
}
}
// 帮助用户,此处UA不可更换,否则助力功能会失效
function assistFriend ( sharepin ) {
return new Promise( async resolve => {
// const url = `/dreamfactory/friend/AssistFriend?zone=dream_factory&sharepin=${escape(sharepin)}&sceneval=2&g_login_type=1`
// const options = {
// 'url': `https://m.jingxi.com/dreamfactory/friend/AssistFriend?zone=dream_factory&sharepin=${escape(sharepin)}&sceneval=2&g_login_type=1`,
// 'headers': {
// "Accept": "*/*",
// "Accept-Encoding": "gzip, deflate, br",
// "Accept-Language": "zh-cn",
// "Connection": "keep-alive",
// "Cookie": cookie,
// "Host": "m.jingxi.com",
// "Referer": "https://st.jingxi.com/pingou/dream_factory/index.html",
// "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"
// }
// }
const options = taskurl( 'friend/AssistFriend', `sharepin=${ escape( sharepin ) }`, `_time,sharepin,zone` );
$.get( options, ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
// if (data['ret'] === 0) {
// console.log(`助力朋友:${sharepin}成功`)
// } else {
// console.log(`助力朋友[${sharepin}]失败:${data.msg}`)
// }
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve( data );
}
} )
} )
}
//查询助力招工情况
function QueryFriendList () {
return new Promise( async resolve => {
$.get( taskurl( 'friend/QueryFriendList', ``, `_time,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
data = data[ 'data' ];
const { assistListToday = [], assistNumMax, hireListToday = [], hireNumMax } = data;
console.log( `\n\n你今日还能帮好友打工(${ assistNumMax - assistListToday.length || 0 }/${ assistNumMax })次\n\n` );
if ( assistListToday.length === assistNumMax ) {
$.canHelpFlag = false;
}
$.log( `【今日招工进度】${ hireListToday.length }/${ hireNumMax }` );
message += `【招工进度】${ hireListToday.length }/${ hireNumMax }\n`;
} else {
console.log( `QueryFriendList异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 任务领奖
function completeTask ( taskId, taskName ) {
return new Promise( async resolve => {
// const url = `/newtasksys/newtasksys_front/Award?source=dreamfactory&bizCode=dream_factory&taskId=${taskId}&sceneval=2&g_login_type=1`;
$.get( newtasksysUrl( 'Award', taskId, `_time,bizCode,source,taskId` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
switch ( data[ 'data' ][ 'awardStatus' ] ) {
case 1:
$.ele += Number( data[ 'data' ][ 'prizeInfo' ].replace( '\\n', '' ) )
console.log( `领取${ taskName }任务奖励成功,收获:${ Number( data[ 'data' ][ 'prizeInfo' ].replace( '\\n', '' ) ) }电力` );
break
case 1013:
case 0:
console.log( `领取${ taskName }任务奖励失败,任务已领奖` );
break
default:
console.log( `领取${ taskName }任务奖励失败,${ data[ 'msg' ] }` )
break
}
// if (data['ret'] === 0) {
// console.log("做任务完成!")
// } else {
// console.log(`异常:${JSON.stringify(data)}`)
// }
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 完成任务
function doTask ( taskId ) {
return new Promise( async resolve => {
// const url = `/newtasksys/newtasksys_front/DoTask?source=dreamfactory&bizCode=dream_factory&taskId=${taskId}&sceneval=2&g_login_type=1`;
$.get( newtasksysUrl( 'DoTask', taskId, '_time,bizCode,configExtra,source,taskId' ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
console.log( "做任务完成!" )
} else {
console.log( `DoTask异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 初始化个人信息
function userInfo () {
return new Promise( async resolve => {
$.get( taskurl( 'userinfo/GetUserInfo', `pin=&sharePin=&shareType=&materialTuanPin=&materialTuanId=&source=`, '_time,materialTuanId,materialTuanPin,pin,sharePin,shareType,source,zone' ), async ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
data = data[ 'data' ];
$.unActive = true;//标记是否开启了京喜活动或者选购了商品进行生产
$.encryptPin = '';
$.shelvesList = [];
if ( data.factoryList && data.productionList ) {
const production = data.productionList[ 0 ];
const factory = data.factoryList[ 0 ];
const productionStage = data.productionStage;
$.factoryId = factory.factoryId;//工厂ID
$.productionId = production.productionId;//商品ID
$.commodityDimId = production.commodityDimId;
$.encryptPin = data.user.encryptPin;
// subTitle = data.user.pin;
await GetCommodityDetails();//获取已选购的商品信息
if ( productionStage[ 'productionStageAwardStatus' ] === 1 ) {
$.log( `可以开红包了\n` );
await DrawProductionStagePrize();//领取红包
} else {
$.log( `再加${ productionStage[ 'productionStageProgress' ] }电力可开红包\n` )
}
console.log( `当前电力:${ data.user.electric }` )
console.log( `当前等级:${ data.user.currentLevel }` )
console.log( `\n【京东账号${ $.index }(${ $.UserName })的${ $.name }好友互助码】${ data.user.encryptPin }` );
console.log( `已投入电力:${ production.investedElectric }` );
console.log( `所需电力:${ production.needElectric }` );
console.log( `生产进度:${ ( ( production.investedElectric / production.needElectric ) * 100 ).toFixed( 2 ) }%` );
message += `【京东账号${ $.index }】${ $.nickName }\n`
message += `【生产商品】${ $.productName }\n`;
message += `【当前等级】${ data.user.userIdentity } ${ data.user.currentLevel }\n`;
message += `【生产进度】${ ( ( production.investedElectric / production.needElectric ) * 100 ).toFixed( 2 ) }%\n`;
if ( production.investedElectric >= production.needElectric ) {
if ( production[ 'exchangeStatus' ] === 1 ) $.log( `\n\n可以兑换商品了` )
if ( production[ 'exchangeStatus' ] === 3 ) {
$.log( `\n\n商品兑换已超时` )
if ( new Date().getHours() === 9 ) {
$.msg( $.name, '', `【京东账号${ $.index }】${ $.nickName }\n【生产商品】${ $.productName }兑换已超时,请选择新商品进行制造` )
if ( `${ notifyLevel }` === '3' || `${ notifyLevel }` === '2' ) allMessage += `【京东账号${ $.index }】${ $.nickName }\n【生产商品】${ $.productName }兑换已超时,请选择新商品进行制造${ $.index !== cookiesArr.length ? '\n\n' : '' }`;
}
}
// await exchangeProNotify()
} else {
console.log( `\n\n预计最快还需 【${ ( ( production.needElectric - production.investedElectric ) / ( 2 * 60 * 60 * 24 ) ).toFixed( 2 ) }天】生产完毕\n\n` )
}
if ( production.status === 3 ) {
$.log( `\n\n商品生产已失效` )
$.msg( $.name, '', `【京东账号${ $.index }】${ $.nickName }\n【生产商品】${ $.productName }\n【超时未完成】已失效,请选择新商品进行制造` )
if ( $.isNode() && ( `${ notifyLevel }` === '3' || `${ notifyLevel }` === '2' ) ) allMessage += `【京东账号${ $.index }】${ $.nickName }\n【生产商品】${ $.productName }\n【超时未完成】已失效,请选择新商品进行制造${ $.index !== cookiesArr.length ? '\n\n' : '' }`;
}
} else {
$.unActive = false;//标记是否开启了京喜活动或者选购了商品进行生产
if ( !data.factoryList ) {
console.log( `【提示】京东账号${ $.index }[${ $.nickName }]京喜工厂活动未开始\n请手动去京东APP->游戏与互动->查看更多->京喜工厂 开启活动\n` );
// $.msg($.name, '【提示】', `京东账号${$.index}[${$.nickName}]京喜工厂活动未开始\n请手动去京东APP->游戏与互动->查看更多->京喜工厂 开启活动`);
} else if ( data.factoryList && !data.productionList ) {
console.log( `【提示】京东账号${ $.index }[${ $.nickName }]京喜工厂未选购商品\n请手动去京东APP->游戏与互动->查看更多->京喜工厂 选购\n` )
let nowTimes = new Date( new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 );
if ( nowTimes.getHours() === 12 ) {
//如按每小时运行一次,则此处将一天12点推送1次提醒
$.msg( $.name, '提醒⏰', `京东账号${ $.index }[${ $.nickName }]京喜工厂未选择商品\n请手动去京东APP->游戏与互动->查看更多->京喜工厂 选择商品` );
// if ($.isNode()) await notify.sendNotify(`${$.name} - 京东账号${$.index} - ${$.nickName}`, `京东账号${$.index}[${$.nickName}]京喜工厂未选择商品\n请手动去京东APP->游戏与互动->查看更多->京喜工厂 选择商品`)
if ( $.isNode() && `${ notifyLevel }` === '3' ) allMessage += `京东账号${ $.index }[${ $.nickName }]京喜工厂未选择商品\n请手动去京东APP->游戏与互动->查看更多->京喜工厂 选择商品${ $.index !== cookiesArr.length ? '\n\n' : '' }`
}
}
}
} else {
console.log( `GetUserInfo异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
//查询当前生产的商品名称
function GetCommodityDetails () {
return new Promise( async resolve => {
// const url = `/dreamfactory/diminfo/GetCommodityDetails?zone=dream_factory&sceneval=2&g_login_type=1&commodityId=${$.commodityDimId}`;
$.get( taskurl( 'diminfo/GetCommodityDetails', `commodityId=${ $.commodityDimId }`, `_time,commodityId,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
data = data[ 'data' ];
$.productName = data[ 'commodityList' ][ 0 ].name;
} else {
console.log( `GetCommodityDetails异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
// 查询已完成商品
function GetShelvesList ( pageNo = 1 ) {
return new Promise( async resolve => {
$.get( taskurl( 'userinfo/GetShelvesList', `pageNo=${ pageNo }&pageSize=12`, `_time,pageNo,pageSize,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
data = data[ 'data' ];
const { shelvesList } = data;
if ( shelvesList ) {
$.shelvesList = [ ...$.shelvesList, ...shelvesList ];
pageNo++
GetShelvesList( pageNo );
}
} else {
console.log( `GetShelvesList异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
//领取红包
function DrawProductionStagePrize () {
return new Promise( async resolve => {
// const url = `/dreamfactory/userinfo/DrawProductionStagePrize?zone=dream_factory&sceneval=2&g_login_type=1&productionId=${$.productionId}`;
$.get( taskurl( 'userinfo/DrawProductionStagePrize', `productionId=${ $.productionId }`, `_time,productionId,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
console.log( `开幸运红包:${ data }` );
// if (safeGet(data)) {
// data = JSON.parse(data);
// if (data['ret'] === 0) {
//
// } else {
// console.log(`异常:${JSON.stringify(data)}`)
// }
// }
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
async function PickUp ( encryptPin = $.encryptPin, help = false ) {
$.pickUpMyselfComponent = true;
const GetUserComponentRes = await GetUserComponent( encryptPin, 1500 );
if ( GetUserComponentRes && GetUserComponentRes[ 'ret' ] === 0 && GetUserComponentRes[ 'data' ] ) {
const { componentList } = GetUserComponentRes[ 'data' ];
if ( componentList && componentList.length <= 0 ) {
if ( help ) {
$.log( `好友【${ encryptPin }】地下暂无零件可收\n` )
} else {
$.log( `自家地下暂无零件可收\n` )
}
$.pickUpMyselfComponent = false;
}
for ( let item of componentList ) {
await $.wait( 1000 );
const PickUpComponentRes = await PickUpComponent( item[ 'placeId' ], encryptPin );
if ( PickUpComponentRes ) {
if ( PickUpComponentRes[ 'ret' ] === 0 ) {
const data = PickUpComponentRes[ 'data' ];
if ( help ) {
console.log( `收取好友[${ encryptPin }]零件成功:获得${ data[ 'increaseElectric' ] }电力\n` );
$.pickFriendEle += data[ 'increaseElectric' ];
} else {
console.log( `收取自家零件成功:获得${ data[ 'increaseElectric' ] }电力\n` );
$.pickEle += data[ 'increaseElectric' ];
}
} else {
if ( help ) {
console.log( `收好友[${ encryptPin }]零件失败:${ PickUpComponentRes.msg },直接跳出\n` )
} else {
console.log( `收自己地下零件失败:${ PickUpComponentRes.msg },直接跳出\n` );
$.pickUpMyselfComponent = false;
}
break
}
}
}
}
}
function GetUserComponent ( pin = $.encryptPin, timeout = 0 ) {
return new Promise( resolve => {
setTimeout( () => {
$.get( taskurl( 'usermaterial/GetUserComponent', `pin=${ pin }`, `_time,pin,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
} else {
console.log( `GetUserComponent失败:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve( data );
}
} )
}, timeout )
} )
}
//收取地下随机零件电力API
function PickUpComponent ( index, encryptPin ) {
return new Promise( resolve => {
$.get( taskurl( 'usermaterial/PickUpComponent', `placeId=${ index }&pin=${ encryptPin }`, `_time,pin,placeId,zone` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
// if (data['ret'] === 0) {
// data = data['data'];
// if (help) {
// console.log(`收取好友[${encryptPin}]零件成功:获得${data['increaseElectric']}电力\n`);
// $.pickFriendEle += data['increaseElectric'];
// } else {
// console.log(`收取自家零件成功:获得${data['increaseElectric']}电力\n`);
// $.pickEle += data['increaseElectric'];
// }
// } else {
// if (help) {
// console.log(`收好友[${encryptPin}]零件失败:${JSON.stringify(data)}`)
// } else {
// console.log(`收零件失败:${JSON.stringify(data)}`)
// }
// }
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve( data );
}
} )
} )
}
//偷好友的电力
async function stealFriend () {
// if (!$.pickUpMyselfComponent) {
// $.log(`今日收取零件已达上限,偷好友零件也达到上限,故跳出`)
// return
// }
//调整,只在每日1点,12点,19点尝试收取好友零件
if ( new Date().getHours() !== 1 && new Date().getHours() !== 12 && new Date().getHours() !== 19 ) return
await getFriendList();
$.friendList = [ ...new Set( $.friendList ) ].filter( vo => !!vo && vo[ 'newFlag' ] !== 1 );
console.log( `查询好友列表完成,共${ $.friendList.length }好友,下面开始拾取好友地下的零件\n` );
for ( let i = 0; i < $.friendList.length; i++ ) {
let pin = $.friendList[ i ][ 'encryptPin' ];//好友的encryptPin
console.log( `\n开始收取第 ${ i + 1 } 个好友 【${ $.friendList[ i ][ 'nickName' ] }】 地下零件 collectFlag:${ $.friendList[ i ][ 'collectFlag' ] }` )
await PickUp( pin, true );
// await getFactoryIdByPin(pin);//获取好友工厂ID
// if ($.stealFactoryId) await collectElectricity($.stealFactoryId,true, pin);
}
}
function getFriendList ( sort = 0 ) {
return new Promise( async resolve => {
$.get( taskurl( 'friend/QueryFactoryManagerList', `sort=${ sort }`, `_time,sort,zone` ), async ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
data = data[ 'data' ];
if ( data.list && data.list.length <= 0 ) {
// console.log(`查询好友列表完成,共${$.friendList.length}好友,下面开始拾取好友地下的零件\n`);
return
}
let friendsEncryptPins = [];
for ( let item of data.list ) {
friendsEncryptPins.push( item );
}
$.friendList = [ ...$.friendList, ...friendsEncryptPins ];
// if (!$.isNode()) return
await getFriendList( data.sort );
} else {
console.log( `QueryFactoryManagerList异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
function getFactoryIdByPin ( pin ) {
return new Promise( ( resolve, reject ) => {
// const url = `/dreamfactory/userinfo/GetUserInfoByPin?zone=dream_factory&pin=${pin}&sceneval=2`;
$.get( taskurl( 'userinfo/GetUserInfoByPin', `pin=${ pin }` ), ( err, resp, data ) => {
try {
if ( err ) {
console.log( `${ JSON.stringify( err ) }` )
console.log( `${ $.name } API请求失败,请检查网路重试` )
} else {
if ( safeGet( data ) ) {
data = JSON.parse( data );
if ( data[ 'ret' ] === 0 ) {
if ( data.data.factoryList ) {
//做此判断,有时候返回factoryList为null
// resolve(data['data']['factoryList'][0]['factoryId'])
$.stealFactoryId = data[ 'data' ][ 'factoryList' ][ 0 ][ 'factoryId' ];
}
} else {
console.log( `异常:${ JSON.stringify( data ) }` )
}
}
}
} catch ( e ) {
$.logErr( e, resp )
} finally {
resolve();
}
} )
} )
}
async function tuanActivity () {
const tuanConfig = await QueryActiveConfig();
if ( tuanConfig && tuanConfig.ret === 0 ) {
const { activeId, surplusOpenTuanNum, tuanId } = tuanConfig[ 'data' ][ 'userTuanInfo' ];
console.log( `今日剩余开团次数:${ surplusOpenTuanNum }次` );
$.surplusOpenTuanNum = surplusOpenTuanNum;
if ( !tuanId && surplusOpenTuanNum > 0 ) {
//开团
$.log( `准备开团` )
await CreateTuan();
} else if ( tuanId ) {
//查询词团信息
const QueryTuanRes = await QueryTuan( activeId, tuanId );
if ( QueryTuanRes && QueryTuanRes.ret === 0 ) {
const { tuanInfo } = QueryTuanRes.data;
if ( ( tuanInfo && tuanInfo[ 0 ][ 'endTime' ] ) <= QueryTuanRes[ 'nowTime' ] && surplusOpenTuanNum > 0 ) {
$.log( `之前的团已过期,准备重新开团\n` )
await CreateTuan();
return
}