Files
2026-06-04 11:42:34 +02:00

686 lines
40 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Threading;
using PlatformSupport.Collections.Specialized;
namespace PlatformSupport.Collections.ObjectModel
{
// Token: 0x02000212 RID: 530
[DefaultMember("Item")]
public class OFFPJGFMHHK<TKey, TValue> : IDictionary<TKey, TValue>, LNJJNADCEEB, INotifyPropertyChanged, IEnumerable, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>
{
// Token: 0x060065A5 RID: 26021 RVA: 0x00214688 File Offset: 0x00212888
public void HMKILEJMMMH(BOKHHPDOCDE NOBAPCOKFIL)
{
BOKHHPDOCDE bokhhpdocde = this.IHNCLKFMHDE;
BOKHHPDOCDE bokhhpdocde2;
do
{
bokhhpdocde2 = bokhhpdocde;
bokhhpdocde = Interlocked.CompareExchange<BOKHHPDOCDE>(ref this.IHNCLKFMHDE, (BOKHHPDOCDE)Delegate.Combine(bokhhpdocde2, NOBAPCOKFIL), bokhhpdocde);
}
while (bokhhpdocde != bokhhpdocde2);
}
// Token: 0x060065A6 RID: 26022 RVA: 0x002146C0 File Offset: 0x002128C0
public OFFPJGFMHHK()
{
this.LBFHMEFPBBN = new Dictionary<TKey, TValue>();
}
// Token: 0x060065A7 RID: 26023 RVA: 0x002146D4 File Offset: 0x002128D4
private void HEBIEKJMLFB(GFJHAKABJHK HJNJOGJJMOF, IList DGKIEHHNIKE)
{
this.FLAAJDKOKED();
if (this.IHNCLKFMHDE != null)
{
this.IHNCLKFMHDE(this, new HCHKJCHBGCH(HJNJOGJJMOF, DGKIEHHNIKE));
}
}
// Token: 0x17000282 RID: 642
// (get) Token: 0x060065A8 RID: 26024 RVA: 0x002146FC File Offset: 0x002128FC
public ICollection<TKey> BLKILOODJOJ
{
get
{
return this.OPBKOAPMOPJ.Keys;
}
}
// Token: 0x14000023 RID: 35
// (add) Token: 0x060065A9 RID: 26025 RVA: 0x0021470C File Offset: 0x0021290C
// (remove) Token: 0x060065E2 RID: 26082 RVA: 0x00214FBC File Offset: 0x002131BC
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event PropertyChangedEventHandler DLDLLCNAKNA;
// Token: 0x060065AA RID: 26026 RVA: 0x00214744 File Offset: 0x00212944
public void DGCMCDPJJOG(BOKHHPDOCDE NOBAPCOKFIL)
{
BOKHHPDOCDE bokhhpdocde = this.IHNCLKFMHDE;
BOKHHPDOCDE bokhhpdocde2;
do
{
bokhhpdocde2 = bokhhpdocde;
bokhhpdocde = Interlocked.CompareExchange<BOKHHPDOCDE>(ref this.IHNCLKFMHDE, (BOKHHPDOCDE)Delegate.Remove(bokhhpdocde2, NOBAPCOKFIL), bokhhpdocde);
}
while (bokhhpdocde != bokhhpdocde2);
}
// Token: 0x060065AB RID: 26027 RVA: 0x0021477C File Offset: 0x0021297C
public void ADHMMOCCLIG()
{
if (this.OPBKOAPMOPJ.Count > 0)
{
this.OPBKOAPMOPJ.Clear();
this.MNBGHAHLPEG();
}
}
// Token: 0x060065AC RID: 26028 RVA: 0x002147A0 File Offset: 0x002129A0
public OFFPJGFMHHK(IDictionary<TKey, TValue> KMOKCBDJJIC)
{
this.LBFHMEFPBBN = new Dictionary<TKey, TValue>(KMOKCBDJJIC);
}
// Token: 0x060065AD RID: 26029 RVA: 0x002147B4 File Offset: 0x002129B4
public bool Contains(KeyValuePair<TKey, TValue> OKKMGANCMGB)
{
return this.OPBKOAPMOPJ.Contains(OKKMGANCMGB);
}
// Token: 0x060065AE RID: 26030 RVA: 0x002147C4 File Offset: 0x002129C4
public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
{
return this.OPBKOAPMOPJ.GetEnumerator();
}
// Token: 0x14000022 RID: 34
// (add) Token: 0x060065AF RID: 26031 RVA: 0x002147D4 File Offset: 0x002129D4
// (remove) Token: 0x060065CD RID: 26061 RVA: 0x00214C4C File Offset: 0x00212E4C
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event BOKHHPDOCDE IHNCLKFMHDE;
// Token: 0x17000286 RID: 646
// (get) Token: 0x060065B0 RID: 26032 RVA: 0x0021480C File Offset: 0x00212A0C
public bool IIPDIEMDPOL
{
get
{
return this.OPBKOAPMOPJ.IsReadOnly;
}
}
// Token: 0x17000283 RID: 643
// (get) Token: 0x060065B1 RID: 26033 RVA: 0x0021481C File Offset: 0x00212A1C
public ICollection<TValue> AJCHKEAHDKL
{
get
{
return this.OPBKOAPMOPJ.Values;
}
}
// Token: 0x060065B2 RID: 26034 RVA: 0x0021482C File Offset: 0x00212A2C
public bool TryGetValue(TKey ANOFFEKMECJ, out TValue NOBAPCOKFIL)
{
return this.OPBKOAPMOPJ.TryGetValue(ANOFFEKMECJ, out NOBAPCOKFIL);
}
// Token: 0x060065B3 RID: 26035 RVA: 0x0021483C File Offset: 0x00212A3C
public void CFDLOFMKLDO(BOKHHPDOCDE NOBAPCOKFIL)
{
BOKHHPDOCDE bokhhpdocde = this.IHNCLKFMHDE;
BOKHHPDOCDE bokhhpdocde2;
do
{
bokhhpdocde2 = bokhhpdocde;
bokhhpdocde = Interlocked.CompareExchange<BOKHHPDOCDE>(ref this.IHNCLKFMHDE, (BOKHHPDOCDE)Delegate.Remove(bokhhpdocde2, NOBAPCOKFIL), bokhhpdocde);
}
while (bokhhpdocde != bokhhpdocde2);
}
// Token: 0x060065B4 RID: 26036 RVA: 0x00214874 File Offset: 0x00212A74
protected virtual void FLAAJDKOKED(string GPGKLIKBKDO)
{
if (this.DLDLLCNAKNA != null)
{
this.DLDLLCNAKNA(this, new PropertyChangedEventArgs(GPGKLIKBKDO));
}
}
// Token: 0x060065B5 RID: 26037 RVA: 0x00214894 File Offset: 0x00212A94
public int ACLPEHFEINK()
{
return this.OPBKOAPMOPJ.Count;
}
// Token: 0x060065B6 RID: 26038 RVA: 0x002148A4 File Offset: 0x00212AA4
public OFFPJGFMHHK(IEqualityComparer<TKey> AEDOPPIDMGA)
{
this.LBFHMEFPBBN = new Dictionary<TKey, TValue>(AEDOPPIDMGA);
}
// Token: 0x060065B7 RID: 26039 RVA: 0x002148B8 File Offset: 0x00212AB8
public bool ContainsKey(TKey ANOFFEKMECJ)
{
return this.OPBKOAPMOPJ.ContainsKey(ANOFFEKMECJ);
}
// Token: 0x060065B8 RID: 26040 RVA: 0x002148C8 File Offset: 0x00212AC8
public void KCFOPHFIEKJ(BOKHHPDOCDE NOBAPCOKFIL)
{
BOKHHPDOCDE bokhhpdocde = this.IHNCLKFMHDE;
BOKHHPDOCDE bokhhpdocde2;
do
{
bokhhpdocde2 = bokhhpdocde;
bokhhpdocde = Interlocked.CompareExchange<BOKHHPDOCDE>(ref this.IHNCLKFMHDE, (BOKHHPDOCDE)Delegate.Remove(bokhhpdocde2, NOBAPCOKFIL), bokhhpdocde);
}
while (bokhhpdocde != bokhhpdocde2);
}
// Token: 0x060065B9 RID: 26041 RVA: 0x00214900 File Offset: 0x00212B00
public void KKFHMNGDGEC(PropertyChangedEventHandler NOBAPCOKFIL)
{
PropertyChangedEventHandler propertyChangedEventHandler = this.DLDLLCNAKNA;
PropertyChangedEventHandler propertyChangedEventHandler2;
do
{
propertyChangedEventHandler2 = propertyChangedEventHandler;
propertyChangedEventHandler = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this.DLDLLCNAKNA, (PropertyChangedEventHandler)Delegate.Combine(propertyChangedEventHandler2, NOBAPCOKFIL), propertyChangedEventHandler);
}
while (propertyChangedEventHandler != propertyChangedEventHandler2);
}
// Token: 0x060065BA RID: 26042 RVA: 0x00214938 File Offset: 0x00212B38
public bool HGIICIDBEEG()
{
return this.OPBKOAPMOPJ.IsReadOnly;
}
// Token: 0x060065BB RID: 26043 RVA: 0x00214948 File Offset: 0x00212B48
public void EBBBAOPCAAF(BOKHHPDOCDE NOBAPCOKFIL)
{
BOKHHPDOCDE bokhhpdocde = this.IHNCLKFMHDE;
BOKHHPDOCDE bokhhpdocde2;
do
{
bokhhpdocde2 = bokhhpdocde;
bokhhpdocde = Interlocked.CompareExchange<BOKHHPDOCDE>(ref this.IHNCLKFMHDE, (BOKHHPDOCDE)Delegate.Combine(bokhhpdocde2, NOBAPCOKFIL), bokhhpdocde);
}
while (bokhhpdocde != bokhhpdocde2);
}
// Token: 0x060065BC RID: 26044 RVA: 0x00214980 File Offset: 0x00212B80
public void Clear()
{
if (this.OPBKOAPMOPJ.Count > 0)
{
this.OPBKOAPMOPJ.Clear();
this.MNBGHAHLPEG();
}
}
// Token: 0x060065BD RID: 26045 RVA: 0x002149A4 File Offset: 0x00212BA4
private void IKEPCNLAMBE()
{
this.FLAAJDKOKED("...requested an invite from you. Do you want to invite them to join you?");
this.FLAAJDKOKED("PS4PlatformManager: checkAvailabilityRequest.IsError: ");
this.FLAAJDKOKED("CURRENT_TEAM_ROUND");
this.FLAAJDKOKED("No Inflate State!");
}
// Token: 0x060065BE RID: 26046 RVA: 0x002149D4 File Offset: 0x00212BD4
private void MNBGHAHLPEG(GFJHAKABJHK HJNJOGJJMOF, IList DGKIEHHNIKE)
{
this.FLAAJDKOKED();
if (this.IHNCLKFMHDE != null)
{
this.IHNCLKFMHDE(this, new HCHKJCHBGCH(HJNJOGJJMOF, DGKIEHHNIKE));
}
}
// Token: 0x060065BF RID: 26047 RVA: 0x002149FC File Offset: 0x00212BFC
public bool HKANIEFMBIJ()
{
return this.OPBKOAPMOPJ.IsReadOnly;
}
// Token: 0x17000284 RID: 644
// (get) Token: 0x060065C0 RID: 26048 RVA: 0x00214A0C File Offset: 0x00212C0C
// (set) Token: 0x060065DE RID: 26078 RVA: 0x00214F6C File Offset: 0x0021316C
public TValue BCIENGLOHLG
{
get
{
return this.OPBKOAPMOPJ[ANOFFEKMECJ];
}
set
{
this.HLKABCICCGP(ANOFFEKMECJ, value, false);
}
}
// Token: 0x060065C1 RID: 26049 RVA: 0x00214A1C File Offset: 0x00212C1C
public void Add(KeyValuePair<TKey, TValue> OKKMGANCMGB)
{
this.HLKABCICCGP(OKKMGANCMGB.Key, OKKMGANCMGB.Value, true);
}
// Token: 0x060065C2 RID: 26050 RVA: 0x00214A34 File Offset: 0x00212C34
private void MNBGHAHLPEG()
{
this.FLAAJDKOKED();
if (this.IHNCLKFMHDE != null)
{
this.IHNCLKFMHDE(this, new HCHKJCHBGCH(GFJHAKABJHK.Reset));
}
}
// Token: 0x060065C3 RID: 26051 RVA: 0x00214A5C File Offset: 0x00212C5C
public void PNPDCKCMDKF(PropertyChangedEventHandler NOBAPCOKFIL)
{
PropertyChangedEventHandler propertyChangedEventHandler = this.DLDLLCNAKNA;
PropertyChangedEventHandler propertyChangedEventHandler2;
do
{
propertyChangedEventHandler2 = propertyChangedEventHandler;
propertyChangedEventHandler = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this.DLDLLCNAKNA, (PropertyChangedEventHandler)Delegate.Combine(propertyChangedEventHandler2, NOBAPCOKFIL), propertyChangedEventHandler);
}
while (propertyChangedEventHandler != propertyChangedEventHandler2);
}
// Token: 0x060065C4 RID: 26052 RVA: 0x00214A94 File Offset: 0x00212C94
private void OCGNIGBIFCG(GFJHAKABJHK HJNJOGJJMOF, IList DGKIEHHNIKE)
{
this.FLAAJDKOKED();
if (this.IHNCLKFMHDE != null)
{
this.IHNCLKFMHDE(this, new HCHKJCHBGCH(HJNJOGJJMOF, DGKIEHHNIKE));
}
}
// Token: 0x060065C5 RID: 26053 RVA: 0x00214ABC File Offset: 0x00212CBC
public OFFPJGFMHHK(int PHNILFPKHOC)
{
this.LBFHMEFPBBN = new Dictionary<TKey, TValue>(PHNILFPKHOC);
}
// Token: 0x060065C6 RID: 26054 RVA: 0x00214AD0 File Offset: 0x00212CD0
public void CBGFKLEAPON(PropertyChangedEventHandler NOBAPCOKFIL)
{
PropertyChangedEventHandler propertyChangedEventHandler = this.DLDLLCNAKNA;
PropertyChangedEventHandler propertyChangedEventHandler2;
do
{
propertyChangedEventHandler2 = propertyChangedEventHandler;
propertyChangedEventHandler = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this.DLDLLCNAKNA, (PropertyChangedEventHandler)Delegate.Combine(propertyChangedEventHandler2, NOBAPCOKFIL), propertyChangedEventHandler);
}
while (propertyChangedEventHandler != propertyChangedEventHandler2);
}
// Token: 0x060065C7 RID: 26055 RVA: 0x00214B08 File Offset: 0x00212D08
private void FLAAJDKOKED()
{
this.FLAAJDKOKED("Count");
this.FLAAJDKOKED("Item[]");
this.FLAAJDKOKED("Keys");
this.FLAAJDKOKED("Values");
}
// Token: 0x060065C8 RID: 26056 RVA: 0x00214B38 File Offset: 0x00212D38
IEnumerator IEnumerable.GetEnumerator()
{
return this.OPBKOAPMOPJ.GetEnumerator();
}
// Token: 0x060065C9 RID: 26057 RVA: 0x00214B48 File Offset: 0x00212D48
public OFFPJGFMHHK(int PHNILFPKHOC, IEqualityComparer<TKey> AEDOPPIDMGA)
{
this.LBFHMEFPBBN = new Dictionary<TKey, TValue>(PHNILFPKHOC, AEDOPPIDMGA);
}
// Token: 0x060065CA RID: 26058 RVA: 0x00214B60 File Offset: 0x00212D60
[CompilerGenerated]
private bool KKLHDMJKNLP(TKey DIJBAAEDIII)
{
return this.OPBKOAPMOPJ.ContainsKey(DIJBAAEDIII);
}
// Token: 0x060065CB RID: 26059 RVA: 0x00214B70 File Offset: 0x00212D70
private IEnumerator EFNDGKJDMKN()
{
return this.OPBKOAPMOPJ.GetEnumerator();
}
// Token: 0x060065CC RID: 26060 RVA: 0x00214B80 File Offset: 0x00212D80
public void LFOHPBECGKB(IDictionary<TKey, TValue> CFDDDDCPOKP)
{
if (CFDDDDCPOKP == null)
{
throw new ArgumentNullException("items");
}
if (CFDDDDCPOKP.Count > 0)
{
if (this.OPBKOAPMOPJ.Count > 0)
{
if (CFDDDDCPOKP.Keys.Any(new Func<TKey, bool>(this.KKLHDMJKNLP)))
{
throw new ArgumentException("An item with the same key has already been added.");
}
foreach (KeyValuePair<TKey, TValue> keyValuePair in CFDDDDCPOKP)
{
this.OPBKOAPMOPJ.Add(keyValuePair);
}
}
else
{
this.LBFHMEFPBBN = new Dictionary<TKey, TValue>(CFDDDDCPOKP);
}
this.MNBGHAHLPEG(GFJHAKABJHK.Add, CFDDDDCPOKP.ToArray<KeyValuePair<TKey, TValue>>());
}
}
// Token: 0x060065CE RID: 26062 RVA: 0x00214C84 File Offset: 0x00212E84
private void MNBGHAHLPEG(GFJHAKABJHK HJNJOGJJMOF, KeyValuePair<TKey, TValue> GMOAMFDNPLH, KeyValuePair<TKey, TValue> OOGIGHLCMCM)
{
this.FLAAJDKOKED();
if (this.IHNCLKFMHDE != null)
{
this.IHNCLKFMHDE(this, new HCHKJCHBGCH(HJNJOGJJMOF, GMOAMFDNPLH, OOGIGHLCMCM));
}
}
// Token: 0x060065CF RID: 26063 RVA: 0x00214CB8 File Offset: 0x00212EB8
private void GFBJJPMMBPG()
{
this.FLAAJDKOKED("ObscuredBool:");
this.FLAAJDKOKED("0");
this.FLAAJDKOKED("Left");
this.FLAAJDKOKED("y");
}
// Token: 0x060065D0 RID: 26064 RVA: 0x00214CE8 File Offset: 0x00212EE8
private void ONLPCPCGKCK()
{
this.FLAAJDKOKED("avatar_sColor");
this.FLAAJDKOKED("<pre style=\"font-family:Consolas;font-size:13;color:black;background:silver;\"><span style=\"color:blue;\">using</span>&nbsp;System;\r\n<span style=\"color:blue;\">using</span>&nbsp;UnityEngine;\r\n<span style=\"color:blue;\">using</span>&nbsp;BestHTTP;\r\n<span style=\"color:blue;\">using</span>&nbsp;BestHTTP.WebSocket;\r\n\r\n<span style=\"color:blue;\">public</span>&nbsp;<span style=\"color:blue;\">class</span>&nbsp;<span style=\"color:#2b91af;\">WebSocketSample</span>&nbsp;:&nbsp;<span style=\"color:#2b91af;\">MonoBehaviour</span>\r\n{\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;Private&nbsp;Fields\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;The&nbsp;WebSocket&nbsp;address&nbsp;to&nbsp;connect</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">string</span>&nbsp;address&nbsp;=&nbsp;<span style=\"color:#a31515;\">&quot;ws://echo.websocket.org&quot;</span>;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Default&nbsp;text&nbsp;to&nbsp;send</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">string</span>&nbsp;msgToSend&nbsp;=&nbsp;<span style=\"color:#a31515;\">&quot;Hello&nbsp;World!&quot;</span>;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Debug&nbsp;text&nbsp;to&nbsp;draw&nbsp;on&nbsp;the&nbsp;gui</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">string</span>&nbsp;Text&nbsp;=&nbsp;<span style=\"color:blue;\">string</span>.Empty;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Saved&nbsp;WebSocket&nbsp;instance</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">WebSocket</span>&nbsp;webSocket;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;GUI&nbsp;scroll&nbsp;position</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">Vector2</span>&nbsp;scrollPos;\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#endregion</span>\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;Unity&nbsp;Events\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnDestroy()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(webSocket&nbsp;!=&nbsp;<span style=\"color:blue;\">null</span>)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.Close();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnGUI()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUIHelper</span>.DrawArea(<span style=\"color:#2b91af;\">GUIHelper</span>.ClientArea,&nbsp;<span style=\"color:blue;\">true</span>,&nbsp;()&nbsp;=&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollPos&nbsp;=&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.BeginScrollView(scrollPos);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.Label(Text);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.EndScrollView();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.Space(5);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.FlexibleSpace();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address&nbsp;=&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.TextField(address);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(webSocket&nbsp;==&nbsp;<span style=\"color:blue;\">null</span>&nbsp;&amp;&amp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.Button(<span style=\"color:#a31515;\">&quot;Open&nbsp;Web&nbsp;Socket&quot;</span>))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Create&nbsp;the&nbsp;WebSocket&nbsp;instance</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket&nbsp;=&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">WebSocket</span>(<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">Uri</span>(address));\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(<span style=\"color:#2b91af;\">HTTPManager</span>.Proxy&nbsp;!=&nbsp;<span style=\"color:blue;\">null</span>)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.InternalRequest.Proxy&nbsp;=&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">HTTPProxy</span>(<span style=\"color:#2b91af;\">HTTPManager</span>.Proxy.Address,&nbsp;<span style=\"color:#2b91af;\">HTTPManager</span>.Proxy.Credentials,&nbsp;<span style=\"color:blue;\">false</span>);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Subscribe&nbsp;to&nbsp;the&nbsp;WS&nbsp;events</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.OnOpen&nbsp;+=&nbsp;OnOpen;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.OnMessage&nbsp;+=&nbsp;OnMessageReceived;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.OnClosed&nbsp;+=&nbsp;OnClosed;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.OnError&nbsp;+=&nbsp;OnError;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Start&nbsp;connecting&nbsp;to&nbsp;the&nbsp;server</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.Open();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;+=&nbsp;<span style=\"color:#a31515;\">&quot;Opening&nbsp;Web&nbsp;Socket...\\n&quot;</span>;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(webSocket&nbsp;!=&nbsp;<span style=\"color:blue;\">null</span>&nbsp;&amp;&amp;&nbsp;webSocket.IsOpen)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.Space(10);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.BeginHorizontal();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgToSend&nbsp;=&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.TextField(msgToSend);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(<span style=\"color:#2b91af;\">GUILayout</span>.Button(<span style=\"color:#a31515;\">&quot;Send&quot;</span>,&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.MaxWidth(70)))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;+=&nbsp;<span style=\"color:#a31515;\">&quot;Sending&nbsp;message...\\n&quot;</span>;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Send&nbsp;message&nbsp;to&nbsp;the&nbsp;server</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.Send(msgToSend);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.EndHorizontal();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.Space(10);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(<span style=\"color:#2b91af;\">GUILayout</span>.Button(<span style=\"color:#a31515;\">&quot;Close&quot;</span>))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Close&nbsp;the&nbsp;connection</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket.Close(1000,&nbsp;<span style=\"color:#a31515;\">&quot;Bye!&quot;</span>);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#endregion</span>\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;WebSocket&nbsp;Event&nbsp;Handlers\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Called&nbsp;when&nbsp;the&nbsp;web&nbsp;socket&nbsp;is&nbsp;open,&nbsp;and&nbsp;we&nbsp;are&nbsp;ready&nbsp;to&nbsp;send&nbsp;and&nbsp;receive&nbsp;data</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnOpen(<span style=\"color:#2b91af;\">WebSocket</span>&nbsp;ws)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;+=&nbsp;<span style=\"color:blue;\">string</span>.Format(<span style=\"color:#a31515;\">&quot;-WebSocket&nbsp;Open!\\n&quot;</span>);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Called&nbsp;when&nbsp;we&nbsp;received&nbsp;a&nbsp;text&nbsp;message&nbsp;from&nbsp;the&nbsp;server</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnMessageReceived(<span style=\"color:#2b91af;\">WebSocket</span>&nbsp;ws,&nbsp;<span style=\"color:blue;\">string</span>&nbsp;message)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;+=&nbsp;<span style=\"color:blue;\">string</span>.Format(<span style=\"color:#a31515;\">&quot;-Message&nbsp;received:&nbsp;{0}\\n&quot;</span>,&nbsp;message);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Called&nbsp;when&nbsp;the&nbsp;web&nbsp;socket&nbsp;closed</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnClosed(<span style=\"color:#2b91af;\">WebSocket</span>&nbsp;ws,&nbsp;<span style=\"color:#2b91af;\">UInt16</span>&nbsp;code,&nbsp;<span style=\"color:blue;\">string</span>&nbsp;message)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;+=&nbsp;<span style=\"color:blue;\">string</span>.Format(<span style=\"color:#a31515;\">&quot;-WebSocket&nbsp;closed!&nbsp;Code:&nbsp;{0}&nbsp;Message:&nbsp;{1}\\n&quot;</span>,&nbsp;code,&nbsp;message);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket&nbsp;=&nbsp;<span style=\"color:blue;\">null</span>;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Called&nbsp;when&nbsp;an&nbsp;error&nbsp;occured&nbsp;on&nbsp;client&nbsp;side</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnError(<span style=\"color:#2b91af;\">WebSocket</span>&nbsp;ws,&nbsp;<span style=\"color:#2b91af;\">Exception</span>&nbsp;ex)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">string</span>&nbsp;errorMsg&nbsp;=&nbsp;<span style=\"color:blue;\">string</span>.Empty;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(ws.InternalRequest.Response&nbsp;!=&nbsp;<span style=\"color:blue;\">null</span>)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errorMsg&nbsp;=&nbsp;<span style=\"color:blue;\">string</span>.Format(<span style=\"color:#a31515;\">&quot;Status&nbsp;Code&nbsp;from&nbsp;Server:&nbsp;{0}&nbsp;and&nbsp;Message:&nbsp;{1}&quot;</span>,&nbsp;ws.InternalRequest.Response.StatusCode,&nbsp;ws.InternalRequest.Response.Message);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;+=&nbsp;<span style=\"color:blue;\">string</span>.Format(<span style=\"color:#a31515;\">&quot;-An&nbsp;error&nbsp;occured:&nbsp;{0}\\n&quot;</span>,&nbsp;(ex&nbsp;!=&nbsp;<span style=\"color:blue;\">null</span>&nbsp;?&nbsp;ex.Message&nbsp;:&nbsp;<span style=\"color:#a31515;\">&quot;Unknown&nbsp;Error&nbsp;&quot;</span>&nbsp;+&nbsp;errorMsg));\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webSocket&nbsp;=&nbsp;<span style=\"color:blue;\">null</span>;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#endregion</span>\r\n}</pre>");
this.FLAAJDKOKED("Can't set visible when not in that room.");
this.FLAAJDKOKED("Room Not Ready");
}
// Token: 0x060065D1 RID: 26065 RVA: 0x00214D18 File Offset: 0x00212F18
public void Add(TKey ANOFFEKMECJ, TValue NOBAPCOKFIL)
{
this.HLKABCICCGP(ANOFFEKMECJ, NOBAPCOKFIL, true);
}
// Token: 0x060065D2 RID: 26066 RVA: 0x00214D24 File Offset: 0x00212F24
public void JKMEMENDMOJ(BOKHHPDOCDE NOBAPCOKFIL)
{
BOKHHPDOCDE bokhhpdocde = this.IHNCLKFMHDE;
BOKHHPDOCDE bokhhpdocde2;
do
{
bokhhpdocde2 = bokhhpdocde;
bokhhpdocde = Interlocked.CompareExchange<BOKHHPDOCDE>(ref this.IHNCLKFMHDE, (BOKHHPDOCDE)Delegate.Remove(bokhhpdocde2, NOBAPCOKFIL), bokhhpdocde);
}
while (bokhhpdocde != bokhhpdocde2);
}
// Token: 0x060065D3 RID: 26067 RVA: 0x00214D5C File Offset: 0x00212F5C
public OFFPJGFMHHK(IDictionary<TKey, TValue> KMOKCBDJJIC, IEqualityComparer<TKey> AEDOPPIDMGA)
{
this.LBFHMEFPBBN = new Dictionary<TKey, TValue>(KMOKCBDJJIC, AEDOPPIDMGA);
}
// Token: 0x060065D4 RID: 26068 RVA: 0x00214D74 File Offset: 0x00212F74
public bool Remove(KeyValuePair<TKey, TValue> OKKMGANCMGB)
{
return this.Remove(OKKMGANCMGB.Key);
}
// Token: 0x060065D5 RID: 26069 RVA: 0x00214D84 File Offset: 0x00212F84
private void NHGKNKACDBD()
{
this.FLAAJDKOKED("STARTING IN");
this.FLAAJDKOKED("must-revalidate");
this.FLAAJDKOKED(" iterations for read and write");
this.FLAAJDKOKED("to");
}
// Token: 0x060065D6 RID: 26070 RVA: 0x00214DB4 File Offset: 0x00212FB4
public bool Remove(TKey ANOFFEKMECJ)
{
if (ANOFFEKMECJ == null)
{
throw new ArgumentNullException("key");
}
TValue tvalue;
this.OPBKOAPMOPJ.TryGetValue(ANOFFEKMECJ, out tvalue);
bool flag = this.OPBKOAPMOPJ.Remove(ANOFFEKMECJ);
if (flag)
{
this.MNBGHAHLPEG();
}
return flag;
}
// Token: 0x060065D7 RID: 26071 RVA: 0x00214E00 File Offset: 0x00213000
public int DNEPDIGIHHO()
{
return this.OPBKOAPMOPJ.Count;
}
// Token: 0x060065D8 RID: 26072 RVA: 0x00214E10 File Offset: 0x00213010
public void BGENHKNCLHN(PropertyChangedEventHandler NOBAPCOKFIL)
{
PropertyChangedEventHandler propertyChangedEventHandler = this.DLDLLCNAKNA;
PropertyChangedEventHandler propertyChangedEventHandler2;
do
{
propertyChangedEventHandler2 = propertyChangedEventHandler;
propertyChangedEventHandler = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this.DLDLLCNAKNA, (PropertyChangedEventHandler)Delegate.Remove(propertyChangedEventHandler2, NOBAPCOKFIL), propertyChangedEventHandler);
}
while (propertyChangedEventHandler != propertyChangedEventHandler2);
}
// Token: 0x060065D9 RID: 26073 RVA: 0x00214E48 File Offset: 0x00213048
private void HLKABCICCGP(TKey ANOFFEKMECJ, TValue NOBAPCOKFIL, bool HBODOIEIMPK)
{
if (ANOFFEKMECJ == null)
{
throw new ArgumentNullException("key");
}
TValue tvalue;
if (this.OPBKOAPMOPJ.TryGetValue(ANOFFEKMECJ, out tvalue))
{
if (HBODOIEIMPK)
{
throw new ArgumentException("An item with the same key has already been added.");
}
if (object.Equals(tvalue, NOBAPCOKFIL))
{
return;
}
this.OPBKOAPMOPJ[ANOFFEKMECJ] = NOBAPCOKFIL;
this.MNBGHAHLPEG(GFJHAKABJHK.Replace, new KeyValuePair<TKey, TValue>(ANOFFEKMECJ, NOBAPCOKFIL), new KeyValuePair<TKey, TValue>(ANOFFEKMECJ, tvalue));
}
else
{
this.OPBKOAPMOPJ[ANOFFEKMECJ] = NOBAPCOKFIL;
this.MNBGHAHLPEG(GFJHAKABJHK.Add, new KeyValuePair<TKey, TValue>(ANOFFEKMECJ, NOBAPCOKFIL));
}
}
// Token: 0x060065DA RID: 26074 RVA: 0x00214EE8 File Offset: 0x002130E8
private void MNBGHAHLPEG(GFJHAKABJHK HJNJOGJJMOF, KeyValuePair<TKey, TValue> GNBJDDBPCLM)
{
this.FLAAJDKOKED();
if (this.IHNCLKFMHDE != null)
{
this.IHNCLKFMHDE(this, new HCHKJCHBGCH(HJNJOGJJMOF, GNBJDDBPCLM));
}
}
// Token: 0x060065DB RID: 26075 RVA: 0x00214F14 File Offset: 0x00213114
public bool BAHMAMKEPMO()
{
return this.OPBKOAPMOPJ.IsReadOnly;
}
// Token: 0x060065DC RID: 26076 RVA: 0x00214F24 File Offset: 0x00213124
public void GILNOLEIMOK(PropertyChangedEventHandler NOBAPCOKFIL)
{
PropertyChangedEventHandler propertyChangedEventHandler = this.DLDLLCNAKNA;
PropertyChangedEventHandler propertyChangedEventHandler2;
do
{
propertyChangedEventHandler2 = propertyChangedEventHandler;
propertyChangedEventHandler = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this.DLDLLCNAKNA, (PropertyChangedEventHandler)Delegate.Combine(propertyChangedEventHandler2, NOBAPCOKFIL), propertyChangedEventHandler);
}
while (propertyChangedEventHandler != propertyChangedEventHandler2);
}
// Token: 0x060065DD RID: 26077 RVA: 0x00214F5C File Offset: 0x0021315C
private IEnumerator DJPKKMINMHM()
{
return this.OPBKOAPMOPJ.GetEnumerator();
}
// Token: 0x060065DF RID: 26079 RVA: 0x00214F78 File Offset: 0x00213178
public void FKNDIDFBEGK()
{
if (this.OPBKOAPMOPJ.Count > 0)
{
this.OPBKOAPMOPJ.Clear();
this.MNBGHAHLPEG();
}
}
// Token: 0x060065E0 RID: 26080 RVA: 0x00214F9C File Offset: 0x0021319C
public void CopyTo(KeyValuePair<TKey, TValue>[] GDLLJBOEGNF, int HKMHCLPEPMF)
{
this.OPBKOAPMOPJ.CopyTo(GDLLJBOEGNF, HKMHCLPEPMF);
}
// Token: 0x060065E1 RID: 26081 RVA: 0x00214FAC File Offset: 0x002131AC
public bool AHNJJMCJAKN()
{
return this.OPBKOAPMOPJ.IsReadOnly;
}
// Token: 0x060065E3 RID: 26083 RVA: 0x00214FF4 File Offset: 0x002131F4
public void NDLNJBOJEKP(BOKHHPDOCDE NOBAPCOKFIL)
{
BOKHHPDOCDE bokhhpdocde = this.IHNCLKFMHDE;
BOKHHPDOCDE bokhhpdocde2;
do
{
bokhhpdocde2 = bokhhpdocde;
bokhhpdocde = Interlocked.CompareExchange<BOKHHPDOCDE>(ref this.IHNCLKFMHDE, (BOKHHPDOCDE)Delegate.Combine(bokhhpdocde2, NOBAPCOKFIL), bokhhpdocde);
}
while (bokhhpdocde != bokhhpdocde2);
}
// Token: 0x060065E4 RID: 26084 RVA: 0x0021502C File Offset: 0x0021322C
private void BMBAFPODHDN()
{
this.FLAAJDKOKED("Six.png");
this.FLAAJDKOKED("You need to be level ");
this.FLAAJDKOKED("Could not connect to PSN: ");
this.FLAAJDKOKED("USE_COUNT");
}
// Token: 0x17000281 RID: 641
// (get) Token: 0x060065E5 RID: 26085 RVA: 0x0021505C File Offset: 0x0021325C
protected IDictionary<TKey, TValue> OPBKOAPMOPJ
{
get
{
return this.LBFHMEFPBBN;
}
}
// Token: 0x060065E6 RID: 26086 RVA: 0x00215064 File Offset: 0x00213264
public int EFLMGDJGEOI()
{
return this.OPBKOAPMOPJ.Count;
}
// Token: 0x060065E7 RID: 26087 RVA: 0x00215074 File Offset: 0x00213274
public int KOOCGEFAFMJ()
{
return this.OPBKOAPMOPJ.Count;
}
// Token: 0x060065E8 RID: 26088 RVA: 0x00215084 File Offset: 0x00213284
private void NBAJDOKODGB()
{
this.FLAAJDKOKED();
if (this.IHNCLKFMHDE != null)
{
this.IHNCLKFMHDE(this, new HCHKJCHBGCH(GFJHAKABJHK.Add));
}
}
// Token: 0x17000285 RID: 645
// (get) Token: 0x060065E9 RID: 26089 RVA: 0x002150AC File Offset: 0x002132AC
public int NKEHDKABAPE
{
get
{
return this.OPBKOAPMOPJ.Count;
}
}
// Token: 0x060065EA RID: 26090 RVA: 0x002150BC File Offset: 0x002132BC
public void KIGJDOKBKDO(PropertyChangedEventHandler NOBAPCOKFIL)
{
PropertyChangedEventHandler propertyChangedEventHandler = this.DLDLLCNAKNA;
PropertyChangedEventHandler propertyChangedEventHandler2;
do
{
propertyChangedEventHandler2 = propertyChangedEventHandler;
propertyChangedEventHandler = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this.DLDLLCNAKNA, (PropertyChangedEventHandler)Delegate.Combine(propertyChangedEventHandler2, NOBAPCOKFIL), propertyChangedEventHandler);
}
while (propertyChangedEventHandler != propertyChangedEventHandler2);
}
// Token: 0x060065EB RID: 26091 RVA: 0x002150F4 File Offset: 0x002132F4
public void EMJKAMHPGFH(PropertyChangedEventHandler NOBAPCOKFIL)
{
PropertyChangedEventHandler propertyChangedEventHandler = this.DLDLLCNAKNA;
PropertyChangedEventHandler propertyChangedEventHandler2;
do
{
propertyChangedEventHandler2 = propertyChangedEventHandler;
propertyChangedEventHandler = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this.DLDLLCNAKNA, (PropertyChangedEventHandler)Delegate.Remove(propertyChangedEventHandler2, NOBAPCOKFIL), propertyChangedEventHandler);
}
while (propertyChangedEventHandler != propertyChangedEventHandler2);
}
// Token: 0x04000D90 RID: 3472
private const string DBKJMFMKABF = "Count";
// Token: 0x04000D91 RID: 3473
private const string MDHJBCAOKFH = "Item[]";
// Token: 0x04000D92 RID: 3474
private const string JAEONGBBKCJ = "Keys";
// Token: 0x04000D93 RID: 3475
private const string MPCHMOAPNFG = "Values";
// Token: 0x04000D94 RID: 3476
private IDictionary<TKey, TValue> LBFHMEFPBBN;
}
}