├── AndroidQQ.py ├── Keys.py ├── Keys.pyc ├── README.md ├── RawSocket.py ├── RawSocket.pyc ├── Tlv.py ├── Tlv.pyc ├── Tools.py ├── Tools.pyc ├── help ├── generateKeyCode.py ├── keys.log ├── keys_code.java ├── keys_code.py └── 相关链接.txt ├── keys.log └── test.py /AndroidQQ.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import time 4 | import threading 5 | import random 6 | 7 | from Tools import Coder 8 | from Tools import MD5 9 | from Tools import TEA 10 | from Tools import HexPacket 11 | from Tools import Img 12 | import Keys 13 | from Tlv import Tlv 14 | from RawSocket import RawSocket 15 | 16 | 17 | 18 | class AndroidQQ: 19 | '''android qq''' 20 | def __init__(self, qqnum, qqpwd): 21 | self.socket = RawSocket('113.108.90.53', 8080) 22 | if not self.socket.connect(): 23 | raise Exception('socket connect error!') 24 | #QQ 25 | self.qqnum = qqnum 26 | self.qqpwd = qqpwd 27 | self.vcode = '' 28 | self.qqHexstr = Coder.str2hexstr(qqnum) 29 | self.pwdMd5 = MD5.md5_hex(qqpwd) 30 | self.uin = Coder.qqnum2hexstr(qqnum) 31 | self.HEART_INTERVAL = 8*60 #心跳时间间隔 如果在手机QQ上注销/退出帐号后,一般10分钟左右您的QQ号就不会显示在线了 32 | self.server_time = Coder.num2hexstr(int(time.time()), 4) 33 | self.alive = False 34 | self.verify = False 35 | 36 | #Android 37 | self.seq = 1000 38 | self.appId = Coder.num2hexstr(537042772, 4) 39 | self.extBin = Coder.trim('') 40 | self.msgCookies = Coder.trim('F9 83 8D 80') 41 | self.imei = Coder.str2hexstr('864116195797922') 42 | self.ksid = Coder.trim('') 43 | self.extBin = Coder.trim('') 44 | self.ver = Coder.str2hexstr('|460006202217491|A5.8.0.157158') 45 | self.os_type = Coder.str2hexstr('android') 46 | self.os_version = Coder.str2hexstr('4.2.2') 47 | self.network_type = Coder.str2hexstr('') 48 | self.sim_operator_name = Coder.str2hexstr('CMCC') 49 | self.apn = Coder.str2hexstr('wifi') 50 | self.device = Coder.str2hexstr('Lenovo A820t') 51 | self.device_product = Coder.str2hexstr('Lenovo') 52 | self.package_name = Coder.str2hexstr('com.tencent.mobileqq') 53 | self.wifi_name = Coder.str2hexstr('OOOOOOOOO') 54 | 55 | #cmd 56 | self.loginCmd = Coder.str2hexstr('wtlogin.login') 57 | 58 | #Keys 59 | self.defaultKey = '00'*16 60 | self.randomKey = Coder.genBytesHexstr(16) 61 | self.keyId = random.randint(0, len(Keys.pubKeys)-1) 62 | self.pubKey = Keys.pubKeys[self.keyId] 63 | self.shareKey = Keys.shareKeys[self.keyId] 64 | self.pwdKey = Coder.hash_qqpwd_hexstr(qqnum, qqpwd) 65 | self.tgtKey = Coder.genBytesHexstr(16) 66 | self.sessionKey = '' 67 | 68 | #debug 69 | print 'uin: ', self.uin 70 | print 'pwdMd5: ', self.pwdMd5 71 | print 'randomKey: ', self.randomKey 72 | print 'pubKey: ', self.pubKey 73 | print 'shareKey: ', self.shareKey 74 | print 'pwdKey: ', self.pwdKey 75 | print 'tgtKey: ', self.tgtKey 76 | 77 | def __del__(self): 78 | pass 79 | 80 | def sendHeart(self): 81 | '''发心跳包''' 82 | pass 83 | def startHeart(self): 84 | '''开始心跳''' 85 | while True: 86 | time.sleep(self.HEART_INTERVAL) 87 | self.sendHeart() 88 | 89 | def login(self, verifyCode=None): 90 | '''登录''' 91 | #发送登录请求 92 | packet = '' 93 | #包头 94 | packet += Coder.trim('00 00 00 08 02 00 00 00 04 00') 95 | packet += Coder.num2hexstr(len(self.qqHexstr)/2+4, 4) 96 | packet += self.qqHexstr 97 | #TEA加密的包体 98 | packet += self.packSendLoginMessage(verifyCode) 99 | #总包长 100 | packet = Coder.num2hexstr(len(packet)/2+4, 4) + packet 101 | #发送请求 102 | self.socket.sendall(Coder.hexstr2str(packet)) 103 | #接收请求 104 | ret = self.socket.recv() 105 | pack = HexPacket(Coder.str2hexstr(ret)) 106 | #返回包头 107 | pack.shr(4) 108 | pack.shr(8) 109 | pack.shr(2 + len(self.qqHexstr)/2) 110 | #返回包体 111 | self.unpackRecvLoginMessage(pack.remain()) 112 | 113 | if self.alive: #登录成功 114 | threading.Thread(target=self.startHeart).start() #心跳 115 | return True 116 | elif self.verify: #需要验证码 117 | pass 118 | else: 119 | return False 120 | def unpackRecvLoginMessage(self, data): 121 | data = TEA.detea_hexstr(data, self.defaultKey) 122 | pack = HexPacket(data) 123 | head = pack.shr(Coder.hexstr2num(pack.shr(4))-4) 124 | body = pack.remain(1) 125 | #head 126 | pack = HexPacket(head) 127 | Coder.hexstr2num(pack.shr(4)) #seq 128 | pack.shr(4) 129 | pack.shr(Coder.hexstr2num(pack.shr(4))-4) 130 | Coder.hexstr2str(pack.shr(Coder.hexstr2num(pack.shr(4))-4)) #cmd 131 | pack.shr(Coder.hexstr2num(pack.shr(4))-4) 132 | #body 133 | pack = HexPacket(body) 134 | pack.shr(4 + 1 + 2 + 10 + 2) 135 | retCode = Coder.hexstr2num(pack.shr(1)) 136 | if retCode == 0: #登录成功 137 | self.unpackRecvLoginSucceedMessage(pack.remain()) 138 | print u'登录成功: ', self.nickname 139 | self.alive = True 140 | self.verify = False 141 | elif retCode == 2: #需要验证码 142 | self.unpackRecvLoginVerifyMessage(pack.remain()) 143 | print self.verifyReason 144 | self.alive = False 145 | self.verify = True 146 | threading.Thread(target=Img.showFromHexstr, args=(self.verifyPicHexstr, )).start() 147 | code = raw_input(u'请输入验证码:') 148 | self.login(Coder.str2hexstr(code)) 149 | else: #登录失败 150 | pack = HexPacket(TEA.detea_hexstr(pack.remain(), self.shareKey)) 151 | pack.shr(2 + 1 + 4 + 2) 152 | pack.shr(4) #type 153 | title = Coder.hexstr2str(pack.shr(Coder.hexstr2num(pack.shr(2)))) 154 | msg = Coder.hexstr2str(pack.shr(Coder.hexstr2num(pack.shr(2)))) 155 | print title, ': ', msg 156 | self.alive = False 157 | self.verify = False 158 | 159 | def unpackRecvLoginVerifyMessage(self, data): 160 | data = TEA.detea_hexstr(data, self.shareKey) 161 | pack = HexPacket(data) 162 | pack.shr(3) 163 | tlv_num = Coder.hexstr2num(pack.shr(2)) 164 | for i in xrange(tlv_num): 165 | tlv_cmd = pack.shr(2) 166 | tlv_data = pack.shr(Coder.hexstr2num(pack.shr(2))) 167 | self.decodeTlv(tlv_cmd, tlv_data) 168 | pass 169 | def unpackRecvLoginSucceedMessage(self, data): 170 | data = TEA.detea_hexstr(data, self.shareKey) 171 | pack = HexPacket(data) 172 | pack.shr(2 + 1 + 4) 173 | data = pack.shr(Coder.hexstr2num(pack.shr(2))) 174 | #TLV解包 175 | data = TEA.detea_hexstr(data, self.tgtKey) 176 | pack = HexPacket(data) 177 | tlv_num = Coder.hexstr2num(pack.shr(2)) 178 | for i in xrange(tlv_num): 179 | tlv_cmd = pack.shr(2) 180 | tlv_data = pack.shr(Coder.hexstr2num(pack.shr(2))) 181 | self.decodeTlv(tlv_cmd, tlv_data) 182 | def decodeTlv(self, cmd, data): 183 | if cmd == Coder.trim('01 6A'): 184 | pass 185 | elif cmd == Coder.trim('01 06'): 186 | pass 187 | elif cmd == Coder.trim('01 0C'): 188 | pass 189 | elif cmd == Coder.trim('01 0A'): 190 | self.token004c = data 191 | elif cmd == Coder.trim('01 0D'): 192 | pass 193 | elif cmd == Coder.trim('01 14'): 194 | pack = HexPacket(data) 195 | pack.shr(6) 196 | self.token0058 = pack.shr(Coder.hexstr2num(pack.shr(2))) 197 | elif cmd == Coder.trim('01 0E'): 198 | self.mst1Key = data 199 | elif cmd == Coder.trim('01 03'): 200 | self.stweb = data 201 | elif cmd == Coder.trim('01 1F'): 202 | pass 203 | elif cmd == Coder.trim('01 38'): 204 | pass 205 | elif cmd == Coder.trim('01 1A'): 206 | pack = HexPacket(data) 207 | pack.shr(2 + 1 + 1) 208 | self.nickname = Coder.hexstr2str(pack.shr(Coder.hexstr2num(pack.shr(1)))) 209 | elif cmd == Coder.trim('01 20'): 210 | self.skey = data 211 | elif cmd == Coder.trim('01 36'): 212 | self.vkey = data 213 | elif cmd == Coder.trim('01 1A'): 214 | pass 215 | elif cmd == Coder.trim('01 20'): 216 | pass 217 | elif cmd == Coder.trim('01 36'): 218 | pass 219 | elif cmd == Coder.trim('03 05'): 220 | self.sessionKey = data 221 | elif cmd == Coder.trim('01 43'): 222 | self.token002c = data 223 | elif cmd == Coder.trim('01 64'): 224 | self.sid = data 225 | elif cmd == Coder.trim('01 18'): 226 | pass 227 | elif cmd == Coder.trim('01 63'): 228 | pass 229 | elif cmd == Coder.trim('01 30'): 230 | pack = HexPacket(data) 231 | pack.shr(2) 232 | self.server_time = pack.shr(4) 233 | self.ip = Coder.hexstr2ip(pack.shr(4)) 234 | elif cmd == Coder.trim('01 05'): 235 | pack = HexPacket(data) 236 | self.verifyToken1 = pack.shr(Coder.hexstr2num(pack.shr(2))) 237 | self.verifyPicHexstr = pack.shr(Coder.hexstr2num(pack.shr(2))) 238 | elif cmd == Coder.trim('01 04'): 239 | self.verifyToken2 = data 240 | elif cmd == Coder.trim('01 65'): 241 | pack = HexPacket(data) 242 | pack.shr(4) 243 | title = Coder.hexstr2str(pack.shr(Coder.hexstr2num(pack.shr(1)))) 244 | msg = Coder.hexstr2str(pack.shr(Coder.hexstr2num(pack.shr(4)))) 245 | self.verifyReason = title + ": " + msg 246 | elif cmd == Coder.trim('01 08'): 247 | self.ksid = data 248 | elif cmd == Coder.trim('01 6D'): 249 | self.superKey = data 250 | elif cmd == Coder.trim('01 6C'): 251 | self.psKey = data 252 | else: 253 | print 'unknown tlv: ' 254 | print cmd, ': ', data 255 | def packSendLoginMessage(self, verifyCode=None): 256 | #MessageHead 257 | msgHeader = '' 258 | msgHeader += Coder.num2hexstr(self.seq+1, 4) 259 | msgHeader += self.appId 260 | msgHeader += self.appId 261 | msgHeader += Coder.trim('01 00 00 00 00 00 00 00 00 00 00 00') 262 | msgHeader += Coder.num2hexstr(len(self.extBin)/2+4, 4) + self.extBin 263 | msgHeader += Coder.num2hexstr(len(self.loginCmd)/2+4, 4) + self.loginCmd 264 | msgHeader += Coder.num2hexstr(len(self.msgCookies)/2+4, 4) + self.msgCookies 265 | msgHeader += Coder.num2hexstr(len(self.imei)/2+4, 4) + self.imei 266 | msgHeader += Coder.num2hexstr(len(self.ksid)/2+4, 4) + self.ksid 267 | msgHeader += Coder.num2hexstr(len(self.ver)/2+2, 2) + self.ver 268 | msgHeader = Coder.num2hexstr(len(msgHeader)/2+4, 4) + msgHeader 269 | #Message 270 | msg = '' 271 | msg += Coder.trim('1F 41') 272 | msg += Coder.trim('08 10 00 01') 273 | msg += self.uin 274 | msg += Coder.trim('03 07 00 00 00 00 02 00 00 00 00 00 00 00 00 01 01') 275 | msg += self.randomKey 276 | msg += Coder.trim('01 02') 277 | msg += Coder.num2hexstr(len(self.pubKey)/2, 2) + self.pubKey 278 | #TEA加密的TLV 279 | msg += self.packSendLoginTlv(verifyCode) 280 | 281 | msg += Coder.trim('03') 282 | msg = Coder.num2hexstr(len(msg)/2+2+1, 2) + msg 283 | msg = Coder.trim('02') + msg 284 | msg = Coder.num2hexstr(len(msg)/2+4, 4) + msg 285 | 286 | packet = msgHeader + msg 287 | packet = TEA.entea_hexstr(packet, self.defaultKey) 288 | return packet 289 | def packSendLoginTlv(self, verifyCode=None): 290 | if verifyCode == None: 291 | tlv = '' 292 | tlv += Coder.trim('00 09') 293 | tlv += Coder.trim('00 14') #tlv包个数 294 | #tlv组包 295 | tlv += Tlv.tlv18(self.uin) 296 | tlv += Tlv.tlv1(self.uin, self.server_time) 297 | tlv += Tlv.tlv106(self.uin, self.server_time, self.pwdMd5, self.tgtKey, self.imei, self.appId, self.pwdKey) 298 | tlv += Tlv.tlv116() 299 | tlv += Tlv.tlv100() 300 | tlv += Tlv.tlv107() 301 | tlv += Tlv.tlv144(self.tgtKey, self.imei, self.os_type, self.os_version, self.network_type, self.sim_operator_name, self.apn, self.device, self.device_product) 302 | tlv += Tlv.tlv142(self.package_name) 303 | tlv += Tlv.tlv145(self.imei) 304 | tlv += Tlv.tlv154(self.seq) 305 | tlv += Tlv.tlv141(self.sim_operator_name, self.network_type, self.apn) 306 | tlv += Tlv.tlv8() 307 | tlv += Tlv.tlv16b() 308 | tlv += Tlv.tlv147() 309 | tlv += Tlv.tlv177() 310 | tlv += Tlv.tlv187() 311 | tlv += Tlv.tlv188() 312 | tlv += Tlv.tlv191() 313 | tlv += Tlv.tlv194() 314 | tlv += Tlv.tlv202(self.wifi_name) 315 | tlv = TEA.entea_hexstr(tlv, self.shareKey) 316 | return tlv 317 | else: 318 | tlv = '' 319 | tlv += Coder.trim('00 02') 320 | tlv += Coder.trim('00 04') 321 | #tlv组包 322 | tlv += Tlv.tlv2(verifyCode, self.verifyToken1) 323 | tlv += Tlv.tlv8() 324 | tlv += Tlv.tlv104(self.verifyToken2) 325 | tlv += Tlv.tlv116() 326 | tlv = TEA.entea_hexstr(tlv, self.shareKey) 327 | return tlv 328 | def logout(self): 329 | '''注销''' 330 | pass 331 | 332 | def getVcode(self): 333 | '''获取验证码''' 334 | pass 335 | 336 | def test(): 337 | qq = AndroidQQ("qq number", "password") 338 | qq.login() 339 | 340 | if __name__ == '__main__': 341 | test() 342 | -------------------------------------------------------------------------------- /Keys.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Tue Jun 28 19:46:07 2016 4 | @author: Alost 5 | """ 6 | 7 | pubKeys = [] 8 | shareKeys = [] 9 | 10 | #初始化 11 | pubKeys.append("026E342D4365CF9A8E3DF088358B4FFB566BB366D0B4D04EA5"); 12 | shareKeys.append("B301562BBDC14207E4A234A7F8991D7C"); 13 | pubKeys.append("02446540DFB4592726F6BC03F409E911CD18DBC488A395F12A"); 14 | shareKeys.append("9AB981FB63CD2C370697DFAA928924C0"); 15 | pubKeys.append("02935B5245B860C92231806339F724633622662456F81059B1"); 16 | shareKeys.append("CBC8F774167AB906EF19757426649615"); 17 | pubKeys.append("03D09A11A951BF386467DD458DE1AA08A3DEFE6A689F4047C5"); 18 | shareKeys.append("D324B8C1DC05AF95D8DD29A6A00C5746"); 19 | pubKeys.append("03EFCA38013B27EFC4698877DA65EB342282AECCB2C18B3656"); 20 | shareKeys.append("531447D108759C9DDD8419BF356EE190"); 21 | pubKeys.append("03C4D52B36E7F12E7B52E3F18030FCD8CFFDA24BDD49108C24"); 22 | shareKeys.append("7EF18AD02A7E08D7552B54F0A1CAB854"); 23 | pubKeys.append("035EB4D273AC31C5C34F335B5503678EF75C480D28A773F117"); 24 | shareKeys.append("EB15FF65D78D88698D9E0C2F95F3E341"); 25 | pubKeys.append("02B5E7A7F42DFE66CF7BE70E6D0666A14136FB32CA17E9D75C"); 26 | shareKeys.append("8F80B215F8D133FCB7E2EF8D1215D72C"); 27 | pubKeys.append("03BC21DD33608B7A8241BEA5EB7FF6CB596841975E0A48BE94"); 28 | shareKeys.append("06B00CD3A4D131444D1BAD2875CBA7E8"); 29 | pubKeys.append("02E093BF367B70FF94067732C8A3EBCBB8FA78154F8395F5C1"); 30 | shareKeys.append("4AE098DB9782262178BF1D0E6013FB13"); 31 | pubKeys.append("03778D044334A4F62D83B25525B3C7448370A993033375C906"); 32 | shareKeys.append("060022DD7E98B7A605AEF09FF28FB54B"); 33 | pubKeys.append("0327F8820231E30AC087CBEF923FDAB221D5C2C2965C1F48F3"); 34 | shareKeys.append("B4FA8265F488A9580E51E45FCAA1B504"); 35 | pubKeys.append("0286522A9321C554E9F6505C28D5D8937DEC9F13E4AA2BE9FA"); 36 | shareKeys.append("DA2811856AB4F4661A6EBED2E308CB15"); 37 | pubKeys.append("031808DBF32BC04E2AF3C1BFA5A8B7043F7870B58E440E5830"); 38 | shareKeys.append("9BDB3E53FA2A953DDC18E36AAFF02188"); 39 | pubKeys.append("03E96EC2B3E52F26D8139F3B9B191432B6C01C0521F393AF98"); 40 | shareKeys.append("69CC5FB87FADD79C8CE8B3CE1DE6E27E"); 41 | pubKeys.append("038DD887461EE27D76C0EC49B3FA9F1B54D23AABD8D7DF8CF5"); 42 | shareKeys.append("B6141F076E48F658F61356F79B1C728A"); 43 | pubKeys.append("036E847DDDCC879D1E17FBA67ED429440EE81C4B9E5AEA1FF7"); 44 | shareKeys.append("F13669CF54CB2BF16AE25A8BFA48B617"); 45 | pubKeys.append("0373461388C74F0E4981C39ACD321F330CEE4213C092F2FB46"); 46 | shareKeys.append("A6E5DBDED0C8C107DA3A99D1D156BBF8"); 47 | pubKeys.append("03C9F5EBD1EFA481FE517F470663010EAE56096F8F5DA9BAA7"); 48 | shareKeys.append("FBAE6D98AFAB9CEDAF95265D645454A2"); 49 | pubKeys.append("02122958E321F20F172CFC5639CDECB96C0B219C794C31EEC0"); 50 | shareKeys.append("5D5C6DEFA79542C33EE3182605E8BDD4"); 51 | pubKeys.append("031237BF1BC8DAC11D9E35467EC4525EF7A758710FE2176F1F"); 52 | shareKeys.append("A4A80FEB2E1B8B8D0158EF472C6C0FBE"); 53 | pubKeys.append("02546453AC9B615AB9B53DEC3388B36BDC52DD60FF24DED25D"); 54 | shareKeys.append("815BBEA6999405DB507659B55B80FC98"); 55 | pubKeys.append("033A867016A13C45F45B33F40C4076B84F13DE1BD26A2A0C0A"); 56 | shareKeys.append("3BD540080BDB8690A71077E23AE1BC2A"); 57 | pubKeys.append("03F7D00F9C375420255D2752618C61C461D4ADBEB313A5A186"); 58 | shareKeys.append("94EBAC0DB07F72FCE39E07C95818443C"); 59 | pubKeys.append("02832373E5BF546D1C45ACDEA0BD0AF758195CB97A74036187"); 60 | shareKeys.append("231061F424193A03BAD6F3620676A916"); 61 | pubKeys.append("023F885CC51FD374524DD1A26F3BAEC6E0816F768386134020"); 62 | shareKeys.append("F37B7C9B70504A2D2908E95BD4410D31"); 63 | pubKeys.append("02BDBE429C5BF300B5E56E29602250D11BCDD44F2E86734BBA"); 64 | shareKeys.append("04D61BB4AEF031ECEF64ABB4B48EA595"); 65 | pubKeys.append("031A36E1C8FB017C7D1F1B136F2697597F49A0C20EC74AEBF4"); 66 | shareKeys.append("0D63E7475B73C4B3EEA8F00EAA0783CA"); 67 | pubKeys.append("02818B30B761E23916A45170ADBF8E00BEBAD449EC291C05A0"); 68 | shareKeys.append("AB73280A8DA5946AC6B29ED021C8654E"); 69 | pubKeys.append("03DB3A5A7C83EE5168A050813F45035D3D074BA0467A095676"); 70 | shareKeys.append("90BF87A31C40698AB1612A4A0ECB8F7C"); 71 | pubKeys.append("031E75B0E8D473C616170A593528701C75428BE9F01935D365"); 72 | shareKeys.append("12A92D0BA5F84694870345F59F89EF25"); 73 | pubKeys.append("0261F537693C252A03C5DC2C4EDBAF81B25D7ECFC6E3C7CF15"); 74 | shareKeys.append("D7E252E7D0BF47F81438E86251898919"); 75 | pubKeys.append("02DE1808FA0F90F9476EDDF5689D75CB9E2A72021E5F596B00"); 76 | shareKeys.append("B8F3CA92CC816C7E58859ACA538FF109"); 77 | pubKeys.append("0289F89875BFCA143524803000DC35965953F6C0908E199E6D"); 78 | shareKeys.append("00FC2E0C43579E68EB86A0113F489F53"); 79 | pubKeys.append("029D504C68F09723C146EBF45D2DCA3709A5D6A54754864785"); 80 | shareKeys.append("E167A116A8CE54261DD720D398BAC211"); 81 | pubKeys.append("02DE041072962721FA6A673389C22E21500DEE987DAFBFB939"); 82 | shareKeys.append("C3E26A1FFC490453ACA68C388C62F061"); 83 | pubKeys.append("026B982400D2D9CE37B25DCF13A8A76FC0802EE5C985DA931F"); 84 | shareKeys.append("82A9ED7408D1B80D6C443F45F2D24F23"); 85 | pubKeys.append("02B763293DCA0177F1292A6914DCCC8534EB57748A59C5C01B"); 86 | shareKeys.append("91479CCFBFDF71AF9D9A2AE889803CB0"); 87 | pubKeys.append("0242282FDDAA543E9657FAF0902CCC2A0CE22FE5BFA2769966"); 88 | shareKeys.append("F2742DEA1F6625D22279EC7BCD6CC1FB"); 89 | pubKeys.append("02FBE0E118E7C4BB0C592DBEEBD46EE5B171CDB2FD5CBCD3B6"); 90 | shareKeys.append("24633C181D0A044455357D51945C167D"); 91 | pubKeys.append("02750F3DFE9E4C76EF4F3FB93D787752A2C71B1BB26B7DC7FD"); 92 | shareKeys.append("8B3529168A85E08476E99C7AD81184C9"); 93 | pubKeys.append("03773E035A42927FB60302AEEFBBF3C38F1688E493E71E8D55"); 94 | shareKeys.append("51786028574BFAE417FE2E917DB9D2FC"); 95 | pubKeys.append("03033B6AA18C43E35115F0D3A9C96BC39C4BFD62E7F06EEEFD"); 96 | shareKeys.append("2806293FB061116620F0BA98596261FE"); 97 | pubKeys.append("02FFDA46FDBBB4329354F6F605D3BD3B9318ADC6931970789D"); 98 | shareKeys.append("A4EA7D3FE05E64DECD590AA28C102F8D"); 99 | pubKeys.append("03BFCA38C22DE388B36A0738E36439D6F462B54D3B70BD413F"); 100 | shareKeys.append("598CDD368DBCBB9576D93FDED7408881"); 101 | pubKeys.append("02627AB98F38E10E728EFEDD7F4F341A8EB254425DED404B49"); 102 | shareKeys.append("1428A8C32E83938282E78020C12E72F3"); 103 | pubKeys.append("02D1AE4C52B2AC8BE4CAFDFB5CACCA5681B26733F91FAE2986"); 104 | shareKeys.append("08C1A214C4E76086152128B59784D1AA"); 105 | pubKeys.append("030A2C6D2EA4834F561E46DE8C51336FB4AE0A20DC4F575085"); 106 | shareKeys.append("555A19A46024ACFB08F38A92F54F04B4"); 107 | pubKeys.append("036001B8B461A831C248B5B15A90E1F02117DFF5BC8CDD74DF"); 108 | shareKeys.append("BF72203FF0538ABB1E785EF7670D107F"); 109 | pubKeys.append("035D07937FA602FC77E79A79CF0150D0F01AE76F14C814B9BE"); 110 | shareKeys.append("E7D985A2DECF40C1FB181AED896801C1"); 111 | pubKeys.append("02945DE850E28C1F2B596A55BDB008B7BC4B389987BE9F7FE8"); 112 | shareKeys.append("2759D301415416F4D0584742E67A66F9"); 113 | pubKeys.append("02D6B3A1D7B28DD9999D6540C7A094C766094E61CD6C3F800B"); 114 | shareKeys.append("846A45D92DEBC851C0403577595874A7"); 115 | pubKeys.append("021294039FE3C0CE47D3C2F82A88EFE91A15C21BDAD46BB831"); 116 | shareKeys.append("791A62A9788D19E783CD3D8169229D73"); 117 | pubKeys.append("027B613B476034427FB93B57323AF63D840BD96EDFA57E5123"); 118 | shareKeys.append("E631E319968065F7CDAFFA3E003A321E"); 119 | pubKeys.append("036926289E74C6A7AB8B178F25B3FA8CAFA49BA33705EA5403"); 120 | shareKeys.append("EFBADDE297AA43F51D7909BAF5E36B4B"); 121 | pubKeys.append("02DC297EC5A554E74CFF8428A84D6D80FF202CD0895E253504"); 122 | shareKeys.append("33D1940E0C240D9AA4DC1DCE170BDDC0"); 123 | pubKeys.append("0236F8958D400AEEE4378C96C636F9A2A1EADA722E97663ED7"); 124 | shareKeys.append("D5E8568021D4C673FDDC6B2E07556D5D"); 125 | pubKeys.append("0357884BA0FE03E3884EF3C57968C64E390E58ABC591F231A4"); 126 | shareKeys.append("F821D9FFA0CA1BB5B08345359DCD2E08"); 127 | pubKeys.append("02485C5EAB01F95E5298B92AE5B00D8E0BB0DD2DEC1246F390"); 128 | shareKeys.append("039E5AC955D78D6191C69B981E8FBFCB"); 129 | pubKeys.append("020BA10E46EEA305613C02E3D9A283B4BB27FFE766733785C9"); 130 | shareKeys.append("DA2A793DA25CD401B672A13FA8EF1027"); 131 | pubKeys.append("02776C1BB78955F399F38AABEC4229D74A6165A23450945236"); 132 | shareKeys.append("FEB3C23A60936E3F8FBEAF5DD26F1B91"); 133 | pubKeys.append("039D36F3D684A824F6A578DE0561BD45C116F60A1AFD46471E"); 134 | shareKeys.append("F93192749CD61B582230B181D5B58EC7"); 135 | pubKeys.append("02B3EAE23042BD86015E090E39675095ADE69BC3265C9A8C55"); 136 | shareKeys.append("286A1CCCB04279D054DB9571BADBDA95"); 137 | pubKeys.append("038E8AC9EAF8D4B7FEA049AA7B4275D9093447439FDD8E1C7E"); 138 | shareKeys.append("4A2B4E73217F5B8D22D50B5F0D9E1215"); 139 | pubKeys.append("030C159B4F419331655B16490B61872B9612F9237726541A4B"); 140 | shareKeys.append("E12D1E27F0E5A7EA80BE438959319C1D"); 141 | pubKeys.append("038766057A5D3392349D95B508AD8A34FC67ECE31DA02DB232"); 142 | shareKeys.append("B32F34CDCA160C2CC515B005782F4F94"); 143 | pubKeys.append("02407CBBE566F093FE3E09D0FBFC10E5D0FEE0341534AFEC12"); 144 | shareKeys.append("3D5ED662CBA0EB0F3456F93AFC3A0BAA"); 145 | pubKeys.append("03D0426FFA6FCF6DE2AB046C739067846A5675C56F99BFE5C4"); 146 | shareKeys.append("884F2E05C5E3B35419BECC1D6C395D3D"); 147 | pubKeys.append("0309961B7E44C0DC42E7C813F1E262F5203E3D0EBC6A47961B"); 148 | shareKeys.append("4F1B244C7719F1F928FB0361173EC6AD"); 149 | pubKeys.append("02D7D73DFFD1B889E8E842815194AB2AC348F5621CAC1FEF40"); 150 | shareKeys.append("C9D10A873EC4962F7530C60B96B8241A"); 151 | pubKeys.append("0318990DC211B6705BBFCB473D4FE160CC4517D2B71BA1920E"); 152 | shareKeys.append("CAAB47B80EA87E33FAA6095382627940"); 153 | pubKeys.append("031C7ADA4CE43252CACE877201910161AB5B62D0C6B7CA7279"); 154 | shareKeys.append("54045F0F47DBE8EA1C6B1820F2DDC78F"); 155 | pubKeys.append("03252670DC270F33DDB68AA6C194BBF7CC253E4D36EFAE0008"); 156 | shareKeys.append("20B4DD9041E056BEDDCB72A66ABD7E77"); 157 | pubKeys.append("02FACB0424806BE650321F25959363596388BBE3A89018990C"); 158 | shareKeys.append("86BC7187AFC9FCCEFAE24E86E6C04CFF"); 159 | pubKeys.append("03806AF5FED3DB921B894DC4F472E53021F758FFC709AEA162"); 160 | shareKeys.append("838910B96C5578B330518E400A3122AC"); 161 | pubKeys.append("03B651C39219701F882E2BDBE20B852797552E3A66547D4802"); 162 | shareKeys.append("64DBFF574A361EB6361BA98CEAD8D217"); 163 | pubKeys.append("022FF07FEDE3BDC7F14FB86D6414086A29C8680302C1FFCB13"); 164 | shareKeys.append("4F0DEC021D9F1FC929380CE89CE91E80"); 165 | pubKeys.append("03916F379EAFB46AE149E880A51FA8AE86D4AD46B171C7C06A"); 166 | shareKeys.append("1069864BBE772A25E6224F5E91DEB0EF"); 167 | pubKeys.append("027E2A6F31677BD47266F51E67368CA9C5B6AB9CCCBDDA2565"); 168 | shareKeys.append("506EBBC4DA41A118852A02063DD7E850"); 169 | pubKeys.append("036E3EDD079548F1D3508C53F7F5B6A85C76B94C9681F44B50"); 170 | shareKeys.append("8263F790260879B89C76E2C9E3ACC6C8"); 171 | pubKeys.append("0333AD69C4C8A3E770DEE24B2700AF8BCDA1E9DEA92325B790"); 172 | shareKeys.append("7D4047051C83C1CB04145F8283EA68F3"); 173 | pubKeys.append("028EBDF7D3665D32FF3BDE45274D7150A2011025F77BF29868"); 174 | shareKeys.append("D415088CFAF751BE56F39320EB9A03BD"); 175 | pubKeys.append("03212E97B77BE304DAF1ACDC1D7DB1D220AC7C82F690361854"); 176 | shareKeys.append("5E18D8831E567AABCDBB9FE44DFC6A5A"); 177 | pubKeys.append("0395796440CD7C817E25380DBA2F42A19FEAE8250C7A3FD2E4"); 178 | shareKeys.append("46E66DFBA01752EAFC1B5C43584C1098"); 179 | pubKeys.append("0389EFE3C12424F5CFEE36AE31BBC67A205E900794CA063F62"); 180 | shareKeys.append("83EEC2A12FC3B3901674D62DD1B403B5"); 181 | pubKeys.append("03C2B8FAA9975FC9FF4B25E183A263923F2DC732EC8A932EE9"); 182 | shareKeys.append("C8BD7BD8046D3E65DB89CB89BDF40757"); 183 | pubKeys.append("024DA59432858DDA69F4398047A3EF9DB3ECE76CF41CAA9C66"); 184 | shareKeys.append("4A14F6502BDA9F2DBB080DA47B4F3C0D"); 185 | pubKeys.append("032CDD073B26EE331C2491953979898B7B1BC152048187BC38"); 186 | shareKeys.append("081D5CA76AF5902CB4FE3E4608B2413F"); 187 | pubKeys.append("03F00E185E6648E2682E59585AD9A347BFA0C1A1369514D6F2"); 188 | shareKeys.append("4562C87D5EEBF335B4C85405600941B7"); 189 | pubKeys.append("0244752AC5C6FE2AA6E7E5FD2F317537528CAD5DB00CECFDAB"); 190 | shareKeys.append("38B4FA71C37C7A3892DCCC7804BE806B"); 191 | pubKeys.append("02FC9BED7371FC1B28DDF3B18AFCAB8BDCC3A90A1DE9F58857"); 192 | shareKeys.append("4CADB4999FBD827E9EAA6BD31FC49F73"); 193 | pubKeys.append("039319B4F75B30D37A93BAECB14EF826780152ED0C6291B9B2"); 194 | shareKeys.append("CDBA58F478CCBA40BC1FBAD30C8F077A"); 195 | pubKeys.append("03E11698C3964462FDEC0FC5D6219B277BE98E0539720A0A54"); 196 | shareKeys.append("87CAB25ED6D06CF10EE506E9A28FC436"); 197 | pubKeys.append("035AE1BE97A51E43F63CFDDDF089D0458E349F67CD751D20A9"); 198 | shareKeys.append("65CCA5CE5DAF47A7EB81CC19FC5154FC"); 199 | pubKeys.append("02C302F6836C92EA723E2907B0C30E66DA16B641F00AAFFBF8"); 200 | shareKeys.append("DFF8683B5FBEB96C1AC6C1BA3E517EDE"); 201 | pubKeys.append("031C0806A6EC7C3CFB7F9DACA0DC537F10F44CA1CD78BDCE03"); 202 | shareKeys.append("352B7B606F44911D710A7A274861AA24"); 203 | pubKeys.append("03961639FCE4C4D045736C0A87D7912A259AE2EADF5398FE1C"); 204 | shareKeys.append("A97A78A4FDBF5263D1D64E258A48A9F4"); 205 | pubKeys.append("0213DCFDF1A70570C0F8E7FD4F1D0A704FE3046D38DCA24F1D"); 206 | shareKeys.append("38E274EEC09A5E86EFAB383CC5B3F34D"); 207 | pubKeys.append("02532A27DF6A288D0DF55A14A9884F7426445D09D18F138A0D"); 208 | shareKeys.append("8DE7E4DD52373847D8E6CC4E8D8DA14A"); 209 | pubKeys.append("03170FAFAB482EB9CE2E7774683310FB6D8DE9B88F3E89C046"); 210 | shareKeys.append("34486D58071AA7AA8CFE1C5666014319"); 211 | pubKeys.append("03D66AAE57FB978BD744BF79F7B3222E9E59DEC3BF32D46AF9"); 212 | shareKeys.append("24280EE0C48F1DB4A130912DB4F44D6D"); 213 | pubKeys.append("0375FD954A5D167DCCA115FC30CC44D0EA45E3C62EC9B79E2E"); 214 | shareKeys.append("32D79157DB254477A8110EE405CC287A"); 215 | pubKeys.append("021ABCBBEC5C96827D9E58A2A549D0983C7837ECC277E284A4"); 216 | shareKeys.append("87BF4EDCAF7342F0B7474C49E3EA88B1"); 217 | pubKeys.append("034884492935FE8EC88460BEBC33E7879C34E11E08C9F05136"); 218 | shareKeys.append("2E6648CD1D16677A734535E1484C72E6"); 219 | pubKeys.append("026FE2B0C76E8C16E2F08510BFF5F8D618B6B5D875DE761BA3"); 220 | shareKeys.append("87658A2927BBDB66CE52BCA14D11BAFC"); 221 | pubKeys.append("02E705454CC94855612BAEF1BFF390A2D6CB9F1FE6A192EFEC"); 222 | shareKeys.append("D3F9CFDB25374752FE961CEAEB696958"); 223 | pubKeys.append("02BCF6CAE00E9F3B9DDDF2C797F7FA55C67729B22303926243"); 224 | shareKeys.append("3F3707223955DA0C9BF95804B5F3F2F3"); 225 | pubKeys.append("03B2292E016170AE9F11BA8EF4ECC649CA980A8FA66CEC426E"); 226 | shareKeys.append("8283F8D56E61F734255FEA3089494C8F"); 227 | pubKeys.append("03ED58BBBDCE6BA12A95E23E1CF9F7987917008B0C7C4493BC"); 228 | shareKeys.append("9A1BDA11D3BEA2DEDC58C487B3D174BA"); 229 | pubKeys.append("0240413D7D5CA36CF8853EB7BA7BEFE90468B2F04BDDFF62F0"); 230 | shareKeys.append("8FDB4F1B2A5A0CEC226097B33B2D0A22"); 231 | pubKeys.append("03BD56086242054EBAADE727F81CD9A9D76011DD33CB7FCD98"); 232 | shareKeys.append("A18FBCF90867D3FD9E32B06CE3D5E8C6"); 233 | pubKeys.append("031987BFF9D37F8F779416AFB21CF1BABEF9B1392E83EC52C9"); 234 | shareKeys.append("97BD9917D4831EBD381493C99C7A731A"); 235 | pubKeys.append("0324ABEC2E7C7A94706E6D45242EE0F82EA03C7A9EF02EA839"); 236 | shareKeys.append("A822F7C33A3EE16536F5309674E1F75A"); 237 | pubKeys.append("036C7CCA747B41EC477381E6B076B3411256956E85EFDB4A39"); 238 | shareKeys.append("18476B129E5454CC32134C56DB042551"); 239 | pubKeys.append("035DCCA2F5D317638721BCF9A7B7293609C51ABA43687437D5"); 240 | shareKeys.append("B55BB50E61F5160DCD612F1766813DAA"); 241 | pubKeys.append("02C731A5B53FE73360474F75DCE39C8F2B9FD5A3D51A352EA6"); 242 | shareKeys.append("579C2169A0A34E1162C6E6DB66C2D45D"); 243 | pubKeys.append("038595D136B9F11336BC851432D4A5672BD2C4BAF444F48759"); 244 | shareKeys.append("886CC3A8882597579FAF64C7E380EB68"); 245 | pubKeys.append("0296B1B00ED5B990EF336899B90CDE874B9349503CB3866A55"); 246 | shareKeys.append("6ABD3AEF412C173010B1A7E8CF9DBCED"); 247 | pubKeys.append("03F3DCD63059EDD54ABFE0BC12E1964D1A7C76891D6D192605"); 248 | shareKeys.append("CA3EDB17DB1C4FBC172363015B362F7C"); 249 | pubKeys.append("03E9BA5719B9FA13D3265A24624EAFE2087071EAF5A7AA8937"); 250 | shareKeys.append("A26CE128ACDA0C656AB12F1CBF89B53F"); 251 | pubKeys.append("022B9238D178E2C3E759FF8E3BD8B51B98047CC1B518E92943"); 252 | shareKeys.append("24CB0E966B0761A0763867863E7F2A14"); 253 | pubKeys.append("03F2BA5E73A313FE56B3A1AF52F37EFA73017EDED74D7FFD90"); 254 | shareKeys.append("5436BA8D1C0792BD293FF00C52C69779"); 255 | pubKeys.append("025D258AE8BA6C2F65760FFABEBDEC6C9A943360B40C6EF8BE"); 256 | shareKeys.append("E1BFD26CB80323968F8A14436D6493EE"); 257 | pubKeys.append("026D692D912D1AA5F0C08CE8D875AA9947021DF4CC872A9AD6"); 258 | shareKeys.append("50EF210D781ABA134F0E2936732794FA"); 259 | pubKeys.append("02C03DEA189D5C508BF60768F9BF0E88FDF4AE05D4BD436B91"); 260 | shareKeys.append("7D1B2DD6B46F2E539ADAF3E58F22FED2"); 261 | pubKeys.append("0359847989234FCD901ADD38BCE20CC86AE5356C01DCEC15D7"); 262 | shareKeys.append("A6655AA074AB3B574CAB367CB801FFAD"); 263 | pubKeys.append("036429B562DB5B5630920D6F8A896C2185D1D5025A07965C68"); 264 | shareKeys.append("4AB284ADDA8CCB76D37B329F14193F25"); 265 | pubKeys.append("0320CB2D1E21669D5CD166B0D36AD82474435B12BD773F5EFA"); 266 | shareKeys.append("478205EA9C1A30DD4B397380E5457A9E"); 267 | pubKeys.append("03A0D31E69C0DE2C52137D509F74FE04702DA06C6C8A4CAD80"); 268 | shareKeys.append("4C48F6EFCE98561C229DE92A5453D11A"); 269 | pubKeys.append("02FC90CB41B1597CFABD3D03AF1129EE64716BF917942997F7"); 270 | shareKeys.append("D0FC0D7A84057BFD3CAB4DC8093283A7"); 271 | pubKeys.append("023F62982D691ACBD1686BAFE40E1261F7E534AFA4A8E2D88A"); 272 | shareKeys.append("42BEDF0B38FAB11FBCC868D2AA699E46"); 273 | pubKeys.append("023777A8A4C1AFCC85F006D454A1059FE7F37A092CBA625E4F"); 274 | shareKeys.append("284DC0967E66E08177C56DBADBDC3952"); 275 | pubKeys.append("03E53C0173138794E75402A11156B77F642B839B7A7DE58412"); 276 | shareKeys.append("7A00020FEB3C536B9293595070ACE6F5"); 277 | pubKeys.append("033F0CD6B51738F0A8842ED764F2A6A989D58333E828977107"); 278 | shareKeys.append("3C05D69F5ACABCFC3E0511FD42A079A9"); 279 | pubKeys.append("027CBC7BDE48BAC0DF0AB5BCB11034078F9D4B8927CD544913"); 280 | shareKeys.append("043F1494A4C14E242C82DEAFB2412B47"); 281 | pubKeys.append("0224BA0A685D33C2689DE43C8A716DF76E90754889DF78405B"); 282 | shareKeys.append("AA0F2A1DD953A0AB7ED2D2B2DF976850"); 283 | pubKeys.append("03E2CFB4AD2BCC8AD0C99DAB30F07B534FA30268E02EDF3FAE"); 284 | shareKeys.append("83FF6108167F1E5F49DE672B7D3AA408"); 285 | pubKeys.append("037A2A8F7594A9ADA05EC30F6D5B69B5E670BD2EFE81545579"); 286 | shareKeys.append("38D0EDB09BC2EC29C9292FF527C68AC3"); 287 | pubKeys.append("0272272CDF942058EBCDDE6F8C4B3FD9C8BBBC2B299AD06F9D"); 288 | shareKeys.append("F69E4FBD8AFF258FBEAFB426EE521C7A"); 289 | pubKeys.append("02CB6578101C51B9DDAA7548C2C008468F77518F9B85529BD4"); 290 | shareKeys.append("344C37665D4E0DF56E74466256881E8C"); 291 | pubKeys.append("026DCE0534A57E78272992B10B70653EDE0B4D195EF4DA2BF5"); 292 | shareKeys.append("F2DAA821F723605FDCEDBAA6670CD0FD"); 293 | pubKeys.append("0251D1614898B4C1270F7564FA2798A274685FBE7CFB498843"); 294 | shareKeys.append("1BBD4F5DD8D52244441D830127CD1C87"); 295 | pubKeys.append("02CE991F19ECDCC91417F232A2B53B689C31A1EAA8B7BE44D7"); 296 | shareKeys.append("76AF99A6CB68365D12FFE4E2EDC7EF5F"); 297 | pubKeys.append("02718195F36A354CAC894B704787C5852C847346E5C09F6F2D"); 298 | shareKeys.append("3152A69CABA164C66A2D23884B393DCD"); 299 | pubKeys.append("030097A0278F521DF4266E545056BEF166BBBBB4BB210A45ED"); 300 | shareKeys.append("9D3FCA0EFAF85FCFC46ABC38404D4805"); 301 | pubKeys.append("03C67C2FD9B6F92D75193E68B247E1AA86425256B9933AAECB"); 302 | shareKeys.append("84806A50F58D5DA6629F8617D03425C9"); 303 | pubKeys.append("03A1EE560719D4871A20D90897AECBCB02DF0CB8DC9EAFDF00"); 304 | shareKeys.append("78CB72F38D6DB0172B9E054833B923FA"); 305 | pubKeys.append("03E877722AA7DEAC6C1A5EB7DDB089708D2930CE5265DF1D6D"); 306 | shareKeys.append("28D6FAB5C588E83211884FCC78994796"); 307 | pubKeys.append("028793094380A6E6E272EEBF7F969256EDAB73C792A552DFC5"); 308 | shareKeys.append("BA502A46AECEA03575CF21F00130F552"); 309 | pubKeys.append("039609F505C7E219B3F69AFD6A7D4458BC8AAF6C071DD80C1F"); 310 | shareKeys.append("23D3D220E9ACD689396C1900E7F092DB"); 311 | pubKeys.append("021FC050DA59C13505DF5C400F3809E76A9DE7F4560C6A9B62"); 312 | shareKeys.append("888794068C9B51765F30D8E8FB038F91"); 313 | pubKeys.append("03880D544F89AC882E92EF07D7B7130D42659FCDD8B5C5DE6A"); 314 | shareKeys.append("8FECE95E2D8C7FE59E629C6128EE974B"); 315 | pubKeys.append("0394CFC3336E8E4E30DD60605A2CE097759F0B38CEDB3B43EC"); 316 | shareKeys.append("7236047596899C3B812428F677731E5B"); 317 | pubKeys.append("0399156D401E888E0B5299DC82708B2C3925D8FB59BC28926D"); 318 | shareKeys.append("E95CB309E1BA4795A44AD2DC3F38BD90"); 319 | pubKeys.append("03D015D2F96BDF15948F406F49D354BB285CF5887ACD4A3A6A"); 320 | shareKeys.append("2215AA6089394CA95E11D2D7DC775445"); 321 | pubKeys.append("031288182E48BA8508074A178D925B2CD2EED6803863BE47A9"); 322 | shareKeys.append("DE4DC635BD2D9B5696927D32536E1315"); 323 | pubKeys.append("03EA8ACAB70A08F2059644463474CA6A844C29B7974A69FC91"); 324 | shareKeys.append("81A9264963020A51036993F8B1F8242A"); 325 | pubKeys.append("02A4C428389774E97A3B9C0D37C74D60B2F5FCB7B0FEC7EBD8"); 326 | shareKeys.append("E16D51150279A1E9957B9601F8527156"); 327 | pubKeys.append("028416FE222C2FFDA848B2D7FFCC8D6D60888261B1714B01A2"); 328 | shareKeys.append("421214A9F2B30F55EB030407F7960109"); 329 | pubKeys.append("033D9B6AFC87D67F3DE42AFD832467C8DF3B43C82128B1C9E1"); 330 | shareKeys.append("6EB8F2F6771446E5903444CA34957AE9"); 331 | pubKeys.append("0258C5CCB70B3609FEE2A439971A13563FD311F97D8FF11EA3"); 332 | shareKeys.append("FCA944406B907A521549E4CB32318459"); 333 | pubKeys.append("03CCC4F4DA998409B2413C8BD2C88E86E3E3CBC0A8B0793C9F"); 334 | shareKeys.append("478FFEC60E6E4E45648BC72431511470"); 335 | pubKeys.append("0304DC57FBC13071120A68A861F20AAFB8F7755656BB5F278F"); 336 | shareKeys.append("123FCE0198762D184D87A479E2BFB1DD"); 337 | pubKeys.append("0218F31D62A4B240D64D3371D14541DFCA6D53D215A3E32EC7"); 338 | shareKeys.append("988BEC82CC661435BB6A52A128A2E9D0"); 339 | pubKeys.append("0326F784A4638457207D1EF0ED497AAEA4B2E45C8AF2B3959F"); 340 | shareKeys.append("935F58F875C5CB7720895958C73C1112"); 341 | pubKeys.append("03F203DD9F9A96FADEDBCB8F374566DF8E086350BFE3C3F1E7"); 342 | shareKeys.append("C6E52355D592D40B6E172704C70EF063"); 343 | pubKeys.append("03086F2262FDAD88E228D543EB45EC048942A0D8738D530896"); 344 | shareKeys.append("BB53A5BC5CE9FA5AB7FEC7237544A20F"); 345 | pubKeys.append("0395DC839FAFACD87B7BD152133DDD89232C07A3F9BE8A3EE0"); 346 | shareKeys.append("5A153CC2DE79CA1D8B08EE1917723AC6"); 347 | pubKeys.append("02FB74F965B7ED87E3C9ADAB74D5AF7284F2382664F88A549C"); 348 | shareKeys.append("0A0BE15B8F4AC01868555102EC00F719"); 349 | pubKeys.append("038A77442372244AFB2AD831CA832FB2D1FE3712431C2483EE"); 350 | shareKeys.append("1869F160CFE9B924360D9CFAABEDD70E"); 351 | pubKeys.append("03BBE090B77034B39024F6F59D66765652DFC00C1BE757328A"); 352 | shareKeys.append("BDA4DD071B5E95ACAC0BADD50779627B"); 353 | pubKeys.append("02EA01D8A0A9BB66F710E167B6D62A58955271FA3CE39DC79F"); 354 | shareKeys.append("898CAFB47E05F131284B0DE7E90C12FE"); 355 | pubKeys.append("022670AB2EF1A449794AD7F92C79978BB43CAF41803BD747DE"); 356 | shareKeys.append("82A4AD5E5EBF948D8C675ACBA00E3AD4"); 357 | pubKeys.append("0205B3B4A46402A6E0809E5269E72111DB9DF8855F77B0109E"); 358 | shareKeys.append("2F0F6D8860B2C834943B09BEFC06B0F4"); 359 | pubKeys.append("034F31D021D847F383556483D4DD4C64FBC8451C21AAA98A76"); 360 | shareKeys.append("F641AB9F6F463BF8A65D8D1D97AD8C0F"); 361 | pubKeys.append("0338215E841033ABE7D384FE00535D9CF452F496E29EF985DC"); 362 | shareKeys.append("F19CE4E4098A8FD0FA4E4FE6CD92F356"); 363 | pubKeys.append("02587C4467A005D25538E5BB3268C56D6811E85631716F11D3"); 364 | shareKeys.append("460A7040D18D4D08F38AF91D22F2A890"); 365 | pubKeys.append("021BE0CB13D2A4670A896AD9D1110E9F559AEA175D8A12B245"); 366 | shareKeys.append("853E5F2C5FE7F14CCD9D237DB52FC731"); 367 | pubKeys.append("031CAB2BAE39C4FB6D2738F49DA66F6D5C9E91EF0017031D5A"); 368 | shareKeys.append("F780C2C506A904E5C9F9512AD3D9B60B"); 369 | pubKeys.append("02ED822773FCC9140D386B92364ECDC85735B658740BA33D3B"); 370 | shareKeys.append("1E0FE0F5C6326F9D169133576A5C5314"); 371 | pubKeys.append("03CE8202BAA167D89EE75F0EDE4E464BBB5940685DC5EA6CEA"); 372 | shareKeys.append("70E5320ED509B6112596660DE2C1C526"); 373 | 374 | -------------------------------------------------------------------------------- /Keys.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huokedu/AndroidQQProtocol/6941031b6c90e3e0bb2d8c5f9732853b08b1d969/Keys.pyc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AndroidQQProtocol 2 | qq login based on android qq 5.8 3 | 4 | -------------------------------------------------------------------------------- /RawSocket.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import socket 4 | 5 | class RawSocket: 6 | '''Python socket: http://blog.csdn.net/rebelqsp/article/details/22109925''' 7 | def __init__(self, ip, port): 8 | self.addr = (ip, port) 9 | self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #TCP 10 | 11 | def __del__(self): 12 | self.socket.close() 13 | 14 | def connect(self): 15 | return self.socket.connect_ex(self.addr) == 0 16 | 17 | def sendall(self, data): 18 | try: 19 | return self.socket.sendall(data) == None 20 | except Exception, e: 21 | print u'数据发送失败: ', e 22 | return False 23 | 24 | def recv(self): 25 | return self.socket.recv(10240) #下面的代码暂时无解 待处理 26 | buf = '' 27 | while True: #确保把包收全 28 | tmp = self.socket.recv(1024) 29 | if not len(tmp): 30 | break 31 | buf += tmp 32 | return buf 33 | 34 | def close(self): 35 | return self.socket.close() 36 | 37 | if __name__ == '__main__': 38 | sock = RawSocket('113.108.90.53', 8080) 39 | print sock.connect() 40 | import Tools 41 | print sock.sendall(Coder.hexstr2str('353032353439363030')) 42 | print sock.recv() 43 | sock.close() 44 | -------------------------------------------------------------------------------- /RawSocket.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huokedu/AndroidQQProtocol/6941031b6c90e3e0bb2d8c5f9732853b08b1d969/RawSocket.pyc -------------------------------------------------------------------------------- /Tlv.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Jun 29 10:52:04 2016 4 | @author: Alost 5 | """ 6 | from Tools import Coder 7 | from Tools import TEA 8 | 9 | class Tlv: 10 | def __init__(self): 11 | pass 12 | def __del__(self): 13 | pass 14 | @staticmethod 15 | def tlv18(uin): 16 | tlv = '' 17 | tlv += Coder.trim('00 01') 18 | tlv += Coder.trim('00 00 06 00') 19 | tlv += Coder.trim('00 00 00 10') 20 | tlv += Coder.trim('00 00 00 00') 21 | tlv += uin 22 | tlv += Coder.trim('00 00 00 00') 23 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 24 | tlv = Coder.trim('00 18') + tlv 25 | return tlv 26 | @staticmethod 27 | def tlv1(uin, server_time): 28 | tlv = '' 29 | tlv += Coder.trim('00 01') 30 | tlv += Coder.genBytesHexstr(4) 31 | tlv += uin 32 | tlv += server_time 33 | tlv += Coder.trim('00 00 00 00') 34 | tlv += Coder.trim('00 00') 35 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 36 | tlv = Coder.trim('00 01') + tlv 37 | return tlv 38 | @staticmethod 39 | def tlv106(uin, server_time, pwdMd5, tgtKey, imei, appId, pwdKey): 40 | tlv = '' 41 | tlv += Coder.trim('00 03') 42 | tlv += Coder.genBytesHexstr(4) 43 | tlv += Coder.trim('00 00 00 05 00 00 00 10 00 00 00 00 00 00 00 00') 44 | tlv += uin 45 | tlv += server_time 46 | tlv += Coder.trim('00 00 00 00 01') 47 | tlv += pwdMd5 48 | tlv += tgtKey 49 | tlv += Coder.trim('00 00 00 00 01') 50 | tlv += imei 51 | tlv += appId 52 | tlv += Coder.trim('00 00 00 01') 53 | tlv += Coder.trim('00 00') 54 | tlv = TEA.entea_hexstr(tlv, pwdKey) 55 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 56 | tlv = Coder.trim('01 06') + tlv 57 | return tlv 58 | @staticmethod 59 | def tlv116(): 60 | tlv = '' 61 | tlv += Coder.trim('00') 62 | tlv += Coder.trim('00 01 FF 7C') 63 | tlv += Coder.trim('00 01 04 00') 64 | tlv += Coder.trim('00') 65 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 66 | tlv = Coder.trim('01 16') + tlv 67 | return tlv 68 | @staticmethod 69 | def tlv100(): 70 | tlv = '' 71 | tlv += Coder.trim('00 01') 72 | tlv += Coder.trim('00 00 00 05') 73 | tlv += Coder.trim('00 00 00 10') 74 | tlv += Coder.trim('20 02 9F 54') 75 | tlv += Coder.trim('00 00 00 00') 76 | tlv += Coder.trim('02 1E 10 E0') 77 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 78 | tlv = Coder.trim('01 00') + tlv 79 | return tlv 80 | @staticmethod 81 | def tlv107(): 82 | tlv = '' 83 | tlv += Coder.trim('00 00') 84 | tlv += Coder.trim('00 00 00 01') 85 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 86 | tlv = Coder.trim('01 07') + tlv 87 | return tlv 88 | @staticmethod 89 | def tlv144(tgtKey, imei, os_type, os_version, network_type, sim_operator_name, apn, device, device_product): 90 | tlv = '' 91 | tlv += Coder.trim('00 04') 92 | tlv += Tlv.tlv109(imei) 93 | tlv += Tlv.tlv124(os_type, os_version, network_type, sim_operator_name, apn) 94 | tlv += Tlv.tlv128(device, imei, device_product) 95 | tlv += Tlv.tlv16e(device) 96 | tlv = TEA.entea_hexstr(tlv, tgtKey) 97 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 98 | tlv = Coder.trim('01 44') + tlv 99 | return tlv 100 | @staticmethod 101 | def tlv109(imei): 102 | tlv = '' 103 | tlv += Coder.num2hexstr(len(imei)/2, 2) + imei 104 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 105 | tlv = Coder.trim('01 09') + tlv 106 | return tlv 107 | @staticmethod 108 | def tlv124(os_type, os_version, network_type, sim_operator_name, apn): 109 | tlv = '' 110 | tlv += Coder.num2hexstr(len(os_type)/2, 2) + os_type 111 | tlv += Coder.num2hexstr(len(os_version)/2, 2) + os_version 112 | tlv += Coder.num2hexstr(len(network_type)/2, 2) + network_type 113 | tlv += Coder.num2hexstr(len(sim_operator_name)/2, 2) + sim_operator_name 114 | tlv += Coder.trim('00 00') 115 | tlv += Coder.num2hexstr(len(apn)/2, 2) + apn 116 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 117 | tlv = Coder.trim('01 24') + tlv 118 | return tlv 119 | @staticmethod 120 | def tlv128(device, imei, device_product): 121 | tlv = '' 122 | tlv += Coder.trim('00 00') 123 | tlv += Coder.trim('01') 124 | tlv += Coder.trim('01') 125 | tlv += Coder.trim('00') 126 | tlv += Coder.trim('11 00 00 00') 127 | tlv += Coder.num2hexstr(len(device)/2, 2) + device 128 | tlv += Coder.num2hexstr(len(imei)/2, 2) + imei 129 | tlv += Coder.num2hexstr(len(device_product)/2, 2) + device_product 130 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 131 | tlv = Coder.trim('01 28') + tlv 132 | return tlv 133 | @staticmethod 134 | def tlv16e(device): 135 | tlv = '' 136 | tlv += Coder.num2hexstr(len(device)/2, 2) + device 137 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 138 | tlv = Coder.trim('01 6E') + tlv 139 | return tlv 140 | @staticmethod 141 | def tlv142(package_name): 142 | tlv = '' 143 | tlv += Coder.num2hexstr(len(package_name)/2, 4) + package_name 144 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 145 | tlv = Coder.trim('01 42') + tlv 146 | return tlv 147 | @staticmethod 148 | def tlv145(imei): 149 | tlv = '' 150 | tlv += imei 151 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 152 | tlv = Coder.trim('01 45') + tlv 153 | return tlv 154 | @staticmethod 155 | def tlv154(seq): 156 | tlv = '' 157 | tlv += Coder.num2hexstr(seq, 4) 158 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 159 | tlv = Coder.trim('01 54') + tlv 160 | return tlv 161 | @staticmethod 162 | def tlv141(sim_operator_name, network_type, apn): 163 | tlv = '' 164 | tlv += Coder.trim('00 01') 165 | tlv += Coder.num2hexstr(len(sim_operator_name)/2, 2) + sim_operator_name 166 | tlv += Coder.num2hexstr(len(network_type)/2, 2) + network_type 167 | tlv += Coder.num2hexstr(len(apn)/2, 2) + apn 168 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 169 | tlv = Coder.trim('01 41') + tlv 170 | return tlv 171 | @staticmethod 172 | def tlv8(): 173 | tlv = '' 174 | tlv += Coder.trim('00 00') 175 | tlv += Coder.trim('00 00 08 04') #request_global._local_id 176 | tlv += Coder.trim('00 00') 177 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 178 | tlv = Coder.trim('00 08') + tlv 179 | return tlv 180 | @staticmethod 181 | def tlv16b(): 182 | tlv = '' 183 | tlv += Coder.trim('00 02') 184 | tlv += Coder.trim('00 0B') 185 | tlv += Coder.trim('67 61 6D 65 2E 71 71 2E 63 6F 6D') #game.qq.com 186 | tlv += Coder.trim('00 0B') 187 | tlv += Coder.trim('67 61 6D 65 2E 71 71 2E 63 6F 6D') 188 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 189 | tlv = Coder.trim('01 6B') + tlv 190 | return tlv 191 | @staticmethod 192 | def tlv147(): 193 | tlv = '' 194 | tlv += Coder.trim('00 00 00 10') 195 | tlv += Coder.trim('00 05') 196 | tlv += Coder.trim('35 2E 38 2E 30') #request_global._apk_v = 5.8.0 197 | tlv += Coder.trim('00 10') 198 | tlv += Coder.trim('A6 B7 45 BF 24 A2 C2 77 52 77 16 F6 F3 6E B6 8D') #request_global._apk_sig 199 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 200 | tlv = Coder.trim('01 47') + tlv 201 | return tlv 202 | @staticmethod 203 | def tlv177(): 204 | tlv = '' 205 | tlv += Coder.trim('01') 206 | tlv += Coder.trim('55 A3 23 2E') 207 | tlv += Coder.trim('00 07') 208 | tlv += Coder.trim('35 2E 34 2E 30 2E 37') #5.4.0.7 209 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 210 | tlv = Coder.trim('01 77') + tlv 211 | return tlv 212 | @staticmethod 213 | def tlv187(): 214 | tlv = '' 215 | tlv += Coder.trim('F9 03 BA FF 80 D5 BA AC DC EA 9C 16 49 6F 53 83') 216 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 217 | tlv = Coder.trim('01 87') + tlv 218 | return tlv 219 | @staticmethod 220 | def tlv188(): 221 | tlv = '' 222 | tlv += Coder.trim('3F D1 F5 BA 24 67 56 F3 97 87 49 AE 1D 67 76 EE') 223 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 224 | tlv = Coder.trim('01 88') + tlv 225 | return tlv 226 | @staticmethod 227 | def tlv191(): 228 | tlv = '' 229 | tlv += Coder.trim('01') 230 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 231 | tlv = Coder.trim('01 91') + tlv 232 | return tlv 233 | @staticmethod 234 | def tlv194(): 235 | tlv = '' 236 | tlv += Coder.trim('65 68 D4 A4 FA CA 6E 78 B3 6B 07 40 C2 71 A8 6E') 237 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 238 | tlv = Coder.trim('01 94') + tlv 239 | return tlv 240 | @staticmethod 241 | def tlv202(wifi_name): 242 | tlv = '' 243 | tlv += Coder.trim('00 10') 244 | tlv += Coder.trim('F5 AC 6C 03 0C 31 AE 5C 26 2E BE 49 86 23 65 1E') 245 | tlv += Coder.num2hexstr(len(wifi_name)/2, 2) + wifi_name 246 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 247 | tlv = Coder.trim('02 02') + tlv 248 | return tlv 249 | 250 | @staticmethod 251 | def tlv2(verifyCode, verifyToken1): 252 | tlv = '' 253 | tlv += Coder.num2hexstr(len(verifyCode)/2, 4) + verifyCode 254 | tlv += Coder.num2hexstr(len(verifyToken1)/2, 2) + verifyToken1 255 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 256 | tlv = Coder.trim('00 02') + tlv 257 | return tlv 258 | ''' 259 | @staticmethod 260 | def tlv8(): 261 | tlv = '' 262 | tlv += Coder.trim('00 00') 263 | tlv += Coder.trim('00 00 08 04') 264 | tlv += Coder.trim('00 00 ') 265 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 266 | tlv = Coder.trim('00 08') + tlv 267 | return tlv 268 | ''' 269 | @staticmethod 270 | def tlv104(verifyToken2): 271 | tlv = '' 272 | tlv += verifyToken2 273 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 274 | tlv = Coder.trim('01 04') + tlv 275 | return tlv 276 | ''' 277 | @staticmethod 278 | def tlv116(): 279 | tlv = '' 280 | tlv += Coder.trim('00') 281 | tlv += Coder.trim('00 01 FF 7C') 282 | tlv += Coder.trim('00 01 04 00') 283 | tlv += Coder.trim('00') 284 | tlv = Coder.num2hexstr(len(tlv)/2, 2) + tlv 285 | tlv = Coder.trim('01 16') + tlv 286 | return tlv 287 | ''' 288 | 289 | if __name__ == '__main__': 290 | pass 291 | 292 | -------------------------------------------------------------------------------- /Tlv.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huokedu/AndroidQQProtocol/6941031b6c90e3e0bb2d8c5f9732853b08b1d969/Tlv.pyc -------------------------------------------------------------------------------- /Tools.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import random 4 | import md5 5 | import socket 6 | import struct 7 | import unittest 8 | import cStringIO 9 | from PIL import Image 10 | 11 | class MD5(): 12 | @staticmethod 13 | def md5_hex(data): 14 | hash = md5.md5() 15 | hash.update(data) 16 | hash.digest() 17 | return hash.hexdigest() 18 | 19 | class TestCaseMD5(unittest.TestCase): 20 | def setUp(self): 21 | pass 22 | def tearDown(self): 23 | pass 24 | def test_md5_hex(self): 25 | self.assertEqual(MD5.md5_hex('12345678'), '25d55ad283aa400af464c76d713c07ad') 26 | 27 | class TEA(): 28 | '''百度百科:http://baike.baidu.com/view/6064828.htm 29 | http://blog.chinaunix.net/uid-324919-id-135731.html 30 | http://abcn.cneu.eu/crypto/tea/tea.c 31 | ''' 32 | @staticmethod 33 | def xor(a, b): 34 | op = 0xffffffffL 35 | a1,a2 = struct.unpack('>LL', a[0:8]) 36 | b1,b2 = struct.unpack('>LL', b[0:8]) 37 | return struct.pack('>LL', ( a1 ^ b1) & op, ( a2 ^ b2) & op) 38 | @staticmethod 39 | def code(v, k): 40 | n=16 41 | op = 0xffffffffL 42 | delta = 0x9e3779b9L 43 | k = struct.unpack('>LLLL', k[0:16]) 44 | y, z = struct.unpack('>LL', v[0:8]) 45 | s = 0 46 | for i in xrange(n): 47 | s += delta 48 | y += (op &(z<<4))+ k[0] ^ z+ s ^ (op&(z>>5)) + k[1] 49 | y &= op 50 | z += (op &(y<<4))+ k[2] ^ y+ s ^ (op&(y>>5)) + k[3] 51 | z &= op 52 | r = struct.pack('>LL',y,z) 53 | return r 54 | @staticmethod 55 | def encrypt(v, key): 56 | END_CHAR = '\0' 57 | FILL_N_OR = 0xF8 58 | vl = len(v) 59 | filln = (8-(vl+2))%8 + 2 60 | fills = '' 61 | for i in xrange(filln): 62 | fills = fills + chr(random.randint(0, 255)) 63 | v = ( chr((filln -2)|FILL_N_OR) 64 | + fills 65 | + v 66 | + END_CHAR * 7) 67 | tr = '\0'*8 68 | to = '\0'*8 69 | r = '' 70 | o = '\0' * 8 71 | for i in xrange(0, len(v), 8): 72 | o = TEA.xor(v[i:i+8], tr) 73 | tr = TEA.xor(TEA.code(o, key), to) 74 | to = o 75 | r += tr 76 | return r 77 | @staticmethod 78 | def decipher(v, k): 79 | n = 16 80 | op = 0xffffffffL 81 | y, z = struct.unpack('>LL', v[0:8]) 82 | a, b, c, d = struct.unpack('>LLLL', k[0:16]) 83 | delta = 0x9E3779B9L 84 | s = (delta << 4)&op 85 | for i in xrange(n): 86 | z -= ((y<<4)+c) ^ (y+s) ^ ((y>>5) + d) 87 | z &= op 88 | y -= ((z<<4)+a) ^ (z+s) ^ ((z>>5) + b) 89 | y &= op 90 | s -= delta 91 | s &= op 92 | return struct.pack('>LL', y, z) 93 | @staticmethod 94 | def decrypt(v, key): 95 | l = len(v) 96 | prePlain = TEA.decipher(v, key) 97 | pos = (ord(prePlain[0]) & 0x07L) +2 98 | r = prePlain 99 | preCrypt = v[0:8] 100 | for i in xrange(8, l, 8): 101 | x = TEA.xor(TEA.decipher(TEA.xor(v[i:i+8], prePlain),key ), preCrypt) 102 | prePlain = TEA.xor(x, preCrypt) 103 | preCrypt = v[i:i+8] 104 | r += x 105 | if r[-7:] != '\0'*7: 106 | return None 107 | return r[pos+1:-7] 108 | 109 | @staticmethod 110 | def entea_hexstr(data, key): 111 | return TEA.encrypt(data.decode('hex'), key.decode('hex')).encode('hex') 112 | 113 | @staticmethod 114 | def detea_hexstr(data, key): 115 | return TEA.decrypt(data.decode('hex'), key.decode('hex')).encode('hex') 116 | 117 | class TestCaseTEA(unittest.TestCase): 118 | def setUp(self): 119 | pass 120 | def tearDown(self): 121 | pass 122 | def test_tea(self): 123 | hexstr = '12345678' 124 | key = '00000000000000000000000000000000' 125 | self.assertEqual(TEA.detea_hexstr(TEA.entea_hexstr(hexstr, key), key), hexstr) 126 | 127 | class Coder(): 128 | @staticmethod 129 | def trim(data): 130 | return data.replace(' ', '').lower() 131 | @staticmethod 132 | def num2hexstr(data, n=1): 133 | data = hex(data).replace('0x', '').replace('L', '') 134 | return '0'*(2*n-len(data)) + data 135 | @staticmethod 136 | def numlist2hexstr(data, n=1): 137 | return ''.join([Coder.num2hexstr(li, n) for li in data]) 138 | @staticmethod 139 | def str2hexstr(data): 140 | return data.encode('hex') 141 | @staticmethod 142 | def hexstr2str(data): 143 | return data.decode('hex') 144 | @staticmethod 145 | def hexstr2num(data): 146 | return long(data, 16) 147 | @staticmethod 148 | def hexstr2hexlist(data): 149 | return [data[i]+data[i+1] for i in range(0, len(data), 2)] 150 | @staticmethod 151 | def hexstr2hexstream(data): 152 | return bytearray.fromhex(data) 153 | @staticmethod 154 | def genBytesHexstr(n): 155 | return Coder.numlist2hexstr([random.randint(0, 255) for i in range(n)]) 156 | @staticmethod 157 | def qqnum2hexstr(qqnum): 158 | data = hex(long(qqnum)).replace('0x', '').replace('L', '') 159 | return '0'*(8-len(data)) + data 160 | @staticmethod 161 | def hash_qqpwd_hexstr(qqnum, qqpwd): 162 | return MD5.md5_hex(MD5.md5_hex(qqpwd).decode('hex') + '00000000'.decode('hex') + Coder.qqnum2hexstr(qqnum).decode('hex')) 163 | @staticmethod 164 | def ip2long(ip): 165 | packedIP = socket.inet_aton(ip) 166 | return struct.unpack("!L", packedIP)[0] 167 | @staticmethod 168 | def long2ip(num): 169 | return socket.inet_ntoa(struct.pack('!L', num)) 170 | @staticmethod 171 | def ip2hexstr(ip): 172 | return Coder.num2hexstr(Coder.ip2long(ip)) 173 | @staticmethod 174 | def hexstr2ip(data): 175 | return Coder.long2ip(Coder.hexstr2num(data)) 176 | 177 | class TestCaseCoder(unittest.TestCase): 178 | def setUp(self): 179 | pass 180 | def tearDown(self): 181 | pass 182 | def test_trim(self): 183 | self.assertEqual(Coder.trim(' t e s t '), 'test') 184 | def test_num2hexstr(self): 185 | self.assertEqual(Coder.num2hexstr(4), '04') 186 | self.assertEqual(Coder.num2hexstr(4, 2), '0004') 187 | self.assertEqual(Coder.num2hexstr(255, 2), '00ff') 188 | def test_numlist2hexstr(self): 189 | self.assertEqual(Coder.numlist2hexstr([1, 2, 3, 4, 5, 255], 1), '0102030405ff') 190 | def test_str2hexstr(self): 191 | self.assertEqual(Coder.str2hexstr('502549600'), '353032353439363030') 192 | def test_hexstr2str(self): 193 | self.assertEqual(Coder.hexstr2str('353032353439363030'), '502549600') 194 | def test_hexstr2num(self): 195 | self.assertEqual(Coder.hexstr2num('00'), 0) 196 | self.assertEqual(Coder.hexstr2num('04'), 4) 197 | self.assertEqual(Coder.hexstr2num('00ff'), 255) 198 | self.assertEqual(Coder.hexstr2num('ffff'), 65535) 199 | def test_hexstr2hexlist(self): 200 | self.assertEqual(Coder.hexstr2hexlist('353032353439363030'), ['35','30','32','35','34','39','36','30','30']) 201 | def test_hexstr2hexstream(self): 202 | self.assertEqual(Coder.hexstr2hexstream('353032353439363030'), '\x35\x30\x32\x35\x34\x39\x36\x30\x30') 203 | 204 | def test_qq2hexstr(self): 205 | self.assertEqual(Coder.qqnum2hexstr('502549600'), '1df44c60') 206 | self.assertEqual(Coder.qqnum2hexstr('5201314'), '004f5da2') 207 | self.assertEqual(Coder.qqnum2hexstr('2147483648'), '80000000') 208 | def test_hash_qqpwd_hexstr(self): 209 | self.assertEqual(Coder.hash_qqpwd_hexstr('502549600', '12345678'), '2c73cc3539d282b14172505f1e6e2a50') 210 | def test_ip2long(self): 211 | self.assertEqual(Coder.ip2long('45.112.249.58'), Coder.hexstr2num('2D70F93A')) 212 | def test_long2ip(self): 213 | self.assertEqual(Coder.long2ip(Coder.hexstr2num('2D70F93A')), '45.112.249.58') 214 | def test_ip2hexstr(self): 215 | self.assertEqual(Coder.ip2hexstr('45.112.249.58'), '2d70f93a') 216 | def test_hexstr2ip(self): 217 | self.assertEqual(Coder.hexstr2ip('2d70f93a'), '45.112.249.58') 218 | 219 | class HexPacket: 220 | def __init__(self, data): 221 | self.cur = 0 222 | self.data = data 223 | self.len = len(data) 224 | def shl(self, n): 225 | n *= 2 226 | if (n > self.cur): 227 | n = self.cur 228 | old = self.cur 229 | self.cur -= n 230 | return self.data[self.cur:old] 231 | def shr(self, n): 232 | n *= 2 233 | if (n+self.cur > self.len): 234 | n = self.len - self.cur 235 | old = self.cur 236 | self.cur += n 237 | return self.data[old:self.cur] 238 | def remain_n(self): 239 | return (self.len - self.cur) / 2 240 | def remain(self, rn=0): 241 | return self.shr(self.remain_n()-rn) 242 | def len(self): 243 | return self.len 244 | def cur_byte(self): 245 | return self.data[self.cur:self.cur+2] 246 | 247 | class TestCaseHexPacket(unittest.TestCase): 248 | def setUp(self): 249 | self.pack = HexPacket('12345678') 250 | def tearDown(self): 251 | pass 252 | def test_all(self): 253 | self.assertEqual(self.pack.shl(10), '') 254 | self.assertEqual(self.pack.shr(1), '12') 255 | self.assertEqual(self.pack.cur_byte(), '34') 256 | self.assertEqual(self.pack.shr(1), '34') 257 | self.assertEqual(self.pack.shl(1), '34') 258 | self.assertEqual(self.pack.shr(3), '345678') 259 | self.assertEqual(self.pack.remain_n(), 0) 260 | self.assertEqual(self.pack.shl(5), '12345678') 261 | self.assertEqual(self.pack.shr(3), '123456') 262 | self.assertEqual(self.pack.cur_byte(), '78') 263 | self.assertEqual(self.pack.remain(), '78') 264 | self.assertEqual(self.pack.remain(1), '') 265 | 266 | class Img: 267 | def __init__(self): 268 | pass 269 | def __del__(self): 270 | pass 271 | @staticmethod 272 | def showFromHexstr(data): 273 | f = cStringIO.StringIO(data.decode('hex')) 274 | img = Image.open(f) 275 | img.show() 276 | @staticmethod 277 | def saveFromHexstr(data, filename): 278 | with open(filename, 'wb') as f: 279 | f.write(data.decode('hex')) 280 | 281 | if __name__ == '__main__': 282 | unittest.main() 283 | print Coder.hash_qqpwd_hexstr('123456', '12345678') 284 | print MD5.md5_hex('12345678') 285 | 286 | -------------------------------------------------------------------------------- /Tools.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huokedu/AndroidQQProtocol/6941031b6c90e3e0bb2d8c5f9732853b08b1d969/Tools.pyc -------------------------------------------------------------------------------- /help/generateKeyCode.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Tue Jun 28 00:35:53 2016 4 | @author: Alost 5 | """ 6 | 7 | if __name__ == '__main__': 8 | keys = [('', '')] 9 | with open('keys.log') as f: 10 | lines = f.readlines() 11 | lines = [li.strip() for li in lines] 12 | for i in xrange(0, len(lines), 2): 13 | keys.append((lines[i][len('pubKey: '):], lines[i+1][len('shareKey: '):])) 14 | 15 | #generate java code 16 | with open('keys_code.java', 'w') as f: 17 | for key in keys: 18 | f.write('pubKeys.add("' + key[0] + '");\n') 19 | f.write('shareKeys.add("' + key[1] + '");\n') 20 | 21 | #generate python code 22 | with open('keys_code.py', 'w') as f: 23 | for key in keys[1:]: 24 | f.write('pubKeys.append("' + key[0] + '");\n') 25 | f.write('shareKeys.append("' + key[1] + '");\n') -------------------------------------------------------------------------------- /help/keys.log: -------------------------------------------------------------------------------- 1 | pubKey: 026E342D4365CF9A8E3DF088358B4FFB566BB366D0B4D04EA5 2 | shareKey: B301562BBDC14207E4A234A7F8991D7C 3 | pubKey: 02446540DFB4592726F6BC03F409E911CD18DBC488A395F12A 4 | shareKey: 9AB981FB63CD2C370697DFAA928924C0 5 | pubKey: 02935B5245B860C92231806339F724633622662456F81059B1 6 | shareKey: CBC8F774167AB906EF19757426649615 7 | pubKey: 03D09A11A951BF386467DD458DE1AA08A3DEFE6A689F4047C5 8 | shareKey: D324B8C1DC05AF95D8DD29A6A00C5746 9 | pubKey: 03EFCA38013B27EFC4698877DA65EB342282AECCB2C18B3656 10 | shareKey: 531447D108759C9DDD8419BF356EE190 11 | pubKey: 03C4D52B36E7F12E7B52E3F18030FCD8CFFDA24BDD49108C24 12 | shareKey: 7EF18AD02A7E08D7552B54F0A1CAB854 13 | pubKey: 035EB4D273AC31C5C34F335B5503678EF75C480D28A773F117 14 | shareKey: EB15FF65D78D88698D9E0C2F95F3E341 15 | pubKey: 02B5E7A7F42DFE66CF7BE70E6D0666A14136FB32CA17E9D75C 16 | shareKey: 8F80B215F8D133FCB7E2EF8D1215D72C 17 | pubKey: 03BC21DD33608B7A8241BEA5EB7FF6CB596841975E0A48BE94 18 | shareKey: 06B00CD3A4D131444D1BAD2875CBA7E8 19 | pubKey: 02E093BF367B70FF94067732C8A3EBCBB8FA78154F8395F5C1 20 | shareKey: 4AE098DB9782262178BF1D0E6013FB13 21 | pubKey: 03778D044334A4F62D83B25525B3C7448370A993033375C906 22 | shareKey: 060022DD7E98B7A605AEF09FF28FB54B 23 | pubKey: 0327F8820231E30AC087CBEF923FDAB221D5C2C2965C1F48F3 24 | shareKey: B4FA8265F488A9580E51E45FCAA1B504 25 | pubKey: 0286522A9321C554E9F6505C28D5D8937DEC9F13E4AA2BE9FA 26 | shareKey: DA2811856AB4F4661A6EBED2E308CB15 27 | pubKey: 031808DBF32BC04E2AF3C1BFA5A8B7043F7870B58E440E5830 28 | shareKey: 9BDB3E53FA2A953DDC18E36AAFF02188 29 | pubKey: 03E96EC2B3E52F26D8139F3B9B191432B6C01C0521F393AF98 30 | shareKey: 69CC5FB87FADD79C8CE8B3CE1DE6E27E 31 | pubKey: 038DD887461EE27D76C0EC49B3FA9F1B54D23AABD8D7DF8CF5 32 | shareKey: B6141F076E48F658F61356F79B1C728A 33 | pubKey: 036E847DDDCC879D1E17FBA67ED429440EE81C4B9E5AEA1FF7 34 | shareKey: F13669CF54CB2BF16AE25A8BFA48B617 35 | pubKey: 0373461388C74F0E4981C39ACD321F330CEE4213C092F2FB46 36 | shareKey: A6E5DBDED0C8C107DA3A99D1D156BBF8 37 | pubKey: 03C9F5EBD1EFA481FE517F470663010EAE56096F8F5DA9BAA7 38 | shareKey: FBAE6D98AFAB9CEDAF95265D645454A2 39 | pubKey: 02122958E321F20F172CFC5639CDECB96C0B219C794C31EEC0 40 | shareKey: 5D5C6DEFA79542C33EE3182605E8BDD4 41 | pubKey: 031237BF1BC8DAC11D9E35467EC4525EF7A758710FE2176F1F 42 | shareKey: A4A80FEB2E1B8B8D0158EF472C6C0FBE 43 | pubKey: 02546453AC9B615AB9B53DEC3388B36BDC52DD60FF24DED25D 44 | shareKey: 815BBEA6999405DB507659B55B80FC98 45 | pubKey: 033A867016A13C45F45B33F40C4076B84F13DE1BD26A2A0C0A 46 | shareKey: 3BD540080BDB8690A71077E23AE1BC2A 47 | pubKey: 03F7D00F9C375420255D2752618C61C461D4ADBEB313A5A186 48 | shareKey: 94EBAC0DB07F72FCE39E07C95818443C 49 | pubKey: 02832373E5BF546D1C45ACDEA0BD0AF758195CB97A74036187 50 | shareKey: 231061F424193A03BAD6F3620676A916 51 | pubKey: 023F885CC51FD374524DD1A26F3BAEC6E0816F768386134020 52 | shareKey: F37B7C9B70504A2D2908E95BD4410D31 53 | pubKey: 02BDBE429C5BF300B5E56E29602250D11BCDD44F2E86734BBA 54 | shareKey: 04D61BB4AEF031ECEF64ABB4B48EA595 55 | pubKey: 031A36E1C8FB017C7D1F1B136F2697597F49A0C20EC74AEBF4 56 | shareKey: 0D63E7475B73C4B3EEA8F00EAA0783CA 57 | pubKey: 02818B30B761E23916A45170ADBF8E00BEBAD449EC291C05A0 58 | shareKey: AB73280A8DA5946AC6B29ED021C8654E 59 | pubKey: 03DB3A5A7C83EE5168A050813F45035D3D074BA0467A095676 60 | shareKey: 90BF87A31C40698AB1612A4A0ECB8F7C 61 | pubKey: 031E75B0E8D473C616170A593528701C75428BE9F01935D365 62 | shareKey: 12A92D0BA5F84694870345F59F89EF25 63 | pubKey: 0261F537693C252A03C5DC2C4EDBAF81B25D7ECFC6E3C7CF15 64 | shareKey: D7E252E7D0BF47F81438E86251898919 65 | pubKey: 02DE1808FA0F90F9476EDDF5689D75CB9E2A72021E5F596B00 66 | shareKey: B8F3CA92CC816C7E58859ACA538FF109 67 | pubKey: 0289F89875BFCA143524803000DC35965953F6C0908E199E6D 68 | shareKey: 00FC2E0C43579E68EB86A0113F489F53 69 | pubKey: 029D504C68F09723C146EBF45D2DCA3709A5D6A54754864785 70 | shareKey: E167A116A8CE54261DD720D398BAC211 71 | pubKey: 02DE041072962721FA6A673389C22E21500DEE987DAFBFB939 72 | shareKey: C3E26A1FFC490453ACA68C388C62F061 73 | pubKey: 026B982400D2D9CE37B25DCF13A8A76FC0802EE5C985DA931F 74 | shareKey: 82A9ED7408D1B80D6C443F45F2D24F23 75 | pubKey: 02B763293DCA0177F1292A6914DCCC8534EB57748A59C5C01B 76 | shareKey: 91479CCFBFDF71AF9D9A2AE889803CB0 77 | pubKey: 0242282FDDAA543E9657FAF0902CCC2A0CE22FE5BFA2769966 78 | shareKey: F2742DEA1F6625D22279EC7BCD6CC1FB 79 | pubKey: 02FBE0E118E7C4BB0C592DBEEBD46EE5B171CDB2FD5CBCD3B6 80 | shareKey: 24633C181D0A044455357D51945C167D 81 | pubKey: 02750F3DFE9E4C76EF4F3FB93D787752A2C71B1BB26B7DC7FD 82 | shareKey: 8B3529168A85E08476E99C7AD81184C9 83 | pubKey: 03773E035A42927FB60302AEEFBBF3C38F1688E493E71E8D55 84 | shareKey: 51786028574BFAE417FE2E917DB9D2FC 85 | pubKey: 03033B6AA18C43E35115F0D3A9C96BC39C4BFD62E7F06EEEFD 86 | shareKey: 2806293FB061116620F0BA98596261FE 87 | pubKey: 02FFDA46FDBBB4329354F6F605D3BD3B9318ADC6931970789D 88 | shareKey: A4EA7D3FE05E64DECD590AA28C102F8D 89 | pubKey: 03BFCA38C22DE388B36A0738E36439D6F462B54D3B70BD413F 90 | shareKey: 598CDD368DBCBB9576D93FDED7408881 91 | pubKey: 02627AB98F38E10E728EFEDD7F4F341A8EB254425DED404B49 92 | shareKey: 1428A8C32E83938282E78020C12E72F3 93 | pubKey: 02D1AE4C52B2AC8BE4CAFDFB5CACCA5681B26733F91FAE2986 94 | shareKey: 08C1A214C4E76086152128B59784D1AA 95 | pubKey: 030A2C6D2EA4834F561E46DE8C51336FB4AE0A20DC4F575085 96 | shareKey: 555A19A46024ACFB08F38A92F54F04B4 97 | pubKey: 036001B8B461A831C248B5B15A90E1F02117DFF5BC8CDD74DF 98 | shareKey: BF72203FF0538ABB1E785EF7670D107F 99 | pubKey: 035D07937FA602FC77E79A79CF0150D0F01AE76F14C814B9BE 100 | shareKey: E7D985A2DECF40C1FB181AED896801C1 101 | pubKey: 02945DE850E28C1F2B596A55BDB008B7BC4B389987BE9F7FE8 102 | shareKey: 2759D301415416F4D0584742E67A66F9 103 | pubKey: 02D6B3A1D7B28DD9999D6540C7A094C766094E61CD6C3F800B 104 | shareKey: 846A45D92DEBC851C0403577595874A7 105 | pubKey: 021294039FE3C0CE47D3C2F82A88EFE91A15C21BDAD46BB831 106 | shareKey: 791A62A9788D19E783CD3D8169229D73 107 | pubKey: 027B613B476034427FB93B57323AF63D840BD96EDFA57E5123 108 | shareKey: E631E319968065F7CDAFFA3E003A321E 109 | pubKey: 036926289E74C6A7AB8B178F25B3FA8CAFA49BA33705EA5403 110 | shareKey: EFBADDE297AA43F51D7909BAF5E36B4B 111 | pubKey: 02DC297EC5A554E74CFF8428A84D6D80FF202CD0895E253504 112 | shareKey: 33D1940E0C240D9AA4DC1DCE170BDDC0 113 | pubKey: 0236F8958D400AEEE4378C96C636F9A2A1EADA722E97663ED7 114 | shareKey: D5E8568021D4C673FDDC6B2E07556D5D 115 | pubKey: 0357884BA0FE03E3884EF3C57968C64E390E58ABC591F231A4 116 | shareKey: F821D9FFA0CA1BB5B08345359DCD2E08 117 | pubKey: 02485C5EAB01F95E5298B92AE5B00D8E0BB0DD2DEC1246F390 118 | shareKey: 039E5AC955D78D6191C69B981E8FBFCB 119 | pubKey: 020BA10E46EEA305613C02E3D9A283B4BB27FFE766733785C9 120 | shareKey: DA2A793DA25CD401B672A13FA8EF1027 121 | pubKey: 02776C1BB78955F399F38AABEC4229D74A6165A23450945236 122 | shareKey: FEB3C23A60936E3F8FBEAF5DD26F1B91 123 | pubKey: 039D36F3D684A824F6A578DE0561BD45C116F60A1AFD46471E 124 | shareKey: F93192749CD61B582230B181D5B58EC7 125 | pubKey: 02B3EAE23042BD86015E090E39675095ADE69BC3265C9A8C55 126 | shareKey: 286A1CCCB04279D054DB9571BADBDA95 127 | pubKey: 038E8AC9EAF8D4B7FEA049AA7B4275D9093447439FDD8E1C7E 128 | shareKey: 4A2B4E73217F5B8D22D50B5F0D9E1215 129 | pubKey: 030C159B4F419331655B16490B61872B9612F9237726541A4B 130 | shareKey: E12D1E27F0E5A7EA80BE438959319C1D 131 | pubKey: 038766057A5D3392349D95B508AD8A34FC67ECE31DA02DB232 132 | shareKey: B32F34CDCA160C2CC515B005782F4F94 133 | pubKey: 02407CBBE566F093FE3E09D0FBFC10E5D0FEE0341534AFEC12 134 | shareKey: 3D5ED662CBA0EB0F3456F93AFC3A0BAA 135 | pubKey: 03D0426FFA6FCF6DE2AB046C739067846A5675C56F99BFE5C4 136 | shareKey: 884F2E05C5E3B35419BECC1D6C395D3D 137 | pubKey: 0309961B7E44C0DC42E7C813F1E262F5203E3D0EBC6A47961B 138 | shareKey: 4F1B244C7719F1F928FB0361173EC6AD 139 | pubKey: 02D7D73DFFD1B889E8E842815194AB2AC348F5621CAC1FEF40 140 | shareKey: C9D10A873EC4962F7530C60B96B8241A 141 | pubKey: 0318990DC211B6705BBFCB473D4FE160CC4517D2B71BA1920E 142 | shareKey: CAAB47B80EA87E33FAA6095382627940 143 | pubKey: 031C7ADA4CE43252CACE877201910161AB5B62D0C6B7CA7279 144 | shareKey: 54045F0F47DBE8EA1C6B1820F2DDC78F 145 | pubKey: 03252670DC270F33DDB68AA6C194BBF7CC253E4D36EFAE0008 146 | shareKey: 20B4DD9041E056BEDDCB72A66ABD7E77 147 | pubKey: 02FACB0424806BE650321F25959363596388BBE3A89018990C 148 | shareKey: 86BC7187AFC9FCCEFAE24E86E6C04CFF 149 | pubKey: 03806AF5FED3DB921B894DC4F472E53021F758FFC709AEA162 150 | shareKey: 838910B96C5578B330518E400A3122AC 151 | pubKey: 03B651C39219701F882E2BDBE20B852797552E3A66547D4802 152 | shareKey: 64DBFF574A361EB6361BA98CEAD8D217 153 | pubKey: 022FF07FEDE3BDC7F14FB86D6414086A29C8680302C1FFCB13 154 | shareKey: 4F0DEC021D9F1FC929380CE89CE91E80 155 | pubKey: 03916F379EAFB46AE149E880A51FA8AE86D4AD46B171C7C06A 156 | shareKey: 1069864BBE772A25E6224F5E91DEB0EF 157 | pubKey: 027E2A6F31677BD47266F51E67368CA9C5B6AB9CCCBDDA2565 158 | shareKey: 506EBBC4DA41A118852A02063DD7E850 159 | pubKey: 036E3EDD079548F1D3508C53F7F5B6A85C76B94C9681F44B50 160 | shareKey: 8263F790260879B89C76E2C9E3ACC6C8 161 | pubKey: 0333AD69C4C8A3E770DEE24B2700AF8BCDA1E9DEA92325B790 162 | shareKey: 7D4047051C83C1CB04145F8283EA68F3 163 | pubKey: 028EBDF7D3665D32FF3BDE45274D7150A2011025F77BF29868 164 | shareKey: D415088CFAF751BE56F39320EB9A03BD 165 | pubKey: 03212E97B77BE304DAF1ACDC1D7DB1D220AC7C82F690361854 166 | shareKey: 5E18D8831E567AABCDBB9FE44DFC6A5A 167 | pubKey: 0395796440CD7C817E25380DBA2F42A19FEAE8250C7A3FD2E4 168 | shareKey: 46E66DFBA01752EAFC1B5C43584C1098 169 | pubKey: 0389EFE3C12424F5CFEE36AE31BBC67A205E900794CA063F62 170 | shareKey: 83EEC2A12FC3B3901674D62DD1B403B5 171 | pubKey: 03C2B8FAA9975FC9FF4B25E183A263923F2DC732EC8A932EE9 172 | shareKey: C8BD7BD8046D3E65DB89CB89BDF40757 173 | pubKey: 024DA59432858DDA69F4398047A3EF9DB3ECE76CF41CAA9C66 174 | shareKey: 4A14F6502BDA9F2DBB080DA47B4F3C0D 175 | pubKey: 032CDD073B26EE331C2491953979898B7B1BC152048187BC38 176 | shareKey: 081D5CA76AF5902CB4FE3E4608B2413F 177 | pubKey: 03F00E185E6648E2682E59585AD9A347BFA0C1A1369514D6F2 178 | shareKey: 4562C87D5EEBF335B4C85405600941B7 179 | pubKey: 0244752AC5C6FE2AA6E7E5FD2F317537528CAD5DB00CECFDAB 180 | shareKey: 38B4FA71C37C7A3892DCCC7804BE806B 181 | pubKey: 02FC9BED7371FC1B28DDF3B18AFCAB8BDCC3A90A1DE9F58857 182 | shareKey: 4CADB4999FBD827E9EAA6BD31FC49F73 183 | pubKey: 039319B4F75B30D37A93BAECB14EF826780152ED0C6291B9B2 184 | shareKey: CDBA58F478CCBA40BC1FBAD30C8F077A 185 | pubKey: 03E11698C3964462FDEC0FC5D6219B277BE98E0539720A0A54 186 | shareKey: 87CAB25ED6D06CF10EE506E9A28FC436 187 | pubKey: 035AE1BE97A51E43F63CFDDDF089D0458E349F67CD751D20A9 188 | shareKey: 65CCA5CE5DAF47A7EB81CC19FC5154FC 189 | pubKey: 02C302F6836C92EA723E2907B0C30E66DA16B641F00AAFFBF8 190 | shareKey: DFF8683B5FBEB96C1AC6C1BA3E517EDE 191 | pubKey: 031C0806A6EC7C3CFB7F9DACA0DC537F10F44CA1CD78BDCE03 192 | shareKey: 352B7B606F44911D710A7A274861AA24 193 | pubKey: 03961639FCE4C4D045736C0A87D7912A259AE2EADF5398FE1C 194 | shareKey: A97A78A4FDBF5263D1D64E258A48A9F4 195 | pubKey: 0213DCFDF1A70570C0F8E7FD4F1D0A704FE3046D38DCA24F1D 196 | shareKey: 38E274EEC09A5E86EFAB383CC5B3F34D 197 | pubKey: 02532A27DF6A288D0DF55A14A9884F7426445D09D18F138A0D 198 | shareKey: 8DE7E4DD52373847D8E6CC4E8D8DA14A 199 | pubKey: 03170FAFAB482EB9CE2E7774683310FB6D8DE9B88F3E89C046 200 | shareKey: 34486D58071AA7AA8CFE1C5666014319 201 | pubKey: 03D66AAE57FB978BD744BF79F7B3222E9E59DEC3BF32D46AF9 202 | shareKey: 24280EE0C48F1DB4A130912DB4F44D6D 203 | pubKey: 0375FD954A5D167DCCA115FC30CC44D0EA45E3C62EC9B79E2E 204 | shareKey: 32D79157DB254477A8110EE405CC287A 205 | pubKey: 021ABCBBEC5C96827D9E58A2A549D0983C7837ECC277E284A4 206 | shareKey: 87BF4EDCAF7342F0B7474C49E3EA88B1 207 | pubKey: 034884492935FE8EC88460BEBC33E7879C34E11E08C9F05136 208 | shareKey: 2E6648CD1D16677A734535E1484C72E6 209 | pubKey: 026FE2B0C76E8C16E2F08510BFF5F8D618B6B5D875DE761BA3 210 | shareKey: 87658A2927BBDB66CE52BCA14D11BAFC 211 | pubKey: 02E705454CC94855612BAEF1BFF390A2D6CB9F1FE6A192EFEC 212 | shareKey: D3F9CFDB25374752FE961CEAEB696958 213 | pubKey: 02BCF6CAE00E9F3B9DDDF2C797F7FA55C67729B22303926243 214 | shareKey: 3F3707223955DA0C9BF95804B5F3F2F3 215 | pubKey: 03B2292E016170AE9F11BA8EF4ECC649CA980A8FA66CEC426E 216 | shareKey: 8283F8D56E61F734255FEA3089494C8F 217 | pubKey: 03ED58BBBDCE6BA12A95E23E1CF9F7987917008B0C7C4493BC 218 | shareKey: 9A1BDA11D3BEA2DEDC58C487B3D174BA 219 | pubKey: 0240413D7D5CA36CF8853EB7BA7BEFE90468B2F04BDDFF62F0 220 | shareKey: 8FDB4F1B2A5A0CEC226097B33B2D0A22 221 | pubKey: 03BD56086242054EBAADE727F81CD9A9D76011DD33CB7FCD98 222 | shareKey: A18FBCF90867D3FD9E32B06CE3D5E8C6 223 | pubKey: 031987BFF9D37F8F779416AFB21CF1BABEF9B1392E83EC52C9 224 | shareKey: 97BD9917D4831EBD381493C99C7A731A 225 | pubKey: 0324ABEC2E7C7A94706E6D45242EE0F82EA03C7A9EF02EA839 226 | shareKey: A822F7C33A3EE16536F5309674E1F75A 227 | pubKey: 036C7CCA747B41EC477381E6B076B3411256956E85EFDB4A39 228 | shareKey: 18476B129E5454CC32134C56DB042551 229 | pubKey: 035DCCA2F5D317638721BCF9A7B7293609C51ABA43687437D5 230 | shareKey: B55BB50E61F5160DCD612F1766813DAA 231 | pubKey: 02C731A5B53FE73360474F75DCE39C8F2B9FD5A3D51A352EA6 232 | shareKey: 579C2169A0A34E1162C6E6DB66C2D45D 233 | pubKey: 038595D136B9F11336BC851432D4A5672BD2C4BAF444F48759 234 | shareKey: 886CC3A8882597579FAF64C7E380EB68 235 | pubKey: 0296B1B00ED5B990EF336899B90CDE874B9349503CB3866A55 236 | shareKey: 6ABD3AEF412C173010B1A7E8CF9DBCED 237 | pubKey: 03F3DCD63059EDD54ABFE0BC12E1964D1A7C76891D6D192605 238 | shareKey: CA3EDB17DB1C4FBC172363015B362F7C 239 | pubKey: 03E9BA5719B9FA13D3265A24624EAFE2087071EAF5A7AA8937 240 | shareKey: A26CE128ACDA0C656AB12F1CBF89B53F 241 | pubKey: 022B9238D178E2C3E759FF8E3BD8B51B98047CC1B518E92943 242 | shareKey: 24CB0E966B0761A0763867863E7F2A14 243 | pubKey: 03F2BA5E73A313FE56B3A1AF52F37EFA73017EDED74D7FFD90 244 | shareKey: 5436BA8D1C0792BD293FF00C52C69779 245 | pubKey: 025D258AE8BA6C2F65760FFABEBDEC6C9A943360B40C6EF8BE 246 | shareKey: E1BFD26CB80323968F8A14436D6493EE 247 | pubKey: 026D692D912D1AA5F0C08CE8D875AA9947021DF4CC872A9AD6 248 | shareKey: 50EF210D781ABA134F0E2936732794FA 249 | pubKey: 02C03DEA189D5C508BF60768F9BF0E88FDF4AE05D4BD436B91 250 | shareKey: 7D1B2DD6B46F2E539ADAF3E58F22FED2 251 | pubKey: 0359847989234FCD901ADD38BCE20CC86AE5356C01DCEC15D7 252 | shareKey: A6655AA074AB3B574CAB367CB801FFAD 253 | pubKey: 036429B562DB5B5630920D6F8A896C2185D1D5025A07965C68 254 | shareKey: 4AB284ADDA8CCB76D37B329F14193F25 255 | pubKey: 0320CB2D1E21669D5CD166B0D36AD82474435B12BD773F5EFA 256 | shareKey: 478205EA9C1A30DD4B397380E5457A9E 257 | pubKey: 03A0D31E69C0DE2C52137D509F74FE04702DA06C6C8A4CAD80 258 | shareKey: 4C48F6EFCE98561C229DE92A5453D11A 259 | pubKey: 02FC90CB41B1597CFABD3D03AF1129EE64716BF917942997F7 260 | shareKey: D0FC0D7A84057BFD3CAB4DC8093283A7 261 | pubKey: 023F62982D691ACBD1686BAFE40E1261F7E534AFA4A8E2D88A 262 | shareKey: 42BEDF0B38FAB11FBCC868D2AA699E46 263 | pubKey: 023777A8A4C1AFCC85F006D454A1059FE7F37A092CBA625E4F 264 | shareKey: 284DC0967E66E08177C56DBADBDC3952 265 | pubKey: 03E53C0173138794E75402A11156B77F642B839B7A7DE58412 266 | shareKey: 7A00020FEB3C536B9293595070ACE6F5 267 | pubKey: 033F0CD6B51738F0A8842ED764F2A6A989D58333E828977107 268 | shareKey: 3C05D69F5ACABCFC3E0511FD42A079A9 269 | pubKey: 027CBC7BDE48BAC0DF0AB5BCB11034078F9D4B8927CD544913 270 | shareKey: 043F1494A4C14E242C82DEAFB2412B47 271 | pubKey: 0224BA0A685D33C2689DE43C8A716DF76E90754889DF78405B 272 | shareKey: AA0F2A1DD953A0AB7ED2D2B2DF976850 273 | pubKey: 03E2CFB4AD2BCC8AD0C99DAB30F07B534FA30268E02EDF3FAE 274 | shareKey: 83FF6108167F1E5F49DE672B7D3AA408 275 | pubKey: 037A2A8F7594A9ADA05EC30F6D5B69B5E670BD2EFE81545579 276 | shareKey: 38D0EDB09BC2EC29C9292FF527C68AC3 277 | pubKey: 0272272CDF942058EBCDDE6F8C4B3FD9C8BBBC2B299AD06F9D 278 | shareKey: F69E4FBD8AFF258FBEAFB426EE521C7A 279 | pubKey: 02CB6578101C51B9DDAA7548C2C008468F77518F9B85529BD4 280 | shareKey: 344C37665D4E0DF56E74466256881E8C 281 | pubKey: 026DCE0534A57E78272992B10B70653EDE0B4D195EF4DA2BF5 282 | shareKey: F2DAA821F723605FDCEDBAA6670CD0FD 283 | pubKey: 0251D1614898B4C1270F7564FA2798A274685FBE7CFB498843 284 | shareKey: 1BBD4F5DD8D52244441D830127CD1C87 285 | pubKey: 02CE991F19ECDCC91417F232A2B53B689C31A1EAA8B7BE44D7 286 | shareKey: 76AF99A6CB68365D12FFE4E2EDC7EF5F 287 | pubKey: 02718195F36A354CAC894B704787C5852C847346E5C09F6F2D 288 | shareKey: 3152A69CABA164C66A2D23884B393DCD 289 | pubKey: 030097A0278F521DF4266E545056BEF166BBBBB4BB210A45ED 290 | shareKey: 9D3FCA0EFAF85FCFC46ABC38404D4805 291 | pubKey: 03C67C2FD9B6F92D75193E68B247E1AA86425256B9933AAECB 292 | shareKey: 84806A50F58D5DA6629F8617D03425C9 293 | pubKey: 03A1EE560719D4871A20D90897AECBCB02DF0CB8DC9EAFDF00 294 | shareKey: 78CB72F38D6DB0172B9E054833B923FA 295 | pubKey: 03E877722AA7DEAC6C1A5EB7DDB089708D2930CE5265DF1D6D 296 | shareKey: 28D6FAB5C588E83211884FCC78994796 297 | pubKey: 028793094380A6E6E272EEBF7F969256EDAB73C792A552DFC5 298 | shareKey: BA502A46AECEA03575CF21F00130F552 299 | pubKey: 039609F505C7E219B3F69AFD6A7D4458BC8AAF6C071DD80C1F 300 | shareKey: 23D3D220E9ACD689396C1900E7F092DB 301 | pubKey: 021FC050DA59C13505DF5C400F3809E76A9DE7F4560C6A9B62 302 | shareKey: 888794068C9B51765F30D8E8FB038F91 303 | pubKey: 03880D544F89AC882E92EF07D7B7130D42659FCDD8B5C5DE6A 304 | shareKey: 8FECE95E2D8C7FE59E629C6128EE974B 305 | pubKey: 0394CFC3336E8E4E30DD60605A2CE097759F0B38CEDB3B43EC 306 | shareKey: 7236047596899C3B812428F677731E5B 307 | pubKey: 0399156D401E888E0B5299DC82708B2C3925D8FB59BC28926D 308 | shareKey: E95CB309E1BA4795A44AD2DC3F38BD90 309 | pubKey: 03D015D2F96BDF15948F406F49D354BB285CF5887ACD4A3A6A 310 | shareKey: 2215AA6089394CA95E11D2D7DC775445 311 | pubKey: 031288182E48BA8508074A178D925B2CD2EED6803863BE47A9 312 | shareKey: DE4DC635BD2D9B5696927D32536E1315 313 | pubKey: 03EA8ACAB70A08F2059644463474CA6A844C29B7974A69FC91 314 | shareKey: 81A9264963020A51036993F8B1F8242A 315 | pubKey: 02A4C428389774E97A3B9C0D37C74D60B2F5FCB7B0FEC7EBD8 316 | shareKey: E16D51150279A1E9957B9601F8527156 317 | pubKey: 028416FE222C2FFDA848B2D7FFCC8D6D60888261B1714B01A2 318 | shareKey: 421214A9F2B30F55EB030407F7960109 319 | pubKey: 033D9B6AFC87D67F3DE42AFD832467C8DF3B43C82128B1C9E1 320 | shareKey: 6EB8F2F6771446E5903444CA34957AE9 321 | pubKey: 0258C5CCB70B3609FEE2A439971A13563FD311F97D8FF11EA3 322 | shareKey: FCA944406B907A521549E4CB32318459 323 | pubKey: 03CCC4F4DA998409B2413C8BD2C88E86E3E3CBC0A8B0793C9F 324 | shareKey: 478FFEC60E6E4E45648BC72431511470 325 | pubKey: 0304DC57FBC13071120A68A861F20AAFB8F7755656BB5F278F 326 | shareKey: 123FCE0198762D184D87A479E2BFB1DD 327 | pubKey: 0218F31D62A4B240D64D3371D14541DFCA6D53D215A3E32EC7 328 | shareKey: 988BEC82CC661435BB6A52A128A2E9D0 329 | pubKey: 0326F784A4638457207D1EF0ED497AAEA4B2E45C8AF2B3959F 330 | shareKey: 935F58F875C5CB7720895958C73C1112 331 | pubKey: 03F203DD9F9A96FADEDBCB8F374566DF8E086350BFE3C3F1E7 332 | shareKey: C6E52355D592D40B6E172704C70EF063 333 | pubKey: 03086F2262FDAD88E228D543EB45EC048942A0D8738D530896 334 | shareKey: BB53A5BC5CE9FA5AB7FEC7237544A20F 335 | pubKey: 0395DC839FAFACD87B7BD152133DDD89232C07A3F9BE8A3EE0 336 | shareKey: 5A153CC2DE79CA1D8B08EE1917723AC6 337 | pubKey: 02FB74F965B7ED87E3C9ADAB74D5AF7284F2382664F88A549C 338 | shareKey: 0A0BE15B8F4AC01868555102EC00F719 339 | pubKey: 038A77442372244AFB2AD831CA832FB2D1FE3712431C2483EE 340 | shareKey: 1869F160CFE9B924360D9CFAABEDD70E 341 | pubKey: 03BBE090B77034B39024F6F59D66765652DFC00C1BE757328A 342 | shareKey: BDA4DD071B5E95ACAC0BADD50779627B 343 | pubKey: 02EA01D8A0A9BB66F710E167B6D62A58955271FA3CE39DC79F 344 | shareKey: 898CAFB47E05F131284B0DE7E90C12FE 345 | pubKey: 022670AB2EF1A449794AD7F92C79978BB43CAF41803BD747DE 346 | shareKey: 82A4AD5E5EBF948D8C675ACBA00E3AD4 347 | pubKey: 0205B3B4A46402A6E0809E5269E72111DB9DF8855F77B0109E 348 | shareKey: 2F0F6D8860B2C834943B09BEFC06B0F4 349 | pubKey: 034F31D021D847F383556483D4DD4C64FBC8451C21AAA98A76 350 | shareKey: F641AB9F6F463BF8A65D8D1D97AD8C0F 351 | pubKey: 0338215E841033ABE7D384FE00535D9CF452F496E29EF985DC 352 | shareKey: F19CE4E4098A8FD0FA4E4FE6CD92F356 353 | pubKey: 02587C4467A005D25538E5BB3268C56D6811E85631716F11D3 354 | shareKey: 460A7040D18D4D08F38AF91D22F2A890 355 | pubKey: 021BE0CB13D2A4670A896AD9D1110E9F559AEA175D8A12B245 356 | shareKey: 853E5F2C5FE7F14CCD9D237DB52FC731 357 | pubKey: 031CAB2BAE39C4FB6D2738F49DA66F6D5C9E91EF0017031D5A 358 | shareKey: F780C2C506A904E5C9F9512AD3D9B60B 359 | pubKey: 02ED822773FCC9140D386B92364ECDC85735B658740BA33D3B 360 | shareKey: 1E0FE0F5C6326F9D169133576A5C5314 361 | pubKey: 03CE8202BAA167D89EE75F0EDE4E464BBB5940685DC5EA6CEA 362 | shareKey: 70E5320ED509B6112596660DE2C1C526 -------------------------------------------------------------------------------- /help/keys_code.java: -------------------------------------------------------------------------------- 1 | pubKeys.add(""); 2 | shareKeys.add(""); 3 | pubKeys.add("026E342D4365CF9A8E3DF088358B4FFB566BB366D0B4D04EA5"); 4 | shareKeys.add("B301562BBDC14207E4A234A7F8991D7C"); 5 | pubKeys.add("02446540DFB4592726F6BC03F409E911CD18DBC488A395F12A"); 6 | shareKeys.add("9AB981FB63CD2C370697DFAA928924C0"); 7 | pubKeys.add("02935B5245B860C92231806339F724633622662456F81059B1"); 8 | shareKeys.add("CBC8F774167AB906EF19757426649615"); 9 | pubKeys.add("03D09A11A951BF386467DD458DE1AA08A3DEFE6A689F4047C5"); 10 | shareKeys.add("D324B8C1DC05AF95D8DD29A6A00C5746"); 11 | pubKeys.add("03EFCA38013B27EFC4698877DA65EB342282AECCB2C18B3656"); 12 | shareKeys.add("531447D108759C9DDD8419BF356EE190"); 13 | pubKeys.add("03C4D52B36E7F12E7B52E3F18030FCD8CFFDA24BDD49108C24"); 14 | shareKeys.add("7EF18AD02A7E08D7552B54F0A1CAB854"); 15 | pubKeys.add("035EB4D273AC31C5C34F335B5503678EF75C480D28A773F117"); 16 | shareKeys.add("EB15FF65D78D88698D9E0C2F95F3E341"); 17 | pubKeys.add("02B5E7A7F42DFE66CF7BE70E6D0666A14136FB32CA17E9D75C"); 18 | shareKeys.add("8F80B215F8D133FCB7E2EF8D1215D72C"); 19 | pubKeys.add("03BC21DD33608B7A8241BEA5EB7FF6CB596841975E0A48BE94"); 20 | shareKeys.add("06B00CD3A4D131444D1BAD2875CBA7E8"); 21 | pubKeys.add("02E093BF367B70FF94067732C8A3EBCBB8FA78154F8395F5C1"); 22 | shareKeys.add("4AE098DB9782262178BF1D0E6013FB13"); 23 | pubKeys.add("03778D044334A4F62D83B25525B3C7448370A993033375C906"); 24 | shareKeys.add("060022DD7E98B7A605AEF09FF28FB54B"); 25 | pubKeys.add("0327F8820231E30AC087CBEF923FDAB221D5C2C2965C1F48F3"); 26 | shareKeys.add("B4FA8265F488A9580E51E45FCAA1B504"); 27 | pubKeys.add("0286522A9321C554E9F6505C28D5D8937DEC9F13E4AA2BE9FA"); 28 | shareKeys.add("DA2811856AB4F4661A6EBED2E308CB15"); 29 | pubKeys.add("031808DBF32BC04E2AF3C1BFA5A8B7043F7870B58E440E5830"); 30 | shareKeys.add("9BDB3E53FA2A953DDC18E36AAFF02188"); 31 | pubKeys.add("03E96EC2B3E52F26D8139F3B9B191432B6C01C0521F393AF98"); 32 | shareKeys.add("69CC5FB87FADD79C8CE8B3CE1DE6E27E"); 33 | pubKeys.add("038DD887461EE27D76C0EC49B3FA9F1B54D23AABD8D7DF8CF5"); 34 | shareKeys.add("B6141F076E48F658F61356F79B1C728A"); 35 | pubKeys.add("036E847DDDCC879D1E17FBA67ED429440EE81C4B9E5AEA1FF7"); 36 | shareKeys.add("F13669CF54CB2BF16AE25A8BFA48B617"); 37 | pubKeys.add("0373461388C74F0E4981C39ACD321F330CEE4213C092F2FB46"); 38 | shareKeys.add("A6E5DBDED0C8C107DA3A99D1D156BBF8"); 39 | pubKeys.add("03C9F5EBD1EFA481FE517F470663010EAE56096F8F5DA9BAA7"); 40 | shareKeys.add("FBAE6D98AFAB9CEDAF95265D645454A2"); 41 | pubKeys.add("02122958E321F20F172CFC5639CDECB96C0B219C794C31EEC0"); 42 | shareKeys.add("5D5C6DEFA79542C33EE3182605E8BDD4"); 43 | pubKeys.add("031237BF1BC8DAC11D9E35467EC4525EF7A758710FE2176F1F"); 44 | shareKeys.add("A4A80FEB2E1B8B8D0158EF472C6C0FBE"); 45 | pubKeys.add("02546453AC9B615AB9B53DEC3388B36BDC52DD60FF24DED25D"); 46 | shareKeys.add("815BBEA6999405DB507659B55B80FC98"); 47 | pubKeys.add("033A867016A13C45F45B33F40C4076B84F13DE1BD26A2A0C0A"); 48 | shareKeys.add("3BD540080BDB8690A71077E23AE1BC2A"); 49 | pubKeys.add("03F7D00F9C375420255D2752618C61C461D4ADBEB313A5A186"); 50 | shareKeys.add("94EBAC0DB07F72FCE39E07C95818443C"); 51 | pubKeys.add("02832373E5BF546D1C45ACDEA0BD0AF758195CB97A74036187"); 52 | shareKeys.add("231061F424193A03BAD6F3620676A916"); 53 | pubKeys.add("023F885CC51FD374524DD1A26F3BAEC6E0816F768386134020"); 54 | shareKeys.add("F37B7C9B70504A2D2908E95BD4410D31"); 55 | pubKeys.add("02BDBE429C5BF300B5E56E29602250D11BCDD44F2E86734BBA"); 56 | shareKeys.add("04D61BB4AEF031ECEF64ABB4B48EA595"); 57 | pubKeys.add("031A36E1C8FB017C7D1F1B136F2697597F49A0C20EC74AEBF4"); 58 | shareKeys.add("0D63E7475B73C4B3EEA8F00EAA0783CA"); 59 | pubKeys.add("02818B30B761E23916A45170ADBF8E00BEBAD449EC291C05A0"); 60 | shareKeys.add("AB73280A8DA5946AC6B29ED021C8654E"); 61 | pubKeys.add("03DB3A5A7C83EE5168A050813F45035D3D074BA0467A095676"); 62 | shareKeys.add("90BF87A31C40698AB1612A4A0ECB8F7C"); 63 | pubKeys.add("031E75B0E8D473C616170A593528701C75428BE9F01935D365"); 64 | shareKeys.add("12A92D0BA5F84694870345F59F89EF25"); 65 | pubKeys.add("0261F537693C252A03C5DC2C4EDBAF81B25D7ECFC6E3C7CF15"); 66 | shareKeys.add("D7E252E7D0BF47F81438E86251898919"); 67 | pubKeys.add("02DE1808FA0F90F9476EDDF5689D75CB9E2A72021E5F596B00"); 68 | shareKeys.add("B8F3CA92CC816C7E58859ACA538FF109"); 69 | pubKeys.add("0289F89875BFCA143524803000DC35965953F6C0908E199E6D"); 70 | shareKeys.add("00FC2E0C43579E68EB86A0113F489F53"); 71 | pubKeys.add("029D504C68F09723C146EBF45D2DCA3709A5D6A54754864785"); 72 | shareKeys.add("E167A116A8CE54261DD720D398BAC211"); 73 | pubKeys.add("02DE041072962721FA6A673389C22E21500DEE987DAFBFB939"); 74 | shareKeys.add("C3E26A1FFC490453ACA68C388C62F061"); 75 | pubKeys.add("026B982400D2D9CE37B25DCF13A8A76FC0802EE5C985DA931F"); 76 | shareKeys.add("82A9ED7408D1B80D6C443F45F2D24F23"); 77 | pubKeys.add("02B763293DCA0177F1292A6914DCCC8534EB57748A59C5C01B"); 78 | shareKeys.add("91479CCFBFDF71AF9D9A2AE889803CB0"); 79 | pubKeys.add("0242282FDDAA543E9657FAF0902CCC2A0CE22FE5BFA2769966"); 80 | shareKeys.add("F2742DEA1F6625D22279EC7BCD6CC1FB"); 81 | pubKeys.add("02FBE0E118E7C4BB0C592DBEEBD46EE5B171CDB2FD5CBCD3B6"); 82 | shareKeys.add("24633C181D0A044455357D51945C167D"); 83 | pubKeys.add("02750F3DFE9E4C76EF4F3FB93D787752A2C71B1BB26B7DC7FD"); 84 | shareKeys.add("8B3529168A85E08476E99C7AD81184C9"); 85 | pubKeys.add("03773E035A42927FB60302AEEFBBF3C38F1688E493E71E8D55"); 86 | shareKeys.add("51786028574BFAE417FE2E917DB9D2FC"); 87 | pubKeys.add("03033B6AA18C43E35115F0D3A9C96BC39C4BFD62E7F06EEEFD"); 88 | shareKeys.add("2806293FB061116620F0BA98596261FE"); 89 | pubKeys.add("02FFDA46FDBBB4329354F6F605D3BD3B9318ADC6931970789D"); 90 | shareKeys.add("A4EA7D3FE05E64DECD590AA28C102F8D"); 91 | pubKeys.add("03BFCA38C22DE388B36A0738E36439D6F462B54D3B70BD413F"); 92 | shareKeys.add("598CDD368DBCBB9576D93FDED7408881"); 93 | pubKeys.add("02627AB98F38E10E728EFEDD7F4F341A8EB254425DED404B49"); 94 | shareKeys.add("1428A8C32E83938282E78020C12E72F3"); 95 | pubKeys.add("02D1AE4C52B2AC8BE4CAFDFB5CACCA5681B26733F91FAE2986"); 96 | shareKeys.add("08C1A214C4E76086152128B59784D1AA"); 97 | pubKeys.add("030A2C6D2EA4834F561E46DE8C51336FB4AE0A20DC4F575085"); 98 | shareKeys.add("555A19A46024ACFB08F38A92F54F04B4"); 99 | pubKeys.add("036001B8B461A831C248B5B15A90E1F02117DFF5BC8CDD74DF"); 100 | shareKeys.add("BF72203FF0538ABB1E785EF7670D107F"); 101 | pubKeys.add("035D07937FA602FC77E79A79CF0150D0F01AE76F14C814B9BE"); 102 | shareKeys.add("E7D985A2DECF40C1FB181AED896801C1"); 103 | pubKeys.add("02945DE850E28C1F2B596A55BDB008B7BC4B389987BE9F7FE8"); 104 | shareKeys.add("2759D301415416F4D0584742E67A66F9"); 105 | pubKeys.add("02D6B3A1D7B28DD9999D6540C7A094C766094E61CD6C3F800B"); 106 | shareKeys.add("846A45D92DEBC851C0403577595874A7"); 107 | pubKeys.add("021294039FE3C0CE47D3C2F82A88EFE91A15C21BDAD46BB831"); 108 | shareKeys.add("791A62A9788D19E783CD3D8169229D73"); 109 | pubKeys.add("027B613B476034427FB93B57323AF63D840BD96EDFA57E5123"); 110 | shareKeys.add("E631E319968065F7CDAFFA3E003A321E"); 111 | pubKeys.add("036926289E74C6A7AB8B178F25B3FA8CAFA49BA33705EA5403"); 112 | shareKeys.add("EFBADDE297AA43F51D7909BAF5E36B4B"); 113 | pubKeys.add("02DC297EC5A554E74CFF8428A84D6D80FF202CD0895E253504"); 114 | shareKeys.add("33D1940E0C240D9AA4DC1DCE170BDDC0"); 115 | pubKeys.add("0236F8958D400AEEE4378C96C636F9A2A1EADA722E97663ED7"); 116 | shareKeys.add("D5E8568021D4C673FDDC6B2E07556D5D"); 117 | pubKeys.add("0357884BA0FE03E3884EF3C57968C64E390E58ABC591F231A4"); 118 | shareKeys.add("F821D9FFA0CA1BB5B08345359DCD2E08"); 119 | pubKeys.add("02485C5EAB01F95E5298B92AE5B00D8E0BB0DD2DEC1246F390"); 120 | shareKeys.add("039E5AC955D78D6191C69B981E8FBFCB"); 121 | pubKeys.add("020BA10E46EEA305613C02E3D9A283B4BB27FFE766733785C9"); 122 | shareKeys.add("DA2A793DA25CD401B672A13FA8EF1027"); 123 | pubKeys.add("02776C1BB78955F399F38AABEC4229D74A6165A23450945236"); 124 | shareKeys.add("FEB3C23A60936E3F8FBEAF5DD26F1B91"); 125 | pubKeys.add("039D36F3D684A824F6A578DE0561BD45C116F60A1AFD46471E"); 126 | shareKeys.add("F93192749CD61B582230B181D5B58EC7"); 127 | pubKeys.add("02B3EAE23042BD86015E090E39675095ADE69BC3265C9A8C55"); 128 | shareKeys.add("286A1CCCB04279D054DB9571BADBDA95"); 129 | pubKeys.add("038E8AC9EAF8D4B7FEA049AA7B4275D9093447439FDD8E1C7E"); 130 | shareKeys.add("4A2B4E73217F5B8D22D50B5F0D9E1215"); 131 | pubKeys.add("030C159B4F419331655B16490B61872B9612F9237726541A4B"); 132 | shareKeys.add("E12D1E27F0E5A7EA80BE438959319C1D"); 133 | pubKeys.add("038766057A5D3392349D95B508AD8A34FC67ECE31DA02DB232"); 134 | shareKeys.add("B32F34CDCA160C2CC515B005782F4F94"); 135 | pubKeys.add("02407CBBE566F093FE3E09D0FBFC10E5D0FEE0341534AFEC12"); 136 | shareKeys.add("3D5ED662CBA0EB0F3456F93AFC3A0BAA"); 137 | pubKeys.add("03D0426FFA6FCF6DE2AB046C739067846A5675C56F99BFE5C4"); 138 | shareKeys.add("884F2E05C5E3B35419BECC1D6C395D3D"); 139 | pubKeys.add("0309961B7E44C0DC42E7C813F1E262F5203E3D0EBC6A47961B"); 140 | shareKeys.add("4F1B244C7719F1F928FB0361173EC6AD"); 141 | pubKeys.add("02D7D73DFFD1B889E8E842815194AB2AC348F5621CAC1FEF40"); 142 | shareKeys.add("C9D10A873EC4962F7530C60B96B8241A"); 143 | pubKeys.add("0318990DC211B6705BBFCB473D4FE160CC4517D2B71BA1920E"); 144 | shareKeys.add("CAAB47B80EA87E33FAA6095382627940"); 145 | pubKeys.add("031C7ADA4CE43252CACE877201910161AB5B62D0C6B7CA7279"); 146 | shareKeys.add("54045F0F47DBE8EA1C6B1820F2DDC78F"); 147 | pubKeys.add("03252670DC270F33DDB68AA6C194BBF7CC253E4D36EFAE0008"); 148 | shareKeys.add("20B4DD9041E056BEDDCB72A66ABD7E77"); 149 | pubKeys.add("02FACB0424806BE650321F25959363596388BBE3A89018990C"); 150 | shareKeys.add("86BC7187AFC9FCCEFAE24E86E6C04CFF"); 151 | pubKeys.add("03806AF5FED3DB921B894DC4F472E53021F758FFC709AEA162"); 152 | shareKeys.add("838910B96C5578B330518E400A3122AC"); 153 | pubKeys.add("03B651C39219701F882E2BDBE20B852797552E3A66547D4802"); 154 | shareKeys.add("64DBFF574A361EB6361BA98CEAD8D217"); 155 | pubKeys.add("022FF07FEDE3BDC7F14FB86D6414086A29C8680302C1FFCB13"); 156 | shareKeys.add("4F0DEC021D9F1FC929380CE89CE91E80"); 157 | pubKeys.add("03916F379EAFB46AE149E880A51FA8AE86D4AD46B171C7C06A"); 158 | shareKeys.add("1069864BBE772A25E6224F5E91DEB0EF"); 159 | pubKeys.add("027E2A6F31677BD47266F51E67368CA9C5B6AB9CCCBDDA2565"); 160 | shareKeys.add("506EBBC4DA41A118852A02063DD7E850"); 161 | pubKeys.add("036E3EDD079548F1D3508C53F7F5B6A85C76B94C9681F44B50"); 162 | shareKeys.add("8263F790260879B89C76E2C9E3ACC6C8"); 163 | pubKeys.add("0333AD69C4C8A3E770DEE24B2700AF8BCDA1E9DEA92325B790"); 164 | shareKeys.add("7D4047051C83C1CB04145F8283EA68F3"); 165 | pubKeys.add("028EBDF7D3665D32FF3BDE45274D7150A2011025F77BF29868"); 166 | shareKeys.add("D415088CFAF751BE56F39320EB9A03BD"); 167 | pubKeys.add("03212E97B77BE304DAF1ACDC1D7DB1D220AC7C82F690361854"); 168 | shareKeys.add("5E18D8831E567AABCDBB9FE44DFC6A5A"); 169 | pubKeys.add("0395796440CD7C817E25380DBA2F42A19FEAE8250C7A3FD2E4"); 170 | shareKeys.add("46E66DFBA01752EAFC1B5C43584C1098"); 171 | pubKeys.add("0389EFE3C12424F5CFEE36AE31BBC67A205E900794CA063F62"); 172 | shareKeys.add("83EEC2A12FC3B3901674D62DD1B403B5"); 173 | pubKeys.add("03C2B8FAA9975FC9FF4B25E183A263923F2DC732EC8A932EE9"); 174 | shareKeys.add("C8BD7BD8046D3E65DB89CB89BDF40757"); 175 | pubKeys.add("024DA59432858DDA69F4398047A3EF9DB3ECE76CF41CAA9C66"); 176 | shareKeys.add("4A14F6502BDA9F2DBB080DA47B4F3C0D"); 177 | pubKeys.add("032CDD073B26EE331C2491953979898B7B1BC152048187BC38"); 178 | shareKeys.add("081D5CA76AF5902CB4FE3E4608B2413F"); 179 | pubKeys.add("03F00E185E6648E2682E59585AD9A347BFA0C1A1369514D6F2"); 180 | shareKeys.add("4562C87D5EEBF335B4C85405600941B7"); 181 | pubKeys.add("0244752AC5C6FE2AA6E7E5FD2F317537528CAD5DB00CECFDAB"); 182 | shareKeys.add("38B4FA71C37C7A3892DCCC7804BE806B"); 183 | pubKeys.add("02FC9BED7371FC1B28DDF3B18AFCAB8BDCC3A90A1DE9F58857"); 184 | shareKeys.add("4CADB4999FBD827E9EAA6BD31FC49F73"); 185 | pubKeys.add("039319B4F75B30D37A93BAECB14EF826780152ED0C6291B9B2"); 186 | shareKeys.add("CDBA58F478CCBA40BC1FBAD30C8F077A"); 187 | pubKeys.add("03E11698C3964462FDEC0FC5D6219B277BE98E0539720A0A54"); 188 | shareKeys.add("87CAB25ED6D06CF10EE506E9A28FC436"); 189 | pubKeys.add("035AE1BE97A51E43F63CFDDDF089D0458E349F67CD751D20A9"); 190 | shareKeys.add("65CCA5CE5DAF47A7EB81CC19FC5154FC"); 191 | pubKeys.add("02C302F6836C92EA723E2907B0C30E66DA16B641F00AAFFBF8"); 192 | shareKeys.add("DFF8683B5FBEB96C1AC6C1BA3E517EDE"); 193 | pubKeys.add("031C0806A6EC7C3CFB7F9DACA0DC537F10F44CA1CD78BDCE03"); 194 | shareKeys.add("352B7B606F44911D710A7A274861AA24"); 195 | pubKeys.add("03961639FCE4C4D045736C0A87D7912A259AE2EADF5398FE1C"); 196 | shareKeys.add("A97A78A4FDBF5263D1D64E258A48A9F4"); 197 | pubKeys.add("0213DCFDF1A70570C0F8E7FD4F1D0A704FE3046D38DCA24F1D"); 198 | shareKeys.add("38E274EEC09A5E86EFAB383CC5B3F34D"); 199 | pubKeys.add("02532A27DF6A288D0DF55A14A9884F7426445D09D18F138A0D"); 200 | shareKeys.add("8DE7E4DD52373847D8E6CC4E8D8DA14A"); 201 | pubKeys.add("03170FAFAB482EB9CE2E7774683310FB6D8DE9B88F3E89C046"); 202 | shareKeys.add("34486D58071AA7AA8CFE1C5666014319"); 203 | pubKeys.add("03D66AAE57FB978BD744BF79F7B3222E9E59DEC3BF32D46AF9"); 204 | shareKeys.add("24280EE0C48F1DB4A130912DB4F44D6D"); 205 | pubKeys.add("0375FD954A5D167DCCA115FC30CC44D0EA45E3C62EC9B79E2E"); 206 | shareKeys.add("32D79157DB254477A8110EE405CC287A"); 207 | pubKeys.add("021ABCBBEC5C96827D9E58A2A549D0983C7837ECC277E284A4"); 208 | shareKeys.add("87BF4EDCAF7342F0B7474C49E3EA88B1"); 209 | pubKeys.add("034884492935FE8EC88460BEBC33E7879C34E11E08C9F05136"); 210 | shareKeys.add("2E6648CD1D16677A734535E1484C72E6"); 211 | pubKeys.add("026FE2B0C76E8C16E2F08510BFF5F8D618B6B5D875DE761BA3"); 212 | shareKeys.add("87658A2927BBDB66CE52BCA14D11BAFC"); 213 | pubKeys.add("02E705454CC94855612BAEF1BFF390A2D6CB9F1FE6A192EFEC"); 214 | shareKeys.add("D3F9CFDB25374752FE961CEAEB696958"); 215 | pubKeys.add("02BCF6CAE00E9F3B9DDDF2C797F7FA55C67729B22303926243"); 216 | shareKeys.add("3F3707223955DA0C9BF95804B5F3F2F3"); 217 | pubKeys.add("03B2292E016170AE9F11BA8EF4ECC649CA980A8FA66CEC426E"); 218 | shareKeys.add("8283F8D56E61F734255FEA3089494C8F"); 219 | pubKeys.add("03ED58BBBDCE6BA12A95E23E1CF9F7987917008B0C7C4493BC"); 220 | shareKeys.add("9A1BDA11D3BEA2DEDC58C487B3D174BA"); 221 | pubKeys.add("0240413D7D5CA36CF8853EB7BA7BEFE90468B2F04BDDFF62F0"); 222 | shareKeys.add("8FDB4F1B2A5A0CEC226097B33B2D0A22"); 223 | pubKeys.add("03BD56086242054EBAADE727F81CD9A9D76011DD33CB7FCD98"); 224 | shareKeys.add("A18FBCF90867D3FD9E32B06CE3D5E8C6"); 225 | pubKeys.add("031987BFF9D37F8F779416AFB21CF1BABEF9B1392E83EC52C9"); 226 | shareKeys.add("97BD9917D4831EBD381493C99C7A731A"); 227 | pubKeys.add("0324ABEC2E7C7A94706E6D45242EE0F82EA03C7A9EF02EA839"); 228 | shareKeys.add("A822F7C33A3EE16536F5309674E1F75A"); 229 | pubKeys.add("036C7CCA747B41EC477381E6B076B3411256956E85EFDB4A39"); 230 | shareKeys.add("18476B129E5454CC32134C56DB042551"); 231 | pubKeys.add("035DCCA2F5D317638721BCF9A7B7293609C51ABA43687437D5"); 232 | shareKeys.add("B55BB50E61F5160DCD612F1766813DAA"); 233 | pubKeys.add("02C731A5B53FE73360474F75DCE39C8F2B9FD5A3D51A352EA6"); 234 | shareKeys.add("579C2169A0A34E1162C6E6DB66C2D45D"); 235 | pubKeys.add("038595D136B9F11336BC851432D4A5672BD2C4BAF444F48759"); 236 | shareKeys.add("886CC3A8882597579FAF64C7E380EB68"); 237 | pubKeys.add("0296B1B00ED5B990EF336899B90CDE874B9349503CB3866A55"); 238 | shareKeys.add("6ABD3AEF412C173010B1A7E8CF9DBCED"); 239 | pubKeys.add("03F3DCD63059EDD54ABFE0BC12E1964D1A7C76891D6D192605"); 240 | shareKeys.add("CA3EDB17DB1C4FBC172363015B362F7C"); 241 | pubKeys.add("03E9BA5719B9FA13D3265A24624EAFE2087071EAF5A7AA8937"); 242 | shareKeys.add("A26CE128ACDA0C656AB12F1CBF89B53F"); 243 | pubKeys.add("022B9238D178E2C3E759FF8E3BD8B51B98047CC1B518E92943"); 244 | shareKeys.add("24CB0E966B0761A0763867863E7F2A14"); 245 | pubKeys.add("03F2BA5E73A313FE56B3A1AF52F37EFA73017EDED74D7FFD90"); 246 | shareKeys.add("5436BA8D1C0792BD293FF00C52C69779"); 247 | pubKeys.add("025D258AE8BA6C2F65760FFABEBDEC6C9A943360B40C6EF8BE"); 248 | shareKeys.add("E1BFD26CB80323968F8A14436D6493EE"); 249 | pubKeys.add("026D692D912D1AA5F0C08CE8D875AA9947021DF4CC872A9AD6"); 250 | shareKeys.add("50EF210D781ABA134F0E2936732794FA"); 251 | pubKeys.add("02C03DEA189D5C508BF60768F9BF0E88FDF4AE05D4BD436B91"); 252 | shareKeys.add("7D1B2DD6B46F2E539ADAF3E58F22FED2"); 253 | pubKeys.add("0359847989234FCD901ADD38BCE20CC86AE5356C01DCEC15D7"); 254 | shareKeys.add("A6655AA074AB3B574CAB367CB801FFAD"); 255 | pubKeys.add("036429B562DB5B5630920D6F8A896C2185D1D5025A07965C68"); 256 | shareKeys.add("4AB284ADDA8CCB76D37B329F14193F25"); 257 | pubKeys.add("0320CB2D1E21669D5CD166B0D36AD82474435B12BD773F5EFA"); 258 | shareKeys.add("478205EA9C1A30DD4B397380E5457A9E"); 259 | pubKeys.add("03A0D31E69C0DE2C52137D509F74FE04702DA06C6C8A4CAD80"); 260 | shareKeys.add("4C48F6EFCE98561C229DE92A5453D11A"); 261 | pubKeys.add("02FC90CB41B1597CFABD3D03AF1129EE64716BF917942997F7"); 262 | shareKeys.add("D0FC0D7A84057BFD3CAB4DC8093283A7"); 263 | pubKeys.add("023F62982D691ACBD1686BAFE40E1261F7E534AFA4A8E2D88A"); 264 | shareKeys.add("42BEDF0B38FAB11FBCC868D2AA699E46"); 265 | pubKeys.add("023777A8A4C1AFCC85F006D454A1059FE7F37A092CBA625E4F"); 266 | shareKeys.add("284DC0967E66E08177C56DBADBDC3952"); 267 | pubKeys.add("03E53C0173138794E75402A11156B77F642B839B7A7DE58412"); 268 | shareKeys.add("7A00020FEB3C536B9293595070ACE6F5"); 269 | pubKeys.add("033F0CD6B51738F0A8842ED764F2A6A989D58333E828977107"); 270 | shareKeys.add("3C05D69F5ACABCFC3E0511FD42A079A9"); 271 | pubKeys.add("027CBC7BDE48BAC0DF0AB5BCB11034078F9D4B8927CD544913"); 272 | shareKeys.add("043F1494A4C14E242C82DEAFB2412B47"); 273 | pubKeys.add("0224BA0A685D33C2689DE43C8A716DF76E90754889DF78405B"); 274 | shareKeys.add("AA0F2A1DD953A0AB7ED2D2B2DF976850"); 275 | pubKeys.add("03E2CFB4AD2BCC8AD0C99DAB30F07B534FA30268E02EDF3FAE"); 276 | shareKeys.add("83FF6108167F1E5F49DE672B7D3AA408"); 277 | pubKeys.add("037A2A8F7594A9ADA05EC30F6D5B69B5E670BD2EFE81545579"); 278 | shareKeys.add("38D0EDB09BC2EC29C9292FF527C68AC3"); 279 | pubKeys.add("0272272CDF942058EBCDDE6F8C4B3FD9C8BBBC2B299AD06F9D"); 280 | shareKeys.add("F69E4FBD8AFF258FBEAFB426EE521C7A"); 281 | pubKeys.add("02CB6578101C51B9DDAA7548C2C008468F77518F9B85529BD4"); 282 | shareKeys.add("344C37665D4E0DF56E74466256881E8C"); 283 | pubKeys.add("026DCE0534A57E78272992B10B70653EDE0B4D195EF4DA2BF5"); 284 | shareKeys.add("F2DAA821F723605FDCEDBAA6670CD0FD"); 285 | pubKeys.add("0251D1614898B4C1270F7564FA2798A274685FBE7CFB498843"); 286 | shareKeys.add("1BBD4F5DD8D52244441D830127CD1C87"); 287 | pubKeys.add("02CE991F19ECDCC91417F232A2B53B689C31A1EAA8B7BE44D7"); 288 | shareKeys.add("76AF99A6CB68365D12FFE4E2EDC7EF5F"); 289 | pubKeys.add("02718195F36A354CAC894B704787C5852C847346E5C09F6F2D"); 290 | shareKeys.add("3152A69CABA164C66A2D23884B393DCD"); 291 | pubKeys.add("030097A0278F521DF4266E545056BEF166BBBBB4BB210A45ED"); 292 | shareKeys.add("9D3FCA0EFAF85FCFC46ABC38404D4805"); 293 | pubKeys.add("03C67C2FD9B6F92D75193E68B247E1AA86425256B9933AAECB"); 294 | shareKeys.add("84806A50F58D5DA6629F8617D03425C9"); 295 | pubKeys.add("03A1EE560719D4871A20D90897AECBCB02DF0CB8DC9EAFDF00"); 296 | shareKeys.add("78CB72F38D6DB0172B9E054833B923FA"); 297 | pubKeys.add("03E877722AA7DEAC6C1A5EB7DDB089708D2930CE5265DF1D6D"); 298 | shareKeys.add("28D6FAB5C588E83211884FCC78994796"); 299 | pubKeys.add("028793094380A6E6E272EEBF7F969256EDAB73C792A552DFC5"); 300 | shareKeys.add("BA502A46AECEA03575CF21F00130F552"); 301 | pubKeys.add("039609F505C7E219B3F69AFD6A7D4458BC8AAF6C071DD80C1F"); 302 | shareKeys.add("23D3D220E9ACD689396C1900E7F092DB"); 303 | pubKeys.add("021FC050DA59C13505DF5C400F3809E76A9DE7F4560C6A9B62"); 304 | shareKeys.add("888794068C9B51765F30D8E8FB038F91"); 305 | pubKeys.add("03880D544F89AC882E92EF07D7B7130D42659FCDD8B5C5DE6A"); 306 | shareKeys.add("8FECE95E2D8C7FE59E629C6128EE974B"); 307 | pubKeys.add("0394CFC3336E8E4E30DD60605A2CE097759F0B38CEDB3B43EC"); 308 | shareKeys.add("7236047596899C3B812428F677731E5B"); 309 | pubKeys.add("0399156D401E888E0B5299DC82708B2C3925D8FB59BC28926D"); 310 | shareKeys.add("E95CB309E1BA4795A44AD2DC3F38BD90"); 311 | pubKeys.add("03D015D2F96BDF15948F406F49D354BB285CF5887ACD4A3A6A"); 312 | shareKeys.add("2215AA6089394CA95E11D2D7DC775445"); 313 | pubKeys.add("031288182E48BA8508074A178D925B2CD2EED6803863BE47A9"); 314 | shareKeys.add("DE4DC635BD2D9B5696927D32536E1315"); 315 | pubKeys.add("03EA8ACAB70A08F2059644463474CA6A844C29B7974A69FC91"); 316 | shareKeys.add("81A9264963020A51036993F8B1F8242A"); 317 | pubKeys.add("02A4C428389774E97A3B9C0D37C74D60B2F5FCB7B0FEC7EBD8"); 318 | shareKeys.add("E16D51150279A1E9957B9601F8527156"); 319 | pubKeys.add("028416FE222C2FFDA848B2D7FFCC8D6D60888261B1714B01A2"); 320 | shareKeys.add("421214A9F2B30F55EB030407F7960109"); 321 | pubKeys.add("033D9B6AFC87D67F3DE42AFD832467C8DF3B43C82128B1C9E1"); 322 | shareKeys.add("6EB8F2F6771446E5903444CA34957AE9"); 323 | pubKeys.add("0258C5CCB70B3609FEE2A439971A13563FD311F97D8FF11EA3"); 324 | shareKeys.add("FCA944406B907A521549E4CB32318459"); 325 | pubKeys.add("03CCC4F4DA998409B2413C8BD2C88E86E3E3CBC0A8B0793C9F"); 326 | shareKeys.add("478FFEC60E6E4E45648BC72431511470"); 327 | pubKeys.add("0304DC57FBC13071120A68A861F20AAFB8F7755656BB5F278F"); 328 | shareKeys.add("123FCE0198762D184D87A479E2BFB1DD"); 329 | pubKeys.add("0218F31D62A4B240D64D3371D14541DFCA6D53D215A3E32EC7"); 330 | shareKeys.add("988BEC82CC661435BB6A52A128A2E9D0"); 331 | pubKeys.add("0326F784A4638457207D1EF0ED497AAEA4B2E45C8AF2B3959F"); 332 | shareKeys.add("935F58F875C5CB7720895958C73C1112"); 333 | pubKeys.add("03F203DD9F9A96FADEDBCB8F374566DF8E086350BFE3C3F1E7"); 334 | shareKeys.add("C6E52355D592D40B6E172704C70EF063"); 335 | pubKeys.add("03086F2262FDAD88E228D543EB45EC048942A0D8738D530896"); 336 | shareKeys.add("BB53A5BC5CE9FA5AB7FEC7237544A20F"); 337 | pubKeys.add("0395DC839FAFACD87B7BD152133DDD89232C07A3F9BE8A3EE0"); 338 | shareKeys.add("5A153CC2DE79CA1D8B08EE1917723AC6"); 339 | pubKeys.add("02FB74F965B7ED87E3C9ADAB74D5AF7284F2382664F88A549C"); 340 | shareKeys.add("0A0BE15B8F4AC01868555102EC00F719"); 341 | pubKeys.add("038A77442372244AFB2AD831CA832FB2D1FE3712431C2483EE"); 342 | shareKeys.add("1869F160CFE9B924360D9CFAABEDD70E"); 343 | pubKeys.add("03BBE090B77034B39024F6F59D66765652DFC00C1BE757328A"); 344 | shareKeys.add("BDA4DD071B5E95ACAC0BADD50779627B"); 345 | pubKeys.add("02EA01D8A0A9BB66F710E167B6D62A58955271FA3CE39DC79F"); 346 | shareKeys.add("898CAFB47E05F131284B0DE7E90C12FE"); 347 | pubKeys.add("022670AB2EF1A449794AD7F92C79978BB43CAF41803BD747DE"); 348 | shareKeys.add("82A4AD5E5EBF948D8C675ACBA00E3AD4"); 349 | pubKeys.add("0205B3B4A46402A6E0809E5269E72111DB9DF8855F77B0109E"); 350 | shareKeys.add("2F0F6D8860B2C834943B09BEFC06B0F4"); 351 | pubKeys.add("034F31D021D847F383556483D4DD4C64FBC8451C21AAA98A76"); 352 | shareKeys.add("F641AB9F6F463BF8A65D8D1D97AD8C0F"); 353 | pubKeys.add("0338215E841033ABE7D384FE00535D9CF452F496E29EF985DC"); 354 | shareKeys.add("F19CE4E4098A8FD0FA4E4FE6CD92F356"); 355 | pubKeys.add("02587C4467A005D25538E5BB3268C56D6811E85631716F11D3"); 356 | shareKeys.add("460A7040D18D4D08F38AF91D22F2A890"); 357 | pubKeys.add("021BE0CB13D2A4670A896AD9D1110E9F559AEA175D8A12B245"); 358 | shareKeys.add("853E5F2C5FE7F14CCD9D237DB52FC731"); 359 | pubKeys.add("031CAB2BAE39C4FB6D2738F49DA66F6D5C9E91EF0017031D5A"); 360 | shareKeys.add("F780C2C506A904E5C9F9512AD3D9B60B"); 361 | pubKeys.add("02ED822773FCC9140D386B92364ECDC85735B658740BA33D3B"); 362 | shareKeys.add("1E0FE0F5C6326F9D169133576A5C5314"); 363 | pubKeys.add("03CE8202BAA167D89EE75F0EDE4E464BBB5940685DC5EA6CEA"); 364 | shareKeys.add("70E5320ED509B6112596660DE2C1C526"); 365 | -------------------------------------------------------------------------------- /help/keys_code.py: -------------------------------------------------------------------------------- 1 | pubKeys.append("026E342D4365CF9A8E3DF088358B4FFB566BB366D0B4D04EA5"); 2 | shareKeys.append("B301562BBDC14207E4A234A7F8991D7C"); 3 | pubKeys.append("02446540DFB4592726F6BC03F409E911CD18DBC488A395F12A"); 4 | shareKeys.append("9AB981FB63CD2C370697DFAA928924C0"); 5 | pubKeys.append("02935B5245B860C92231806339F724633622662456F81059B1"); 6 | shareKeys.append("CBC8F774167AB906EF19757426649615"); 7 | pubKeys.append("03D09A11A951BF386467DD458DE1AA08A3DEFE6A689F4047C5"); 8 | shareKeys.append("D324B8C1DC05AF95D8DD29A6A00C5746"); 9 | pubKeys.append("03EFCA38013B27EFC4698877DA65EB342282AECCB2C18B3656"); 10 | shareKeys.append("531447D108759C9DDD8419BF356EE190"); 11 | pubKeys.append("03C4D52B36E7F12E7B52E3F18030FCD8CFFDA24BDD49108C24"); 12 | shareKeys.append("7EF18AD02A7E08D7552B54F0A1CAB854"); 13 | pubKeys.append("035EB4D273AC31C5C34F335B5503678EF75C480D28A773F117"); 14 | shareKeys.append("EB15FF65D78D88698D9E0C2F95F3E341"); 15 | pubKeys.append("02B5E7A7F42DFE66CF7BE70E6D0666A14136FB32CA17E9D75C"); 16 | shareKeys.append("8F80B215F8D133FCB7E2EF8D1215D72C"); 17 | pubKeys.append("03BC21DD33608B7A8241BEA5EB7FF6CB596841975E0A48BE94"); 18 | shareKeys.append("06B00CD3A4D131444D1BAD2875CBA7E8"); 19 | pubKeys.append("02E093BF367B70FF94067732C8A3EBCBB8FA78154F8395F5C1"); 20 | shareKeys.append("4AE098DB9782262178BF1D0E6013FB13"); 21 | pubKeys.append("03778D044334A4F62D83B25525B3C7448370A993033375C906"); 22 | shareKeys.append("060022DD7E98B7A605AEF09FF28FB54B"); 23 | pubKeys.append("0327F8820231E30AC087CBEF923FDAB221D5C2C2965C1F48F3"); 24 | shareKeys.append("B4FA8265F488A9580E51E45FCAA1B504"); 25 | pubKeys.append("0286522A9321C554E9F6505C28D5D8937DEC9F13E4AA2BE9FA"); 26 | shareKeys.append("DA2811856AB4F4661A6EBED2E308CB15"); 27 | pubKeys.append("031808DBF32BC04E2AF3C1BFA5A8B7043F7870B58E440E5830"); 28 | shareKeys.append("9BDB3E53FA2A953DDC18E36AAFF02188"); 29 | pubKeys.append("03E96EC2B3E52F26D8139F3B9B191432B6C01C0521F393AF98"); 30 | shareKeys.append("69CC5FB87FADD79C8CE8B3CE1DE6E27E"); 31 | pubKeys.append("038DD887461EE27D76C0EC49B3FA9F1B54D23AABD8D7DF8CF5"); 32 | shareKeys.append("B6141F076E48F658F61356F79B1C728A"); 33 | pubKeys.append("036E847DDDCC879D1E17FBA67ED429440EE81C4B9E5AEA1FF7"); 34 | shareKeys.append("F13669CF54CB2BF16AE25A8BFA48B617"); 35 | pubKeys.append("0373461388C74F0E4981C39ACD321F330CEE4213C092F2FB46"); 36 | shareKeys.append("A6E5DBDED0C8C107DA3A99D1D156BBF8"); 37 | pubKeys.append("03C9F5EBD1EFA481FE517F470663010EAE56096F8F5DA9BAA7"); 38 | shareKeys.append("FBAE6D98AFAB9CEDAF95265D645454A2"); 39 | pubKeys.append("02122958E321F20F172CFC5639CDECB96C0B219C794C31EEC0"); 40 | shareKeys.append("5D5C6DEFA79542C33EE3182605E8BDD4"); 41 | pubKeys.append("031237BF1BC8DAC11D9E35467EC4525EF7A758710FE2176F1F"); 42 | shareKeys.append("A4A80FEB2E1B8B8D0158EF472C6C0FBE"); 43 | pubKeys.append("02546453AC9B615AB9B53DEC3388B36BDC52DD60FF24DED25D"); 44 | shareKeys.append("815BBEA6999405DB507659B55B80FC98"); 45 | pubKeys.append("033A867016A13C45F45B33F40C4076B84F13DE1BD26A2A0C0A"); 46 | shareKeys.append("3BD540080BDB8690A71077E23AE1BC2A"); 47 | pubKeys.append("03F7D00F9C375420255D2752618C61C461D4ADBEB313A5A186"); 48 | shareKeys.append("94EBAC0DB07F72FCE39E07C95818443C"); 49 | pubKeys.append("02832373E5BF546D1C45ACDEA0BD0AF758195CB97A74036187"); 50 | shareKeys.append("231061F424193A03BAD6F3620676A916"); 51 | pubKeys.append("023F885CC51FD374524DD1A26F3BAEC6E0816F768386134020"); 52 | shareKeys.append("F37B7C9B70504A2D2908E95BD4410D31"); 53 | pubKeys.append("02BDBE429C5BF300B5E56E29602250D11BCDD44F2E86734BBA"); 54 | shareKeys.append("04D61BB4AEF031ECEF64ABB4B48EA595"); 55 | pubKeys.append("031A36E1C8FB017C7D1F1B136F2697597F49A0C20EC74AEBF4"); 56 | shareKeys.append("0D63E7475B73C4B3EEA8F00EAA0783CA"); 57 | pubKeys.append("02818B30B761E23916A45170ADBF8E00BEBAD449EC291C05A0"); 58 | shareKeys.append("AB73280A8DA5946AC6B29ED021C8654E"); 59 | pubKeys.append("03DB3A5A7C83EE5168A050813F45035D3D074BA0467A095676"); 60 | shareKeys.append("90BF87A31C40698AB1612A4A0ECB8F7C"); 61 | pubKeys.append("031E75B0E8D473C616170A593528701C75428BE9F01935D365"); 62 | shareKeys.append("12A92D0BA5F84694870345F59F89EF25"); 63 | pubKeys.append("0261F537693C252A03C5DC2C4EDBAF81B25D7ECFC6E3C7CF15"); 64 | shareKeys.append("D7E252E7D0BF47F81438E86251898919"); 65 | pubKeys.append("02DE1808FA0F90F9476EDDF5689D75CB9E2A72021E5F596B00"); 66 | shareKeys.append("B8F3CA92CC816C7E58859ACA538FF109"); 67 | pubKeys.append("0289F89875BFCA143524803000DC35965953F6C0908E199E6D"); 68 | shareKeys.append("00FC2E0C43579E68EB86A0113F489F53"); 69 | pubKeys.append("029D504C68F09723C146EBF45D2DCA3709A5D6A54754864785"); 70 | shareKeys.append("E167A116A8CE54261DD720D398BAC211"); 71 | pubKeys.append("02DE041072962721FA6A673389C22E21500DEE987DAFBFB939"); 72 | shareKeys.append("C3E26A1FFC490453ACA68C388C62F061"); 73 | pubKeys.append("026B982400D2D9CE37B25DCF13A8A76FC0802EE5C985DA931F"); 74 | shareKeys.append("82A9ED7408D1B80D6C443F45F2D24F23"); 75 | pubKeys.append("02B763293DCA0177F1292A6914DCCC8534EB57748A59C5C01B"); 76 | shareKeys.append("91479CCFBFDF71AF9D9A2AE889803CB0"); 77 | pubKeys.append("0242282FDDAA543E9657FAF0902CCC2A0CE22FE5BFA2769966"); 78 | shareKeys.append("F2742DEA1F6625D22279EC7BCD6CC1FB"); 79 | pubKeys.append("02FBE0E118E7C4BB0C592DBEEBD46EE5B171CDB2FD5CBCD3B6"); 80 | shareKeys.append("24633C181D0A044455357D51945C167D"); 81 | pubKeys.append("02750F3DFE9E4C76EF4F3FB93D787752A2C71B1BB26B7DC7FD"); 82 | shareKeys.append("8B3529168A85E08476E99C7AD81184C9"); 83 | pubKeys.append("03773E035A42927FB60302AEEFBBF3C38F1688E493E71E8D55"); 84 | shareKeys.append("51786028574BFAE417FE2E917DB9D2FC"); 85 | pubKeys.append("03033B6AA18C43E35115F0D3A9C96BC39C4BFD62E7F06EEEFD"); 86 | shareKeys.append("2806293FB061116620F0BA98596261FE"); 87 | pubKeys.append("02FFDA46FDBBB4329354F6F605D3BD3B9318ADC6931970789D"); 88 | shareKeys.append("A4EA7D3FE05E64DECD590AA28C102F8D"); 89 | pubKeys.append("03BFCA38C22DE388B36A0738E36439D6F462B54D3B70BD413F"); 90 | shareKeys.append("598CDD368DBCBB9576D93FDED7408881"); 91 | pubKeys.append("02627AB98F38E10E728EFEDD7F4F341A8EB254425DED404B49"); 92 | shareKeys.append("1428A8C32E83938282E78020C12E72F3"); 93 | pubKeys.append("02D1AE4C52B2AC8BE4CAFDFB5CACCA5681B26733F91FAE2986"); 94 | shareKeys.append("08C1A214C4E76086152128B59784D1AA"); 95 | pubKeys.append("030A2C6D2EA4834F561E46DE8C51336FB4AE0A20DC4F575085"); 96 | shareKeys.append("555A19A46024ACFB08F38A92F54F04B4"); 97 | pubKeys.append("036001B8B461A831C248B5B15A90E1F02117DFF5BC8CDD74DF"); 98 | shareKeys.append("BF72203FF0538ABB1E785EF7670D107F"); 99 | pubKeys.append("035D07937FA602FC77E79A79CF0150D0F01AE76F14C814B9BE"); 100 | shareKeys.append("E7D985A2DECF40C1FB181AED896801C1"); 101 | pubKeys.append("02945DE850E28C1F2B596A55BDB008B7BC4B389987BE9F7FE8"); 102 | shareKeys.append("2759D301415416F4D0584742E67A66F9"); 103 | pubKeys.append("02D6B3A1D7B28DD9999D6540C7A094C766094E61CD6C3F800B"); 104 | shareKeys.append("846A45D92DEBC851C0403577595874A7"); 105 | pubKeys.append("021294039FE3C0CE47D3C2F82A88EFE91A15C21BDAD46BB831"); 106 | shareKeys.append("791A62A9788D19E783CD3D8169229D73"); 107 | pubKeys.append("027B613B476034427FB93B57323AF63D840BD96EDFA57E5123"); 108 | shareKeys.append("E631E319968065F7CDAFFA3E003A321E"); 109 | pubKeys.append("036926289E74C6A7AB8B178F25B3FA8CAFA49BA33705EA5403"); 110 | shareKeys.append("EFBADDE297AA43F51D7909BAF5E36B4B"); 111 | pubKeys.append("02DC297EC5A554E74CFF8428A84D6D80FF202CD0895E253504"); 112 | shareKeys.append("33D1940E0C240D9AA4DC1DCE170BDDC0"); 113 | pubKeys.append("0236F8958D400AEEE4378C96C636F9A2A1EADA722E97663ED7"); 114 | shareKeys.append("D5E8568021D4C673FDDC6B2E07556D5D"); 115 | pubKeys.append("0357884BA0FE03E3884EF3C57968C64E390E58ABC591F231A4"); 116 | shareKeys.append("F821D9FFA0CA1BB5B08345359DCD2E08"); 117 | pubKeys.append("02485C5EAB01F95E5298B92AE5B00D8E0BB0DD2DEC1246F390"); 118 | shareKeys.append("039E5AC955D78D6191C69B981E8FBFCB"); 119 | pubKeys.append("020BA10E46EEA305613C02E3D9A283B4BB27FFE766733785C9"); 120 | shareKeys.append("DA2A793DA25CD401B672A13FA8EF1027"); 121 | pubKeys.append("02776C1BB78955F399F38AABEC4229D74A6165A23450945236"); 122 | shareKeys.append("FEB3C23A60936E3F8FBEAF5DD26F1B91"); 123 | pubKeys.append("039D36F3D684A824F6A578DE0561BD45C116F60A1AFD46471E"); 124 | shareKeys.append("F93192749CD61B582230B181D5B58EC7"); 125 | pubKeys.append("02B3EAE23042BD86015E090E39675095ADE69BC3265C9A8C55"); 126 | shareKeys.append("286A1CCCB04279D054DB9571BADBDA95"); 127 | pubKeys.append("038E8AC9EAF8D4B7FEA049AA7B4275D9093447439FDD8E1C7E"); 128 | shareKeys.append("4A2B4E73217F5B8D22D50B5F0D9E1215"); 129 | pubKeys.append("030C159B4F419331655B16490B61872B9612F9237726541A4B"); 130 | shareKeys.append("E12D1E27F0E5A7EA80BE438959319C1D"); 131 | pubKeys.append("038766057A5D3392349D95B508AD8A34FC67ECE31DA02DB232"); 132 | shareKeys.append("B32F34CDCA160C2CC515B005782F4F94"); 133 | pubKeys.append("02407CBBE566F093FE3E09D0FBFC10E5D0FEE0341534AFEC12"); 134 | shareKeys.append("3D5ED662CBA0EB0F3456F93AFC3A0BAA"); 135 | pubKeys.append("03D0426FFA6FCF6DE2AB046C739067846A5675C56F99BFE5C4"); 136 | shareKeys.append("884F2E05C5E3B35419BECC1D6C395D3D"); 137 | pubKeys.append("0309961B7E44C0DC42E7C813F1E262F5203E3D0EBC6A47961B"); 138 | shareKeys.append("4F1B244C7719F1F928FB0361173EC6AD"); 139 | pubKeys.append("02D7D73DFFD1B889E8E842815194AB2AC348F5621CAC1FEF40"); 140 | shareKeys.append("C9D10A873EC4962F7530C60B96B8241A"); 141 | pubKeys.append("0318990DC211B6705BBFCB473D4FE160CC4517D2B71BA1920E"); 142 | shareKeys.append("CAAB47B80EA87E33FAA6095382627940"); 143 | pubKeys.append("031C7ADA4CE43252CACE877201910161AB5B62D0C6B7CA7279"); 144 | shareKeys.append("54045F0F47DBE8EA1C6B1820F2DDC78F"); 145 | pubKeys.append("03252670DC270F33DDB68AA6C194BBF7CC253E4D36EFAE0008"); 146 | shareKeys.append("20B4DD9041E056BEDDCB72A66ABD7E77"); 147 | pubKeys.append("02FACB0424806BE650321F25959363596388BBE3A89018990C"); 148 | shareKeys.append("86BC7187AFC9FCCEFAE24E86E6C04CFF"); 149 | pubKeys.append("03806AF5FED3DB921B894DC4F472E53021F758FFC709AEA162"); 150 | shareKeys.append("838910B96C5578B330518E400A3122AC"); 151 | pubKeys.append("03B651C39219701F882E2BDBE20B852797552E3A66547D4802"); 152 | shareKeys.append("64DBFF574A361EB6361BA98CEAD8D217"); 153 | pubKeys.append("022FF07FEDE3BDC7F14FB86D6414086A29C8680302C1FFCB13"); 154 | shareKeys.append("4F0DEC021D9F1FC929380CE89CE91E80"); 155 | pubKeys.append("03916F379EAFB46AE149E880A51FA8AE86D4AD46B171C7C06A"); 156 | shareKeys.append("1069864BBE772A25E6224F5E91DEB0EF"); 157 | pubKeys.append("027E2A6F31677BD47266F51E67368CA9C5B6AB9CCCBDDA2565"); 158 | shareKeys.append("506EBBC4DA41A118852A02063DD7E850"); 159 | pubKeys.append("036E3EDD079548F1D3508C53F7F5B6A85C76B94C9681F44B50"); 160 | shareKeys.append("8263F790260879B89C76E2C9E3ACC6C8"); 161 | pubKeys.append("0333AD69C4C8A3E770DEE24B2700AF8BCDA1E9DEA92325B790"); 162 | shareKeys.append("7D4047051C83C1CB04145F8283EA68F3"); 163 | pubKeys.append("028EBDF7D3665D32FF3BDE45274D7150A2011025F77BF29868"); 164 | shareKeys.append("D415088CFAF751BE56F39320EB9A03BD"); 165 | pubKeys.append("03212E97B77BE304DAF1ACDC1D7DB1D220AC7C82F690361854"); 166 | shareKeys.append("5E18D8831E567AABCDBB9FE44DFC6A5A"); 167 | pubKeys.append("0395796440CD7C817E25380DBA2F42A19FEAE8250C7A3FD2E4"); 168 | shareKeys.append("46E66DFBA01752EAFC1B5C43584C1098"); 169 | pubKeys.append("0389EFE3C12424F5CFEE36AE31BBC67A205E900794CA063F62"); 170 | shareKeys.append("83EEC2A12FC3B3901674D62DD1B403B5"); 171 | pubKeys.append("03C2B8FAA9975FC9FF4B25E183A263923F2DC732EC8A932EE9"); 172 | shareKeys.append("C8BD7BD8046D3E65DB89CB89BDF40757"); 173 | pubKeys.append("024DA59432858DDA69F4398047A3EF9DB3ECE76CF41CAA9C66"); 174 | shareKeys.append("4A14F6502BDA9F2DBB080DA47B4F3C0D"); 175 | pubKeys.append("032CDD073B26EE331C2491953979898B7B1BC152048187BC38"); 176 | shareKeys.append("081D5CA76AF5902CB4FE3E4608B2413F"); 177 | pubKeys.append("03F00E185E6648E2682E59585AD9A347BFA0C1A1369514D6F2"); 178 | shareKeys.append("4562C87D5EEBF335B4C85405600941B7"); 179 | pubKeys.append("0244752AC5C6FE2AA6E7E5FD2F317537528CAD5DB00CECFDAB"); 180 | shareKeys.append("38B4FA71C37C7A3892DCCC7804BE806B"); 181 | pubKeys.append("02FC9BED7371FC1B28DDF3B18AFCAB8BDCC3A90A1DE9F58857"); 182 | shareKeys.append("4CADB4999FBD827E9EAA6BD31FC49F73"); 183 | pubKeys.append("039319B4F75B30D37A93BAECB14EF826780152ED0C6291B9B2"); 184 | shareKeys.append("CDBA58F478CCBA40BC1FBAD30C8F077A"); 185 | pubKeys.append("03E11698C3964462FDEC0FC5D6219B277BE98E0539720A0A54"); 186 | shareKeys.append("87CAB25ED6D06CF10EE506E9A28FC436"); 187 | pubKeys.append("035AE1BE97A51E43F63CFDDDF089D0458E349F67CD751D20A9"); 188 | shareKeys.append("65CCA5CE5DAF47A7EB81CC19FC5154FC"); 189 | pubKeys.append("02C302F6836C92EA723E2907B0C30E66DA16B641F00AAFFBF8"); 190 | shareKeys.append("DFF8683B5FBEB96C1AC6C1BA3E517EDE"); 191 | pubKeys.append("031C0806A6EC7C3CFB7F9DACA0DC537F10F44CA1CD78BDCE03"); 192 | shareKeys.append("352B7B606F44911D710A7A274861AA24"); 193 | pubKeys.append("03961639FCE4C4D045736C0A87D7912A259AE2EADF5398FE1C"); 194 | shareKeys.append("A97A78A4FDBF5263D1D64E258A48A9F4"); 195 | pubKeys.append("0213DCFDF1A70570C0F8E7FD4F1D0A704FE3046D38DCA24F1D"); 196 | shareKeys.append("38E274EEC09A5E86EFAB383CC5B3F34D"); 197 | pubKeys.append("02532A27DF6A288D0DF55A14A9884F7426445D09D18F138A0D"); 198 | shareKeys.append("8DE7E4DD52373847D8E6CC4E8D8DA14A"); 199 | pubKeys.append("03170FAFAB482EB9CE2E7774683310FB6D8DE9B88F3E89C046"); 200 | shareKeys.append("34486D58071AA7AA8CFE1C5666014319"); 201 | pubKeys.append("03D66AAE57FB978BD744BF79F7B3222E9E59DEC3BF32D46AF9"); 202 | shareKeys.append("24280EE0C48F1DB4A130912DB4F44D6D"); 203 | pubKeys.append("0375FD954A5D167DCCA115FC30CC44D0EA45E3C62EC9B79E2E"); 204 | shareKeys.append("32D79157DB254477A8110EE405CC287A"); 205 | pubKeys.append("021ABCBBEC5C96827D9E58A2A549D0983C7837ECC277E284A4"); 206 | shareKeys.append("87BF4EDCAF7342F0B7474C49E3EA88B1"); 207 | pubKeys.append("034884492935FE8EC88460BEBC33E7879C34E11E08C9F05136"); 208 | shareKeys.append("2E6648CD1D16677A734535E1484C72E6"); 209 | pubKeys.append("026FE2B0C76E8C16E2F08510BFF5F8D618B6B5D875DE761BA3"); 210 | shareKeys.append("87658A2927BBDB66CE52BCA14D11BAFC"); 211 | pubKeys.append("02E705454CC94855612BAEF1BFF390A2D6CB9F1FE6A192EFEC"); 212 | shareKeys.append("D3F9CFDB25374752FE961CEAEB696958"); 213 | pubKeys.append("02BCF6CAE00E9F3B9DDDF2C797F7FA55C67729B22303926243"); 214 | shareKeys.append("3F3707223955DA0C9BF95804B5F3F2F3"); 215 | pubKeys.append("03B2292E016170AE9F11BA8EF4ECC649CA980A8FA66CEC426E"); 216 | shareKeys.append("8283F8D56E61F734255FEA3089494C8F"); 217 | pubKeys.append("03ED58BBBDCE6BA12A95E23E1CF9F7987917008B0C7C4493BC"); 218 | shareKeys.append("9A1BDA11D3BEA2DEDC58C487B3D174BA"); 219 | pubKeys.append("0240413D7D5CA36CF8853EB7BA7BEFE90468B2F04BDDFF62F0"); 220 | shareKeys.append("8FDB4F1B2A5A0CEC226097B33B2D0A22"); 221 | pubKeys.append("03BD56086242054EBAADE727F81CD9A9D76011DD33CB7FCD98"); 222 | shareKeys.append("A18FBCF90867D3FD9E32B06CE3D5E8C6"); 223 | pubKeys.append("031987BFF9D37F8F779416AFB21CF1BABEF9B1392E83EC52C9"); 224 | shareKeys.append("97BD9917D4831EBD381493C99C7A731A"); 225 | pubKeys.append("0324ABEC2E7C7A94706E6D45242EE0F82EA03C7A9EF02EA839"); 226 | shareKeys.append("A822F7C33A3EE16536F5309674E1F75A"); 227 | pubKeys.append("036C7CCA747B41EC477381E6B076B3411256956E85EFDB4A39"); 228 | shareKeys.append("18476B129E5454CC32134C56DB042551"); 229 | pubKeys.append("035DCCA2F5D317638721BCF9A7B7293609C51ABA43687437D5"); 230 | shareKeys.append("B55BB50E61F5160DCD612F1766813DAA"); 231 | pubKeys.append("02C731A5B53FE73360474F75DCE39C8F2B9FD5A3D51A352EA6"); 232 | shareKeys.append("579C2169A0A34E1162C6E6DB66C2D45D"); 233 | pubKeys.append("038595D136B9F11336BC851432D4A5672BD2C4BAF444F48759"); 234 | shareKeys.append("886CC3A8882597579FAF64C7E380EB68"); 235 | pubKeys.append("0296B1B00ED5B990EF336899B90CDE874B9349503CB3866A55"); 236 | shareKeys.append("6ABD3AEF412C173010B1A7E8CF9DBCED"); 237 | pubKeys.append("03F3DCD63059EDD54ABFE0BC12E1964D1A7C76891D6D192605"); 238 | shareKeys.append("CA3EDB17DB1C4FBC172363015B362F7C"); 239 | pubKeys.append("03E9BA5719B9FA13D3265A24624EAFE2087071EAF5A7AA8937"); 240 | shareKeys.append("A26CE128ACDA0C656AB12F1CBF89B53F"); 241 | pubKeys.append("022B9238D178E2C3E759FF8E3BD8B51B98047CC1B518E92943"); 242 | shareKeys.append("24CB0E966B0761A0763867863E7F2A14"); 243 | pubKeys.append("03F2BA5E73A313FE56B3A1AF52F37EFA73017EDED74D7FFD90"); 244 | shareKeys.append("5436BA8D1C0792BD293FF00C52C69779"); 245 | pubKeys.append("025D258AE8BA6C2F65760FFABEBDEC6C9A943360B40C6EF8BE"); 246 | shareKeys.append("E1BFD26CB80323968F8A14436D6493EE"); 247 | pubKeys.append("026D692D912D1AA5F0C08CE8D875AA9947021DF4CC872A9AD6"); 248 | shareKeys.append("50EF210D781ABA134F0E2936732794FA"); 249 | pubKeys.append("02C03DEA189D5C508BF60768F9BF0E88FDF4AE05D4BD436B91"); 250 | shareKeys.append("7D1B2DD6B46F2E539ADAF3E58F22FED2"); 251 | pubKeys.append("0359847989234FCD901ADD38BCE20CC86AE5356C01DCEC15D7"); 252 | shareKeys.append("A6655AA074AB3B574CAB367CB801FFAD"); 253 | pubKeys.append("036429B562DB5B5630920D6F8A896C2185D1D5025A07965C68"); 254 | shareKeys.append("4AB284ADDA8CCB76D37B329F14193F25"); 255 | pubKeys.append("0320CB2D1E21669D5CD166B0D36AD82474435B12BD773F5EFA"); 256 | shareKeys.append("478205EA9C1A30DD4B397380E5457A9E"); 257 | pubKeys.append("03A0D31E69C0DE2C52137D509F74FE04702DA06C6C8A4CAD80"); 258 | shareKeys.append("4C48F6EFCE98561C229DE92A5453D11A"); 259 | pubKeys.append("02FC90CB41B1597CFABD3D03AF1129EE64716BF917942997F7"); 260 | shareKeys.append("D0FC0D7A84057BFD3CAB4DC8093283A7"); 261 | pubKeys.append("023F62982D691ACBD1686BAFE40E1261F7E534AFA4A8E2D88A"); 262 | shareKeys.append("42BEDF0B38FAB11FBCC868D2AA699E46"); 263 | pubKeys.append("023777A8A4C1AFCC85F006D454A1059FE7F37A092CBA625E4F"); 264 | shareKeys.append("284DC0967E66E08177C56DBADBDC3952"); 265 | pubKeys.append("03E53C0173138794E75402A11156B77F642B839B7A7DE58412"); 266 | shareKeys.append("7A00020FEB3C536B9293595070ACE6F5"); 267 | pubKeys.append("033F0CD6B51738F0A8842ED764F2A6A989D58333E828977107"); 268 | shareKeys.append("3C05D69F5ACABCFC3E0511FD42A079A9"); 269 | pubKeys.append("027CBC7BDE48BAC0DF0AB5BCB11034078F9D4B8927CD544913"); 270 | shareKeys.append("043F1494A4C14E242C82DEAFB2412B47"); 271 | pubKeys.append("0224BA0A685D33C2689DE43C8A716DF76E90754889DF78405B"); 272 | shareKeys.append("AA0F2A1DD953A0AB7ED2D2B2DF976850"); 273 | pubKeys.append("03E2CFB4AD2BCC8AD0C99DAB30F07B534FA30268E02EDF3FAE"); 274 | shareKeys.append("83FF6108167F1E5F49DE672B7D3AA408"); 275 | pubKeys.append("037A2A8F7594A9ADA05EC30F6D5B69B5E670BD2EFE81545579"); 276 | shareKeys.append("38D0EDB09BC2EC29C9292FF527C68AC3"); 277 | pubKeys.append("0272272CDF942058EBCDDE6F8C4B3FD9C8BBBC2B299AD06F9D"); 278 | shareKeys.append("F69E4FBD8AFF258FBEAFB426EE521C7A"); 279 | pubKeys.append("02CB6578101C51B9DDAA7548C2C008468F77518F9B85529BD4"); 280 | shareKeys.append("344C37665D4E0DF56E74466256881E8C"); 281 | pubKeys.append("026DCE0534A57E78272992B10B70653EDE0B4D195EF4DA2BF5"); 282 | shareKeys.append("F2DAA821F723605FDCEDBAA6670CD0FD"); 283 | pubKeys.append("0251D1614898B4C1270F7564FA2798A274685FBE7CFB498843"); 284 | shareKeys.append("1BBD4F5DD8D52244441D830127CD1C87"); 285 | pubKeys.append("02CE991F19ECDCC91417F232A2B53B689C31A1EAA8B7BE44D7"); 286 | shareKeys.append("76AF99A6CB68365D12FFE4E2EDC7EF5F"); 287 | pubKeys.append("02718195F36A354CAC894B704787C5852C847346E5C09F6F2D"); 288 | shareKeys.append("3152A69CABA164C66A2D23884B393DCD"); 289 | pubKeys.append("030097A0278F521DF4266E545056BEF166BBBBB4BB210A45ED"); 290 | shareKeys.append("9D3FCA0EFAF85FCFC46ABC38404D4805"); 291 | pubKeys.append("03C67C2FD9B6F92D75193E68B247E1AA86425256B9933AAECB"); 292 | shareKeys.append("84806A50F58D5DA6629F8617D03425C9"); 293 | pubKeys.append("03A1EE560719D4871A20D90897AECBCB02DF0CB8DC9EAFDF00"); 294 | shareKeys.append("78CB72F38D6DB0172B9E054833B923FA"); 295 | pubKeys.append("03E877722AA7DEAC6C1A5EB7DDB089708D2930CE5265DF1D6D"); 296 | shareKeys.append("28D6FAB5C588E83211884FCC78994796"); 297 | pubKeys.append("028793094380A6E6E272EEBF7F969256EDAB73C792A552DFC5"); 298 | shareKeys.append("BA502A46AECEA03575CF21F00130F552"); 299 | pubKeys.append("039609F505C7E219B3F69AFD6A7D4458BC8AAF6C071DD80C1F"); 300 | shareKeys.append("23D3D220E9ACD689396C1900E7F092DB"); 301 | pubKeys.append("021FC050DA59C13505DF5C400F3809E76A9DE7F4560C6A9B62"); 302 | shareKeys.append("888794068C9B51765F30D8E8FB038F91"); 303 | pubKeys.append("03880D544F89AC882E92EF07D7B7130D42659FCDD8B5C5DE6A"); 304 | shareKeys.append("8FECE95E2D8C7FE59E629C6128EE974B"); 305 | pubKeys.append("0394CFC3336E8E4E30DD60605A2CE097759F0B38CEDB3B43EC"); 306 | shareKeys.append("7236047596899C3B812428F677731E5B"); 307 | pubKeys.append("0399156D401E888E0B5299DC82708B2C3925D8FB59BC28926D"); 308 | shareKeys.append("E95CB309E1BA4795A44AD2DC3F38BD90"); 309 | pubKeys.append("03D015D2F96BDF15948F406F49D354BB285CF5887ACD4A3A6A"); 310 | shareKeys.append("2215AA6089394CA95E11D2D7DC775445"); 311 | pubKeys.append("031288182E48BA8508074A178D925B2CD2EED6803863BE47A9"); 312 | shareKeys.append("DE4DC635BD2D9B5696927D32536E1315"); 313 | pubKeys.append("03EA8ACAB70A08F2059644463474CA6A844C29B7974A69FC91"); 314 | shareKeys.append("81A9264963020A51036993F8B1F8242A"); 315 | pubKeys.append("02A4C428389774E97A3B9C0D37C74D60B2F5FCB7B0FEC7EBD8"); 316 | shareKeys.append("E16D51150279A1E9957B9601F8527156"); 317 | pubKeys.append("028416FE222C2FFDA848B2D7FFCC8D6D60888261B1714B01A2"); 318 | shareKeys.append("421214A9F2B30F55EB030407F7960109"); 319 | pubKeys.append("033D9B6AFC87D67F3DE42AFD832467C8DF3B43C82128B1C9E1"); 320 | shareKeys.append("6EB8F2F6771446E5903444CA34957AE9"); 321 | pubKeys.append("0258C5CCB70B3609FEE2A439971A13563FD311F97D8FF11EA3"); 322 | shareKeys.append("FCA944406B907A521549E4CB32318459"); 323 | pubKeys.append("03CCC4F4DA998409B2413C8BD2C88E86E3E3CBC0A8B0793C9F"); 324 | shareKeys.append("478FFEC60E6E4E45648BC72431511470"); 325 | pubKeys.append("0304DC57FBC13071120A68A861F20AAFB8F7755656BB5F278F"); 326 | shareKeys.append("123FCE0198762D184D87A479E2BFB1DD"); 327 | pubKeys.append("0218F31D62A4B240D64D3371D14541DFCA6D53D215A3E32EC7"); 328 | shareKeys.append("988BEC82CC661435BB6A52A128A2E9D0"); 329 | pubKeys.append("0326F784A4638457207D1EF0ED497AAEA4B2E45C8AF2B3959F"); 330 | shareKeys.append("935F58F875C5CB7720895958C73C1112"); 331 | pubKeys.append("03F203DD9F9A96FADEDBCB8F374566DF8E086350BFE3C3F1E7"); 332 | shareKeys.append("C6E52355D592D40B6E172704C70EF063"); 333 | pubKeys.append("03086F2262FDAD88E228D543EB45EC048942A0D8738D530896"); 334 | shareKeys.append("BB53A5BC5CE9FA5AB7FEC7237544A20F"); 335 | pubKeys.append("0395DC839FAFACD87B7BD152133DDD89232C07A3F9BE8A3EE0"); 336 | shareKeys.append("5A153CC2DE79CA1D8B08EE1917723AC6"); 337 | pubKeys.append("02FB74F965B7ED87E3C9ADAB74D5AF7284F2382664F88A549C"); 338 | shareKeys.append("0A0BE15B8F4AC01868555102EC00F719"); 339 | pubKeys.append("038A77442372244AFB2AD831CA832FB2D1FE3712431C2483EE"); 340 | shareKeys.append("1869F160CFE9B924360D9CFAABEDD70E"); 341 | pubKeys.append("03BBE090B77034B39024F6F59D66765652DFC00C1BE757328A"); 342 | shareKeys.append("BDA4DD071B5E95ACAC0BADD50779627B"); 343 | pubKeys.append("02EA01D8A0A9BB66F710E167B6D62A58955271FA3CE39DC79F"); 344 | shareKeys.append("898CAFB47E05F131284B0DE7E90C12FE"); 345 | pubKeys.append("022670AB2EF1A449794AD7F92C79978BB43CAF41803BD747DE"); 346 | shareKeys.append("82A4AD5E5EBF948D8C675ACBA00E3AD4"); 347 | pubKeys.append("0205B3B4A46402A6E0809E5269E72111DB9DF8855F77B0109E"); 348 | shareKeys.append("2F0F6D8860B2C834943B09BEFC06B0F4"); 349 | pubKeys.append("034F31D021D847F383556483D4DD4C64FBC8451C21AAA98A76"); 350 | shareKeys.append("F641AB9F6F463BF8A65D8D1D97AD8C0F"); 351 | pubKeys.append("0338215E841033ABE7D384FE00535D9CF452F496E29EF985DC"); 352 | shareKeys.append("F19CE4E4098A8FD0FA4E4FE6CD92F356"); 353 | pubKeys.append("02587C4467A005D25538E5BB3268C56D6811E85631716F11D3"); 354 | shareKeys.append("460A7040D18D4D08F38AF91D22F2A890"); 355 | pubKeys.append("021BE0CB13D2A4670A896AD9D1110E9F559AEA175D8A12B245"); 356 | shareKeys.append("853E5F2C5FE7F14CCD9D237DB52FC731"); 357 | pubKeys.append("031CAB2BAE39C4FB6D2738F49DA66F6D5C9E91EF0017031D5A"); 358 | shareKeys.append("F780C2C506A904E5C9F9512AD3D9B60B"); 359 | pubKeys.append("02ED822773FCC9140D386B92364ECDC85735B658740BA33D3B"); 360 | shareKeys.append("1E0FE0F5C6326F9D169133576A5C5314"); 361 | pubKeys.append("03CE8202BAA167D89EE75F0EDE4E464BBB5940685DC5EA6CEA"); 362 | shareKeys.append("70E5320ED509B6112596660DE2C1C526"); 363 | -------------------------------------------------------------------------------- /help/相关链接.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huokedu/AndroidQQProtocol/6941031b6c90e3e0bb2d8c5f9732853b08b1d969/help/相关链接.txt -------------------------------------------------------------------------------- /keys.log: -------------------------------------------------------------------------------- 1 | pubKey: 026E342D4365CF9A8E3DF088358B4FFB566BB366D0B4D04EA5 2 | shareKey: B301562BBDC14207E4A234A7F8991D7C 3 | pubKey: 02446540DFB4592726F6BC03F409E911CD18DBC488A395F12A 4 | shareKey: 9AB981FB63CD2C370697DFAA928924C0 5 | pubKey: 02935B5245B860C92231806339F724633622662456F81059B1 6 | shareKey: CBC8F774167AB906EF19757426649615 7 | pubKey: 03D09A11A951BF386467DD458DE1AA08A3DEFE6A689F4047C5 8 | shareKey: D324B8C1DC05AF95D8DD29A6A00C5746 9 | pubKey: 03EFCA38013B27EFC4698877DA65EB342282AECCB2C18B3656 10 | shareKey: 531447D108759C9DDD8419BF356EE190 11 | pubKey: 03C4D52B36E7F12E7B52E3F18030FCD8CFFDA24BDD49108C24 12 | shareKey: 7EF18AD02A7E08D7552B54F0A1CAB854 13 | pubKey: 035EB4D273AC31C5C34F335B5503678EF75C480D28A773F117 14 | shareKey: EB15FF65D78D88698D9E0C2F95F3E341 15 | pubKey: 02B5E7A7F42DFE66CF7BE70E6D0666A14136FB32CA17E9D75C 16 | shareKey: 8F80B215F8D133FCB7E2EF8D1215D72C 17 | pubKey: 03BC21DD33608B7A8241BEA5EB7FF6CB596841975E0A48BE94 18 | shareKey: 06B00CD3A4D131444D1BAD2875CBA7E8 19 | pubKey: 02E093BF367B70FF94067732C8A3EBCBB8FA78154F8395F5C1 20 | shareKey: 4AE098DB9782262178BF1D0E6013FB13 21 | pubKey: 03778D044334A4F62D83B25525B3C7448370A993033375C906 22 | shareKey: 060022DD7E98B7A605AEF09FF28FB54B 23 | pubKey: 0327F8820231E30AC087CBEF923FDAB221D5C2C2965C1F48F3 24 | shareKey: B4FA8265F488A9580E51E45FCAA1B504 25 | pubKey: 0286522A9321C554E9F6505C28D5D8937DEC9F13E4AA2BE9FA 26 | shareKey: DA2811856AB4F4661A6EBED2E308CB15 27 | pubKey: 031808DBF32BC04E2AF3C1BFA5A8B7043F7870B58E440E5830 28 | shareKey: 9BDB3E53FA2A953DDC18E36AAFF02188 29 | pubKey: 03E96EC2B3E52F26D8139F3B9B191432B6C01C0521F393AF98 30 | shareKey: 69CC5FB87FADD79C8CE8B3CE1DE6E27E 31 | pubKey: 038DD887461EE27D76C0EC49B3FA9F1B54D23AABD8D7DF8CF5 32 | shareKey: B6141F076E48F658F61356F79B1C728A 33 | pubKey: 036E847DDDCC879D1E17FBA67ED429440EE81C4B9E5AEA1FF7 34 | shareKey: F13669CF54CB2BF16AE25A8BFA48B617 35 | pubKey: 0373461388C74F0E4981C39ACD321F330CEE4213C092F2FB46 36 | shareKey: A6E5DBDED0C8C107DA3A99D1D156BBF8 37 | pubKey: 03C9F5EBD1EFA481FE517F470663010EAE56096F8F5DA9BAA7 38 | shareKey: FBAE6D98AFAB9CEDAF95265D645454A2 39 | pubKey: 02122958E321F20F172CFC5639CDECB96C0B219C794C31EEC0 40 | shareKey: 5D5C6DEFA79542C33EE3182605E8BDD4 41 | pubKey: 031237BF1BC8DAC11D9E35467EC4525EF7A758710FE2176F1F 42 | shareKey: A4A80FEB2E1B8B8D0158EF472C6C0FBE 43 | pubKey: 02546453AC9B615AB9B53DEC3388B36BDC52DD60FF24DED25D 44 | shareKey: 815BBEA6999405DB507659B55B80FC98 45 | pubKey: 033A867016A13C45F45B33F40C4076B84F13DE1BD26A2A0C0A 46 | shareKey: 3BD540080BDB8690A71077E23AE1BC2A 47 | pubKey: 03F7D00F9C375420255D2752618C61C461D4ADBEB313A5A186 48 | shareKey: 94EBAC0DB07F72FCE39E07C95818443C 49 | pubKey: 02832373E5BF546D1C45ACDEA0BD0AF758195CB97A74036187 50 | shareKey: 231061F424193A03BAD6F3620676A916 51 | pubKey: 023F885CC51FD374524DD1A26F3BAEC6E0816F768386134020 52 | shareKey: F37B7C9B70504A2D2908E95BD4410D31 53 | pubKey: 02BDBE429C5BF300B5E56E29602250D11BCDD44F2E86734BBA 54 | shareKey: 04D61BB4AEF031ECEF64ABB4B48EA595 55 | pubKey: 031A36E1C8FB017C7D1F1B136F2697597F49A0C20EC74AEBF4 56 | shareKey: 0D63E7475B73C4B3EEA8F00EAA0783CA 57 | pubKey: 02818B30B761E23916A45170ADBF8E00BEBAD449EC291C05A0 58 | shareKey: AB73280A8DA5946AC6B29ED021C8654E 59 | pubKey: 03DB3A5A7C83EE5168A050813F45035D3D074BA0467A095676 60 | shareKey: 90BF87A31C40698AB1612A4A0ECB8F7C 61 | pubKey: 031E75B0E8D473C616170A593528701C75428BE9F01935D365 62 | shareKey: 12A92D0BA5F84694870345F59F89EF25 63 | pubKey: 0261F537693C252A03C5DC2C4EDBAF81B25D7ECFC6E3C7CF15 64 | shareKey: D7E252E7D0BF47F81438E86251898919 65 | pubKey: 02DE1808FA0F90F9476EDDF5689D75CB9E2A72021E5F596B00 66 | shareKey: B8F3CA92CC816C7E58859ACA538FF109 67 | pubKey: 0289F89875BFCA143524803000DC35965953F6C0908E199E6D 68 | shareKey: 00FC2E0C43579E68EB86A0113F489F53 69 | pubKey: 029D504C68F09723C146EBF45D2DCA3709A5D6A54754864785 70 | shareKey: E167A116A8CE54261DD720D398BAC211 71 | pubKey: 02DE041072962721FA6A673389C22E21500DEE987DAFBFB939 72 | shareKey: C3E26A1FFC490453ACA68C388C62F061 73 | pubKey: 026B982400D2D9CE37B25DCF13A8A76FC0802EE5C985DA931F 74 | shareKey: 82A9ED7408D1B80D6C443F45F2D24F23 75 | pubKey: 02B763293DCA0177F1292A6914DCCC8534EB57748A59C5C01B 76 | shareKey: 91479CCFBFDF71AF9D9A2AE889803CB0 77 | pubKey: 0242282FDDAA543E9657FAF0902CCC2A0CE22FE5BFA2769966 78 | shareKey: F2742DEA1F6625D22279EC7BCD6CC1FB 79 | pubKey: 02FBE0E118E7C4BB0C592DBEEBD46EE5B171CDB2FD5CBCD3B6 80 | shareKey: 24633C181D0A044455357D51945C167D 81 | pubKey: 02750F3DFE9E4C76EF4F3FB93D787752A2C71B1BB26B7DC7FD 82 | shareKey: 8B3529168A85E08476E99C7AD81184C9 83 | pubKey: 03773E035A42927FB60302AEEFBBF3C38F1688E493E71E8D55 84 | shareKey: 51786028574BFAE417FE2E917DB9D2FC 85 | pubKey: 03033B6AA18C43E35115F0D3A9C96BC39C4BFD62E7F06EEEFD 86 | shareKey: 2806293FB061116620F0BA98596261FE 87 | pubKey: 02FFDA46FDBBB4329354F6F605D3BD3B9318ADC6931970789D 88 | shareKey: A4EA7D3FE05E64DECD590AA28C102F8D 89 | pubKey: 03BFCA38C22DE388B36A0738E36439D6F462B54D3B70BD413F 90 | shareKey: 598CDD368DBCBB9576D93FDED7408881 91 | pubKey: 02627AB98F38E10E728EFEDD7F4F341A8EB254425DED404B49 92 | shareKey: 1428A8C32E83938282E78020C12E72F3 93 | pubKey: 02D1AE4C52B2AC8BE4CAFDFB5CACCA5681B26733F91FAE2986 94 | shareKey: 08C1A214C4E76086152128B59784D1AA 95 | pubKey: 030A2C6D2EA4834F561E46DE8C51336FB4AE0A20DC4F575085 96 | shareKey: 555A19A46024ACFB08F38A92F54F04B4 97 | pubKey: 036001B8B461A831C248B5B15A90E1F02117DFF5BC8CDD74DF 98 | shareKey: BF72203FF0538ABB1E785EF7670D107F 99 | pubKey: 035D07937FA602FC77E79A79CF0150D0F01AE76F14C814B9BE 100 | shareKey: E7D985A2DECF40C1FB181AED896801C1 101 | pubKey: 02945DE850E28C1F2B596A55BDB008B7BC4B389987BE9F7FE8 102 | shareKey: 2759D301415416F4D0584742E67A66F9 103 | pubKey: 02D6B3A1D7B28DD9999D6540C7A094C766094E61CD6C3F800B 104 | shareKey: 846A45D92DEBC851C0403577595874A7 105 | pubKey: 021294039FE3C0CE47D3C2F82A88EFE91A15C21BDAD46BB831 106 | shareKey: 791A62A9788D19E783CD3D8169229D73 107 | pubKey: 027B613B476034427FB93B57323AF63D840BD96EDFA57E5123 108 | shareKey: E631E319968065F7CDAFFA3E003A321E 109 | pubKey: 036926289E74C6A7AB8B178F25B3FA8CAFA49BA33705EA5403 110 | shareKey: EFBADDE297AA43F51D7909BAF5E36B4B 111 | pubKey: 02DC297EC5A554E74CFF8428A84D6D80FF202CD0895E253504 112 | shareKey: 33D1940E0C240D9AA4DC1DCE170BDDC0 113 | pubKey: 0236F8958D400AEEE4378C96C636F9A2A1EADA722E97663ED7 114 | shareKey: D5E8568021D4C673FDDC6B2E07556D5D 115 | pubKey: 0357884BA0FE03E3884EF3C57968C64E390E58ABC591F231A4 116 | shareKey: F821D9FFA0CA1BB5B08345359DCD2E08 117 | pubKey: 02485C5EAB01F95E5298B92AE5B00D8E0BB0DD2DEC1246F390 118 | shareKey: 039E5AC955D78D6191C69B981E8FBFCB 119 | pubKey: 020BA10E46EEA305613C02E3D9A283B4BB27FFE766733785C9 120 | shareKey: DA2A793DA25CD401B672A13FA8EF1027 121 | pubKey: 02776C1BB78955F399F38AABEC4229D74A6165A23450945236 122 | shareKey: FEB3C23A60936E3F8FBEAF5DD26F1B91 123 | pubKey: 039D36F3D684A824F6A578DE0561BD45C116F60A1AFD46471E 124 | shareKey: F93192749CD61B582230B181D5B58EC7 125 | pubKey: 02B3EAE23042BD86015E090E39675095ADE69BC3265C9A8C55 126 | shareKey: 286A1CCCB04279D054DB9571BADBDA95 127 | pubKey: 038E8AC9EAF8D4B7FEA049AA7B4275D9093447439FDD8E1C7E 128 | shareKey: 4A2B4E73217F5B8D22D50B5F0D9E1215 129 | pubKey: 030C159B4F419331655B16490B61872B9612F9237726541A4B 130 | shareKey: E12D1E27F0E5A7EA80BE438959319C1D 131 | pubKey: 038766057A5D3392349D95B508AD8A34FC67ECE31DA02DB232 132 | shareKey: B32F34CDCA160C2CC515B005782F4F94 133 | pubKey: 02407CBBE566F093FE3E09D0FBFC10E5D0FEE0341534AFEC12 134 | shareKey: 3D5ED662CBA0EB0F3456F93AFC3A0BAA 135 | pubKey: 03D0426FFA6FCF6DE2AB046C739067846A5675C56F99BFE5C4 136 | shareKey: 884F2E05C5E3B35419BECC1D6C395D3D 137 | pubKey: 0309961B7E44C0DC42E7C813F1E262F5203E3D0EBC6A47961B 138 | shareKey: 4F1B244C7719F1F928FB0361173EC6AD 139 | pubKey: 02D7D73DFFD1B889E8E842815194AB2AC348F5621CAC1FEF40 140 | shareKey: C9D10A873EC4962F7530C60B96B8241A 141 | pubKey: 0318990DC211B6705BBFCB473D4FE160CC4517D2B71BA1920E 142 | shareKey: CAAB47B80EA87E33FAA6095382627940 143 | pubKey: 031C7ADA4CE43252CACE877201910161AB5B62D0C6B7CA7279 144 | shareKey: 54045F0F47DBE8EA1C6B1820F2DDC78F 145 | pubKey: 03252670DC270F33DDB68AA6C194BBF7CC253E4D36EFAE0008 146 | shareKey: 20B4DD9041E056BEDDCB72A66ABD7E77 147 | pubKey: 02FACB0424806BE650321F25959363596388BBE3A89018990C 148 | shareKey: 86BC7187AFC9FCCEFAE24E86E6C04CFF 149 | pubKey: 03806AF5FED3DB921B894DC4F472E53021F758FFC709AEA162 150 | shareKey: 838910B96C5578B330518E400A3122AC 151 | pubKey: 03B651C39219701F882E2BDBE20B852797552E3A66547D4802 152 | shareKey: 64DBFF574A361EB6361BA98CEAD8D217 153 | pubKey: 022FF07FEDE3BDC7F14FB86D6414086A29C8680302C1FFCB13 154 | shareKey: 4F0DEC021D9F1FC929380CE89CE91E80 155 | pubKey: 03916F379EAFB46AE149E880A51FA8AE86D4AD46B171C7C06A 156 | shareKey: 1069864BBE772A25E6224F5E91DEB0EF 157 | pubKey: 027E2A6F31677BD47266F51E67368CA9C5B6AB9CCCBDDA2565 158 | shareKey: 506EBBC4DA41A118852A02063DD7E850 159 | pubKey: 036E3EDD079548F1D3508C53F7F5B6A85C76B94C9681F44B50 160 | shareKey: 8263F790260879B89C76E2C9E3ACC6C8 161 | pubKey: 0333AD69C4C8A3E770DEE24B2700AF8BCDA1E9DEA92325B790 162 | shareKey: 7D4047051C83C1CB04145F8283EA68F3 163 | pubKey: 028EBDF7D3665D32FF3BDE45274D7150A2011025F77BF29868 164 | shareKey: D415088CFAF751BE56F39320EB9A03BD 165 | pubKey: 03212E97B77BE304DAF1ACDC1D7DB1D220AC7C82F690361854 166 | shareKey: 5E18D8831E567AABCDBB9FE44DFC6A5A 167 | pubKey: 0395796440CD7C817E25380DBA2F42A19FEAE8250C7A3FD2E4 168 | shareKey: 46E66DFBA01752EAFC1B5C43584C1098 169 | pubKey: 0389EFE3C12424F5CFEE36AE31BBC67A205E900794CA063F62 170 | shareKey: 83EEC2A12FC3B3901674D62DD1B403B5 171 | pubKey: 03C2B8FAA9975FC9FF4B25E183A263923F2DC732EC8A932EE9 172 | shareKey: C8BD7BD8046D3E65DB89CB89BDF40757 173 | pubKey: 024DA59432858DDA69F4398047A3EF9DB3ECE76CF41CAA9C66 174 | shareKey: 4A14F6502BDA9F2DBB080DA47B4F3C0D 175 | pubKey: 032CDD073B26EE331C2491953979898B7B1BC152048187BC38 176 | shareKey: 081D5CA76AF5902CB4FE3E4608B2413F 177 | pubKey: 03F00E185E6648E2682E59585AD9A347BFA0C1A1369514D6F2 178 | shareKey: 4562C87D5EEBF335B4C85405600941B7 179 | pubKey: 0244752AC5C6FE2AA6E7E5FD2F317537528CAD5DB00CECFDAB 180 | shareKey: 38B4FA71C37C7A3892DCCC7804BE806B 181 | pubKey: 02FC9BED7371FC1B28DDF3B18AFCAB8BDCC3A90A1DE9F58857 182 | shareKey: 4CADB4999FBD827E9EAA6BD31FC49F73 183 | pubKey: 039319B4F75B30D37A93BAECB14EF826780152ED0C6291B9B2 184 | shareKey: CDBA58F478CCBA40BC1FBAD30C8F077A 185 | pubKey: 03E11698C3964462FDEC0FC5D6219B277BE98E0539720A0A54 186 | shareKey: 87CAB25ED6D06CF10EE506E9A28FC436 187 | pubKey: 035AE1BE97A51E43F63CFDDDF089D0458E349F67CD751D20A9 188 | shareKey: 65CCA5CE5DAF47A7EB81CC19FC5154FC 189 | pubKey: 02C302F6836C92EA723E2907B0C30E66DA16B641F00AAFFBF8 190 | shareKey: DFF8683B5FBEB96C1AC6C1BA3E517EDE 191 | pubKey: 031C0806A6EC7C3CFB7F9DACA0DC537F10F44CA1CD78BDCE03 192 | shareKey: 352B7B606F44911D710A7A274861AA24 193 | pubKey: 03961639FCE4C4D045736C0A87D7912A259AE2EADF5398FE1C 194 | shareKey: A97A78A4FDBF5263D1D64E258A48A9F4 195 | pubKey: 0213DCFDF1A70570C0F8E7FD4F1D0A704FE3046D38DCA24F1D 196 | shareKey: 38E274EEC09A5E86EFAB383CC5B3F34D 197 | pubKey: 02532A27DF6A288D0DF55A14A9884F7426445D09D18F138A0D 198 | shareKey: 8DE7E4DD52373847D8E6CC4E8D8DA14A 199 | pubKey: 03170FAFAB482EB9CE2E7774683310FB6D8DE9B88F3E89C046 200 | shareKey: 34486D58071AA7AA8CFE1C5666014319 201 | pubKey: 03D66AAE57FB978BD744BF79F7B3222E9E59DEC3BF32D46AF9 202 | shareKey: 24280EE0C48F1DB4A130912DB4F44D6D 203 | pubKey: 0375FD954A5D167DCCA115FC30CC44D0EA45E3C62EC9B79E2E 204 | shareKey: 32D79157DB254477A8110EE405CC287A 205 | pubKey: 021ABCBBEC5C96827D9E58A2A549D0983C7837ECC277E284A4 206 | shareKey: 87BF4EDCAF7342F0B7474C49E3EA88B1 207 | pubKey: 034884492935FE8EC88460BEBC33E7879C34E11E08C9F05136 208 | shareKey: 2E6648CD1D16677A734535E1484C72E6 209 | pubKey: 026FE2B0C76E8C16E2F08510BFF5F8D618B6B5D875DE761BA3 210 | shareKey: 87658A2927BBDB66CE52BCA14D11BAFC 211 | pubKey: 02E705454CC94855612BAEF1BFF390A2D6CB9F1FE6A192EFEC 212 | shareKey: D3F9CFDB25374752FE961CEAEB696958 213 | pubKey: 02BCF6CAE00E9F3B9DDDF2C797F7FA55C67729B22303926243 214 | shareKey: 3F3707223955DA0C9BF95804B5F3F2F3 215 | pubKey: 03B2292E016170AE9F11BA8EF4ECC649CA980A8FA66CEC426E 216 | shareKey: 8283F8D56E61F734255FEA3089494C8F 217 | pubKey: 03ED58BBBDCE6BA12A95E23E1CF9F7987917008B0C7C4493BC 218 | shareKey: 9A1BDA11D3BEA2DEDC58C487B3D174BA 219 | pubKey: 0240413D7D5CA36CF8853EB7BA7BEFE90468B2F04BDDFF62F0 220 | shareKey: 8FDB4F1B2A5A0CEC226097B33B2D0A22 221 | pubKey: 03BD56086242054EBAADE727F81CD9A9D76011DD33CB7FCD98 222 | shareKey: A18FBCF90867D3FD9E32B06CE3D5E8C6 223 | pubKey: 031987BFF9D37F8F779416AFB21CF1BABEF9B1392E83EC52C9 224 | shareKey: 97BD9917D4831EBD381493C99C7A731A 225 | pubKey: 0324ABEC2E7C7A94706E6D45242EE0F82EA03C7A9EF02EA839 226 | shareKey: A822F7C33A3EE16536F5309674E1F75A 227 | pubKey: 036C7CCA747B41EC477381E6B076B3411256956E85EFDB4A39 228 | shareKey: 18476B129E5454CC32134C56DB042551 229 | pubKey: 035DCCA2F5D317638721BCF9A7B7293609C51ABA43687437D5 230 | shareKey: B55BB50E61F5160DCD612F1766813DAA 231 | pubKey: 02C731A5B53FE73360474F75DCE39C8F2B9FD5A3D51A352EA6 232 | shareKey: 579C2169A0A34E1162C6E6DB66C2D45D 233 | pubKey: 038595D136B9F11336BC851432D4A5672BD2C4BAF444F48759 234 | shareKey: 886CC3A8882597579FAF64C7E380EB68 235 | pubKey: 0296B1B00ED5B990EF336899B90CDE874B9349503CB3866A55 236 | shareKey: 6ABD3AEF412C173010B1A7E8CF9DBCED 237 | pubKey: 03F3DCD63059EDD54ABFE0BC12E1964D1A7C76891D6D192605 238 | shareKey: CA3EDB17DB1C4FBC172363015B362F7C 239 | pubKey: 03E9BA5719B9FA13D3265A24624EAFE2087071EAF5A7AA8937 240 | shareKey: A26CE128ACDA0C656AB12F1CBF89B53F 241 | pubKey: 022B9238D178E2C3E759FF8E3BD8B51B98047CC1B518E92943 242 | shareKey: 24CB0E966B0761A0763867863E7F2A14 243 | pubKey: 03F2BA5E73A313FE56B3A1AF52F37EFA73017EDED74D7FFD90 244 | shareKey: 5436BA8D1C0792BD293FF00C52C69779 245 | pubKey: 025D258AE8BA6C2F65760FFABEBDEC6C9A943360B40C6EF8BE 246 | shareKey: E1BFD26CB80323968F8A14436D6493EE 247 | pubKey: 026D692D912D1AA5F0C08CE8D875AA9947021DF4CC872A9AD6 248 | shareKey: 50EF210D781ABA134F0E2936732794FA 249 | pubKey: 02C03DEA189D5C508BF60768F9BF0E88FDF4AE05D4BD436B91 250 | shareKey: 7D1B2DD6B46F2E539ADAF3E58F22FED2 251 | pubKey: 0359847989234FCD901ADD38BCE20CC86AE5356C01DCEC15D7 252 | shareKey: A6655AA074AB3B574CAB367CB801FFAD 253 | pubKey: 036429B562DB5B5630920D6F8A896C2185D1D5025A07965C68 254 | shareKey: 4AB284ADDA8CCB76D37B329F14193F25 255 | pubKey: 0320CB2D1E21669D5CD166B0D36AD82474435B12BD773F5EFA 256 | shareKey: 478205EA9C1A30DD4B397380E5457A9E 257 | pubKey: 03A0D31E69C0DE2C52137D509F74FE04702DA06C6C8A4CAD80 258 | shareKey: 4C48F6EFCE98561C229DE92A5453D11A 259 | pubKey: 02FC90CB41B1597CFABD3D03AF1129EE64716BF917942997F7 260 | shareKey: D0FC0D7A84057BFD3CAB4DC8093283A7 261 | pubKey: 023F62982D691ACBD1686BAFE40E1261F7E534AFA4A8E2D88A 262 | shareKey: 42BEDF0B38FAB11FBCC868D2AA699E46 263 | pubKey: 023777A8A4C1AFCC85F006D454A1059FE7F37A092CBA625E4F 264 | shareKey: 284DC0967E66E08177C56DBADBDC3952 265 | pubKey: 03E53C0173138794E75402A11156B77F642B839B7A7DE58412 266 | shareKey: 7A00020FEB3C536B9293595070ACE6F5 267 | pubKey: 033F0CD6B51738F0A8842ED764F2A6A989D58333E828977107 268 | shareKey: 3C05D69F5ACABCFC3E0511FD42A079A9 269 | pubKey: 027CBC7BDE48BAC0DF0AB5BCB11034078F9D4B8927CD544913 270 | shareKey: 043F1494A4C14E242C82DEAFB2412B47 271 | pubKey: 0224BA0A685D33C2689DE43C8A716DF76E90754889DF78405B 272 | shareKey: AA0F2A1DD953A0AB7ED2D2B2DF976850 273 | pubKey: 03E2CFB4AD2BCC8AD0C99DAB30F07B534FA30268E02EDF3FAE 274 | shareKey: 83FF6108167F1E5F49DE672B7D3AA408 275 | pubKey: 037A2A8F7594A9ADA05EC30F6D5B69B5E670BD2EFE81545579 276 | shareKey: 38D0EDB09BC2EC29C9292FF527C68AC3 277 | pubKey: 0272272CDF942058EBCDDE6F8C4B3FD9C8BBBC2B299AD06F9D 278 | shareKey: F69E4FBD8AFF258FBEAFB426EE521C7A 279 | pubKey: 02CB6578101C51B9DDAA7548C2C008468F77518F9B85529BD4 280 | shareKey: 344C37665D4E0DF56E74466256881E8C 281 | pubKey: 026DCE0534A57E78272992B10B70653EDE0B4D195EF4DA2BF5 282 | shareKey: F2DAA821F723605FDCEDBAA6670CD0FD 283 | pubKey: 0251D1614898B4C1270F7564FA2798A274685FBE7CFB498843 284 | shareKey: 1BBD4F5DD8D52244441D830127CD1C87 285 | pubKey: 02CE991F19ECDCC91417F232A2B53B689C31A1EAA8B7BE44D7 286 | shareKey: 76AF99A6CB68365D12FFE4E2EDC7EF5F 287 | pubKey: 02718195F36A354CAC894B704787C5852C847346E5C09F6F2D 288 | shareKey: 3152A69CABA164C66A2D23884B393DCD 289 | pubKey: 030097A0278F521DF4266E545056BEF166BBBBB4BB210A45ED 290 | shareKey: 9D3FCA0EFAF85FCFC46ABC38404D4805 291 | pubKey: 03C67C2FD9B6F92D75193E68B247E1AA86425256B9933AAECB 292 | shareKey: 84806A50F58D5DA6629F8617D03425C9 293 | pubKey: 03A1EE560719D4871A20D90897AECBCB02DF0CB8DC9EAFDF00 294 | shareKey: 78CB72F38D6DB0172B9E054833B923FA 295 | pubKey: 03E877722AA7DEAC6C1A5EB7DDB089708D2930CE5265DF1D6D 296 | shareKey: 28D6FAB5C588E83211884FCC78994796 297 | pubKey: 028793094380A6E6E272EEBF7F969256EDAB73C792A552DFC5 298 | shareKey: BA502A46AECEA03575CF21F00130F552 299 | pubKey: 039609F505C7E219B3F69AFD6A7D4458BC8AAF6C071DD80C1F 300 | shareKey: 23D3D220E9ACD689396C1900E7F092DB 301 | pubKey: 021FC050DA59C13505DF5C400F3809E76A9DE7F4560C6A9B62 302 | shareKey: 888794068C9B51765F30D8E8FB038F91 303 | pubKey: 03880D544F89AC882E92EF07D7B7130D42659FCDD8B5C5DE6A 304 | shareKey: 8FECE95E2D8C7FE59E629C6128EE974B 305 | pubKey: 0394CFC3336E8E4E30DD60605A2CE097759F0B38CEDB3B43EC 306 | shareKey: 7236047596899C3B812428F677731E5B 307 | pubKey: 0399156D401E888E0B5299DC82708B2C3925D8FB59BC28926D 308 | shareKey: E95CB309E1BA4795A44AD2DC3F38BD90 309 | pubKey: 03D015D2F96BDF15948F406F49D354BB285CF5887ACD4A3A6A 310 | shareKey: 2215AA6089394CA95E11D2D7DC775445 311 | pubKey: 031288182E48BA8508074A178D925B2CD2EED6803863BE47A9 312 | shareKey: DE4DC635BD2D9B5696927D32536E1315 313 | pubKey: 03EA8ACAB70A08F2059644463474CA6A844C29B7974A69FC91 314 | shareKey: 81A9264963020A51036993F8B1F8242A 315 | pubKey: 02A4C428389774E97A3B9C0D37C74D60B2F5FCB7B0FEC7EBD8 316 | shareKey: E16D51150279A1E9957B9601F8527156 317 | pubKey: 028416FE222C2FFDA848B2D7FFCC8D6D60888261B1714B01A2 318 | shareKey: 421214A9F2B30F55EB030407F7960109 319 | pubKey: 033D9B6AFC87D67F3DE42AFD832467C8DF3B43C82128B1C9E1 320 | shareKey: 6EB8F2F6771446E5903444CA34957AE9 321 | pubKey: 0258C5CCB70B3609FEE2A439971A13563FD311F97D8FF11EA3 322 | shareKey: FCA944406B907A521549E4CB32318459 323 | pubKey: 03CCC4F4DA998409B2413C8BD2C88E86E3E3CBC0A8B0793C9F 324 | shareKey: 478FFEC60E6E4E45648BC72431511470 325 | pubKey: 0304DC57FBC13071120A68A861F20AAFB8F7755656BB5F278F 326 | shareKey: 123FCE0198762D184D87A479E2BFB1DD 327 | pubKey: 0218F31D62A4B240D64D3371D14541DFCA6D53D215A3E32EC7 328 | shareKey: 988BEC82CC661435BB6A52A128A2E9D0 329 | pubKey: 0326F784A4638457207D1EF0ED497AAEA4B2E45C8AF2B3959F 330 | shareKey: 935F58F875C5CB7720895958C73C1112 331 | pubKey: 03F203DD9F9A96FADEDBCB8F374566DF8E086350BFE3C3F1E7 332 | shareKey: C6E52355D592D40B6E172704C70EF063 333 | pubKey: 03086F2262FDAD88E228D543EB45EC048942A0D8738D530896 334 | shareKey: BB53A5BC5CE9FA5AB7FEC7237544A20F 335 | pubKey: 0395DC839FAFACD87B7BD152133DDD89232C07A3F9BE8A3EE0 336 | shareKey: 5A153CC2DE79CA1D8B08EE1917723AC6 337 | pubKey: 02FB74F965B7ED87E3C9ADAB74D5AF7284F2382664F88A549C 338 | shareKey: 0A0BE15B8F4AC01868555102EC00F719 339 | pubKey: 038A77442372244AFB2AD831CA832FB2D1FE3712431C2483EE 340 | shareKey: 1869F160CFE9B924360D9CFAABEDD70E 341 | pubKey: 03BBE090B77034B39024F6F59D66765652DFC00C1BE757328A 342 | shareKey: BDA4DD071B5E95ACAC0BADD50779627B 343 | pubKey: 02EA01D8A0A9BB66F710E167B6D62A58955271FA3CE39DC79F 344 | shareKey: 898CAFB47E05F131284B0DE7E90C12FE 345 | pubKey: 022670AB2EF1A449794AD7F92C79978BB43CAF41803BD747DE 346 | shareKey: 82A4AD5E5EBF948D8C675ACBA00E3AD4 347 | pubKey: 0205B3B4A46402A6E0809E5269E72111DB9DF8855F77B0109E 348 | shareKey: 2F0F6D8860B2C834943B09BEFC06B0F4 349 | pubKey: 034F31D021D847F383556483D4DD4C64FBC8451C21AAA98A76 350 | shareKey: F641AB9F6F463BF8A65D8D1D97AD8C0F 351 | pubKey: 0338215E841033ABE7D384FE00535D9CF452F496E29EF985DC 352 | shareKey: F19CE4E4098A8FD0FA4E4FE6CD92F356 353 | pubKey: 02587C4467A005D25538E5BB3268C56D6811E85631716F11D3 354 | shareKey: 460A7040D18D4D08F38AF91D22F2A890 355 | pubKey: 021BE0CB13D2A4670A896AD9D1110E9F559AEA175D8A12B245 356 | shareKey: 853E5F2C5FE7F14CCD9D237DB52FC731 357 | pubKey: 031CAB2BAE39C4FB6D2738F49DA66F6D5C9E91EF0017031D5A 358 | shareKey: F780C2C506A904E5C9F9512AD3D9B60B 359 | pubKey: 02ED822773FCC9140D386B92364ECDC85735B658740BA33D3B 360 | shareKey: 1E0FE0F5C6326F9D169133576A5C5314 361 | pubKey: 03CE8202BAA167D89EE75F0EDE4E464BBB5940685DC5EA6CEA 362 | shareKey: 70E5320ED509B6112596660DE2C1C526 -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Sat Jun 25 16:37:26 2016 4 | @author: Alost 5 | """ 6 | 7 | import struct 8 | 9 | 10 | if __name__ == '__main__': 11 | 12 | stream = '''ff d8 ff e0 00 10 4a 13 | 46 49 46 00 01 01 00 00 01 00 01 00 00 ff fe 00 14 | 22 35 62 31 36 30 65 31 31 00 bf 9f 60 ff 7f 00 15 | 00 0c bf 9f 60 ff 7f 00 00 ff 05 42 00 00 00 00 16 | 00 ff db 00 43 00 10 0b 0c 0e 0c 0a 10 0e 0d 0e 17 | 12 11 10 13 18 28 1a 18 16 16 18 31 23 25 1d 28 18 | 3a 33 3d 3c 39 33 38 37 40 48 5c 4e 40 44 57 45 19 | 37 38 50 6d 51 57 5f 62 67 68 67 3e 4d 71 79 70 20 | 64 78 5c 65 67 63 ff db 00 43 01 11 12 12 18 15 21 | 18 2f 1a 1a 2f 63 42 38 42 63 63 63 63 63 63 63 22 | 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 23 | 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 24 | 63 63 63 63 63 63 63 63 63 63 63 ff c0 00 11 08 25 | 00 35 00 82 03 01 22 00 02 11 01 03 11 01 ff c4 26 | 00 1f 00 00 01 05 01 01 01 01 01 01 00 00 00 00 27 | 00 00 00 00 01 02 03 04 05 06 07 08 09 0a 0b ff 28 | c4 00 b5 10 00 02 01 03 03 02 04 03 05 05 04 04 29 | 00 00 01 7d 01 02 03 00 04 11 05 12 21 31 41 06 30 | 13 51 61 07 22 71 14 32 81 91 a1 08 23 42 b1 c1 31 | 15 52 d1 f0 24 33 62 72 82 09 0a 16 17 18 19 1a 32 | 25 26 27 28 29 2a 34 35 36 37 38 39 3a 43 44 45 33 | 46 47 48 49 4a 53 54 55 56 57 58 59 5a 63 64 65 34 | 66 67 68 69 6a 73 74 75 76 77 78 79 7a 83 84 85 35 | 86 87 88 89 8a 92 93 94 95 96 97 98 99 9a a2 a3 36 | a4 a5 a6 a7 a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba 37 | c2 c3 c4 c5 c6 c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 38 | d9 da e1 e2 e3 e4 e5 e6 e7 e8 e9 ea f1 f2 f3 f4 39 | f5 f6 f7 f8 f9 fa ff c4 00 1f 01 00 03 01 01 01 40 | 01 01 01 01 01 01 00 00 00 00 00 00 01 02 03 04 41 | 05 06 07 08 09 0a 0b ff c4 00 b5 11 00 02 01 02 42 | 04 04 03 04 07 05 04 04 00 01 02 77 00 01 02 03 43 | 11 04 05 21 31 06 12 41 51 07 61 71 13 22 32 81 44 | 08 14 42 91 a1 b1 c1 09 23 33 52 f0 15 62 72 d1 45 | 0a 16 24 34 e1 25 f1 17 18 19 1a 26 27 28 29 2a 46 | 35 36 37 38 39 3a 43 44 45 46 47 48 49 4a 53 54 47 | 55 56 57 58 59 5a 63 64 65 66 67 68 69 6a 73 74 48 | 75 76 77 78 79 7a 82 83 84 85 86 87 88 89 8a 92 49 | 93 94 95 96 97 98 99 9a a2 a3 a4 a5 a6 a7 a8 a9 50 | aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6 c7 51 | c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da e2 e3 e4 e5 52 | e6 e7 e8 e9 ea f2 f3 f4 f5 f6 f7 f8 f9 fa ff da 53 | 00 0c 03 01 00 02 11 03 11 00 3f 00 ee e8 a2 b9 54 | 89 f5 3d 4e ef 5d bc 86 c2 e6 dd 2d b4 f2 99 46 55 | 00 19 d9 bf 80 b1 e9 c8 23 23 d7 bd 00 74 f4 57 56 | 3a 3c 54 b6 97 3f 67 d6 ac df 4f 72 09 46 dd e6 57 | 2b 0f a8 1f d2 a7 b0 f1 56 9b 7d 72 b0 c6 65 8f 58 | cc 6d b1 3c 88 55 65 3f ec 9f c3 bd 00 6d d1 51 59 | cf 32 5b c1 24 d2 1c 24 6a 59 8f b0 ac 78 3c 53 60 | 61 2c 88 b2 47 71 02 c8 32 b2 4a 80 29 fc 73 57 61 | 1a 73 9a bc 51 2e 49 6e 6e 51 54 17 5a d3 1b a5 62 | f4 1f f7 d8 a5 be d4 e1 b4 b5 13 2f ef 8b 30 55 63 | 54 23 92 68 f6 73 bd ac 1c c8 bb 4c 9e 78 ad a1 64 | 69 66 70 88 bd 49 fe 5e e7 da b0 f5 08 99 e0 6b 65 | fd 6e 21 e5 42 3f 77 04 2c 78 27 82 49 ef db e9 66 | 55 c3 44 ba 3d af db 6f e4 f2 a7 22 54 89 93 73 67 | b6 08 3b 41 fc 87 e3 5a c6 8a 76 77 fe bc 89 73 68 | 37 6d b5 2b 5b ab 87 b7 8a 46 f3 91 77 32 3c 6c 69 | 84 0f 5e 40 ab 55 85 1c 96 5a 96 a6 26 36 b7 81 70 | fc bd ac d2 83 1a 2a 8e 73 f9 ff 00 3a 77 87 df 71 | 79 bf bb 05 85 a3 49 88 83 31 38 55 ce 4f 3f e7 72 | 8a 53 a4 92 6d 02 91 b9 45 72 76 f3 5d 4b 68 35 73 | 29 f5 a7 b6 f3 64 68 e3 05 41 42 01 e3 8e 83 a1 74 | e6 a5 b8 bb d6 e3 d4 2d 2c 3e d7 6e 5a 61 b8 49 75 | 1a 64 e3 d4 83 f9 fe 15 5f 56 77 b5 d7 e3 d3 e4 76 | 1e d3 c8 e9 e8 ac 38 af b5 1b 61 89 96 2d 45 41 77 | c3 35 a9 1b 93 ea 3a 73 f8 74 ab d6 1a a5 b5 fb 78 | 34 71 16 59 94 65 a2 75 c3 0f c2 b2 95 29 47 5d 79 | d1 4a 49 97 a8 a2 8a cc a0 ae 26 27 37 2f e2 2b 80 | d7 85 ee 0b c8 2d 98 46 54 34 71 01 f3 10 dd 32 81 | 07 6e 79 03 35 d0 f8 9a fa 6d 37 41 ba bb b7 c0 82 | 95 02 80 48 c8 19 60 09 fc 8d 71 2f 74 f0 5d e9 83 | da 3e 8b 7a 44 9e 60 96 6b 82 76 f9 b2 37 38 3e 84 | bc 71 83 d7 38 a0 0e 8c 43 6b 1c 8f 37 98 ee 6c 85 | ed a3 48 99 90 4d 23 a1 04 96 23 ab 2f cc bd 3b 86 | a9 c1 19 39 a1 35 a5 bd dd 8d 95 a5 bd d0 b8 92 87 | cc b4 af 1a 83 0c d8 3c 8d 88 78 dc 3a 8c f3 c0 88 | e7 93 45 a3 2d f7 8c ee f5 08 4a cc f6 f9 85 21 89 | 47 da f8 00 02 fc f1 81 9c 63 fc 2a d6 a5 a8 4d 90 | e1 f4 68 43 5d 6a 33 19 93 cb 6b 98 c6 d4 52 79 91 | 1e 60 1d 7b 7b 64 71 c5 00 63 d9 dc 6a 1a 96 ac 92 | da 74 97 97 11 21 dd 08 13 a8 32 04 c6 7e 60 30 93 | 09 e2 b4 b5 5b 37 b9 d1 ac 63 49 51 56 de 19 1c 94 | e7 a3 2a e0 67 3e a7 23 8f 7e b5 5e ca ca e7 4f 95 | f1 2c 17 3a a4 d1 45 2d ce e9 a4 23 01 57 39 1b 96 | 73 d3 a7 7f 7a d0 bd bb 87 4a 9e ce 18 57 cf 59 97 | 60 28 a4 8c 8d 85 c1 5e 3b e0 67 eb c5 7a 54 dc 98 | 92 82 8f 6b fe 67 34 92 d6 e5 97 82 09 6d ad 25 99 | fb 25 bf 95 24 48 c1 1a d9 9c 8c 8e 85 c1 fd 71 100 | 58 9a ad 95 bc 3a fc 36 56 6f f6 75 7d a5 f0 49 101 | 11 b1 39 cf 27 d3 1e 95 d0 4b fd 9e 2e 44 6c 2c 102 | 53 6b 11 c3 f9 4e ab b7 e5 1d 8e 73 fa 57 3f af 103 | c1 6a ba 85 b4 51 e6 3b b7 da 67 2d 29 91 54 9e 104 | 9c 9e 4f f8 55 50 6f 9a da ec 13 5a 1b d6 96 b6 105 | 5f d8 d7 71 cf 7a d7 f0 97 32 4a ea 4e 73 81 e8 106 | 7d a9 9a 6b fd a6 78 e4 8a da 09 34 e8 40 58 27 107 | 9c 61 d7 18 ce 32 3d 7f 97 5a 97 4a 68 ac 67 7d 108 | 32 d0 f9 89 6d 09 79 a4 27 39 90 91 81 fc ea 9e 109 | 99 77 0d f8 92 ef 6b c7 39 f9 a4 0b 91 14 20 0c 110 | 6f e4 60 9c 7d 7f 99 ac 6c fd e7 d3 fc fc 8a d3 111 | 42 c6 a0 9a a5 e6 ae 6d 4c be 4e 9c c8 77 3c 63 112 | 39 03 a8 27 1c 1a 6e 89 74 2c f4 ab ff 00 2c 79 113 | cb 6d 23 15 7c 63 cc 1d 72 4f 42 7a d4 b3 6a d6 114 | 90 e9 70 19 60 7f b3 5c bb 47 82 7e 62 98 39 73 115 | fe 7b d6 2e a3 72 6c 02 e9 96 d7 c1 f4 f9 c0 2c 116 | db 72 d1 29 ed 9e fc 55 42 0e 71 e4 6a df f0 37 117 | f9 89 b4 9d ee 5e d2 13 cf b6 5b 1b bb 45 7b 6b 118 | a5 7b 84 74 63 f3 90 c0 e0 e3 18 ea 3a d5 68 af 119 | 0c fe 2b b5 32 43 2d b4 16 eb b1 55 81 1b 38 20 120 | 67 ea 48 1e f9 ad 28 6f 34 d2 db ad 75 38 92 44 121 | b6 f2 22 df f2 aa 9e bb b0 7e 83 f2 aa d6 37 a2 122 | 3d e6 e3 5b 56 95 e4 39 d9 10 62 d8 c0 1d bf 2a 123 | a4 df bc ed bf af 5f 97 61 76 d4 d3 8a 06 4b fc 124 | 3c 29 1b b3 17 f3 6d 3e 50 47 a4 83 be 7b 75 ef 125 | d2 ab e9 03 ed 9a fd fe a2 bc 44 a3 c8 5f f6 b1 126 | 8c 9f d0 54 ec a2 fa 44 69 99 ed 2e 58 ff 00 a3 127 | 94 6c 48 17 ae 58 74 20 e0 f0 6a b7 87 03 da df 128 | de d8 ef 49 d5 08 76 9c 03 b9 98 f6 3c d6 3f 62 129 | 4f ad bf 52 fa a3 a1 a2 8a 2b 8c d8 6c 88 92 c6 130 | d1 c8 aa e8 c3 0c ac 32 08 ac 9b df 0e 58 dc 5b 131 | 47 1d bc 6b 6a f0 bf 99 13 c4 a0 15 7f 5f 7e 95 132 | b1 45 00 72 49 a5 6a fa 64 16 e2 4f 2b 56 8a 09 133 | 15 a3 85 57 63 46 c3 3f 38 24 f3 df 83 eb 59 ba 134 | a2 cb ad c9 15 ad ac 7a 92 dc 35 c0 96 58 2e b2 135 | 63 83 03 83 9c 70 0f 20 60 fa d7 7f 45 00 73 5e 136 | 31 4f 32 d2 c9 24 50 5d a5 0a 58 60 63 d7 04 f4 137 | fc 78 ac fb 88 26 d4 b5 01 75 a6 cb 0a 5a d8 85 138 | 89 24 91 f0 3e 51 cf ff 00 ac d7 5b 7b 65 6f 7f 139 | 01 86 e6 30 e8 79 c7 a1 f5 ac a7 f0 96 98 f3 99 140 | 36 c8 aa 47 fa b5 6e 33 eb 5d b4 6b c2 30 49 ee 141 | af e7 b9 84 e0 db ba 27 4b 95 98 4f 3c 37 4b 79 142 | b2 2f 9a d5 0a b8 dd 8e c7 15 85 a0 59 c3 aa 5d 143 | 6a 02 f2 03 14 87 1f bb 54 08 23 e7 f9 fe 15 ab 144 | 75 e1 b4 42 93 69 32 fd 8e e1 06 32 32 43 0f 7a 145 | bb a3 69 49 a6 42 f9 90 cb 3c a7 74 92 9f e2 34 146 | 7b 48 42 0f 91 ea fe f1 f2 b6 d5 cc 08 1d 74 7d 147 | 4b 50 b3 b6 86 59 27 99 51 62 56 19 2d d7 2c 48 148 | ed ce 7f c2 9d 26 97 ae 47 a4 1b 15 28 d1 46 e0 149 | 61 1b e6 95 49 e9 93 d0 0a eb 69 6a 3e b4 ef 7b 150 | 6b a6 fe 43 f6 7e 66 2e 9f 6b 2d dd c0 b9 bd b7 151 | f2 a3 85 4c 76 f0 b0 1c 02 39 62 3d 7b 56 85 be 152 | 9d 67 6d 1c 91 c5 6f 18 59 3e f8 c6 43 7d 6a d5 153 | 15 84 aa 4a 5e 45 a8 a4 53 6d 2f 4f 6e b6 36 d9 154 | f5 f2 97 fc 2b 07 ec fa 8e 83 69 71 2c 2b 6f e4 155 | ab ef 63 b4 92 e0 90 3a 0e 98 cf e9 5d 55 27 5e 156 | b5 50 ad 28 e8 f5 42 70 4f 63 98 86 f2 39 6e d9 157 | 34 a8 e4 ba bb 98 10 d7 92 f4 8c 11 cf 6e dc 71 158 | 5b 5a 56 9d 1e 9b 6b e5 2b 79 92 31 dd 24 84 60 159 | b9 f5 35 71 11 23 50 a8 aa aa 3a 05 18 14 ea 2a 160 | 55 e6 56 5b 04 63 6d 58 51 45 15 91 61 45 14 50 161 | 01 45 14 50 01 45 14 50 01 45 14 50 01 45 14 50 162 | 01 45 14 50 01 45 14 50 01 45 14 50 01 45 14 50 163 | 07 ff d9 164 | '''.replace(' ', '').replace('\n', '') 165 | stream = stream.decode('hex') 166 | verifyCodePicName = 'verifyCode.png' 167 | from PIL import Image 168 | with open(verifyCodePicName, 'wb') as f: 169 | f.write(stream) 170 | 171 | import cStringIO 172 | f = cStringIO.StringIO(stream) 173 | img = Image.open(f) 174 | # img.show() 175 | 176 | s = raw_input(u'请输入验证码:') 177 | --------------------------------------------------------------------------------