From abab24d38446c6caed8c2abf41e7013cea06538a Mon Sep 17 00:00:00 2001 From: sta Date: Thu, 28 Oct 2010 15:26:20 +0900 Subject: [PATCH] fix WebSocket.cs --- websocket-sharp.userprefs | 4 +- websocket-sharp/WebSocket.cs | 101 ++++++++++-------- websocket-sharp/bin/Debug/websocket-sharp.dll | Bin 14848 -> 14848 bytes .../bin/Debug/websocket-sharp.dll.mdb | Bin 4389 -> 4422 bytes .../bin/Debug_Ubuntu/websocket-sharp.dll | Bin 14848 -> 14848 bytes .../bin/Debug_Ubuntu/websocket-sharp.dll.mdb | Bin 4389 -> 4422 bytes .../bin/Release/websocket-sharp.dll | Bin 12800 -> 12800 bytes websocket-sharp/websocket-sharp.pidb | Bin 11206 -> 11289 bytes wsclient/bin/Debug/websocket-sharp.dll | Bin 14848 -> 14848 bytes wsclient/bin/Debug/websocket-sharp.dll.mdb | Bin 4389 -> 4422 bytes wsclient/bin/Debug/wsclient.exe | Bin 4608 -> 4608 bytes wsclient/bin/Debug/wsclient.exe.mdb | Bin 791 -> 791 bytes wsclient/bin/Debug_Ubuntu/websocket-sharp.dll | Bin 14848 -> 14848 bytes .../bin/Debug_Ubuntu/websocket-sharp.dll.mdb | Bin 4389 -> 4422 bytes wsclient/bin/Debug_Ubuntu/wsclient.exe | Bin 4608 -> 4608 bytes wsclient/bin/Debug_Ubuntu/wsclient.exe.mdb | Bin 810 -> 810 bytes wsclient/bin/Release/websocket-sharp.dll | Bin 12800 -> 12800 bytes wsclient/bin/Release/wsclient.exe | Bin 4608 -> 4608 bytes 18 files changed, 59 insertions(+), 46 deletions(-) diff --git a/websocket-sharp.userprefs b/websocket-sharp.userprefs index 40b366ad..c1a56c57 100644 --- a/websocket-sharp.userprefs +++ b/websocket-sharp.userprefs @@ -1,8 +1,8 @@  - + - + diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index f92f94a8..865fd211 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -248,53 +248,12 @@ namespace WebSocketSharp private void doHandshake() { - string path = uri.PathAndQuery; - string host = uri.DnsSafeHost; - string origin = "http://" + host; - - int port = ((IPEndPoint)tcpClient.Client.RemoteEndPoint).Port; - if (port != 80) - { - host += ":" + port; - } - - string subProtocol = protocol != String.Empty #if !CHALLENGE - ? String.Format("WebSocket-Protocol: {0}\r\n", protocol) -#else - ? String.Format("Sec-WebSocket-Protocol: {0}\r\n", protocol) -#endif - : protocol; -#if !CHALLENGE - string secKeys = String.Empty; - string key3ToAscii = String.Empty; + string request = createOpeningHandshake(); #else - Random rand = new Random(); - - uint key1, key2; - string secKey1 = rand.GenerateSecKey(out key1); - string secKey2 = rand.GenerateSecKey(out key2); - - byte[] key3 = new byte[8].InitializeWithPrintableASCII(rand); - - string secKeys = "Sec-WebSocket-Key1: {0}\r\n" + - "Sec-WebSocket-Key2: {1}\r\n"; - secKeys = String.Format(secKeys, secKey1, secKey2); - - string key3ToAscii = Encoding.ASCII.GetString(key3); - - byte[] expectedRes = createExpectedRes(key1, key2, key3); - byte[] actualRes = new byte[16]; + byte[] expectedRes, actualRes = new byte[16]; + string request = createOpeningHandshake(out expectedRes); #endif - string request = "GET " + path + " HTTP/1.1\r\n" + - "Upgrade: WebSocket\r\n" + - "Connection: Upgrade\r\n" + - subProtocol + - "Host: " + host + "\r\n" + - "Origin: " + origin + "\r\n" + - secKeys + - "\r\n" + - key3ToAscii; #if DEBUG Console.WriteLine("WS: Info @doHandshake: Handshake from client: \n{0}", request); #endif @@ -374,6 +333,60 @@ namespace WebSocketSharp ReadyState = WsState.OPEN; } +#if !CHALLENGE + private string createOpeningHandshake() +#else + private string createOpeningHandshake(out byte[] expectedRes) +#endif + { + string path = uri.PathAndQuery; + string host = uri.DnsSafeHost; + string origin = "http://" + host; + + int port = ((IPEndPoint)tcpClient.Client.RemoteEndPoint).Port; + if (port != 80) + { + host += ":" + port; + } + + string subProtocol = protocol != String.Empty +#if !CHALLENGE + ? String.Format("WebSocket-Protocol: {0}\r\n", protocol) +#else + ? String.Format("Sec-WebSocket-Protocol: {0}\r\n", protocol) +#endif + : protocol; +#if !CHALLENGE + string secKeys = String.Empty; + string key3ToAscii = String.Empty; +#else + Random rand = new Random(); + + uint key1, key2; + string secKey1 = rand.GenerateSecKey(out key1); + string secKey2 = rand.GenerateSecKey(out key2); + + byte[] key3 = new byte[8].InitializeWithPrintableASCII(rand); + + string secKeys = "Sec-WebSocket-Key1: {0}\r\n" + + "Sec-WebSocket-Key2: {1}\r\n"; + secKeys = String.Format(secKeys, secKey1, secKey2); + + string key3ToAscii = Encoding.ASCII.GetString(key3); + + expectedRes = createExpectedRes(key1, key2, key3); +#endif + return "GET " + path + " HTTP/1.1\r\n" + + "Upgrade: WebSocket\r\n" + + "Connection: Upgrade\r\n" + + subProtocol + + "Host: " + host + "\r\n" + + "Origin: " + origin + "\r\n" + + secKeys + + "\r\n" + + key3ToAscii; + } + private byte[] createExpectedRes(uint key1, uint key2, byte[] key3) { byte[] key1Bytes = BitConverter.GetBytes(key1); diff --git a/websocket-sharp/bin/Debug/websocket-sharp.dll b/websocket-sharp/bin/Debug/websocket-sharp.dll index 52cff40b492aeb1efb29769a703cd3b7f8de705c..b33f3d66971ed9041d0c6a2936bfbc3ffef19f21 100755 GIT binary patch delta 2738 zcmZ`*3v5%@8UD{X*Vp&@amkIrc{y<)apGWznqggtnKPE6WXAaMib;m9#s zAbSDD~VfQSbl#^Ur?H)>+%xN2TX$i7KZMG0Hw~fh!Ql784Cwlk2;! zG5#uRv|bS3^35Pp`*k8$*a=D1@2X81uAJg*vh_=~dvXnwd=Pd;^{c~c65;#2d>k1Q zHCDT`jXi4ZaQ>8qGE=oemX1*iCqjrB%-d6fF5Eny!a)RjlC6yTv~aa7R{_uxl|XN{ zfbQ3G1^OGI^*OTY1iaOt*K~xj9JP53sy=9N-7{cqwjoW*Lm^H7FQn|g!RdFRb`=U# znGR6b- zY>wX7eI#|WW!r9UdztQn<%u~^Bw7Jmu`No>lN2q;^m-J%CO<(auN{;g_G;8{ zo6O^JX5U`ZV|usc-CGcj9t*OLdrDT3?~wp?;Cx+3%LgGSiFPnoPM!wYoopA>=L}DR z?BRo0t&-?~oR|wpm1D;f^B{Tk;NqG2XwR9HE75mPh9&$J>#$y2wgd@yw!O#T8bc0@ zjBMAZ^v}26(@WEGUNKS7sXkY74+4B{(~Ses!wV4NbBD2eShPI{K9At0ieq$zQD0pW z^z1<(PCj`Pfuo@Ubu?6%ykpBnrZO5TPWCF&P~sd71(F+Wxl|hsmDv+D8VXkGrW>#9 zgh6ndp3(3^RGdoKBRApv$!%TmtYuTIc5fLzycOO`kH_9MUG7M=^_(}zs;xJ?4Zy43 zHsim)C9B?;s%8h->Nc8@;Gl7cc{8&o9APcH-9#1Jh`z*o9gd=+E0tWcp|>AJX|3xLidAg36v^)lgJWMcy}37{$ZM@P->X*XERT^&S8dD_ zF*2xDM7Tk1qEi^u3sfm-tS5$7n`4QICqQaNq}$qX$;Q)pL?`Lzhx7-pX6c`DO(30&pVv#bHEQi^!aIp**b zRb>fSTsh4C!=6$G2&L0G*M8+yW_Mx-Zc>i3Y1C#XeY)@&?8S6CVY6#YCatCOIrbez zvP(H8OVrY5IVMZgk%k`^qH9c6sH5^6lNB1Ee}YJmEHRHThrUpBWj7!lRnq{+{)UHeR{Ty2$nKkZzJ85Vg(y;LkzJxs1c4d#Q+%K=-kpl~ERFYP)>jVk%ve<`v!c@`SuK%b>$RFD#o;Aa z=5I9}%pvgWy~G--skN3xDvSxMaXcyNqZW!%G&4Iqi?LqouaTae<^ zQ!15m%HJemt4hKM1Og7?h7phi%t3H8G8>~GFka@gR@aplsEExgb(l`CVHlc`@6~k! z$uc|ZbcQeZsX=}@!Uq@ae15ete|+ zvU}dGWxrm&<>Q9dk!a86p4i?q-`;akf9GreXsi0gmQy<-=}-D^Zhmu%=%_lr{fFCb zzE!U8s#$*Y_TfpN4h>)U-StC1HePyv<(n@aw_KQ)ATGL^E(NG-cK|o?%c$n7EAyD delta 2665 zcmZuy3s6+o8UD{bcVBmR?{e4|%L2;^3pXs!vciI|MT|&0Mh!*HOj{$55)@rnb`(lv zQPVa_gDt(CG-{{`NvE}wPR;DJ7Nwc7j*OFbI(GV+Op``C*4mi1V^d~oe9-@#U1*Z& zW%%y@{qOUibI(pBCz9WIn(pYlJoU8&QlK9uw+iQ~0j>rC2xOk0B9~EoaVx-tK2+bW zzb~C85&e1km~$n7ao7T&XeN}5mIua$v?QOCNU{DiV|P$Pr8I_i+2}DI>yMW&^WsI! z7}xX`Q;gK;8!*_v2KV9=zwQMO5AM()#q za=Z~CS%`hdqbS)efvu}@v4|6I&&{miVU=C)`(8uUh5?{v%rR;FK|w=GSUNsoSq{Oe;lMr~A|isz2BvzLiq%6{qKxG- zHQs_PL~$GtJ+QdAnCUn-z86_JGiEJE2Kb4+(&VVgW{bm7LyDp)A0>_F)TqT z3~FJN8FRWkPIuIY$(f6}PdJ^4U1(%ZF&yUh?sU4Do4JnluX`J7k2`R&Rm}CkxB|Ny zei&0saFx(IJ&8V=!eHh(!8{tC4P)XwPsY5<{F>l-OWf!5M%#I9?vt>{xP*A*KB)9P~U7X!cTC(UTU+7uP(EJ`iu4e zDbwfd5yac}m>T2h4NLp0uTv|GnO)N3Y7-_nt)3#bbi3mf(maBRO2z?h;(L>Vaz`@J zzrSx7i$bjjAcmJkNoNNP;@A2(UM(f-2jX35yAssPShEkmX28!$TsnQ(H%5U?A7yWq ztMGd%EU9o)x{c_dw@|N2@qoZFfkzPu+@sGD3Y!dP@esQ$=Mf7mQ)#d3 zyCn6?3ako;;Z4(Hv#*?@)d`GVHhJ zS8=nKm~1&iSA!Y_?xIEp?nyvR ze>Jb2q_)8&DGamlj&vX1f_sug{sy0wM(`jmfQdW=#Z)Ce;IrVeiyVhaIt$04f%?(9 z06}6CRvW}<1Z*$^9q8Fk%h9@>R*?dF=mkh$ESQ({Yk{ud`q5-B^z|lpwRE($w?kWRGIJ?GOHa?EyZ86?>MsRa(wmFh zC*=_SNckLnksTJ%nXoF8UsYAJnrpXMRJ5!5 zbX{TkH+3eGdXGF8I5+f}wpS;Q?D%2i-bnsGFMsLWovzhe&a{1b#b4t+w~k(#)vovU zr-wEkKljE@dXBtv=P**P&d+(tGfy-;a_W)IZ`AuQHT;^DHSTTkU;5_m*n|3gr+@M8Yi+E=Egd*{eWs^7 zZP{3N;m`+jI*a~GS0m%fFkb8Y4C2V2kGw>zdgIC(Qxnuf9S(fo$_oTlHI3nA)$Ybq G(tiQH9|Fn% diff --git a/websocket-sharp/bin/Debug/websocket-sharp.dll.mdb b/websocket-sharp/bin/Debug/websocket-sharp.dll.mdb index f3856d9e903c83675251ae8811dd2756dccaaea2..84b9cea6b576c814ed0ebef91a5997a0b2fe143e 100644 GIT binary patch delta 1056 zcmYk5drVtZ9LLW&_x7~Cw=FGeX?t4)3)u+FK_vKqCb%N7jGD0_Ov234wU;3(WDDoG~qG!2D?DA3?kXaHkoFdM$OoKB@#{Wk4=phg8I7@2`BlU@8^8a zE4lal20hcBX6sONDR2ER)sLcdYdb)`FCquFy>*D}NaYo6sIef_2~!(Q2vP7q%m|f$ zt9*HdHvu1o`2qp}4TJLI&AZLJs`r+8zjjwm6ehlVvo-tM__ccTGo^+c zYg0W3D-o{?%SvZQyCNfvHXL{*6o>>6Cn$1z$k*N4Du)r#hUKnqS&1Mdt~m!`efp;D za46E^f1zbmPGOAuG4#vBIGG}t8z3VjJwD9Mb6At$W;skxLyvflOJQuPYYYi5z9&|T zBxEu$Ka+$qd!1j$2}Fmh5XRhyg->Swnu(B+mFgoIE63M1s|S2V*u36hd5yGidaN#< zS;v2By>4Yeq14gCVX;bhy22|A2o-he?1GgavK?n<1vmbH%?NHfZR5YN&9dKwckwXW zFP3X#S^QYmAv?PuhAjOAi%i{i%g*1n&)V;@VnfJ!iC{xZFtj`|?clFEZaQwUCN<@L}OBq^nbj0CGL~xQR&!fT!Y0VTtz>TXi_@A8rNa5PmQlj z^fPH@HLl0vDK-8@4HB^E5SZA zcInQz$XVC8Ym%8v9lAj`8FHUy12xhqAhZ>f3w#lL81yjkBKTd9 z2l%Rp&^w?!;0gm27bqV%2|fra1YQ820~G;Vj0kB#8-WYJ9|AoBTnS!gL^TMikv74= o4=M(J89WGrs-*|PUj>x`_k$k+Jq9d6^_oDB1INL8*vIDBe?!y?9RL6T delta 1026 zcmYk5TTBx{6ozMZx6^jFt*xcBT^d19qNr$;i%}ATh&MzHV3D9Pl`ckOD7~NE)27EGJ;suSEaPx(N!BYyvN&fx6`OoZ`-Rw?B^quIu zu)E&BF|j|>m!r`5h0jMmb7pL)t2mL{m@r;CUx!dJl#CjL2zZYcp=IDfuASl~z&@y3 z7yuX;#QO90Xsu(8{?3oPGs`yjEyzkHGXJaX+Q8}eh7aDFjAtJgx6Z4|?WPN`HG2J% z=A@NRU7P9;FID(EQUdRatP4j{3(vOJb{=W`nVXE(`kgDqTz9s|=8@tH+&<@4U4^w_ zOGQn5RZRccNIHzI+9;p?cz5NNZI}0zX$MuAO>`%-Lz^C#IJWmw@5cLQ0*3-aS1McD znGu=StjBK7gbyf;cs~(!wgOLy?O>MV&T(v%O0zvKWY$Zi#ZrMsvj3lkv#=8B6fVhK z>?m?eXtvyCJ8ZXkY)H$yr6T*7E=kMYK!lNmt+r z7_&Cyg?xf3=P>h?h3jPA%azM8_k$amn)k?>2qy1k)db52;EFhw9mRATZwlv+@;S^d zmd6MAqc?;oNFukX{-Qhr6^D1(JGe%YrG9+^2GecJo)Qz zgiQ(EOa{zk&^$B~r%uJEMdB0Bh|{arW1$7MB2^-(7H`hP8CbX;j30@lReU@XZ^y#@ zVB9H^F0nfl>tN3vQ_H`IQC2sK^Awlk}e2si=%#u14IBXrM6~hvK4z@msE0 zZna#~?8V-E9-$vfgd*WY)B{sc6mTE-OVC{4W&xoRP&9C?3ZV#43~)90MbJXv@8EAi zalqr?!=OdLdNo2y&|=^?@F>s{;8gHrHClz@VX_k@TR}^K9pDlu0r&!VIVcfW2Iq4W OI0^U|u#>*fp85yS!w-`H diff --git a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll index bd2afbcb2623352b2ead0184509a8eb2322629be..80b2618601ae6875e5813a3e22a04fcdfd7e604e 100755 GIT binary patch delta 2734 zcmZ`*dr(x@8UM~bckkYN_aT>+_rmg8TtFd2kOe^=QWg6^ggp93M-f*b0?RDx6o)Dh z+YB+vB)LO6Vl|aCCTW_ObZt_#nW;04W1O@z9mg3nO((U9PL0^;v>96)rN47`wbV}U z48QyRzUMjT`|erBqvO$MC;7pY51xDGOV)2ruxr_8%ZLi|i5SJ7-+;>y=Qa?Hn|aH- z%{l2cR%O1xzwKE;qzr3BdcY1z(e5hMF-bltu{`rVr8}<}N@)~!SxHr<`oe+xJa--$ z!^LKky^%d^K52i2`C}z&IvWd8twe+n!3l9G^7TWh;ju0HCzaE z#S3VuTB5*k6|^2(TpfnD;&U0c0Jfvl^r7lPgMQC|y;+7ak{<}E{(m7k_YL+`J8Bo9 zK#^gyhjA!+&<1O8=luMrZ0IwQQ!s|> zkh7-zzV4dP)r)02B+JWiq&*&91x2_4unWf`2Myt_W39S@En%%c!&)O>AXF+F6&}`Z zlt81%B25L%B7nQuF@wvgu`FEyjTI?_s`5ae(Zn4XZALUu%&I1SkY zDUhAgD0VA{n<0l+1ERS&@o)0DCiWA9@&ookHc`FAzEM^LOhNDP7j;5=D_3RlA)lDdI0s6 zcAs-U0@3-%-w-(KPg7?7>5)5@oMFhb{>(^^EDTxpS-&^3!;-VrS$~c-QL}zup=LPn zicc5>hvA$JtVhKX!WlUT{U?Wc!MUB~n@z49e0ZB(g-)k+YMMBaCFZj(A6sI+<*Ec; zb~U>H`&%-XyGxY#Ae-Ip8YDR6ev!Fi^^0C&wfh`I1-ps9!n+@>DCmer`UZQ3QIvX9 zi5hW56g<*FuV%xJ3#FjBKfDFD#rbBYQJW#YGYpP()$}CZh$5FcV0^Shq4%XADRkMw zBpxI;mGM%^O^v*jyQv4LP{bTaUfVXI3ePhZa!trd7Pe{IG=)YioVM_|g}=4%iiJ$y zrs?F>@7NS7xA2=L_tez*=?KmK}&MBz94{Xp5#vF@ZW@D4Zs7e!b z&c2@K&_(o7uaj5i8@PnoWHb+yNLEE=4an#r zphOSOmPC6%50%xg%4$yh&4!Zb9iKBU+OB(aSrv;iDQW7-(lv03>BI|(b`Znen**ez9zHJw?*p-MK?8dtZr?MEzMmg zd)tOWgSf)hbq#JE?(NzhqR_}ts5=_kx-m2y8z>x?Vsk|e%q(A;V%C;snr{|Y%QhG3 zu}_PenT_MuyWJcwE;Bnz3*3u((Vi#`Q7x5Id8|HA$5@Z~r_!R>;nHWgV#{UjY@69p zo?j^EQu0m#yA7KeqQs?CHO}b79Zm4?6E|DPG-wwPg(}^L*NW;%4Ug z=GBh2>)Ab<553#nxflOK&YJGZ-TL%)@!c{)zh0>PF>{*LRTZ`>s>DnWRGnr}lvgiH KD7va&l>QB&(iRc` delta 2661 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 p4x*@H=&ASdgV5 zg!4f3@PS#0_B6A|RO*jbpiFL#PBwMh!v){J9pP1n>|yPjftQCDbhp z01OOb1NjBonEaS(?b{A}{mR@zL;Blt5>)POt+Tp77-eYLIeSC?ZF2uRk^mi*8 z_ba;6TH9X8T!ZnMFN<>*jU^SG=xpvgboEo-YLpx(T_fgsvb+wjw6xF@pFHflK9pc@ z>o0hvW1n52-*B#W%R_nPUh7_4Z{6!(znjW?=?*4GI}j+_x_z>9;}QEd-@)CsQyo3b zn9Oh1V-IJ-`xQpKkBB-)q1Wd)uwC+GyEaQ@Szb3X>!q?1sn9Dq|4$=XSc!BBx8x~t z6?-H!TkduobUM5aq~$$Qu`}6MR3y34EV)}M^+_Ht(kN$oBen3aCkIUt?N@s33j7Dg ztWEi0|HD*pm>FW>I+efRDrA`Z$c;_UpUbWjOy0;E2$qk)6>%&(foTSBisZ}rY-ShB z;{$woonRLjr$*JBO^+xOBeJp;EYB#g4PngQ&~YvL4|-b0uSlF=uwdg;)~)9+@axh- z)!_&(V5l{Oz9BdDUQGBw=Grh`WeaUrNe6igX*Y0p4MEBX)%YAeDXf)`8n~v&?~(M0 z;MDa)TN>)tZRC24LE|HuqH;!jVX$gvp>wLxZsKm5?wPu2w`zmG)lBY~pPHwB9geW; z!#9%=GZ{61or#mCnGjSRg&V}MzBIy)w&%~KnxEzZ6 zMA9z~gkv4-nKQlook)hn_q1AVCKDnvDITS5>Qcq&DCSJm`KVSJt8po6EKI<1*3#5* zRuJ1fY*Q)0S|*e1H}RV z0{;eD46Iipqy#MijsuSY#RDgSuU4bAXemr~z+@|E8L$gn0<8o-30?t81eU@1oB&=0 Md>FWtKF}Wf3xPEdRR910 diff --git a/websocket-sharp/bin/Release/websocket-sharp.dll b/websocket-sharp/bin/Release/websocket-sharp.dll index 43cbfdf3825978e1cdb438deabb31a286785a3bd..82caef18a3adfdc0697e49cb5217e624fb5ab4e9 100755 GIT binary patch delta 2040 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 acmyxxLKZ-9UB(%LmdBGeVZH3xOaB3)ZkS&H diff --git a/websocket-sharp/websocket-sharp.pidb b/websocket-sharp/websocket-sharp.pidb index 599f60617f8a703c45e7f8ccdc2a0bbfa044fcc8..f9110761319aa01d1f0ecb1e73ef742c645c5460 100644 GIT binary patch delta 556 zcmX>WJ~LuMJL9s69aT)4GMiZ#y;zvkxhDs(nz6oTWME*O9LN~I`4#IsCPv=PH#rV4 zW%&U`*%;748&E(jxhOTUB-OtlH7_$S-6JtCr8pxoJN4iH|Nnt{7#IRU<{@hY3FrU? zT3|*pA80q+zDi{WT#dd0%-;Y9tMzl zH4w84h(QuYAP!Ultf+f(0FM|;2T*YGMrIMlw#oH8lJ!%7+E5$|5|9R}Sq7vr{oezW zVJ}KePR%Sscz6Z686W{!pvreJGf+GXvaT11nL~?mCX4e%G4@R^;%#Q^pZtxtka5D~ z489!3iIcDLWid{g?7*+WIC*j^zYgP+$@N;&lh^X|F;1PlhhIy43eW&Fz{torZS!CL zS-gzwlV`{(F#1j2DQnNDv-ziN5-V%NlNrD2CMPH>GbspdZdG2+#5i}euG$SoCM}`K V>>4?Ym6J;}ZZfiO_S39j0s#F9YXATM delta 510 zcmbOkaV&g7JL95>9aT)%q&KrLda*EF;hG%4YR3AAk%57Aav)>;=2xumm>79B-{d&J zlvoZFWn(}GZ9oCRCldq7mfAVg=9L5QgHTbg_Cr+NsufjNK@(z9- z#>tbP@@q0qnanSs#WESFbMha4$<1K`Q+OE}C%=|eVDz2LBWKU3z1c@DiItUsef0wF t$(xmxnRo;@-%wu8#OSrTLG1=3({;hgQ5rdnYLky^++<|jyil`(2>{qPXEOi* diff --git a/wsclient/bin/Debug/websocket-sharp.dll b/wsclient/bin/Debug/websocket-sharp.dll index 52cff40b492aeb1efb29769a703cd3b7f8de705c..b33f3d66971ed9041d0c6a2936bfbc3ffef19f21 100755 GIT binary patch delta 2738 zcmZ`*3v5%@8UD{X*Vp&@amkIrc{y<)apGWznqggtnKPE6WXAaMib;m9#s zAbSDD~VfQSbl#^Ur?H)>+%xN2TX$i7KZMG0Hw~fh!Ql784Cwlk2;! zG5#uRv|bS3^35Pp`*k8$*a=D1@2X81uAJg*vh_=~dvXnwd=Pd;^{c~c65;#2d>k1Q zHCDT`jXi4ZaQ>8qGE=oemX1*iCqjrB%-d6fF5Eny!a)RjlC6yTv~aa7R{_uxl|XN{ zfbQ3G1^OGI^*OTY1iaOt*K~xj9JP53sy=9N-7{cqwjoW*Lm^H7FQn|g!RdFRb`=U# znGR6b- zY>wX7eI#|WW!r9UdztQn<%u~^Bw7Jmu`No>lN2q;^m-J%CO<(auN{;g_G;8{ zo6O^JX5U`ZV|usc-CGcj9t*OLdrDT3?~wp?;Cx+3%LgGSiFPnoPM!wYoopA>=L}DR z?BRo0t&-?~oR|wpm1D;f^B{Tk;NqG2XwR9HE75mPh9&$J>#$y2wgd@yw!O#T8bc0@ zjBMAZ^v}26(@WEGUNKS7sXkY74+4B{(~Ses!wV4NbBD2eShPI{K9At0ieq$zQD0pW z^z1<(PCj`Pfuo@Ubu?6%ykpBnrZO5TPWCF&P~sd71(F+Wxl|hsmDv+D8VXkGrW>#9 zgh6ndp3(3^RGdoKBRApv$!%TmtYuTIc5fLzycOO`kH_9MUG7M=^_(}zs;xJ?4Zy43 zHsim)C9B?;s%8h->Nc8@;Gl7cc{8&o9APcH-9#1Jh`z*o9gd=+E0tWcp|>AJX|3xLidAg36v^)lgJWMcy}37{$ZM@P->X*XERT^&S8dD_ zF*2xDM7Tk1qEi^u3sfm-tS5$7n`4QICqQaNq}$qX$;Q)pL?`Lzhx7-pX6c`DO(30&pVv#bHEQi^!aIp**b zRb>fSTsh4C!=6$G2&L0G*M8+yW_Mx-Zc>i3Y1C#XeY)@&?8S6CVY6#YCatCOIrbez zvP(H8OVrY5IVMZgk%k`^qH9c6sH5^6lNB1Ee}YJmEHRHThrUpBWj7!lRnq{+{)UHeR{Ty2$nKkZzJ85Vg(y;LkzJxs1c4d#Q+%K=-kpl~ERFYP)>jVk%ve<`v!c@`SuK%b>$RFD#o;Aa z=5I9}%pvgWy~G--skN3xDvSxMaXcyNqZW!%G&4Iqi?LqouaTae<^ zQ!15m%HJemt4hKM1Og7?h7phi%t3H8G8>~GFka@gR@aplsEExgb(l`CVHlc`@6~k! z$uc|ZbcQeZsX=}@!Uq@ae15ete|+ zvU}dGWxrm&<>Q9dk!a86p4i?q-`;akf9GreXsi0gmQy<-=}-D^Zhmu%=%_lr{fFCb zzE!U8s#$*Y_TfpN4h>)U-StC1HePyv<(n@aw_KQ)ATGL^E(NG-cK|o?%c$n7EAyD delta 2665 zcmZuy3s6+o8UD{bcVBmR?{e4|%L2;^3pXs!vciI|MT|&0Mh!*HOj{$55)@rnb`(lv zQPVa_gDt(CG-{{`NvE}wPR;DJ7Nwc7j*OFbI(GV+Op``C*4mi1V^d~oe9-@#U1*Z& zW%%y@{qOUibI(pBCz9WIn(pYlJoU8&QlK9uw+iQ~0j>rC2xOk0B9~EoaVx-tK2+bW zzb~C85&e1km~$n7ao7T&XeN}5mIua$v?QOCNU{DiV|P$Pr8I_i+2}DI>yMW&^WsI! z7}xX`Q;gK;8!*_v2KV9=zwQMO5AM()#q za=Z~CS%`hdqbS)efvu}@v4|6I&&{miVU=C)`(8uUh5?{v%rR;FK|w=GSUNsoSq{Oe;lMr~A|isz2BvzLiq%6{qKxG- zHQs_PL~$GtJ+QdAnCUn-z86_JGiEJE2Kb4+(&VVgW{bm7LyDp)A0>_F)TqT z3~FJN8FRWkPIuIY$(f6}PdJ^4U1(%ZF&yUh?sU4Do4JnluX`J7k2`R&Rm}CkxB|Ny zei&0saFx(IJ&8V=!eHh(!8{tC4P)XwPsY5<{F>l-OWf!5M%#I9?vt>{xP*A*KB)9P~U7X!cTC(UTU+7uP(EJ`iu4e zDbwfd5yac}m>T2h4NLp0uTv|GnO)N3Y7-_nt)3#bbi3mf(maBRO2z?h;(L>Vaz`@J zzrSx7i$bjjAcmJkNoNNP;@A2(UM(f-2jX35yAssPShEkmX28!$TsnQ(H%5U?A7yWq ztMGd%EU9o)x{c_dw@|N2@qoZFfkzPu+@sGD3Y!dP@esQ$=Mf7mQ)#d3 zyCn6?3ako;;Z4(Hv#*?@)d`GVHhJ zS8=nKm~1&iSA!Y_?xIEp?nyvR ze>Jb2q_)8&DGamlj&vX1f_sug{sy0wM(`jmfQdW=#Z)Ce;IrVeiyVhaIt$04f%?(9 z06}6CRvW}<1Z*$^9q8Fk%h9@>R*?dF=mkh$ESQ({Yk{ud`q5-B^z|lpwRE($w?kWRGIJ?GOHa?EyZ86?>MsRa(wmFh zC*=_SNckLnksTJ%nXoF8UsYAJnrpXMRJ5!5 zbX{TkH+3eGdXGF8I5+f}wpS;Q?D%2i-bnsGFMsLWovzhe&a{1b#b4t+w~k(#)vovU zr-wEkKljE@dXBtv=P**P&d+(tGfy-;a_W)IZ`AuQHT;^DHSTTkU;5_m*n|3gr+@M8Yi+E=Egd*{eWs^7 zZP{3N;m`+jI*a~GS0m%fFkb8Y4C2V2kGw>zdgIC(Qxnuf9S(fo$_oTlHI3nA)$Ybq G(tiQH9|Fn% diff --git a/wsclient/bin/Debug/websocket-sharp.dll.mdb b/wsclient/bin/Debug/websocket-sharp.dll.mdb index f3856d9e903c83675251ae8811dd2756dccaaea2..84b9cea6b576c814ed0ebef91a5997a0b2fe143e 100644 GIT binary patch delta 1056 zcmYk5drVtZ9LLW&_x7~Cw=FGeX?t4)3)u+FK_vKqCb%N7jGD0_Ov234wU;3(WDDoG~qG!2D?DA3?kXaHkoFdM$OoKB@#{Wk4=phg8I7@2`BlU@8^8a zE4lal20hcBX6sONDR2ER)sLcdYdb)`FCquFy>*D}NaYo6sIef_2~!(Q2vP7q%m|f$ zt9*HdHvu1o`2qp}4TJLI&AZLJs`r+8zjjwm6ehlVvo-tM__ccTGo^+c zYg0W3D-o{?%SvZQyCNfvHXL{*6o>>6Cn$1z$k*N4Du)r#hUKnqS&1Mdt~m!`efp;D za46E^f1zbmPGOAuG4#vBIGG}t8z3VjJwD9Mb6At$W;skxLyvflOJQuPYYYi5z9&|T zBxEu$Ka+$qd!1j$2}Fmh5XRhyg->Swnu(B+mFgoIE63M1s|S2V*u36hd5yGidaN#< zS;v2By>4Yeq14gCVX;bhy22|A2o-he?1GgavK?n<1vmbH%?NHfZR5YN&9dKwckwXW zFP3X#S^QYmAv?PuhAjOAi%i{i%g*1n&)V;@VnfJ!iC{xZFtj`|?clFEZaQwUCN<@L}OBq^nbj0CGL~xQR&!fT!Y0VTtz>TXi_@A8rNa5PmQlj z^fPH@HLl0vDK-8@4HB^E5SZA zcInQz$XVC8Ym%8v9lAj`8FHUy12xhqAhZ>f3w#lL81yjkBKTd9 z2l%Rp&^w?!;0gm27bqV%2|fra1YQ820~G;Vj0kB#8-WYJ9|AoBTnS!gL^TMikv74= o4=M(J89WGrs-*|PUj>x`_k$k+Jq9d6^_oDB1INL8*vIDBe?!y?9RL6T delta 1026 zcmYk5TTBx{6ozMZx6^jFt*xcBT^d19qNr$;i%}ATh&MzHV3D9Pl`ckOD7~NE)27EGJ;suSEaPx(N!BYyvN&fx6`OoZ`-Rw?B^quIu zu)E&BF|j|>m!r`5h0jMmb7pL)t2mL{m@r;CUx!dJl#CjL2zZYcp=IDfuASl~z&@y3 z7yuX;#QO90Xsu(8{?3oPGs`yjEyzkHGXJaX+Q8}eh7aDFjAtJgx6Z4|?WPN`HG2J% z=A@NRU7P9;FID(EQUdRatP4j{3(vOJb{=W`nVXE(`kgDqTz9s|=8@tH+&<@4U4^w_ zOGQn5RZRccNIHzI+9;p?cz5NNZI}0zX$MuAO>`%-Lz^C#IJWmw@5cLQ0*3-aS1McD znGu=StjBK7gbyf;cs~(!wgOLy?O>MV&T(v%O0zvKWY$Zi#ZrMsvj3lkv#=8B6fVhK z>?m?eXtvyCJ8ZXkY)H$yr6T*7E=kMYK!lNmt+r z7_&Cyg?xf3=P>h?h3jPA%azM8_k$amn)k?>2qy1k)db52;EFhw9mRATZwlv+@;S^d zmd6MAqc?;oNFukX{-Qhr6^D1(JGe%YrG9+^2GecJo)Qz zgiQ(EOa{zk&^$B~r%uJEMdB0Bh|{arW1$7MB2^-(7H`hP8CbX;j30@lReU@XZ^y#@ zVB9H^F0nfl>tN3vQ_H`IQC2sK^Awlk}e2si=%#u14IBXrM6~hvK4z@msE0 zZna#~?8V-E9-$vfgd*WY)B{sc6mTE-OVC{4W&xoRP&9C?3ZV#43~)90MbJXv@8EAi zalqr?!=OdLdNo2y&|=^?@F>s{;8gHrHClz@VX_k@TR}^K9pDlu0r&!VIVcfW2Iq4W OI0^U|u#>*fp85yS!w-`H diff --git a/wsclient/bin/Debug/wsclient.exe b/wsclient/bin/Debug/wsclient.exe index 2c27d11daa888d329cbbfa45d60721230c3848d2..8f3d39f1be2f074d72ad7328f92efe0d8a8dc938 100755 GIT binary patch delta 167 zcmZorX;7Ka!E7ORa$cxkvzs+CESJl3=E76KqIE{Br)nt z{>h`v$T3-#SDe{_fp4-ouPLh~gE52A=2BjEMrIqJP(7a^RA?uk2jfHoj?Ih${}}}Xw?;YJPTOHq>PB?tx{6vL`0*g;f{~9Ku>b#`x l>zhSiw;N16=qHfUareiitQ+1tcLW?1?s@)fvpnMuMgXs~Ck+4q delta 82 zcmbQvHl0mDWLf=RWwjTsMhp;e@|CAnckp@VRnH$Z=IOp%Fi~Nmz^aqKR_iQOb=_F~ lI%Hc#T+_rmg8TtFd2kOe^=QWg6^ggp93M-f*b0?RDx6o)Dh z+YB+vB)LO6Vl|aCCTW_ObZt_#nW;04W1O@z9mg3nO((U9PL0^;v>96)rN47`wbV}U z48QyRzUMjT`|erBqvO$MC;7pY51xDGOV)2ruxr_8%ZLi|i5SJ7-+;>y=Qa?Hn|aH- z%{l2cR%O1xzwKE;qzr3BdcY1z(e5hMF-bltu{`rVr8}<}N@)~!SxHr<`oe+xJa--$ z!^LKky^%d^K52i2`C}z&IvWd8twe+n!3l9G^7TWh;ju0HCzaE z#S3VuTB5*k6|^2(TpfnD;&U0c0Jfvl^r7lPgMQC|y;+7ak{<}E{(m7k_YL+`J8Bo9 zK#^gyhjA!+&<1O8=luMrZ0IwQQ!s|> zkh7-zzV4dP)r)02B+JWiq&*&91x2_4unWf`2Myt_W39S@En%%c!&)O>AXF+F6&}`Z zlt81%B25L%B7nQuF@wvgu`FEyjTI?_s`5ae(Zn4XZALUu%&I1SkY zDUhAgD0VA{n<0l+1ERS&@o)0DCiWA9@&ookHc`FAzEM^LOhNDP7j;5=D_3RlA)lDdI0s6 zcAs-U0@3-%-w-(KPg7?7>5)5@oMFhb{>(^^EDTxpS-&^3!;-VrS$~c-QL}zup=LPn zicc5>hvA$JtVhKX!WlUT{U?Wc!MUB~n@z49e0ZB(g-)k+YMMBaCFZj(A6sI+<*Ec; zb~U>H`&%-XyGxY#Ae-Ip8YDR6ev!Fi^^0C&wfh`I1-ps9!n+@>DCmer`UZQ3QIvX9 zi5hW56g<*FuV%xJ3#FjBKfDFD#rbBYQJW#YGYpP()$}CZh$5FcV0^Shq4%XADRkMw zBpxI;mGM%^O^v*jyQv4LP{bTaUfVXI3ePhZa!trd7Pe{IG=)YioVM_|g}=4%iiJ$y zrs?F>@7NS7xA2=L_tez*=?KmK}&MBz94{Xp5#vF@ZW@D4Zs7e!b z&c2@K&_(o7uaj5i8@PnoWHb+yNLEE=4an#r zphOSOmPC6%50%xg%4$yh&4!Zb9iKBU+OB(aSrv;iDQW7-(lv03>BI|(b`Znen**ez9zHJw?*p-MK?8dtZr?MEzMmg zd)tOWgSf)hbq#JE?(NzhqR_}ts5=_kx-m2y8z>x?Vsk|e%q(A;V%C;snr{|Y%QhG3 zu}_PenT_MuyWJcwE;Bnz3*3u((Vi#`Q7x5Id8|HA$5@Z~r_!R>;nHWgV#{UjY@69p zo?j^EQu0m#yA7KeqQs?CHO}b79Zm4?6E|DPG-wwPg(}^L*NW;%4Ug z=GBh2>)Ab<553#nxflOK&YJGZ-TL%)@!c{)zh0>PF>{*LRTZ`>s>DnWRGnr}lvgiH KD7va&l>QB&(iRc` delta 2661 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 p4x*@H=&ASdgV5 zg!4f3@PS#0_B6A|RO*jbpiFL#PBwMh!v){J9pP1n>|yPjftQCDbhp z01OOb1NjBonEaS(?b{A}{mR@zL;Blt5>)POt+Tp77-eYLIeSC?ZF2uRk^mi*8 z_ba;6TH9X8T!ZnMFN<>*jU^SG=xpvgboEo-YLpx(T_fgsvb+wjw6xF@pFHflK9pc@ z>o0hvW1n52-*B#W%R_nPUh7_4Z{6!(znjW?=?*4GI}j+_x_z>9;}QEd-@)CsQyo3b zn9Oh1V-IJ-`xQpKkBB-)q1Wd)uwC+GyEaQ@Szb3X>!q?1sn9Dq|4$=XSc!BBx8x~t z6?-H!TkduobUM5aq~$$Qu`}6MR3y34EV)}M^+_Ht(kN$oBen3aCkIUt?N@s33j7Dg ztWEi0|HD*pm>FW>I+efRDrA`Z$c;_UpUbWjOy0;E2$qk)6>%&(foTSBisZ}rY-ShB z;{$woonRLjr$*JBO^+xOBeJp;EYB#g4PngQ&~YvL4|-b0uSlF=uwdg;)~)9+@axh- z)!_&(V5l{Oz9BdDUQGBw=Grh`WeaUrNe6igX*Y0p4MEBX)%YAeDXf)`8n~v&?~(M0 z;MDa)TN>)tZRC24LE|HuqH;!jVX$gvp>wLxZsKm5?wPu2w`zmG)lBY~pPHwB9geW; z!#9%=GZ{61or#mCnGjSRg&V}MzBIy)w&%~KnxEzZ6 zMA9z~gkv4-nKQlook)hn_q1AVCKDnvDITS5>Qcq&DCSJm`KVSJt8po6EKI<1*3#5* zRuJ1fY*Q)0S|*e1H}RV z0{;eD46Iipqy#MijsuSY#RDgSuU4bAXemr~z+@|E8L$gn0<8o-30?t81eU@1oB&=0 Md>FWtKF}Wf3xPEdRR910 diff --git a/wsclient/bin/Debug_Ubuntu/wsclient.exe b/wsclient/bin/Debug_Ubuntu/wsclient.exe index d3f70e3fbeb752beb3069fcd963be0a530f79fff..246a33c44074dc3d0b46f0eb92137116ad477622 100755 GIT binary patch delta 162 zcmZorX;7Ka!8}j&8QU3kHm_vlXJwk6J$V8 zPab7PfyuJG;><1#{FBXj&Dl*EOc;zA7&aI3vNJL}00pc0jNyVC`8*gmGYb4?1OU%W BEFb^? delta 157 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 acmyxxLKZ-9UB(%LmdBGeVZH3xOaB3)ZkS&H diff --git a/wsclient/bin/Release/wsclient.exe b/wsclient/bin/Release/wsclient.exe index 1fd98d252783ab78fe31f5b5c8b113673684618e..432e7468f26211d0fdd97fb11bb71990bb9779cd 100755 GIT binary patch delta 167 zcmZorX;7Ka!Q3f!a$ CwX~NsKy^ zfAT0Za!i)x6=!x};G1mDYszZLV8URyxs;ckk=X_)RL^G!723(?!8p-?V>6?`e?|bK C0xT#1