ping
This commit is contained in:
parent
654f405a44
commit
f731188c8f
16 changed files with 1127 additions and 419 deletions
83
DcConfig.cs
83
DcConfig.cs
|
@ -151,24 +151,37 @@ namespace DutyContent
|
||||||
public int ActiveFate { get; set; } = 0;
|
public int ActiveFate { get; set; } = 0;
|
||||||
public string LogFontFamily { get; set; } = "Microsoft Sans Serif";
|
public string LogFontFamily { get; set; } = "Microsoft Sans Serif";
|
||||||
public float LogFontSize { get; set; } = 12.0f;
|
public float LogFontSize { get; set; } = 12.0f;
|
||||||
|
|
||||||
public bool EnableOverlay { get; set; }
|
public bool EnableOverlay { get; set; }
|
||||||
|
public Point OverlayLocation { get; set; } = new Point(0, 0);
|
||||||
|
public bool OverlayClickThru { get; set; }
|
||||||
|
|
||||||
public bool EnableSound { get; set; }
|
public bool EnableSound { get; set; }
|
||||||
public string SoundInstanceFile { get; set; }
|
public string SoundInstanceFile { get; set; }
|
||||||
public int SoundInstanceVolume { get; set; } = 100;
|
public int SoundInstanceVolume { get; set; } = 100;
|
||||||
public string SoundFateFile { get; set; }
|
public string SoundFateFile { get; set; }
|
||||||
public int SoundFateVolume { get; set; } = 100;
|
public int SoundFateVolume { get; set; } = 100;
|
||||||
|
|
||||||
public bool UseNotifyLine { get; set; }
|
public bool UseNotifyLine { get; set; }
|
||||||
public string NotifyLineToken { get; set; }
|
public string NotifyLineToken { get; set; }
|
||||||
public bool UseNotifyTelegram { get; set; }
|
public bool UseNotifyTelegram { get; set; }
|
||||||
public string NotifyTelegramId { get; set; }
|
public string NotifyTelegramId { get; set; }
|
||||||
public string NotifyTelegramToken { get; set; }
|
public string NotifyTelegramToken { get; set; }
|
||||||
public Point OverlayLocation { get; set; } = new Point(0, 0);
|
|
||||||
|
public bool UsePing { get; set; }
|
||||||
|
public Color[] PingColors { get; set; } = new Color[4]
|
||||||
|
{
|
||||||
|
Color.FromArgb(0xFF, 0x00, 0x00, 0x40),
|
||||||
|
Color.FromArgb(0xFF, 0x40, 0x00, 0x80),
|
||||||
|
Color.FromArgb(0xFF, 0x80, 0x40, 0x00),
|
||||||
|
Color.FromArgb(0xFF, 0xDD, 0xA0, 0xDD),
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
public bool EnableNotify => UseNotifyLine || UseNotifyTelegram;
|
public bool EnableNotify => UseNotifyLine || UseNotifyTelegram;
|
||||||
|
|
||||||
//
|
//
|
||||||
public FateSelection[] Fates = new FateSelection[4]
|
public FateSelection[] Fates { get; set; } = new FateSelection[4]
|
||||||
{
|
{
|
||||||
new FateSelection(0),
|
new FateSelection(0),
|
||||||
new FateSelection(1),
|
new FateSelection(1),
|
||||||
|
@ -186,21 +199,32 @@ namespace DutyContent
|
||||||
sw.WriteLine("DutyFate1={0}", Fates[1].Line);
|
sw.WriteLine("DutyFate1={0}", Fates[1].Line);
|
||||||
sw.WriteLine("DutyFate2={0}", Fates[2].Line);
|
sw.WriteLine("DutyFate2={0}", Fates[2].Line);
|
||||||
sw.WriteLine("DutyFate3={0}", Fates[3].Line);
|
sw.WriteLine("DutyFate3={0}", Fates[3].Line);
|
||||||
|
|
||||||
sw.WriteLine("DutyLogFontFamily={0}", LogFontFamily);
|
sw.WriteLine("DutyLogFontFamily={0}", LogFontFamily);
|
||||||
sw.WriteLine("DutyLogFontSize={0}", LogFontSize);
|
sw.WriteLine("DutyLogFontSize={0}", LogFontSize);
|
||||||
|
|
||||||
sw.WriteLine("DutyEnableOverlay={0}", EnableOverlay);
|
sw.WriteLine("DutyEnableOverlay={0}", EnableOverlay);
|
||||||
|
sw.WriteLine("DutyOverlayLocationX={0}", OverlayLocation.X);
|
||||||
|
sw.WriteLine("DutyOverlayLocationY={0}", OverlayLocation.Y);
|
||||||
|
sw.WriteLine("DutyOverlayClickThru={0}", OverlayClickThru);
|
||||||
|
|
||||||
sw.WriteLine("DutyEnableSound={0}", EnableSound);
|
sw.WriteLine("DutyEnableSound={0}", EnableSound);
|
||||||
sw.WriteLine("DutySoundInstanceFile={0}", SoundInstanceFile);
|
sw.WriteLine("DutySoundInstanceFile={0}", SoundInstanceFile);
|
||||||
sw.WriteLine("DutySoundInstanceVolume={0}", SoundInstanceVolume);
|
sw.WriteLine("DutySoundInstanceVolume={0}", SoundInstanceVolume);
|
||||||
sw.WriteLine("DutySoundFateFile={0}", SoundFateFile);
|
sw.WriteLine("DutySoundFateFile={0}", SoundFateFile);
|
||||||
sw.WriteLine("DutySoundFateVolume={0}", SoundFateVolume);
|
sw.WriteLine("DutySoundFateVolume={0}", SoundFateVolume);
|
||||||
|
|
||||||
sw.WriteLine("DutyUseNotifyLine={0}", UseNotifyLine);
|
sw.WriteLine("DutyUseNotifyLine={0}", UseNotifyLine);
|
||||||
sw.WriteLine("DutyNotifyLineToken={0}", NotifyLineToken);
|
sw.WriteLine("DutyNotifyLineToken={0}", NotifyLineToken);
|
||||||
sw.WriteLine("DutyUseNotifyTelegram={0}", UseNotifyTelegram);
|
sw.WriteLine("DutyUseNotifyTelegram={0}", UseNotifyTelegram);
|
||||||
sw.WriteLine("DutyNotifyTelegramId={0}", NotifyTelegramId);
|
sw.WriteLine("DutyNotifyTelegramId={0}", NotifyTelegramId);
|
||||||
sw.WriteLine("DutyNotifyTelegramToken={0}", NotifyTelegramToken);
|
sw.WriteLine("DutyNotifyTelegramToken={0}", NotifyTelegramToken);
|
||||||
sw.WriteLine("DutyOverlayLocationX={0}", OverlayLocation.X);
|
|
||||||
sw.WriteLine("DutyOverlayLocationY={0}", OverlayLocation.Y);
|
sw.WriteLine("DutyUsePing={0}", UsePing);
|
||||||
|
sw.WriteLine("DutyPingColor0={0:X}", PingColors[0].ToArgb());
|
||||||
|
sw.WriteLine("DutyPingColor1={0:X}", PingColors[1].ToArgb());
|
||||||
|
sw.WriteLine("DutyPingColor2={0:X}", PingColors[2].ToArgb());
|
||||||
|
sw.WriteLine("DutyPingColor3={0:X}", PingColors[3].ToArgb());
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,20 +237,33 @@ namespace DutyContent
|
||||||
Fates[1].Line = db["DutyFate1"];
|
Fates[1].Line = db["DutyFate1"];
|
||||||
Fates[2].Line = db["DutyFate2"];
|
Fates[2].Line = db["DutyFate2"];
|
||||||
Fates[3].Line = db["DutyFate3"];
|
Fates[3].Line = db["DutyFate3"];
|
||||||
LogFontFamily = db["DutyLogFontFamily"];
|
|
||||||
|
LogFontFamily = db.Get("DutyLogFontFamily", LogFontFamily);
|
||||||
LogFontSize = ThirdParty.Converter.ToFloat(db["DutyLogFontSize"], LogFontSize);
|
LogFontSize = ThirdParty.Converter.ToFloat(db["DutyLogFontSize"], LogFontSize);
|
||||||
|
|
||||||
EnableOverlay = ThirdParty.Converter.ToBool(db["DutyEnableOverlay"]);
|
EnableOverlay = ThirdParty.Converter.ToBool(db["DutyEnableOverlay"]);
|
||||||
|
OverlayLocation = new Point(
|
||||||
|
ThirdParty.Converter.ToInt(db["DutyOverlayLocationX"]),
|
||||||
|
ThirdParty.Converter.ToInt(db["DutyOverlayLocationY"]));
|
||||||
|
OverlayClickThru = ThirdParty.Converter.ToBool(db["DutyOverlayClickThru"]);
|
||||||
|
|
||||||
EnableSound = ThirdParty.Converter.ToBool(db["DutyEnableSound"]);
|
EnableSound = ThirdParty.Converter.ToBool(db["DutyEnableSound"]);
|
||||||
SoundInstanceFile = db["DutySoundInstanceFile"];
|
SoundInstanceFile = db["DutySoundInstanceFile"];
|
||||||
SoundFateFile = db["DutySoundFateFile"];
|
SoundFateFile = db["DutySoundFateFile"];
|
||||||
SoundInstanceVolume = ThirdParty.Converter.ToInt(db["DutySoundInstanceVolume"], 100);
|
SoundInstanceVolume = ThirdParty.Converter.ToInt(db["DutySoundInstanceVolume"], 100);
|
||||||
SoundFateVolume = ThirdParty.Converter.ToInt(db["DutySoundFateVolume"], 100);
|
SoundFateVolume = ThirdParty.Converter.ToInt(db["DutySoundFateVolume"], 100);
|
||||||
|
|
||||||
UseNotifyLine = ThirdParty.Converter.ToBool(db["DutyUseNotifyLine"]);
|
UseNotifyLine = ThirdParty.Converter.ToBool(db["DutyUseNotifyLine"]);
|
||||||
NotifyLineToken = db["DutyNotifyLineToken"];
|
NotifyLineToken = db["DutyNotifyLineToken"];
|
||||||
UseNotifyTelegram = ThirdParty.Converter.ToBool(db["DutyUseNotifyTelegram"]);
|
UseNotifyTelegram = ThirdParty.Converter.ToBool(db["DutyUseNotifyTelegram"]);
|
||||||
NotifyTelegramId = db["DutyNotifyTelegramId"];
|
NotifyTelegramId = db["DutyNotifyTelegramId"];
|
||||||
NotifyTelegramToken = db["DutyNotifyTelegramToken"];
|
NotifyTelegramToken = db["DutyNotifyTelegramToken"];
|
||||||
OverlayLocation = new Point(ThirdParty.Converter.ToInt(db["DutyOverlayLocationX"]), ThirdParty.Converter.ToInt(db["DutyOverlayLocationY"]));
|
|
||||||
|
UsePing = ThirdParty.Converter.ToBool(db["DutyUsePing"]);
|
||||||
|
PingColors[0] = ThirdParty.Converter.ToColorArgb(db["DutyPingColor0"], PingColors[0]);
|
||||||
|
PingColors[1] = ThirdParty.Converter.ToColorArgb(db["DutyPingColor1"], PingColors[1]);
|
||||||
|
PingColors[2] = ThirdParty.Converter.ToColorArgb(db["DutyPingColor2"], PingColors[2]);
|
||||||
|
PingColors[3] = ThirdParty.Converter.ToColorArgb(db["DutyPingColor3"], PingColors[3]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,32 +303,56 @@ namespace DutyContent
|
||||||
{
|
{
|
||||||
public List<ThirdParty.NativeMethods.TcpRow> Conns = new List<ThirdParty.NativeMethods.TcpRow>();
|
public List<ThirdParty.NativeMethods.TcpRow> Conns = new List<ThirdParty.NativeMethods.TcpRow>();
|
||||||
|
|
||||||
|
public ThirdParty.NativeMethods.TcpRow[] CopyConnection()
|
||||||
|
{
|
||||||
|
ThirdParty.NativeMethods.TcpRow[] ret;
|
||||||
|
|
||||||
|
lock (Conns)
|
||||||
|
ret = Conns.ToArray();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
public void GetConnections(Process process)
|
public void GetConnections(Process process)
|
||||||
{
|
{
|
||||||
Conns.Clear();
|
|
||||||
|
|
||||||
var size = 0;
|
var size = 0;
|
||||||
var ret = ThirdParty.NativeMethods.GetExtendedTcpTable(IntPtr.Zero, ref size, true, AddressFamily.InterNetwork, 4);
|
ThirdParty.NativeMethods.GetExtendedTcpTable(IntPtr.Zero, ref size, true, AddressFamily.InterNetwork, 4);
|
||||||
|
|
||||||
var buff = Marshal.AllocHGlobal(size);
|
var buff = Marshal.AllocHGlobal(size);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ret = ThirdParty.NativeMethods.GetExtendedTcpTable(buff, ref size, true, AddressFamily.InterNetwork, 4);
|
var ret = ThirdParty.NativeMethods.GetExtendedTcpTable(buff, ref size, true, AddressFamily.InterNetwork, 4);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
var tbl = Marshal.PtrToStructure<ThirdParty.NativeMethods.TcpTable>(buff);
|
var tbl = Marshal.PtrToStructure<ThirdParty.NativeMethods.TcpTable>(buff);
|
||||||
var ptr = (IntPtr)((long)buff + Marshal.SizeOf(tbl.entries));
|
var ptr = (IntPtr)((long)buff + Marshal.SizeOf(tbl.entries));
|
||||||
|
|
||||||
|
var rows = new ThirdParty.NativeMethods.TcpRow[tbl.entries];
|
||||||
|
var rcnt = 0;
|
||||||
|
|
||||||
for (var i = 0; i < tbl.entries; i++)
|
for (var i = 0; i < tbl.entries; i++)
|
||||||
{
|
{
|
||||||
var row = Marshal.PtrToStructure<ThirdParty.NativeMethods.TcpRow>(ptr);
|
var row = Marshal.PtrToStructure<ThirdParty.NativeMethods.TcpRow>(ptr);
|
||||||
|
|
||||||
if (!IPAddress.IsLoopback(row.RemoteAddress) &&
|
if (!IPAddress.IsLoopback(row.RemoteAddress) &&
|
||||||
process.Id == row.owningPid)
|
process.Id == row.owningPid)
|
||||||
Conns.Add(row);
|
rows[rcnt++] = row;
|
||||||
|
|
||||||
ptr = (IntPtr)((long)ptr + Marshal.SizeOf(row));
|
ptr = (IntPtr)((long)ptr + Marshal.SizeOf(row));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lock (Conns)
|
||||||
|
{
|
||||||
|
Conns.Clear();
|
||||||
|
for (var i = 0; i < rcnt; i++)
|
||||||
|
Conns.Add(rows[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lock (Conns)
|
||||||
|
Conns.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
|
52
DcControl.cs
52
DcControl.cs
|
@ -24,8 +24,10 @@ namespace DutyContent
|
||||||
private TabPage _act_tab;
|
private TabPage _act_tab;
|
||||||
private Label _act_label;
|
private Label _act_label;
|
||||||
|
|
||||||
private Timer _update_and_check;
|
private System.Timers.Timer _save_timer;
|
||||||
|
private System.Timers.Timer _update_timer;
|
||||||
private ThirdParty.NativeMethods.ProcessHandle _game_process;
|
private ThirdParty.NativeMethods.ProcessHandle _game_process;
|
||||||
|
private long _game_connection_tick = DateTime.Now.Ticks;
|
||||||
private bool _game_exist;
|
private bool _game_exist;
|
||||||
private bool _game_active;
|
private bool _game_active;
|
||||||
private string _game_zone;
|
private string _game_zone;
|
||||||
|
@ -104,22 +106,27 @@ namespace DutyContent
|
||||||
MesgLog.I(6, System.Diagnostics.FileVersionInfo.GetVersionInfo(_ffxiv_plugin_data.pluginFile.FullName).FileVersion, _ffxiv_plugin_data.pluginFile.FullName);
|
MesgLog.I(6, System.Diagnostics.FileVersionInfo.GetVersionInfo(_ffxiv_plugin_data.pluginFile.FullName).FileVersion, _ffxiv_plugin_data.pluginFile.FullName);
|
||||||
}
|
}
|
||||||
|
|
||||||
_update_and_check = new Timer()
|
_save_timer = new System.Timers.Timer() { Interval = 5000 };
|
||||||
|
_save_timer.Elapsed += (sender, e) =>
|
||||||
{
|
{
|
||||||
Interval = 300,
|
DcConfig.SaveConfig();
|
||||||
|
_save_timer.Enabled = false;
|
||||||
};
|
};
|
||||||
_update_and_check.Tick += (sender, e) =>
|
|
||||||
|
_update_timer = new System.Timers.Timer() { Interval = 300 };
|
||||||
|
_update_timer.Elapsed += (sender, e) =>
|
||||||
{
|
{
|
||||||
UpdateAndCheckProc();
|
UpdateAndCheckProc();
|
||||||
_update_and_check.Interval = _game_exist ? _game_active ? 50 : 300 : 500;
|
_update_timer.Interval = _game_exist ? _game_active ? 50 : 300 : 500;
|
||||||
};
|
};
|
||||||
_update_and_check.Start();
|
_update_timer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
public void DeInitPlugin()
|
public void DeInitPlugin()
|
||||||
{
|
{
|
||||||
_update_and_check.Stop();
|
_update_timer.Stop();
|
||||||
|
_save_timer.Stop();
|
||||||
|
|
||||||
DcConfig.PluginEnable = false;
|
DcConfig.PluginEnable = false;
|
||||||
|
|
||||||
|
@ -157,6 +164,8 @@ namespace DutyContent
|
||||||
MesgLog.SetTextBox(txtMesg);
|
MesgLog.SetTextBox(txtMesg);
|
||||||
MesgLog.Initialize(Properties.Resources.DefaultMessage);
|
MesgLog.Initialize(Properties.Resources.DefaultMessage);
|
||||||
|
|
||||||
|
MesgLog.C(Color.Aquamarine, 4);
|
||||||
|
|
||||||
DcConfig.Load();
|
DcConfig.Load();
|
||||||
DcConfig.ReadLanguage(true);
|
DcConfig.ReadLanguage(true);
|
||||||
DcContent.ReadContent();
|
DcContent.ReadContent();
|
||||||
|
@ -220,6 +229,14 @@ namespace DutyContent
|
||||||
g.DrawString(p.Text, f, b, r, new StringFormat(s));
|
g.DrawString(p.Text, f, b, r, new StringFormat(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
public void RefreshSaveConfig(int interval=5000)
|
||||||
|
{
|
||||||
|
_save_timer.Enabled = false;
|
||||||
|
_save_timer.Interval = interval;
|
||||||
|
_save_timer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
private void UpdateAndCheckProc()
|
private void UpdateAndCheckProc()
|
||||||
{
|
{
|
||||||
|
@ -239,21 +256,26 @@ namespace DutyContent
|
||||||
{
|
{
|
||||||
_game_process = p != null ? new ThirdParty.NativeMethods.ProcessHandle(p) : null;
|
_game_process = p != null ? new ThirdParty.NativeMethods.ProcessHandle(p) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_game_process != null)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
DcConfig.Connections.GetConnections(_game_process.Process);
|
|
||||||
//MesgLog.L("count: {0}", DcConfig.Connections.Conns.Count);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_game_exist = true;
|
_game_exist = true;
|
||||||
|
|
||||||
|
//
|
||||||
var fgw = ThirdParty.NativeMethods.GetForegroundWindow();
|
var fgw = ThirdParty.NativeMethods.GetForegroundWindow();
|
||||||
ThirdParty.NativeMethods.GetWindowThreadProcessId(fgw, out int id);
|
ThirdParty.NativeMethods.GetWindowThreadProcessId(fgw, out int id);
|
||||||
_game_active = _game_process.Process.Id == id;
|
_game_active = _game_process.Process.Id == id;
|
||||||
|
|
||||||
|
//
|
||||||
|
var now = DateTime.Now.Ticks;
|
||||||
|
var delta = now - _game_connection_tick;
|
||||||
|
var span = new TimeSpan(delta);
|
||||||
|
|
||||||
|
if (span.TotalSeconds > 2)
|
||||||
|
{
|
||||||
|
_game_connection_tick = now;
|
||||||
|
DcConfig.Connections.GetConnections(_game_process.Process);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var zone = ActGlobals.oFormActMain.CurrentZone;
|
var zone = ActGlobals.oFormActMain.CurrentZone;
|
||||||
|
@ -292,7 +314,7 @@ namespace DutyContent
|
||||||
tabPageDuty.Text = MesgLog.Text(300);
|
tabPageDuty.Text = MesgLog.Text(300);
|
||||||
Tab.DutyForm.Self?.UpdateUiLocale();
|
Tab.DutyForm.Self?.UpdateUiLocale();
|
||||||
|
|
||||||
tabPageConfig.Text= MesgLog.Text(200);
|
tabPageConfig.Text = MesgLog.Text(200);
|
||||||
Tab.ConfigForm.Self?.UpdateUiLocale();
|
Tab.ConfigForm.Self?.UpdateUiLocale();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,6 +96,7 @@
|
||||||
<Compile Include="ThirdParty\Converter.cs" />
|
<Compile Include="ThirdParty\Converter.cs" />
|
||||||
<Compile Include="ThirdParty\LineDb.cs" />
|
<Compile Include="ThirdParty\LineDb.cs" />
|
||||||
<Compile Include="ThirdParty\NativeMethods.cs" />
|
<Compile Include="ThirdParty\NativeMethods.cs" />
|
||||||
|
<Compile Include="ThirdParty\ThreadWorker.cs" />
|
||||||
<Compile Include="WorkerAct.cs" />
|
<Compile Include="WorkerAct.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -166,6 +167,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Resource Include="Data\DcLang-Japanese.txt" />
|
<Resource Include="Data\DcLang-Japanese.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\pix_tab_ping.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>if exist "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" copy $(TargetPath) "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" /y
|
<PostBuildEvent>if exist "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" copy $(TargetPath) "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" /y
|
||||||
|
|
|
@ -53,12 +53,12 @@ namespace DutyContent
|
||||||
|
|
||||||
public static string Text(int key)
|
public static string Text(int key)
|
||||||
{
|
{
|
||||||
return _lines == null || !_lines.Try(key, out string v) ? ThirdParty.LineDb.InvalidKey : v;
|
return _lines == null || !_lines.Try(key, out string v) ? $"<{key}>" : v;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string Text(int key, params object[] prms)
|
public static string Text(int key, params object[] prms)
|
||||||
{
|
{
|
||||||
return _lines == null || !_lines.Try(key, out string v) ? ThirdParty.LineDb.InvalidKey : string.Format(v, prms);
|
return _lines == null || !_lines.Try(key, out string v) ? $"<{key}>" : string.Format(v, prms);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Write(Color color, string format, params object[] prms)
|
public static void Write(Color color, string format, params object[] prms)
|
||||||
|
|
20
Overlay/DutyOvForm.Designer.cs
generated
20
Overlay/DutyOvForm.Designer.cs
generated
|
@ -30,6 +30,7 @@ namespace DutyContent.Overlay
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.lblText = new System.Windows.Forms.Label();
|
this.lblText = new System.Windows.Forms.Label();
|
||||||
|
this.lblStat = new System.Windows.Forms.Label();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// lblText
|
// lblText
|
||||||
|
@ -37,21 +38,33 @@ namespace DutyContent.Overlay
|
||||||
this.lblText.AutoEllipsis = true;
|
this.lblText.AutoEllipsis = true;
|
||||||
this.lblText.Font = new System.Drawing.Font("Segoe UI", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblText.Font = new System.Drawing.Font("Segoe UI", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblText.ForeColor = System.Drawing.Color.White;
|
this.lblText.ForeColor = System.Drawing.Color.White;
|
||||||
this.lblText.Location = new System.Drawing.Point(0, 0);
|
this.lblText.Location = new System.Drawing.Point(41, 0);
|
||||||
this.lblText.Name = "lblText";
|
this.lblText.Name = "lblText";
|
||||||
this.lblText.Size = new System.Drawing.Size(300, 20);
|
this.lblText.Size = new System.Drawing.Size(319, 32);
|
||||||
this.lblText.TabIndex = 0;
|
this.lblText.TabIndex = 0;
|
||||||
this.lblText.Text = "Duty Content";
|
this.lblText.Text = "Duty Content";
|
||||||
this.lblText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
this.lblText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.lblText.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lblText_MouseDown);
|
this.lblText.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lblText_MouseDown);
|
||||||
//
|
//
|
||||||
|
// lblStat
|
||||||
|
//
|
||||||
|
this.lblStat.AutoEllipsis = true;
|
||||||
|
this.lblStat.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.lblStat.ForeColor = System.Drawing.Color.White;
|
||||||
|
this.lblStat.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.lblStat.Name = "lblStat";
|
||||||
|
this.lblStat.Size = new System.Drawing.Size(40, 32);
|
||||||
|
this.lblStat.TabIndex = 1;
|
||||||
|
this.lblStat.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
// DutyOvForm
|
// DutyOvForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.Black;
|
this.BackColor = System.Drawing.Color.Black;
|
||||||
this.ClientSize = new System.Drawing.Size(300, 25);
|
this.ClientSize = new System.Drawing.Size(360, 32);
|
||||||
this.ControlBox = false;
|
this.ControlBox = false;
|
||||||
|
this.Controls.Add(this.lblStat);
|
||||||
this.Controls.Add(this.lblText);
|
this.Controls.Add(this.lblText);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||||
this.Name = "DutyOvForm";
|
this.Name = "DutyOvForm";
|
||||||
|
@ -68,5 +81,6 @@ namespace DutyContent.Overlay
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.Label lblText;
|
private System.Windows.Forms.Label lblText;
|
||||||
|
private System.Windows.Forms.Label lblStat;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -56,6 +56,9 @@ namespace DutyContent.Overlay
|
||||||
|
|
||||||
private void DoMoveDown(MouseEventArgs e)
|
private void DoMoveDown(MouseEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (DcConfig.Duty.OverlayClickThru)
|
||||||
|
return;
|
||||||
|
|
||||||
if (e.Button == MouseButtons.Left)
|
if (e.Button == MouseButtons.Left)
|
||||||
{
|
{
|
||||||
ThirdParty.NativeMethods.ReleaseCapture();
|
ThirdParty.NativeMethods.ReleaseCapture();
|
||||||
|
@ -65,6 +68,9 @@ namespace DutyContent.Overlay
|
||||||
|
|
||||||
protected override void OnMouseDown(MouseEventArgs e)
|
protected override void OnMouseDown(MouseEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (DcConfig.Duty.OverlayClickThru)
|
||||||
|
return;
|
||||||
|
|
||||||
base.OnMouseDown(e);
|
base.OnMouseDown(e);
|
||||||
DoMoveDown(e);
|
DoMoveDown(e);
|
||||||
}
|
}
|
||||||
|
@ -141,5 +147,24 @@ namespace DutyContent.Overlay
|
||||||
StartBlink();
|
StartBlink();
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ResetStat()
|
||||||
|
{
|
||||||
|
lblStat.BackColor = Color.Transparent;
|
||||||
|
lblStat.Text = string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetStatPing(Color color, long rtt, double loss)
|
||||||
|
{
|
||||||
|
Invoke((MethodInvoker)(() =>
|
||||||
|
{
|
||||||
|
if (rtt > 999)
|
||||||
|
rtt = 999;
|
||||||
|
|
||||||
|
lblStat.Text = string.Format("{0}{1}{2:0.#}%", rtt, Environment.NewLine, loss);
|
||||||
|
lblStat.BackColor = color;
|
||||||
|
//lblStat.ForeColor = Color.FromArgb(255 - color.R, 255 - color.G, 255 - color.B);
|
||||||
|
}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
12
Properties/Resources.Designer.cs
generated
12
Properties/Resources.Designer.cs
generated
|
@ -79,7 +79,7 @@ namespace DutyContent.Properties {
|
||||||
///12=Unknown FATE: {0}
|
///12=Unknown FATE: {0}
|
||||||
///13=Data reading failed!
|
///13=Data reading failed!
|
||||||
///14=Data file not found! {0}
|
///14=Data file not found! {0}
|
||||||
///20=Duty contents info: {0}({1}) / A:{2} / R:{3} / I:{4} / F:{5} ({6})
|
///20=Duty contents info: {1}({0}) / A:{2} / R:{3} / I:{4} / F:{5} ({6})
|
||||||
///21=Roulette
|
///21=Roulette
|
||||||
///22=Instance
|
///22=Instance
|
||||||
///23=FATE
|
///23=FATE
|
||||||
|
@ -132,6 +132,16 @@ namespace DutyContent.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap pix_tab_ping {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("pix_tab_ping", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -133,6 +133,9 @@
|
||||||
<data name="pix_tab_content" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="pix_tab_content" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\resources\pix_tab_content.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\resources\pix_tab_content.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="pix_tab_ping" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\pix_tab_ping.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="pix_tab_setting" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="pix_tab_setting" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\pix_tab_setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\pix_tab_setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -29,10 +29,11 @@ LANG=English
|
||||||
101=Select wave file
|
101=Select wave file
|
||||||
102=Wave (*.wav)|*.wav|All (*.*)|*.*
|
102=Wave (*.wav)|*.wav|All (*.*)|*.*
|
||||||
103=Notify test!!
|
103=Notify test!!
|
||||||
|
104=Clickthrough
|
||||||
|
|
||||||
200=Config
|
200=Config
|
||||||
201=Display Language
|
201=Display Language
|
||||||
202=Hide overlays when FFXIV client is in the background
|
202=Automatically hide overlay when client is in the background
|
||||||
|
|
||||||
300=Duty
|
300=Duty
|
||||||
301=Contents
|
301=Contents
|
||||||
|
@ -61,6 +62,13 @@ LANG=English
|
||||||
324=Status
|
324=Status
|
||||||
325=Member
|
325=Member
|
||||||
326=Progress
|
326=Progress
|
||||||
|
327=Ping
|
||||||
|
328=Use ping
|
||||||
|
329=Colors
|
||||||
|
330=Excellent
|
||||||
|
331=Good
|
||||||
|
332=Normal
|
||||||
|
333=Bad
|
||||||
|
|
||||||
10001="{0}" spawned!
|
10001="{0}" spawned!
|
||||||
10002=Entry: {0}
|
10002=Entry: {0}
|
||||||
|
|
BIN
Resources/pix_tab_ping.png
Normal file
BIN
Resources/pix_tab_ping.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 206 B |
316
Tab/DutyForm.Designer.cs
generated
316
Tab/DutyForm.Designer.cs
generated
|
@ -57,7 +57,7 @@ namespace DutyContent.Tab
|
||||||
""}, -1);
|
""}, -1);
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DutyForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DutyForm));
|
||||||
this.tabContent = new System.Windows.Forms.TabControl();
|
this.tabContent = new System.Windows.Forms.TabControl();
|
||||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
this.tabPageContent = new System.Windows.Forms.TabPage();
|
||||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||||
this.rdoFatePreset4 = new System.Windows.Forms.RadioButton();
|
this.rdoFatePreset4 = new System.Windows.Forms.RadioButton();
|
||||||
this.rdoFatePreset3 = new System.Windows.Forms.RadioButton();
|
this.rdoFatePreset3 = new System.Windows.Forms.RadioButton();
|
||||||
|
@ -65,7 +65,7 @@ namespace DutyContent.Tab
|
||||||
this.rdoFatePreset1 = new System.Windows.Forms.RadioButton();
|
this.rdoFatePreset1 = new System.Windows.Forms.RadioButton();
|
||||||
this.treeFates = new System.Windows.Forms.TreeView();
|
this.treeFates = new System.Windows.Forms.TreeView();
|
||||||
this.txtContentLog = new System.Windows.Forms.RichTextBox();
|
this.txtContentLog = new System.Windows.Forms.RichTextBox();
|
||||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
this.tabPageSetting = new System.Windows.Forms.TabPage();
|
||||||
this.panel4 = new System.Windows.Forms.Panel();
|
this.panel4 = new System.Windows.Forms.Panel();
|
||||||
this.lblTelegramToken = new System.Windows.Forms.Label();
|
this.lblTelegramToken = new System.Windows.Forms.Label();
|
||||||
this.txtTelegramToken = new System.Windows.Forms.TextBox();
|
this.txtTelegramToken = new System.Windows.Forms.TextBox();
|
||||||
|
@ -94,11 +94,24 @@ namespace DutyContent.Tab
|
||||||
this.chkEnableSound = new System.Windows.Forms.CheckBox();
|
this.chkEnableSound = new System.Windows.Forms.CheckBox();
|
||||||
this.lblSoundInstance = new System.Windows.Forms.Label();
|
this.lblSoundInstance = new System.Windows.Forms.Label();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.chkOverlayClickThru = new System.Windows.Forms.CheckBox();
|
||||||
this.progbOverlayTransparent = new System.Windows.Forms.ProgressBar();
|
this.progbOverlayTransparent = new System.Windows.Forms.ProgressBar();
|
||||||
this.btnOverlayDimming = new System.Windows.Forms.Button();
|
this.btnOverlayDimming = new System.Windows.Forms.Button();
|
||||||
this.lblOverlayTransparent = new System.Windows.Forms.Label();
|
this.lblOverlayTransparent = new System.Windows.Forms.Label();
|
||||||
this.chkEnableOverlay = new System.Windows.Forms.CheckBox();
|
this.chkEnableOverlay = new System.Windows.Forms.CheckBox();
|
||||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
this.tabPagePing = new System.Windows.Forms.TabPage();
|
||||||
|
this.panel6 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnPingColor2 = new System.Windows.Forms.Button();
|
||||||
|
this.lblPingStat4 = new System.Windows.Forms.Label();
|
||||||
|
this.lblPingStat2 = new System.Windows.Forms.Label();
|
||||||
|
this.lblPingStat3 = new System.Windows.Forms.Label();
|
||||||
|
this.btnPingColor4 = new System.Windows.Forms.Button();
|
||||||
|
this.btnPingColor1 = new System.Windows.Forms.Button();
|
||||||
|
this.btnPingColor3 = new System.Windows.Forms.Button();
|
||||||
|
this.lblPingStat1 = new System.Windows.Forms.Label();
|
||||||
|
this.lblPingColors = new System.Windows.Forms.Label();
|
||||||
|
this.chkUsePing = new System.Windows.Forms.CheckBox();
|
||||||
|
this.tabPagePacket = new System.Windows.Forms.TabPage();
|
||||||
this.panel5 = new System.Windows.Forms.Panel();
|
this.panel5 = new System.Windows.Forms.Panel();
|
||||||
this.txtPacketDescription = new System.Windows.Forms.TextBox();
|
this.txtPacketDescription = new System.Windows.Forms.TextBox();
|
||||||
this.lblPacketDesc = new System.Windows.Forms.Label();
|
this.lblPacketDesc = new System.Windows.Forms.Label();
|
||||||
|
@ -118,26 +131,31 @@ namespace DutyContent.Tab
|
||||||
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.lblPacketFinder = new System.Windows.Forms.Label();
|
this.lblPacketFinder = new System.Windows.Forms.Label();
|
||||||
this.ilTabContent = new System.Windows.Forms.ImageList(this.components);
|
this.ilTabContent = new System.Windows.Forms.ImageList(this.components);
|
||||||
|
this.tlpnPingColors = new System.Windows.Forms.TableLayoutPanel();
|
||||||
this.tabContent.SuspendLayout();
|
this.tabContent.SuspendLayout();
|
||||||
this.tabPage1.SuspendLayout();
|
this.tabPageContent.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
this.splitContainer1.Panel1.SuspendLayout();
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
this.splitContainer1.Panel2.SuspendLayout();
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
this.splitContainer1.SuspendLayout();
|
this.splitContainer1.SuspendLayout();
|
||||||
this.tabPage2.SuspendLayout();
|
this.tabPageSetting.SuspendLayout();
|
||||||
this.panel4.SuspendLayout();
|
this.panel4.SuspendLayout();
|
||||||
this.panel3.SuspendLayout();
|
this.panel3.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.panel1.SuspendLayout();
|
this.panel1.SuspendLayout();
|
||||||
this.tabPage3.SuspendLayout();
|
this.tabPagePing.SuspendLayout();
|
||||||
|
this.panel6.SuspendLayout();
|
||||||
|
this.tabPagePacket.SuspendLayout();
|
||||||
this.panel5.SuspendLayout();
|
this.panel5.SuspendLayout();
|
||||||
|
this.tlpnPingColors.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// tabContent
|
// tabContent
|
||||||
//
|
//
|
||||||
this.tabContent.Controls.Add(this.tabPage1);
|
this.tabContent.Controls.Add(this.tabPageContent);
|
||||||
this.tabContent.Controls.Add(this.tabPage2);
|
this.tabContent.Controls.Add(this.tabPageSetting);
|
||||||
this.tabContent.Controls.Add(this.tabPage3);
|
this.tabContent.Controls.Add(this.tabPagePing);
|
||||||
|
this.tabContent.Controls.Add(this.tabPagePacket);
|
||||||
this.tabContent.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.tabContent.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.tabContent.ImageList = this.ilTabContent;
|
this.tabContent.ImageList = this.ilTabContent;
|
||||||
this.tabContent.Location = new System.Drawing.Point(0, 0);
|
this.tabContent.Location = new System.Drawing.Point(0, 0);
|
||||||
|
@ -146,17 +164,17 @@ namespace DutyContent.Tab
|
||||||
this.tabContent.Size = new System.Drawing.Size(800, 502);
|
this.tabContent.Size = new System.Drawing.Size(800, 502);
|
||||||
this.tabContent.TabIndex = 0;
|
this.tabContent.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// tabPage1
|
// tabPageContent
|
||||||
//
|
//
|
||||||
this.tabPage1.Controls.Add(this.splitContainer1);
|
this.tabPageContent.Controls.Add(this.splitContainer1);
|
||||||
this.tabPage1.ImageIndex = 0;
|
this.tabPageContent.ImageIndex = 0;
|
||||||
this.tabPage1.Location = new System.Drawing.Point(4, 39);
|
this.tabPageContent.Location = new System.Drawing.Point(4, 39);
|
||||||
this.tabPage1.Name = "tabPage1";
|
this.tabPageContent.Name = "tabPageContent";
|
||||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
this.tabPageContent.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tabPage1.Size = new System.Drawing.Size(792, 459);
|
this.tabPageContent.Size = new System.Drawing.Size(792, 459);
|
||||||
this.tabPage1.TabIndex = 0;
|
this.tabPageContent.TabIndex = 0;
|
||||||
this.tabPage1.Text = "301";
|
this.tabPageContent.Text = "301";
|
||||||
this.tabPage1.UseVisualStyleBackColor = true;
|
this.tabPageContent.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// splitContainer1
|
// splitContainer1
|
||||||
//
|
//
|
||||||
|
@ -257,20 +275,20 @@ namespace DutyContent.Tab
|
||||||
this.txtContentLog.TabIndex = 0;
|
this.txtContentLog.TabIndex = 0;
|
||||||
this.txtContentLog.Text = "";
|
this.txtContentLog.Text = "";
|
||||||
//
|
//
|
||||||
// tabPage2
|
// tabPageSetting
|
||||||
//
|
//
|
||||||
this.tabPage2.Controls.Add(this.panel4);
|
this.tabPageSetting.Controls.Add(this.panel4);
|
||||||
this.tabPage2.Controls.Add(this.panel3);
|
this.tabPageSetting.Controls.Add(this.panel3);
|
||||||
this.tabPage2.Controls.Add(this.panel2);
|
this.tabPageSetting.Controls.Add(this.panel2);
|
||||||
this.tabPage2.Controls.Add(this.panel1);
|
this.tabPageSetting.Controls.Add(this.panel1);
|
||||||
this.tabPage2.ImageIndex = 1;
|
this.tabPageSetting.ImageIndex = 1;
|
||||||
this.tabPage2.Location = new System.Drawing.Point(4, 39);
|
this.tabPageSetting.Location = new System.Drawing.Point(4, 39);
|
||||||
this.tabPage2.Name = "tabPage2";
|
this.tabPageSetting.Name = "tabPageSetting";
|
||||||
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
this.tabPageSetting.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tabPage2.Size = new System.Drawing.Size(792, 459);
|
this.tabPageSetting.Size = new System.Drawing.Size(792, 459);
|
||||||
this.tabPage2.TabIndex = 1;
|
this.tabPageSetting.TabIndex = 1;
|
||||||
this.tabPage2.Text = "302";
|
this.tabPageSetting.Text = "302";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPageSetting.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// panel4
|
// panel4
|
||||||
//
|
//
|
||||||
|
@ -287,7 +305,7 @@ namespace DutyContent.Tab
|
||||||
this.panel4.Controls.Add(this.lblLineToken);
|
this.panel4.Controls.Add(this.lblLineToken);
|
||||||
this.panel4.Controls.Add(this.txtLineToken);
|
this.panel4.Controls.Add(this.txtLineToken);
|
||||||
this.panel4.Controls.Add(this.chkUseNotifyLine);
|
this.panel4.Controls.Add(this.chkUseNotifyLine);
|
||||||
this.panel4.Location = new System.Drawing.Point(6, 273);
|
this.panel4.Location = new System.Drawing.Point(6, 234);
|
||||||
this.panel4.Name = "panel4";
|
this.panel4.Name = "panel4";
|
||||||
this.panel4.Size = new System.Drawing.Size(778, 143);
|
this.panel4.Size = new System.Drawing.Size(778, 143);
|
||||||
this.panel4.TabIndex = 3;
|
this.panel4.TabIndex = 3;
|
||||||
|
@ -429,7 +447,7 @@ namespace DutyContent.Tab
|
||||||
//
|
//
|
||||||
this.lblDataSet.AutoSize = true;
|
this.lblDataSet.AutoSize = true;
|
||||||
this.lblDataSet.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblDataSet.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblDataSet.Location = new System.Drawing.Point(22, 4);
|
this.lblDataSet.Location = new System.Drawing.Point(21, 7);
|
||||||
this.lblDataSet.Name = "lblDataSet";
|
this.lblDataSet.Name = "lblDataSet";
|
||||||
this.lblDataSet.Size = new System.Drawing.Size(39, 20);
|
this.lblDataSet.Size = new System.Drawing.Size(39, 20);
|
||||||
this.lblDataSet.TabIndex = 10;
|
this.lblDataSet.TabIndex = 10;
|
||||||
|
@ -449,7 +467,7 @@ namespace DutyContent.Tab
|
||||||
//
|
//
|
||||||
this.lblLogFont.AutoSize = true;
|
this.lblLogFont.AutoSize = true;
|
||||||
this.lblLogFont.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblLogFont.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblLogFont.Location = new System.Drawing.Point(381, 4);
|
this.lblLogFont.Location = new System.Drawing.Point(380, 7);
|
||||||
this.lblLogFont.Name = "lblLogFont";
|
this.lblLogFont.Name = "lblLogFont";
|
||||||
this.lblLogFont.Size = new System.Drawing.Size(39, 20);
|
this.lblLogFont.Size = new System.Drawing.Size(39, 20);
|
||||||
this.lblLogFont.TabIndex = 9;
|
this.lblLogFont.TabIndex = 9;
|
||||||
|
@ -469,9 +487,9 @@ namespace DutyContent.Tab
|
||||||
this.panel2.Controls.Add(this.txtSoundInstance);
|
this.panel2.Controls.Add(this.txtSoundInstance);
|
||||||
this.panel2.Controls.Add(this.chkEnableSound);
|
this.panel2.Controls.Add(this.chkEnableSound);
|
||||||
this.panel2.Controls.Add(this.lblSoundInstance);
|
this.panel2.Controls.Add(this.lblSoundInstance);
|
||||||
this.panel2.Location = new System.Drawing.Point(6, 135);
|
this.panel2.Location = new System.Drawing.Point(6, 136);
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
this.panel2.Size = new System.Drawing.Size(778, 132);
|
this.panel2.Size = new System.Drawing.Size(778, 92);
|
||||||
this.panel2.TabIndex = 1;
|
this.panel2.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// btnSoundPlayFate
|
// btnSoundPlayFate
|
||||||
|
@ -579,15 +597,28 @@ namespace DutyContent.Tab
|
||||||
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.panel1.Controls.Add(this.chkOverlayClickThru);
|
||||||
this.panel1.Controls.Add(this.progbOverlayTransparent);
|
this.panel1.Controls.Add(this.progbOverlayTransparent);
|
||||||
this.panel1.Controls.Add(this.btnOverlayDimming);
|
this.panel1.Controls.Add(this.btnOverlayDimming);
|
||||||
this.panel1.Controls.Add(this.lblOverlayTransparent);
|
this.panel1.Controls.Add(this.lblOverlayTransparent);
|
||||||
this.panel1.Controls.Add(this.chkEnableOverlay);
|
this.panel1.Controls.Add(this.chkEnableOverlay);
|
||||||
this.panel1.Location = new System.Drawing.Point(6, 68);
|
this.panel1.Location = new System.Drawing.Point(6, 68);
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
this.panel1.Size = new System.Drawing.Size(778, 61);
|
this.panel1.Size = new System.Drawing.Size(778, 62);
|
||||||
this.panel1.TabIndex = 0;
|
this.panel1.TabIndex = 0;
|
||||||
//
|
//
|
||||||
|
// chkOverlayClickThru
|
||||||
|
//
|
||||||
|
this.chkOverlayClickThru.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.chkOverlayClickThru.AutoSize = true;
|
||||||
|
this.chkOverlayClickThru.Location = new System.Drawing.Point(672, 8);
|
||||||
|
this.chkOverlayClickThru.Name = "chkOverlayClickThru";
|
||||||
|
this.chkOverlayClickThru.Size = new System.Drawing.Size(44, 17);
|
||||||
|
this.chkOverlayClickThru.TabIndex = 4;
|
||||||
|
this.chkOverlayClickThru.Text = "104";
|
||||||
|
this.chkOverlayClickThru.UseVisualStyleBackColor = true;
|
||||||
|
this.chkOverlayClickThru.CheckedChanged += new System.EventHandler(this.ChkOverlayClickThru_CheckedChanged);
|
||||||
|
//
|
||||||
// progbOverlayTransparent
|
// progbOverlayTransparent
|
||||||
//
|
//
|
||||||
this.progbOverlayTransparent.Enabled = false;
|
this.progbOverlayTransparent.Enabled = false;
|
||||||
|
@ -632,17 +663,150 @@ namespace DutyContent.Tab
|
||||||
this.chkEnableOverlay.UseVisualStyleBackColor = true;
|
this.chkEnableOverlay.UseVisualStyleBackColor = true;
|
||||||
this.chkEnableOverlay.CheckedChanged += new System.EventHandler(this.ChkEnableOverlay_CheckedChanged);
|
this.chkEnableOverlay.CheckedChanged += new System.EventHandler(this.ChkEnableOverlay_CheckedChanged);
|
||||||
//
|
//
|
||||||
// tabPage3
|
// tabPagePing
|
||||||
//
|
//
|
||||||
this.tabPage3.Controls.Add(this.panel5);
|
this.tabPagePing.Controls.Add(this.panel6);
|
||||||
this.tabPage3.ImageIndex = 2;
|
this.tabPagePing.ImageIndex = 3;
|
||||||
this.tabPage3.Location = new System.Drawing.Point(4, 39);
|
this.tabPagePing.Location = new System.Drawing.Point(4, 39);
|
||||||
this.tabPage3.Name = "tabPage3";
|
this.tabPagePing.Name = "tabPagePing";
|
||||||
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
|
this.tabPagePing.Size = new System.Drawing.Size(792, 459);
|
||||||
this.tabPage3.Size = new System.Drawing.Size(792, 459);
|
this.tabPagePing.TabIndex = 3;
|
||||||
this.tabPage3.TabIndex = 2;
|
this.tabPagePing.Text = "327";
|
||||||
this.tabPage3.Text = "303";
|
this.tabPagePing.UseVisualStyleBackColor = true;
|
||||||
this.tabPage3.UseVisualStyleBackColor = true;
|
//
|
||||||
|
// panel6
|
||||||
|
//
|
||||||
|
this.panel6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.panel6.Controls.Add(this.tlpnPingColors);
|
||||||
|
this.panel6.Controls.Add(this.lblPingColors);
|
||||||
|
this.panel6.Controls.Add(this.chkUsePing);
|
||||||
|
this.panel6.Location = new System.Drawing.Point(6, 8);
|
||||||
|
this.panel6.Name = "panel6";
|
||||||
|
this.panel6.Size = new System.Drawing.Size(778, 353);
|
||||||
|
this.panel6.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// btnPingColor2
|
||||||
|
//
|
||||||
|
this.btnPingColor2.BackColor = System.Drawing.Color.Aqua;
|
||||||
|
this.btnPingColor2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.btnPingColor2.Location = new System.Drawing.Point(97, 28);
|
||||||
|
this.btnPingColor2.Name = "btnPingColor2";
|
||||||
|
this.btnPingColor2.Size = new System.Drawing.Size(85, 28);
|
||||||
|
this.btnPingColor2.TabIndex = 10;
|
||||||
|
this.btnPingColor2.UseVisualStyleBackColor = false;
|
||||||
|
this.btnPingColor2.Click += new System.EventHandler(this.BtnPingColor2_Click);
|
||||||
|
//
|
||||||
|
// lblPingStat4
|
||||||
|
//
|
||||||
|
this.lblPingStat4.AutoSize = true;
|
||||||
|
this.lblPingStat4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lblPingStat4.Location = new System.Drawing.Point(279, 3);
|
||||||
|
this.lblPingStat4.Name = "lblPingStat4";
|
||||||
|
this.lblPingStat4.Size = new System.Drawing.Size(86, 22);
|
||||||
|
this.lblPingStat4.TabIndex = 3;
|
||||||
|
this.lblPingStat4.Text = "333";
|
||||||
|
this.lblPingStat4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// lblPingStat2
|
||||||
|
//
|
||||||
|
this.lblPingStat2.AutoSize = true;
|
||||||
|
this.lblPingStat2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lblPingStat2.Location = new System.Drawing.Point(97, 3);
|
||||||
|
this.lblPingStat2.Name = "lblPingStat2";
|
||||||
|
this.lblPingStat2.Size = new System.Drawing.Size(85, 22);
|
||||||
|
this.lblPingStat2.TabIndex = 5;
|
||||||
|
this.lblPingStat2.Text = "331";
|
||||||
|
this.lblPingStat2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// lblPingStat3
|
||||||
|
//
|
||||||
|
this.lblPingStat3.AutoSize = true;
|
||||||
|
this.lblPingStat3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lblPingStat3.Location = new System.Drawing.Point(188, 3);
|
||||||
|
this.lblPingStat3.Name = "lblPingStat3";
|
||||||
|
this.lblPingStat3.Size = new System.Drawing.Size(85, 22);
|
||||||
|
this.lblPingStat3.TabIndex = 4;
|
||||||
|
this.lblPingStat3.Text = "332";
|
||||||
|
this.lblPingStat3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// btnPingColor4
|
||||||
|
//
|
||||||
|
this.btnPingColor4.BackColor = System.Drawing.Color.Plum;
|
||||||
|
this.btnPingColor4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.btnPingColor4.Location = new System.Drawing.Point(279, 28);
|
||||||
|
this.btnPingColor4.Name = "btnPingColor4";
|
||||||
|
this.btnPingColor4.Size = new System.Drawing.Size(86, 28);
|
||||||
|
this.btnPingColor4.TabIndex = 8;
|
||||||
|
this.btnPingColor4.UseVisualStyleBackColor = false;
|
||||||
|
this.btnPingColor4.Click += new System.EventHandler(this.BtnPingColor4_Click);
|
||||||
|
//
|
||||||
|
// btnPingColor1
|
||||||
|
//
|
||||||
|
this.btnPingColor1.BackColor = System.Drawing.Color.RoyalBlue;
|
||||||
|
this.btnPingColor1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.btnPingColor1.Location = new System.Drawing.Point(6, 28);
|
||||||
|
this.btnPingColor1.Name = "btnPingColor1";
|
||||||
|
this.btnPingColor1.Size = new System.Drawing.Size(85, 28);
|
||||||
|
this.btnPingColor1.TabIndex = 7;
|
||||||
|
this.btnPingColor1.UseVisualStyleBackColor = false;
|
||||||
|
this.btnPingColor1.Click += new System.EventHandler(this.BtnPingColor1_Click);
|
||||||
|
//
|
||||||
|
// btnPingColor3
|
||||||
|
//
|
||||||
|
this.btnPingColor3.BackColor = System.Drawing.Color.LawnGreen;
|
||||||
|
this.btnPingColor3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.btnPingColor3.Location = new System.Drawing.Point(188, 28);
|
||||||
|
this.btnPingColor3.Name = "btnPingColor3";
|
||||||
|
this.btnPingColor3.Size = new System.Drawing.Size(85, 28);
|
||||||
|
this.btnPingColor3.TabIndex = 9;
|
||||||
|
this.btnPingColor3.UseVisualStyleBackColor = false;
|
||||||
|
this.btnPingColor3.Click += new System.EventHandler(this.BtnPingColor3_Click);
|
||||||
|
//
|
||||||
|
// lblPingStat1
|
||||||
|
//
|
||||||
|
this.lblPingStat1.AutoSize = true;
|
||||||
|
this.lblPingStat1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lblPingStat1.Location = new System.Drawing.Point(6, 3);
|
||||||
|
this.lblPingStat1.Name = "lblPingStat1";
|
||||||
|
this.lblPingStat1.Size = new System.Drawing.Size(85, 22);
|
||||||
|
this.lblPingStat1.TabIndex = 6;
|
||||||
|
this.lblPingStat1.Text = "330";
|
||||||
|
this.lblPingStat1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// lblPingColors
|
||||||
|
//
|
||||||
|
this.lblPingColors.AutoSize = true;
|
||||||
|
this.lblPingColors.Location = new System.Drawing.Point(23, 35);
|
||||||
|
this.lblPingColors.Name = "lblPingColors";
|
||||||
|
this.lblPingColors.Size = new System.Drawing.Size(25, 13);
|
||||||
|
this.lblPingColors.TabIndex = 2;
|
||||||
|
this.lblPingColors.Text = "329";
|
||||||
|
//
|
||||||
|
// chkUsePing
|
||||||
|
//
|
||||||
|
this.chkUsePing.AutoSize = true;
|
||||||
|
this.chkUsePing.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.chkUsePing.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.chkUsePing.Name = "chkUsePing";
|
||||||
|
this.chkUsePing.Size = new System.Drawing.Size(58, 24);
|
||||||
|
this.chkUsePing.TabIndex = 0;
|
||||||
|
this.chkUsePing.Text = "328";
|
||||||
|
this.chkUsePing.UseVisualStyleBackColor = true;
|
||||||
|
this.chkUsePing.CheckedChanged += new System.EventHandler(this.ChkUsePing_CheckedChanged);
|
||||||
|
//
|
||||||
|
// tabPagePacket
|
||||||
|
//
|
||||||
|
this.tabPagePacket.Controls.Add(this.panel5);
|
||||||
|
this.tabPagePacket.ImageIndex = 2;
|
||||||
|
this.tabPagePacket.Location = new System.Drawing.Point(4, 39);
|
||||||
|
this.tabPagePacket.Name = "tabPagePacket";
|
||||||
|
this.tabPagePacket.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tabPagePacket.Size = new System.Drawing.Size(792, 459);
|
||||||
|
this.tabPagePacket.TabIndex = 2;
|
||||||
|
this.tabPagePacket.Text = "303";
|
||||||
|
this.tabPagePacket.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// panel5
|
// panel5
|
||||||
//
|
//
|
||||||
|
@ -833,6 +997,31 @@ namespace DutyContent.Tab
|
||||||
this.ilTabContent.Images.SetKeyName(0, "pix_tab_content.png");
|
this.ilTabContent.Images.SetKeyName(0, "pix_tab_content.png");
|
||||||
this.ilTabContent.Images.SetKeyName(1, "pix_tab_setting.png");
|
this.ilTabContent.Images.SetKeyName(1, "pix_tab_setting.png");
|
||||||
this.ilTabContent.Images.SetKeyName(2, "pix_tab_tool.png");
|
this.ilTabContent.Images.SetKeyName(2, "pix_tab_tool.png");
|
||||||
|
this.ilTabContent.Images.SetKeyName(3, "pix_tab_ping.png");
|
||||||
|
//
|
||||||
|
// tlpnPingColors
|
||||||
|
//
|
||||||
|
this.tlpnPingColors.ColumnCount = 4;
|
||||||
|
this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
|
this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
|
this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
|
this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
|
this.tlpnPingColors.Controls.Add(this.lblPingStat1, 0, 0);
|
||||||
|
this.tlpnPingColors.Controls.Add(this.btnPingColor4, 3, 1);
|
||||||
|
this.tlpnPingColors.Controls.Add(this.btnPingColor2, 1, 1);
|
||||||
|
this.tlpnPingColors.Controls.Add(this.btnPingColor3, 2, 1);
|
||||||
|
this.tlpnPingColors.Controls.Add(this.lblPingStat2, 1, 0);
|
||||||
|
this.tlpnPingColors.Controls.Add(this.lblPingStat4, 3, 0);
|
||||||
|
this.tlpnPingColors.Controls.Add(this.btnPingColor1, 0, 1);
|
||||||
|
this.tlpnPingColors.Controls.Add(this.lblPingStat3, 2, 0);
|
||||||
|
this.tlpnPingColors.Location = new System.Drawing.Point(36, 51);
|
||||||
|
this.tlpnPingColors.Name = "tlpnPingColors";
|
||||||
|
this.tlpnPingColors.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tlpnPingColors.RowCount = 2;
|
||||||
|
this.tlpnPingColors.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F));
|
||||||
|
this.tlpnPingColors.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 60F));
|
||||||
|
this.tlpnPingColors.Size = new System.Drawing.Size(371, 62);
|
||||||
|
this.tlpnPingColors.TabIndex = 11;
|
||||||
//
|
//
|
||||||
// DutyForm
|
// DutyForm
|
||||||
//
|
//
|
||||||
|
@ -845,13 +1034,13 @@ namespace DutyContent.Tab
|
||||||
this.Text = "Duty";
|
this.Text = "Duty";
|
||||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.DutyTabForm_FormClosing);
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.DutyTabForm_FormClosing);
|
||||||
this.tabContent.ResumeLayout(false);
|
this.tabContent.ResumeLayout(false);
|
||||||
this.tabPage1.ResumeLayout(false);
|
this.tabPageContent.ResumeLayout(false);
|
||||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||||
this.splitContainer1.Panel1.PerformLayout();
|
this.splitContainer1.Panel1.PerformLayout();
|
||||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||||
this.splitContainer1.ResumeLayout(false);
|
this.splitContainer1.ResumeLayout(false);
|
||||||
this.tabPage2.ResumeLayout(false);
|
this.tabPageSetting.ResumeLayout(false);
|
||||||
this.panel4.ResumeLayout(false);
|
this.panel4.ResumeLayout(false);
|
||||||
this.panel4.PerformLayout();
|
this.panel4.PerformLayout();
|
||||||
this.panel3.ResumeLayout(false);
|
this.panel3.ResumeLayout(false);
|
||||||
|
@ -860,9 +1049,14 @@ namespace DutyContent.Tab
|
||||||
this.panel2.PerformLayout();
|
this.panel2.PerformLayout();
|
||||||
this.panel1.ResumeLayout(false);
|
this.panel1.ResumeLayout(false);
|
||||||
this.panel1.PerformLayout();
|
this.panel1.PerformLayout();
|
||||||
this.tabPage3.ResumeLayout(false);
|
this.tabPagePing.ResumeLayout(false);
|
||||||
|
this.panel6.ResumeLayout(false);
|
||||||
|
this.panel6.PerformLayout();
|
||||||
|
this.tabPagePacket.ResumeLayout(false);
|
||||||
this.panel5.ResumeLayout(false);
|
this.panel5.ResumeLayout(false);
|
||||||
this.panel5.PerformLayout();
|
this.panel5.PerformLayout();
|
||||||
|
this.tlpnPingColors.ResumeLayout(false);
|
||||||
|
this.tlpnPingColors.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -870,9 +1064,9 @@ namespace DutyContent.Tab
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.TabControl tabContent;
|
private System.Windows.Forms.TabControl tabContent;
|
||||||
private System.Windows.Forms.TabPage tabPage1;
|
private System.Windows.Forms.TabPage tabPageContent;
|
||||||
private System.Windows.Forms.TabPage tabPage2;
|
private System.Windows.Forms.TabPage tabPageSetting;
|
||||||
private System.Windows.Forms.TabPage tabPage3;
|
private System.Windows.Forms.TabPage tabPagePacket;
|
||||||
private System.Windows.Forms.ImageList ilTabContent;
|
private System.Windows.Forms.ImageList ilTabContent;
|
||||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||||
private System.Windows.Forms.TreeView treeFates;
|
private System.Windows.Forms.TreeView treeFates;
|
||||||
|
@ -931,5 +1125,19 @@ namespace DutyContent.Tab
|
||||||
private System.Windows.Forms.TextBox txtPacketDescription;
|
private System.Windows.Forms.TextBox txtPacketDescription;
|
||||||
private System.Windows.Forms.Label lblPacketDesc;
|
private System.Windows.Forms.Label lblPacketDesc;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader8;
|
private System.Windows.Forms.ColumnHeader columnHeader8;
|
||||||
|
private System.Windows.Forms.CheckBox chkOverlayClickThru;
|
||||||
|
private System.Windows.Forms.TabPage tabPagePing;
|
||||||
|
private System.Windows.Forms.Panel panel6;
|
||||||
|
private System.Windows.Forms.Label lblPingColors;
|
||||||
|
private System.Windows.Forms.CheckBox chkUsePing;
|
||||||
|
private System.Windows.Forms.Button btnPingColor2;
|
||||||
|
private System.Windows.Forms.Label lblPingStat4;
|
||||||
|
private System.Windows.Forms.Label lblPingStat2;
|
||||||
|
private System.Windows.Forms.Label lblPingStat3;
|
||||||
|
private System.Windows.Forms.Button btnPingColor4;
|
||||||
|
private System.Windows.Forms.Button btnPingColor1;
|
||||||
|
private System.Windows.Forms.Button btnPingColor3;
|
||||||
|
private System.Windows.Forms.Label lblPingStat1;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tlpnPingColors;
|
||||||
}
|
}
|
||||||
}
|
}
|
265
Tab/DutyForm.cs
265
Tab/DutyForm.cs
|
@ -10,6 +10,8 @@ using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
|
||||||
namespace DutyContent.Tab
|
namespace DutyContent.Tab
|
||||||
{
|
{
|
||||||
|
@ -24,9 +26,12 @@ namespace DutyContent.Tab
|
||||||
private bool _is_packet_finder;
|
private bool _is_packet_finder;
|
||||||
private DcConfig.PacketConfig _new_packet;
|
private DcConfig.PacketConfig _new_packet;
|
||||||
|
|
||||||
private Timer _save_timer;
|
|
||||||
private Overlay.DutyOvForm _overlay;
|
private Overlay.DutyOvForm _overlay;
|
||||||
|
|
||||||
|
private System.Timers.Timer _ping_timer;
|
||||||
|
private long _ping_last;
|
||||||
|
private Color _ping_color = Color.Transparent;
|
||||||
|
|
||||||
public DutyForm()
|
public DutyForm()
|
||||||
{
|
{
|
||||||
_self = this;
|
_self = this;
|
||||||
|
@ -38,8 +43,7 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
private void DutyTabForm_FormClosing(object sender, FormClosingEventArgs e)
|
private void DutyTabForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
if (_save_timer != null)
|
|
||||||
_save_timer.Stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PluginInitialize()
|
public void PluginInitialize()
|
||||||
|
@ -68,6 +72,7 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
progbOverlayTransparent.Enabled = DcConfig.Duty.EnableOverlay;
|
progbOverlayTransparent.Enabled = DcConfig.Duty.EnableOverlay;
|
||||||
btnOverlayDimming.Enabled = DcConfig.Duty.EnableOverlay;
|
btnOverlayDimming.Enabled = DcConfig.Duty.EnableOverlay;
|
||||||
|
chkOverlayClickThru.Checked = DcConfig.Duty.OverlayClickThru;
|
||||||
|
|
||||||
//
|
//
|
||||||
_overlay.SetText(MesgLog.Text(99, System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()));
|
_overlay.SetText(MesgLog.Text(99, System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()));
|
||||||
|
@ -104,6 +109,13 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
|
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
|
||||||
|
|
||||||
|
//
|
||||||
|
chkUsePing.Checked = DcConfig.Duty.UsePing;
|
||||||
|
btnPingColor1.BackColor = DcConfig.Duty.PingColors[0];
|
||||||
|
btnPingColor2.BackColor = DcConfig.Duty.PingColors[1];
|
||||||
|
btnPingColor3.BackColor = DcConfig.Duty.PingColors[2];
|
||||||
|
btnPingColor4.BackColor = DcConfig.Duty.PingColors[3];
|
||||||
|
|
||||||
//
|
//
|
||||||
switch (DcConfig.Duty.ActiveFate)
|
switch (DcConfig.Duty.ActiveFate)
|
||||||
{
|
{
|
||||||
|
@ -115,25 +127,28 @@ namespace DutyContent.Tab
|
||||||
UpdateFates();
|
UpdateFates();
|
||||||
|
|
||||||
//
|
//
|
||||||
_save_timer = new Timer() { Interval = 5000 };
|
_ping_timer = new System.Timers.Timer() { Interval = 5000 };
|
||||||
_save_timer.Tick += (sender, e) =>
|
_ping_timer.Elapsed += (sender, e) => PingOnce();
|
||||||
{
|
|
||||||
DcConfig.SaveConfig();
|
if (DcConfig.Duty.UsePing)
|
||||||
_save_timer.Enabled = false;
|
_ping_timer.Start();
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PluginDeinitialize()
|
public void PluginDeinitialize()
|
||||||
{
|
{
|
||||||
|
if (_ping_timer != null)
|
||||||
|
{
|
||||||
|
_ping_timer.Stop();
|
||||||
|
_ping_timer = null;
|
||||||
|
}
|
||||||
|
|
||||||
_overlay.Hide();
|
_overlay.Hide();
|
||||||
_overlay = null;
|
_overlay = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RefreshSaveFile(int interval = 5000)
|
private void SaveConfig(int interval = 5000)
|
||||||
{
|
{
|
||||||
_save_timer.Enabled = false;
|
DcControl.Self.RefreshSaveConfig(interval);
|
||||||
_save_timer.Interval = interval;
|
|
||||||
_save_timer.Start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<string> MakeDutyLangList()
|
public static List<string> MakeDutyLangList()
|
||||||
|
@ -158,15 +173,17 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
public void UpdateUiLocale()
|
public void UpdateUiLocale()
|
||||||
{
|
{
|
||||||
tabContent.TabPages[0].Text = MesgLog.Text(301);
|
tabPageContent.Text = MesgLog.Text(301);
|
||||||
tabContent.TabPages[1].Text = MesgLog.Text(302);
|
tabPageSetting.Text = MesgLog.Text(302);
|
||||||
tabContent.TabPages[2].Text = MesgLog.Text(303);
|
tabPagePacket.Text = MesgLog.Text(303);
|
||||||
|
tabPagePing.Text = MesgLog.Text(327);
|
||||||
|
|
||||||
lblDataSet.Text = MesgLog.Text(304);
|
lblDataSet.Text = MesgLog.Text(304);
|
||||||
lblLogFont.Text = MesgLog.Text(305);
|
lblLogFont.Text = MesgLog.Text(305);
|
||||||
|
|
||||||
chkEnableOverlay.Text = MesgLog.Text(306);
|
chkEnableOverlay.Text = MesgLog.Text(306);
|
||||||
lblOverlayTransparent.Text = MesgLog.Text(307);
|
lblOverlayTransparent.Text = MesgLog.Text(307);
|
||||||
|
chkOverlayClickThru.Text = MesgLog.Text(104);
|
||||||
|
|
||||||
chkEnableSound.Text = MesgLog.Text(308);
|
chkEnableSound.Text = MesgLog.Text(308);
|
||||||
lblSoundInstance.Text = MesgLog.Text(309);
|
lblSoundInstance.Text = MesgLog.Text(309);
|
||||||
|
@ -195,6 +212,13 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
btnPacketStart.Text = MesgLog.Text(10007);
|
btnPacketStart.Text = MesgLog.Text(10007);
|
||||||
btnPacketApply.Text = MesgLog.Text(10009);
|
btnPacketApply.Text = MesgLog.Text(10009);
|
||||||
|
|
||||||
|
chkUsePing.Text = MesgLog.Text(328);
|
||||||
|
lblPingColors.Text = MesgLog.Text(329);
|
||||||
|
lblPingStat1.Text = MesgLog.Text(330);
|
||||||
|
lblPingStat2.Text = MesgLog.Text(331);
|
||||||
|
lblPingStat3.Text = MesgLog.Text(332);
|
||||||
|
lblPingStat4.Text = MesgLog.Text(333);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PacketHandler(string pid, byte[] message)
|
public void PacketHandler(string pid, byte[] message)
|
||||||
|
@ -518,7 +542,7 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
lblCurrentDataSet.Text = DcContent.Language;
|
lblCurrentDataSet.Text = DcContent.Language;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -543,7 +567,7 @@ namespace DutyContent.Tab
|
||||||
DcConfig.Duty.LogFontFamily = ret.Name;
|
DcConfig.Duty.LogFontFamily = ret.Name;
|
||||||
DcConfig.Duty.LogFontSize = ret.Size;
|
DcConfig.Duty.LogFontSize = ret.Size;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
|
|
||||||
btnLogFont.Font = ret;
|
btnLogFont.Font = ret;
|
||||||
btnLogFont.Text = $"{DcConfig.Duty.LogFontFamily}, {DcConfig.Duty.LogFontSize}";
|
btnLogFont.Text = $"{DcConfig.Duty.LogFontFamily}, {DcConfig.Duty.LogFontSize}";
|
||||||
|
@ -579,7 +603,7 @@ namespace DutyContent.Tab
|
||||||
}
|
}
|
||||||
|
|
||||||
MakeFatesSelection(true);
|
MakeFatesSelection(true);
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
|
|
||||||
_is_lock_fate = false;
|
_is_lock_fate = false;
|
||||||
}
|
}
|
||||||
|
@ -595,7 +619,7 @@ namespace DutyContent.Tab
|
||||||
DcConfig.Duty.ActiveFate = index;
|
DcConfig.Duty.ActiveFate = index;
|
||||||
UpdateFates();
|
UpdateFates();
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -634,7 +658,7 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
DcConfig.Duty.EnableOverlay = chkEnableOverlay.Checked;
|
DcConfig.Duty.EnableOverlay = chkEnableOverlay.Checked;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProgbOverlayTransparent_Click(object sender, EventArgs e)
|
private void ProgbOverlayTransparent_Click(object sender, EventArgs e)
|
||||||
|
@ -647,6 +671,16 @@ namespace DutyContent.Tab
|
||||||
_overlay.StartBlink();
|
_overlay.StartBlink();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ChkOverlayClickThru_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!DcConfig.PluginEnable)
|
||||||
|
return;
|
||||||
|
|
||||||
|
DcConfig.Duty.OverlayClickThru = chkOverlayClickThru.Checked;
|
||||||
|
|
||||||
|
SaveConfig();
|
||||||
|
}
|
||||||
|
|
||||||
private void ChkEnableSound_CheckedChanged(object sender, EventArgs e)
|
private void ChkEnableSound_CheckedChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!DcConfig.PluginEnable)
|
if (!DcConfig.PluginEnable)
|
||||||
|
@ -661,7 +695,7 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
DcConfig.Duty.EnableSound = chkEnableSound.Checked;
|
DcConfig.Duty.EnableSound = chkEnableSound.Checked;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -722,7 +756,7 @@ namespace DutyContent.Tab
|
||||||
DcConfig.Duty.SoundInstanceFile = string.IsNullOrEmpty(filename) ? string.Empty : filename;
|
DcConfig.Duty.SoundInstanceFile = string.IsNullOrEmpty(filename) ? string.Empty : filename;
|
||||||
txtSoundInstance.Text = DcConfig.Duty.SoundInstanceFile;
|
txtSoundInstance.Text = DcConfig.Duty.SoundInstanceFile;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BtnSoundFindFate_Click(object sender, EventArgs e)
|
private void BtnSoundFindFate_Click(object sender, EventArgs e)
|
||||||
|
@ -735,7 +769,7 @@ namespace DutyContent.Tab
|
||||||
DcConfig.Duty.SoundFateFile = string.IsNullOrEmpty(filename) ? string.Empty : filename;
|
DcConfig.Duty.SoundFateFile = string.IsNullOrEmpty(filename) ? string.Empty : filename;
|
||||||
txtSoundFate.Text = DcConfig.Duty.SoundFateFile;
|
txtSoundFate.Text = DcConfig.Duty.SoundFateFile;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void BtnTestNotify_Click(object sender, EventArgs e)
|
private async void BtnTestNotify_Click(object sender, EventArgs e)
|
||||||
|
@ -792,7 +826,7 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
|
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LblLineNotifyBotLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
private void LblLineNotifyBotLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
@ -811,7 +845,7 @@ namespace DutyContent.Tab
|
||||||
if (e.KeyCode == Keys.Enter)
|
if (e.KeyCode == Keys.Enter)
|
||||||
{
|
{
|
||||||
DcConfig.Duty.NotifyLineToken = txtLineToken.Text;
|
DcConfig.Duty.NotifyLineToken = txtLineToken.Text;
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -824,7 +858,7 @@ namespace DutyContent.Tab
|
||||||
if (!txtLineToken.Text.Equals(DcConfig.Duty.NotifyLineToken))
|
if (!txtLineToken.Text.Equals(DcConfig.Duty.NotifyLineToken))
|
||||||
{
|
{
|
||||||
DcConfig.Duty.NotifyLineToken = txtLineToken.Text;
|
DcConfig.Duty.NotifyLineToken = txtLineToken.Text;
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
var hc = new HttpClient();
|
var hc = new HttpClient();
|
||||||
|
@ -851,7 +885,7 @@ namespace DutyContent.Tab
|
||||||
|
|
||||||
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
|
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
|
||||||
|
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TxtTelegramId_KeyDown(object sender, KeyEventArgs e)
|
private void TxtTelegramId_KeyDown(object sender, KeyEventArgs e)
|
||||||
|
@ -862,7 +896,7 @@ namespace DutyContent.Tab
|
||||||
if (e.KeyCode == Keys.Enter)
|
if (e.KeyCode == Keys.Enter)
|
||||||
{
|
{
|
||||||
DcConfig.Duty.NotifyTelegramId = txtTelegramId.Text;
|
DcConfig.Duty.NotifyTelegramId = txtTelegramId.Text;
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -874,7 +908,7 @@ namespace DutyContent.Tab
|
||||||
if (e.KeyCode == Keys.Enter)
|
if (e.KeyCode == Keys.Enter)
|
||||||
{
|
{
|
||||||
DcConfig.Duty.NotifyTelegramToken = txtTelegramToken.Text;
|
DcConfig.Duty.NotifyTelegramToken = txtTelegramToken.Text;
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -899,13 +933,13 @@ namespace DutyContent.Tab
|
||||||
if (!txtTelegramId.Text.Equals(DcConfig.Duty.NotifyTelegramId))
|
if (!txtTelegramId.Text.Equals(DcConfig.Duty.NotifyTelegramId))
|
||||||
{
|
{
|
||||||
DcConfig.Duty.NotifyTelegramId = txtTelegramId.Text;
|
DcConfig.Duty.NotifyTelegramId = txtTelegramId.Text;
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!txtTelegramToken.Text.Equals(DcConfig.Duty.NotifyTelegramToken))
|
if (!txtTelegramToken.Text.Equals(DcConfig.Duty.NotifyTelegramToken))
|
||||||
{
|
{
|
||||||
DcConfig.Duty.NotifyTelegramToken = txtTelegramToken.Text;
|
DcConfig.Duty.NotifyTelegramToken = txtTelegramToken.Text;
|
||||||
RefreshSaveFile();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://codingman.tistory.com/41
|
// https://codingman.tistory.com/41
|
||||||
|
@ -1123,10 +1157,10 @@ namespace DutyContent.Tab
|
||||||
var data = message.Skip(32).ToArray();
|
var data = message.Skip(32).ToArray();
|
||||||
|
|
||||||
// fate
|
// fate
|
||||||
if (data.Length > 4 && data[0] == 0x3E)
|
if (_new_packet.OpFate == 0 && data.Length > 4 && data[0] == 0x3E)
|
||||||
{
|
{
|
||||||
var cc = BitConverter.ToInt16(data, 4);
|
var cc = BitConverter.ToInt16(data, 4);
|
||||||
if (_packet_target_fates.Contains(cc))
|
if (_packet_target_fates.Contains(cc) && _new_packet.OpFate != opcode)
|
||||||
{
|
{
|
||||||
_new_packet.OpFate = opcode;
|
_new_packet.OpFate = opcode;
|
||||||
|
|
||||||
|
@ -1141,14 +1175,14 @@ namespace DutyContent.Tab
|
||||||
}
|
}
|
||||||
|
|
||||||
// duty
|
// duty
|
||||||
if (data.Length > 12)
|
if (_new_packet.OpDuty == 0 && data.Length > 12)
|
||||||
{
|
{
|
||||||
var rcode = data[8];
|
var rcode = data[8];
|
||||||
if (rcode == 0)
|
if (rcode == 0)
|
||||||
{
|
{
|
||||||
// The Steps of Fath (83)
|
// The Steps of Fath (83)
|
||||||
short m = BitConverter.ToInt16(data, 12);
|
short m = BitConverter.ToInt16(data, 12);
|
||||||
if (m == 83)
|
if (m == 83 && _new_packet.OpDuty != opcode)
|
||||||
{
|
{
|
||||||
_new_packet.OpDuty = opcode;
|
_new_packet.OpDuty = opcode;
|
||||||
|
|
||||||
|
@ -1164,14 +1198,14 @@ namespace DutyContent.Tab
|
||||||
}
|
}
|
||||||
|
|
||||||
// match
|
// match
|
||||||
if (data.Length > 20)
|
if (_new_packet.OpMatch == 0 && data.Length > 20)
|
||||||
{
|
{
|
||||||
var rcode = data[2];
|
var rcode = data[2];
|
||||||
if (rcode == 0)
|
if (rcode == 0)
|
||||||
{
|
{
|
||||||
// The Steps of Fath (83)
|
// The Steps of Fath (83)
|
||||||
short m = BitConverter.ToInt16(data, 20);
|
short m = BitConverter.ToInt16(data, 20);
|
||||||
if (m == 83)
|
if (m == 83 && _new_packet.OpMatch != opcode)
|
||||||
{
|
{
|
||||||
_new_packet.OpMatch = opcode;
|
_new_packet.OpMatch = opcode;
|
||||||
|
|
||||||
|
@ -1187,12 +1221,12 @@ namespace DutyContent.Tab
|
||||||
}
|
}
|
||||||
|
|
||||||
// instance
|
// instance
|
||||||
if (data.Length >= 16)
|
if (_new_packet.OpInstance == 0 && data.Length >= 16)
|
||||||
{
|
{
|
||||||
// The Steps of Fath (83)
|
// The Steps of Fath (83)
|
||||||
short m = BitConverter.ToInt16(data, 0);
|
short m = BitConverter.ToInt16(data, 0);
|
||||||
short u = BitConverter.ToInt16(data, 2);
|
short u = BitConverter.ToInt16(data, 2);
|
||||||
if (m == 83 && u == 0)
|
if (m == 83 && u == 0 && _new_packet.OpInstance != opcode)
|
||||||
{
|
{
|
||||||
_new_packet.OpInstance = opcode;
|
_new_packet.OpInstance = opcode;
|
||||||
|
|
||||||
|
@ -1279,5 +1313,156 @@ namespace DutyContent.Tab
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ChkUsePing_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!DcConfig.PluginEnable)
|
||||||
|
return;
|
||||||
|
|
||||||
|
DcConfig.Duty.UsePing = chkUsePing.Checked;
|
||||||
|
|
||||||
|
SaveConfig();
|
||||||
|
|
||||||
|
if (chkUsePing.Checked)
|
||||||
|
_ping_timer.Start();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_ping_timer.Stop();
|
||||||
|
_overlay.ResetStat();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Color PingColorSelectDialog(Color current)
|
||||||
|
{
|
||||||
|
Color color = (Color)WorkerAct.Invoker(new WorkerAct.ObjectReturnerDelegate(() =>
|
||||||
|
{
|
||||||
|
var dg = new ColorDialog()
|
||||||
|
{
|
||||||
|
AnyColor = true,
|
||||||
|
Color = current,
|
||||||
|
};
|
||||||
|
|
||||||
|
return dg.ShowDialog() == DialogResult.OK ? dg.Color : current;
|
||||||
|
}));
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnPingColor1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var ret = PingColorSelectDialog(DcConfig.Duty.PingColors[0]);
|
||||||
|
if (DcConfig.Duty.PingColors[0] != ret)
|
||||||
|
{
|
||||||
|
btnPingColor1.BackColor = ret;
|
||||||
|
DcConfig.Duty.PingColors[0] = ret;
|
||||||
|
SaveConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnPingColor2_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var ret = PingColorSelectDialog(DcConfig.Duty.PingColors[1]);
|
||||||
|
if (DcConfig.Duty.PingColors[1] != ret)
|
||||||
|
{
|
||||||
|
btnPingColor2.BackColor = ret;
|
||||||
|
DcConfig.Duty.PingColors[1] = ret;
|
||||||
|
SaveConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnPingColor3_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var ret = PingColorSelectDialog(DcConfig.Duty.PingColors[2]);
|
||||||
|
if (DcConfig.Duty.PingColors[2] != ret)
|
||||||
|
{
|
||||||
|
btnPingColor3.BackColor = ret;
|
||||||
|
DcConfig.Duty.PingColors[2] = ret;
|
||||||
|
SaveConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnPingColor4_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var ret = PingColorSelectDialog(DcConfig.Duty.PingColors[2]);
|
||||||
|
if (DcConfig.Duty.PingColors[2] != ret)
|
||||||
|
{
|
||||||
|
btnPingColor4.BackColor = ret;
|
||||||
|
DcConfig.Duty.PingColors[2] = ret;
|
||||||
|
SaveConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
private void PingOnce()
|
||||||
|
{
|
||||||
|
if (!DcConfig.PluginEnable)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var conns = DcConfig.Connections.CopyConnection();
|
||||||
|
if (conns.Length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
long rtt = 0;
|
||||||
|
double loss = 0.0;
|
||||||
|
|
||||||
|
foreach (var row in conns)
|
||||||
|
{
|
||||||
|
var p = CalcPing(row.RemoteAddress);
|
||||||
|
|
||||||
|
if (rtt < p.Rtt)
|
||||||
|
rtt = p.Rtt;
|
||||||
|
|
||||||
|
if (loss < p.Loss)
|
||||||
|
loss = p.Loss;
|
||||||
|
}
|
||||||
|
|
||||||
|
//MesgLog.L("Ping: {0}, {1}%", rtt, loss);
|
||||||
|
|
||||||
|
Color color;
|
||||||
|
if (loss > 0.0 || rtt > 150)
|
||||||
|
color = DcConfig.Duty.PingColors[3];
|
||||||
|
else if (rtt > 100)
|
||||||
|
color = DcConfig.Duty.PingColors[2];
|
||||||
|
else if (rtt > 50)
|
||||||
|
color = DcConfig.Duty.PingColors[1];
|
||||||
|
else
|
||||||
|
color = DcConfig.Duty.PingColors[0];
|
||||||
|
|
||||||
|
if (_ping_last != rtt || loss > 0.0 || _ping_color != color)
|
||||||
|
{
|
||||||
|
_ping_last = rtt;
|
||||||
|
_ping_color = color;
|
||||||
|
|
||||||
|
_overlay.SetStatPing(color, rtt, loss);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static PingOptions _ping_options = new PingOptions { DontFragment = true };
|
||||||
|
private static byte[] _ping_buffers = Encoding.ASCII.GetBytes("01234567890123456789012345678901");
|
||||||
|
private static int _ping_timerout = 120;
|
||||||
|
|
||||||
|
//
|
||||||
|
private (long Rtt, double Loss) CalcPing(IPAddress host, int amount = 6)
|
||||||
|
{
|
||||||
|
var ps = new Ping();
|
||||||
|
|
||||||
|
int failed = 0;
|
||||||
|
long rtt = 0;
|
||||||
|
|
||||||
|
for (var i = 0; i < amount; i++)
|
||||||
|
{
|
||||||
|
PingReply pr = ps.Send(host, _ping_timerout, _ping_buffers, _ping_options);
|
||||||
|
|
||||||
|
if (pr.Status != IPStatus.Success)
|
||||||
|
failed++;
|
||||||
|
|
||||||
|
if (rtt < pr.RoundtripTime)
|
||||||
|
rtt = pr.RoundtripTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
double loss = (failed / amount) * 100;
|
||||||
|
|
||||||
|
return (rtt, loss);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,285 +124,307 @@
|
||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAA
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAW
|
||||||
QQAAAk1TRnQBSQFMAgEBAwEAAdABAAHQAQABIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
|
RgAAAk1TRnQBSQFMAgEBBAEAARABAQEQAQEBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
|
||||||
AwABIAMAAQEBAAEgBgABQBoAAzYEWQHEA1UB6gMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/
|
AwABQAMAAQEBAAEgBgABgP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||||
Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DXQHi
|
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||||
A1QBrgMpAT8IAAMHAQoDSAGFAh0BqgH/AhgBqgH/AhcBpAH/AhcBpAH/AhcBpAH/AhcBpAH/AhcBpAH/
|
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AWgADNgRZAcQDVQHqAxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/
|
||||||
AhcBpAH/AhcBowH/AhcBogH/AhcBogH/AhcBogH/AhcBogH/AhcBogH/AhcBogH/AhcBogH/AhcBogH/
|
AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/
|
||||||
AhcBogH/AhcBogH/AhcBowH/AhcBpAH/AhcBpAH/AhcBpAH/AhcBpAH/AhcBpAH/AhcBpAH/AhgBqgH/
|
AxUB/wNdAeIDVAGuAykBPwgAAwcBCgNIAYUCFQGqAf8CEAGqAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGk
|
||||||
Ah0BqgH/A0gBhQMHAQr/AAUAA04BlwM+Af8DsgH/A80B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPd
|
Af8CDwGkAf8CDwGkAf8CDwGjAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGi
|
||||||
|
Af8CDwGiAf8CDwGiAf8CDwGiAf8CDwGjAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGk
|
||||||
|
Af8CEAGqAf8CFQGqAf8DSAGFAwcBCv8ABQADTgGXAzYB/wOyAf8DzQH/A90B/wPdAf8D3QH/A90B/wPd
|
||||||
Af8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPd
|
Af8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPd
|
||||||
Af8DyAH/A6IB/wMvAf8DRgGBBAADSAGFAhcBpAH/AhcBogH/AhcBoQH/AhcBoQH/AhcBoQH/AhcBoQH/
|
Af8D3QH/A90B/wPIAf8DogH/AycB/wNGAYEEAANIAYUCDwGkAf8CDwGiAf8CDwGhAf8CDwGhAf8CDwGh
|
||||||
AhcBoQH/AhQBoAH/AhQBngH/AhQBmwH/AhQBmQH/AhQBmQH/AhQBlwH/AhQBlQH/AhQBlQH/AhQBlQH/
|
Af8CDwGhAf8CDwGhAf8CDAGgAf8CDAGeAf8CDAGbAf8CDAGZAf8CDAGZAf8CDAGXAf8CDAGVAf8CDAGV
|
||||||
AhQBlQH/AhQBlwH/AhQBmQH/AhQBmQH/AhQBmwH/AhQBngH/AhQBoAH/AhcBoQH/AhcBoQH/AhcBoQH/
|
Af8CDAGVAf8CDAGVAf8CDAGXAf8CDAGZAf8CDAGZAf8CDAGbAf8CDAGeAf8CDAGgAf8CDwGhAf8CDwGh
|
||||||
AhcBoQH/AhcBoQH/AhcBogH/AhcBpAH/A0gBhVcAAQEDAgQDBAQBBgMEAQYDAwEEAwEBAgMAAQGMAAM3
|
Af8CDwGhAf8CDwGhAf8CDwGhAf8CDwGiAf8CDwGkAf8DSAGFVwABAQMCBAMEBAEGAwQBBgMDAQQDAQEC
|
||||||
AVoDSgH/A9sB/wOLAf8DNAH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMd
|
AwABAYwAAzcBWgNCAf8D2wH/A4sB/wMsAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMV
|
||||||
Af8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wM0Af8DhwH/A80B/wM2
|
Af8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AywB/wOH
|
||||||
Af8DKwFCAhcBpAH/AhcBogH/AhQBnQH/AhIBmAH/AhIBlwH/AhIBlwH/AhIBlwH/AhIBlwH/Ag8BkQH/
|
Af8DzQH/Ay4B/wMrAUICDwGkAf8CDwGiAf8CDAGdAf8CCgGYAf8CCgGXAf8CCgGXAf8CCgGXAf8CCgGX
|
||||||
Ag8BjwH/Ag8BjAH/Ag8BigH/Ag8BigH/Ag0BiAH/AgoBhgH/AgoBhgH/AgoBhgH/AgwBhgH/Ag8BiAH/
|
Af8CBwGRAf8CBwGPAf8CBwGMAf8CBwGKAf8CBwGKAf8CBQGIAf8CAgGGAf8CAgGGAf8CAgGGAf8CBAGG
|
||||||
Ag8BigH/Ag8BigH/Ag8BjAH/Ag8BjwH/Ag8BlQH/AhIBlwH/AhIBlwH/AhIBlwH/AhIBlwH/AhIBmAH/
|
Af8CBwGIAf8CBwGKAf8CBwGKAf8CBwGMAf8CBwGPAf8CBwGVAf8CCgGXAf8CCgGXAf8CCgGXAf8CCgGX
|
||||||
AhQBnQH/AhcBogH/AhcBpAH/UAADAgEDAwYBCAMNARIDGgEkAyMBMwMhATADFgEeAwoBDgMEAQYDAAEB
|
Af8CCgGYAf8CDAGdAf8CDwGiAf8CDwGkAf9QAAMCAQMDBgEIAw0BEgMaASQDIwEzAyEBMAMWAR4DCgEO
|
||||||
iAADWQHDA7IB/wOKAf8BWgFIAS4B/wG5AZMBQAH/Ac4BogFGAf8BzgGiAUYB/wHOAaIBRgH/Ac4BogFG
|
AwQBBgMAAQGIAANZAcMDsgH/A4oB/wFSAUABJgH/AbkBkwE4Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+
|
||||||
Af8BzgGiAUYB/wHOAaIBRgH/Ac4BogFGAf8BzgGiAUYB/wHOAaIBRgH/Ac4BogFGAf8BvQGVAT4B/wGj
|
Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wG9
|
||||||
AYABMgH/Ab0BlQE+Af8BzgGiAUYB/wHOAaIBRgH/Ac4BogFGAf8BzgGiAUYB/wHOAaIBRgH/Ac4BogFG
|
AZUBNgH/AaMBgAEqAf8BvQGVATYB/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+
|
||||||
Af8BzgGiAUYB/wHOAaIBRgH/Ac4BogFGAf8BuQGTAUAB/wFlAVABMQH/A4UB/wOjAf8DVAGrAhcBowH/
|
Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wG5AZMBOAH/AV0BSAEpAf8DhQH/A6MB/wNU
|
||||||
AhQBmgH/AhABkQH/AgkBjQH/AggBjQH/AggBigH/AggBhgH/AggBgQH/AggBZAH/AggBYgH/AggBXQH/
|
AasCDwGjAf8CDAGaAf8CCAGRAf8CAQGNAf8CAAGNAf8CAAGKAf8CAAGGAf8CAAGBAf8CAAFcAf8CAAFa
|
||||||
AggBXAH/AggBXAH/AgcBXAH/AgYBWAH/AgYBVQH/AgYBVQH/AgcBWAH/AggBXAH/AggBXAH/AggBXAH/
|
Af8CAAFVAf8CAAFUAf8CAAFUAf8CAAFUAf8CAAFQAf8CAAFNAf8CAAFNAf8CAAFQAf8CAAFUAf8CAAFU
|
||||||
AggBXQH/AggBYgH/AggBgAH/AggBhgH/AggBhgH/AggBigH/AggBjQH/AgkBjQH/AhABkQH/AhQBmgH/
|
Af8CAAFUAf8CAAFVAf8CAAFaAf8CAAGAAf8CAAGGAf8CAAGGAf8CAAGKAf8CAAGNAf8CAQGNAf8CCAGR
|
||||||
AhcBowH/TAADAgEDAwcBCgMXASADMAFMAUUCRgF+AU8CUQGcAU0CTgGWA0EBcgMqAUEDEgEZAwUBBwMA
|
Af8CDAGaAf8CDwGjAf9MAAMCAQMDBwEKAxcBIAMwAUwBRQJGAX4BTwJRAZwBTQJOAZYDQQFyAyoBQQMS
|
||||||
AQGEAANBAfkDygH/AzIB/wG5AY8BPwH/AdUBogFHAf8B1QGiAUcB/wHVAaIBRwH/AdUBogFHAf8B1QGi
|
ARkDBQEHAwABAS8AAf8DAAH/AwAB/wMAAf8DAAH/RAADQQH5A8oB/wMqAf8BuQGPATcB/wHVAaIBPwH/
|
||||||
AUcB/wHVAaIBRwH/AdUBogFHAf8B1QGiAUcB/wHVAaIBRwH/AdUBogFHAf8BxAGVAT8B/wGJAVEBKwH/
|
AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGi
|
||||||
ASYBNQE7Af8BlAFWASoB/wHTAaEBRgH/AdUBogFHAf8B1QGiAUcB/wHVAaIBRwH/AdUBogFHAf8B1QGi
|
AT8B/wHVAaIBPwH/AcQBlQE3Af8BiQFJASMB/wEeAS0BMwH/AZQBTgEiAf8B0wGhAT4B/wHVAaIBPwH/
|
||||||
AUcB/wHVAaIBRwH/AdUBogFHAf8B1QGiAUcB/wHVAaIBRwH/AcABkwFBAf8DKwH/A8UB/wNOAfACFQGZ
|
AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGi
|
||||||
Af8CCwGLAf8CBgFiAf8CBgFeAf8CBgFWAf8CBgFWAf8CBgFRAf8CBgFOAf8CBgFNAf8CBgFKAf8CBgFG
|
AT8B/wHAAZMBOQH/AyMB/wPFAf8DTgHwAg0BmQH/AgMBiwH/AgABWgH/AgABVgH/AgABTgH/AgABTgH/
|
||||||
Af8CBgFGAf8CBgFFAf8CBgFCAf8CBgE+Af8CBgE+Af8CBgE+Af8CBgE+Af8CBgFCAf8CBgFFAf8CBgFG
|
AgABSQH/AgABRgH/AgABRQH/AgABQgH/AgABPgH/AgABPgH/AgABPQH/AgABOgH/AgABNgH/AgABNgH/
|
||||||
Af8CBgFGAf8CBgFKAf8CBgFNAf8CBgFQAf8CBgFWAf8CBgFWAf8CBgFWAf8CBgFeAf8CBgFiAf8CCwGL
|
AgABNgH/AgABNgH/AgABOgH/AgABPQH/AgABPgH/AgABPgH/AgABQgH/AgABRQH/AgABSAH/AgABTgH/
|
||||||
Af8CFQGZAf9IAAMBAQIDBwEJAxgBIgM4AV4BUwJVAa0BXQJhAeIBbQF/AYIB9wJlAWYB9AFeAmEB2gNQ
|
AgABTgH/AgABTgH/AgABVgH/AgABWgH/AgMBiwH/Ag0BmQH/SAADAQECAwcBCQMYASIDOAFeAVMCVQGt
|
||||||
AZoDLQFGAw4BEwMDAQSEAAMdAf8DwgH/Ax8B/wHMAZUBRAH/AdUBmwFGAf8B1QGbAUYB/wHVAZsBRgH/
|
AV0CYQHiAm0BcQH3A2UB9AFeAmEB2gNQAZoDLQFGAw4BEwMDAQQvAAH/AwAB/wMAAf8DAAH/AwAB/0QA
|
||||||
AdUBmwFGAf8B1QGbAUYB/wHVAZsBRgH/AdUBmwFGAf8B1QGbAUYB/wHVAZsBRgH/Ab8BiwE8Af8BkwFR
|
AxUB/wPCAf8DFwH/AcwBlQE8Af8B1QGbAT4B/wHVAZsBPgH/AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/
|
||||||
ASkB/wElATMBPAH/AQABOwGOAf8BVAFBAS0B/wGVAVIBKQH/Ac8BlwFDAf8B1QGbAUYB/wHVAZsBRgH/
|
AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/AdUBmwE+Af8BvwGLATQB/wGTAUkBIQH/AR0BKwE0Af8BAAEz
|
||||||
AdUBmwFGAf8B1QGbAUYB/wHVAZsBRgH/AdUBmwFGAf8B1QGbAUYB/wHVAZsBRgH/AcUBkAFCAf8DJQH/
|
AY4B/wFMATkBJQH/AZUBSgEhAf8BzwGXATsB/wHVAZsBPgH/AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/
|
||||||
A8IB/wMdAf8CEwGRAf8BDQESAYIB/wENASkBhAH/ARMBMgGFAf8BEwEyAYAB/wETATQBgwH/ARMBNAGD
|
AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/AdUBmwE+Af8BxQGQAToB/wMdAf8DwgH/AxUB/wILAZEB/wEF
|
||||||
Af8BEwE0AYMB/wETATQBZAH/ARMBNAFkAf8BEwE0AWQB/wETATQBZAH/ARMBNAFfAf8BEwExAVwB/wET
|
AQoBggH/AQUBIQGEAf8BCwEqAYUB/wELASoBgAH/AQsBLAGDAf8BCwEsAYMB/wELASwBgwH/AQsBLAFc
|
||||||
ATEBXAH/ARMBMQFcAf8BEwExAVwB/wETATEBXAH/ARMBMQFcAf8BEwExAVwB/wETATEBYQH/ARMBMQFh
|
Af8BCwEsAVwB/wELASwBXAH/AQsBLAFcAf8BCwEsAVcB/wELASkBVAH/AQsBKQFUAf8BCwEpAVQB/wEL
|
||||||
Af8BEwExAWEB/wETATEBYQH/ARMBMgGDAf8BEwE0AYMB/wETATQBgwH/ARMBNAGDAf8BEwE0AYgB/wEP
|
ASkBVAH/AQsBKQFUAf8BCwEpAVQB/wELASkBVAH/AQsBKQFZAf8BCwEpAVkB/wELASkBWQH/AQsBKQFZ
|
||||||
ASkBhwH/AQ0BEgGDAf8CEwGRAf9HAAEBAwYBCAMWAR4DOAFdA1UBtQNkAfEB8wH4AfwB/wHtA/8B8wP/
|
Af8BCwEqAYMB/wELASwBgwH/AQsBLAGDAf8BCwEsAYMB/wELASwBiAH/AQcBIQGHAf8BBQEKAYMB/wIL
|
||||||
AagBuAHCAf4DXwHgA0gBhQMfASwDBQEHhAADHQH/A7QB/wMdAf8BzgGQAUMB/wHVAZQBRQH/AdUBlAFF
|
AZEB/0cAAQEDBgEIAxYBHgM4AV0DVQG1A2QB8QHzAfgB/AH/Ae0D/wHzA/8BmAGoAbIB/gNfAeADSAGF
|
||||||
Af8B1QGUAUUB/wHVAZQBRQH/AdUBlAFFAf8B1QGUAUUB/wHUAZMBRQH/AdABkQFDAf8BtAFjATYB/wGK
|
Ax8BLAMFAQcvAAH/AwAB/wMAAf8DAAH/AwAB/0QAAxUB/wO0Af8DFQH/Ac4BkAE7Af8B1QGUAT0B/wHV
|
||||||
AUkBKQH/ARsBMQFBAf8BAAEfAV4B/wEAAR8BWQH/AQABJgFfAf8BPgE3ATEB/wGSAUwBKAH/AbkBgAE4
|
AZQBPQH/AdUBlAE9Af8B1QGUAT0B/wHVAZQBPQH/AdUBlAE9Af8B1AGTAT0B/wHQAZEBOwH/AbQBWwEu
|
||||||
Af8B0gGSAUQB/wHVAZQBRQH/AdUBlAFFAf8B1QGUAUUB/wHVAZQBRQH/AdUBlAFFAf8B1QGUAUUB/wHF
|
Af8BigFBASEB/wETASkBOQH/AQABFwFWAf8BAAEXAVEB/wEAAR4BVwH/ATYBLwEpAf8BkgFEASAB/wG5
|
||||||
AYsBQQH/AyQB/wO0Af8DHQH/Ag4BigH/ARIBKwGHAf8BJAGFAakB/wE7AasB1AH/AVQB0QHeAf8BWQHU
|
AYABMAH/AdIBkgE8Af8B1QGUAT0B/wHVAZQBPQH/AdUBlAE9Af8B1QGUAT0B/wHVAZQBPQH/AdUBlAE9
|
||||||
AeEB/wFcAdQB4QH/AV4B1AHhAf8BXgHUAeEB/wFcAdQB4QH/AVkB1AHhAf8BWQHUAeEB/wFZAdMB4AH/
|
Af8BxQGLATkB/wMcAf8DtAH/AxUB/wIGAYoB/wEKASMBhwH/ARwBhQGpAf8BMwGrAdQB/wFMAdEB3gH/
|
||||||
AVkB0QHeAf8BWQHRAd4B/wFZAdEB3gH/AVkB0QHeAf8BWQHRAd4B/wFZAdEB3gH/AVkB0QHeAf8BWQHR
|
AVEB1AHhAf8BVAHUAeEB/wFWAdQB4QH/AVYB1AHhAf8BVAHUAeEB/wFRAdQB4QH/AVEB1AHhAf8BUQHT
|
||||||
Ad4B/wFZAdEB3gH/AVkB0QHeAf8BWQHRAd4B/wFZAdEB4QH/AVkB1AHhAf8BWQHUAeEB/wFUAdQB4QH/
|
AeAB/wFRAdEB3gH/AVEB0QHeAf8BUQHRAd4B/wFRAdEB3gH/AVEB0QHeAf8BUQHRAd4B/wFRAdEB3gH/
|
||||||
ATwBsgHYAf8BJgGFAa8B/wESASsBiwH/Ag4BigH/QwABAQMFAQcDFAEbAzUBVgNUAa8BWgJdAfAB8wH4
|
AVEB0QHeAf8BUQHRAd4B/wFRAdEB3gH/AVEB0QHeAf8BUQHRAeEB/wFRAdQB4QH/AVEB1AHhAf8BTAHU
|
||||||
AfwB/wHUA/8BxAH8Av8BxgH+Av8B6AP/AYcBjwGTAfsBVQJWAbEDLQFFAwcBCoQAAx0B/wOnAf8DHQH/
|
AeEB/wE0AbIB2AH/AR4BhQGvAf8BCgEjAYsB/wIGAYoB/0MAAQEDBQEHAxQBGwM1AVYDVAGvAVoCXQHw
|
||||||
Ac4BhwFCAf8B1QGLAUQB/wHVAYsBRAH/AcsBhAFAAf8BvQFhATkB/wHEAYABPQH/AcABYwE7Af8BlQFH
|
AfMB+AH8Af8B1AP/AcQB/AL/AcYB/gL/AegD/wF/AYcBiwH7AVUCVgGxAy0BRQMHAQovAAH/AwAB/wMA
|
||||||
ASgB/wGNAUQBKQH/AUIBNQExAf8BAAEpAVYB/wEAAQ4BTAH/ASQBkQGyAf8BWQHVAeYB/wEBAUIBiQH/
|
Af8DAAH/AwAB/0QAAxUB/wOnAf8DFQH/Ac4BhwE6Af8B1QGLATwB/wHVAYsBPAH/AcsBhAE4Af8BvQFZ
|
||||||
AQABFAFSAf8BBwEtAU0B/wFYATsBLAH/AZIBRgEoAf8BsQFaATQB/wHDAYABPAH/AcMBgAE8Af8BugFg
|
ATEB/wHEAYABNQH/AcABWwEzAf8BlQE/ASAB/wGNATwBIQH/AToBLQEpAf8BAAEhAU4B/wEAAQYBRAH/
|
||||||
ATgB/wHTAYoBQwH/AdUBiwFEAf8BxQGCAUAB/wMkAf8DpwH/Ax0B/wINAYEB/wEWATcBkAH/ATcBoQHC
|
ARwBkQGyAf8BUQHVAeYB/wEAAToBiQH/AQABDAFKAf8BAAElAUUB/wFQATMBJAH/AZIBPgEgAf8BsQFS
|
||||||
Af8BKAFhAaQB/wEcATMBYgH/AR0BMwGEAf8BHgEzAYgB/wEfATMBiAH/AR8BMwGBAf8BHgEzAYEB/wEd
|
ASwB/wHDAYABNAH/AcMBgAE0Af8BugFYATAB/wHTAYoBOwH/AdUBiwE8Af8BxQGCATgB/wMcAf8DpwH/
|
||||||
ATMBgQH/AR0BMwFiAf8BHQEzAWEB/wEdATMBYQH/AR0BMwFhAf8BHQEzAWEB/wEdATMBYQH/AR0BMwFh
|
AxUB/wIFAYEB/wEOAS8BkAH/AS8BoQHCAf8BIAFZAaQB/wEUASsBWgH/ARUBKwGEAf8BFgErAYgB/wEX
|
||||||
Af8BHQEzAWEB/wEdATMBYQH/AR0BMwGBAf8BHQEzAYEB/wEdATMBgQH/AR0BMwGBAf8BHwE0AYgB/wEi
|
ASsBiAH/ARcBKwGBAf8BFgErAYEB/wEVASsBgQH/ARUBKwFaAf8BFQErAVkB/wEVASsBWQH/ARUBKwFZ
|
||||||
ATcBiAH/AR0BMwGEAf8BHAEzAWIB/wEoAWMBpAH/ATcBoQHDAf8BFgE3AZEB/wINAYEB/z8AAQEDBAEG
|
Af8BFQErAVkB/wEVASsBWQH/ARUBKwFZAf8BFQErAVkB/wEVASsBWQH/ARUBKwGBAf8BFQErAYEB/wEV
|
||||||
AxIBGAMyAVADUgGpAVkCZAHsAagBuAHCAf4B2QP/AcQB/AL/AcMB+wL/AcMB+wL/AdcD/wGrAbIBtgH9
|
ASsBgQH/ARUBKwGBAf8BFwEsAYgB/wEaAS8BiAH/ARUBKwGEAf8BFAErAVoB/wEgAVsBpAH/AS8BoQHD
|
||||||
AVcCWQG/AzIBUAMIAQuEAAMdAf8DmwH/Ax0B/wHOAWUBQAH/AdUBgwFCAf8BywFjAT4B/wGDATwBKQH/
|
Af8BDgEvAZEB/wIFAYEB/z8AAQEDBAEGAxIBGAMyAVADUgGpAVkCZAHsAZgBqAGyAf4B2QP/AcQB/AL/
|
||||||
AU4BNAEsAf8BXAE3ASoB/wFUATUBKwH/ASUBMgE9Af8BAAEsAVoB/wEAARQBVgH/AQABMQFgAf8BUwHQ
|
AcMB+wL/AcMB+wL/AdcD/wGoAaoBrgH9AVcCWQG/AzIBUAMIAQsvAAH/AwAB/wMAAf8DAAH/AwAB/0QA
|
||||||
AecB/wFeAd0B8QH/AUMBpwGxAf8BZAHhAfcB/wE6AakBxQH/AQABFQFMAf8BAAEgAV0B/wEAAS8BUgH/
|
AxUB/wObAf8DFQH/Ac4BXQE4Af8B1QGDAToB/wHLAVsBNgH/AYMBNAEhAf8BRgEsASQB/wFUAS8BIgH/
|
||||||
ATYBMgE0Af8BWgE2ASoB/wFbATYBKgH/AUkBNAEwAf8BlAFBASYB/wHTAYIBQQH/AcUBYQE+Af8DIwH/
|
AUwBLQEjAf8BHQEqATUB/wEAASQBUgH/AQABDAFOAf8BAAEpAVgB/wFLAdAB5wH/AVYB3QHxAf8BOwGn
|
||||||
A5sB/wMdAf8CDQFkAf8BFwE4AYsB/wEwAZwBvQH/AQ4BHwFPAf8BCQESAVsB/wETATkBmAH/ARIBPAGd
|
AbEB/wFcAeEB9wH/ATIBqQHFAf8BAAENAUQB/wEAARgBVQH/AQABJwFKAf8BLgEqASwB/wFSAS4BIgH/
|
||||||
Af8BEgE6AZ0B/wESATkBnAH/ARIBOQGWAf8BEQE4AZUB/wEUATYBkQH/AQYBEAFbAf8CCAFSAf8CCAFS
|
AVMBLgEiAf8BQQEsASgB/wGUATkBHgH/AdMBggE5Af8BxQFZATYB/wMbAf8DmwH/AxUB/wIFAVwB/wEP
|
||||||
Af8CCAFSAf8CCAFSAf8CCAFSAf8BBwEOAVkB/wETATIBkgH/ARIBNAGUAf8BDAEqAY0B/wEWAUABmAH/
|
ATABiwH/ASgBnAG9Af8BBgEXAUcB/wEBAQoBUwH/AQsBMQGYAf8BCgE0AZ0B/wEKATIBnQH/AQoBMQGc
|
||||||
AQgBIwGOAf8BFgFAAZ8B/wESATABkwH/AQ4BEwFbAf8CCAFMAf8BDgEdAU0B/wEwAZcBtAH/ARcBNwGI
|
Af8BCgExAZYB/wEJATABlQH/AQwBLgGRAf8BAAEIAVMB/wIAAUoB/wIAAUoB/wIAAUoB/wIAAUoB/wIA
|
||||||
Af8CDQFkAf87AAEBAwQBBgMQARUDLAFDAU8CUAGbAVgCYgHpAagBuAHCAf4B3gP/AcYB/gL/AcMB+wL/
|
AUoB/wEAAQYBUQH/AQsBKgGSAf8BCgEsAZQB/wEEASIBjQH/AQ4BOAGYAf8BAAEbAY4B/wEOATgBnwH/
|
||||||
AcMB+wL/AcgD/wHsA/8BhwGQAZMB+wFVAlYBsQMtAUUDBwEKhAADHQH/A5MB/wMdAf8BzAFdAT4B/wHT
|
AQoBKAGTAf8BBgELAVMB/wIAAUQB/wEGARUBRQH/ASgBlwG0Af8BDwEvAYgB/wIFAVwB/zsAAQEDBAEG
|
||||||
AWABQAH/Ac4BXQE+Af8BigE5ASYB/wEGAUEBhAH/AQABOQGNAf8BAAExAYgB/wEAAScBgQH/ARUBXAGf
|
AxABFQMsAUMBTwJQAZsBWAJiAekBmAGoAbIB/gHeA/8BxgH+Av8BwwH7Av8BwwH7Av8ByAP/AewD/wF/
|
||||||
Af8BVwHVAeYB/wGQAe8B/gH/AToBmwG8Af8BRgEcATMB/wGRARgBMQH/ATUBMgFKAf8BUQHKAeYB/wGQ
|
AYgBiwH7AVUCVgGxAy0BRQMHAQovAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/
|
||||||
Ae0B+gH/AUEBtAHKAf8BAQFCAZIB/wEAASkBgQH/AQABMgGHAf8BAAFDAZYB/wEjATMBRgH/AZMBOwEl
|
JAADFQH/A5MB/wMVAf8BzAFVATYB/wHTAVgBOAH/Ac4BVQE2Af8BigExAR4B/wEAATkBhAH/AQABMQGN
|
||||||
Af8B0gFgAUAB/wHDAVkBPAH/AyIB/wOTAf8DHQH/Ag0BZAH/ARcBOQGLAf8BMAGdAb0B/wEOAR8BVgH/
|
Af8BAAEpAYgB/wEAAR8BgQH/AQ0BVAGfAf8BTwHVAeYB/wGQAe8B/gH/ATIBmwG8Af8BPgEUASsB/wGR
|
||||||
AREBOAGVAf8BTQHWAekB/wFOAdcB8AH/AU0B0gHwAf8BTQHRAfAB/wFNAdEB7gH/AUoBzQHrAf8BRwHF
|
ARABKQH/AS0BKgFCAf8BSQHKAeYB/wGQAe0B+gH/ATkBtAHKAf8BAAE6AZIB/wEAASEBgQH/AQABKgGH
|
||||||
AecB/wEIARwBigH/Ag8BXAH/Ag8BXAH/Ag8BXAH/Ag8BXAH/AQ4BEAFdAf8BBgEeAYwB/wFIAcEB4gH/
|
Af8BAAE7AZYB/wEbASsBPgH/AZMBMwEdAf8B0gFYATgB/wHDAVEBNAH/AxoB/wOTAf8DFQH/AgUBXAH/
|
||||||
AUIBxAHoAf8BIAGKAc8B/wFWAeEB9QH/AQ0BVgHDAf8BWAHhAfUB/wEzAaIB1QH/AQgBHQGSAf8BBwEM
|
AQ8BMQGLAf8BKAGdAb0B/wEGARcBTgH/AQkBMAGVAf8BRQHWAekB/wFGAdcB8AH/AUUB0gHwAf8BRQHR
|
||||||
AVgB/wEOAR0BVQH/AS4BlAG0Af8BFwE0AYgB/wINAWQB/zgAAwQBBQMNARIDKAE8A0oBigFeAmEB2gGo
|
AfAB/wFFAdEB7gH/AUIBzQHrAf8BPwHFAecB/wEAARQBigH/AgcBVAH/AgcBVAH/AgcBVAH/AgcBVAH/
|
||||||
Aa8BtQH9AeID/wHGAf4C/wHDAfsC/wHDAfsC/wHJA/8B6QP/AagBrwG1Af0BXAJhAdwDRwGCAx0BKgMF
|
AQYBCAFVAf8BAAEWAYwB/wFAAcEB4gH/AToBxAHoAf8BGAGKAc8B/wFOAeEB9QH/AQUBTgHDAf8BUAHh
|
||||||
AQeEAAMdAf8DjwH/Ax0B/wHJAVoBPQH/AdABXQE/Af8B0AFdAT8B/wGmAUUBLQH/ASsBLwE9Af8BEQFb
|
AfUB/wErAaIB1QH/AQABFQGSAf8BAAEEAVAB/wEGARUBTQH/ASYBlAG0Af8BDwEsAYgB/wIFAVwB/zgA
|
||||||
AaMB/wFDAasB0gH/AZIB6wH4Af8BiQHqAfcB/wFCAaIBvAH/AUIBLwFIAf8BmgEjAUkB/wG/ATYBiwH/
|
AwQBBQMNARIDKAE8A0oBigFeAmEB2gKoAa0B/QHiA/8BxgH+Av8BwwH7Av8BwwH7Av8ByQP/AekD/wKo
|
||||||
AcEBOwGTAf8BuwE0AYIB/wGCARwBOwH/AToBSwFlAf8BUQHDAdsB/wGTAfAB/AH/AYYB4QHzAf8BMAGR
|
Aa0B/QFcAmEB3ANHAYIDHQEqAwUBBy8AAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIA
|
||||||
AbkB/wEKAVYBnwH/AVgBMAEoAf8BvAFSATcB/wHQAV0BPwH/AcABVgE7Af8DIgH/A48B/wMdAf8CDQFk
|
Av8kAAMVAf8DjwH/AxUB/wHJAVIBNQH/AdABVQE3Af8B0AFVATcB/wGmAT0BJQH/ASMBJwE1Af8BCQFT
|
||||||
Af8BFwE5AYsB/wEwAZ0BvQH/AQ4BHwFaAf8BDgE6AZ8B/wFUAeIB9QH/AVsB7AL/AWAB7gL/AWEB7gL/
|
AaMB/wE7AasB0gH/AZIB6wH4Af8BiQHqAfcB/wE6AaIBvAH/AToBJwFAAf8BmgEbAUEB/wG/AS4BiwH/
|
||||||
AWEB7gL/AWEB7gL/AUABwAHrAf8BCAEcAY8B/wIPAWEB/wIPAV4B/wIPAVwB/wIPAV0B/wELARQBggH/
|
AcEBMwGTAf8BuwEsAYIB/wGCARQBMwH/ATIBQwFdAf8BSQHDAdsB/wGTAfAB/AH/AYYB4QHzAf8BKAGR
|
||||||
ASIBYAG+Af8BUgHaAfgB/wEiAZgB3wH/AUEBxAHxAf8BNQG2AeoB/wEtAawB5QH/AU0B1gH5Af8BJwGf
|
AbkB/wECAU4BnwH/AVABKAEgAf8BvAFKAS8B/wHQAVUBNwH/AcABTgEzAf8DGgH/A48B/wMVAf8CBQFc
|
||||||
AeEB/wEwAZ8B0wH/AQ4BKQGMAf8BDQEdAVgB/wErAZQBtAH/ARcBNAGIAf8CDQFkAf8kAAMBAQIDAwQE
|
Af8BDwExAYsB/wEoAZ0BvQH/AQYBFwFSAf8BBgEyAZ8B/wFMAeIB9QH/AVMB7AL/AVgB7gL/AVkB7gL/
|
||||||
BAYECAELAw8BFAMkATYBRgJHAYABWAJcAdEBhwGQAZQB+wHpA/8ByAP/AcMB+wL/AcMB+wL/AcwD/wHw
|
AVkB7gL/AVkB7gL/ATgBwAHrAf8BAAEUAY8B/wIHAVkB/wIHAVYB/wIHAVQB/wIHAVUB/wEDAQwBggH/
|
||||||
A/8BhwGQAZQB+wFZAl0B1wNMAZIDKwFCAw0BEgMDAQSEAAMdAf8DjwH/Ax0B/wHHAVgBPQH/Ac4BWwE/
|
ARoBWAG+Af8BSgHaAfgB/wEaAZgB3wH/ATkBxAHxAf8BLQG2AeoB/wElAawB5QH/AUUB1gH5Af8BHwGf
|
||||||
Af8BzgFbAT8B/wGmAUUBLgH/AisBOQH/AQcBSwGQAf8BKgGHAakB/wEdATIBSgH/AVEBFQEsAf8BpQEk
|
AeEB/wEoAZ8B0wH/AQYBIQGMAf8BBQEVAVAB/wEjAZQBtAH/AQ8BLAGIAf8CBQFcAf8kAAMBAQIDAwQE
|
||||||
AUwB/wHCATcBjAH/AcsBRgGkAf8B0gFOAbEB/wHUAU8BtAH/AdEBTAGwAf8BygFFAaIB/wG+ATUBhAH/
|
BAYECAELAw8BFAMkATYBRgJHAYABWAJcAdEBfwGIAYwB+wHpA/8ByAP/AcMB+wL/AcMB+wL/AcwD/wHw
|
||||||
AZIBHgFCAf8BQwEaASwB/wEVAUUBYwH/AS8BigGsAf8BAAFAAYgB/wFXATABKAH/Ab0BUQE4Af8BzgFb
|
A/8BfwGIAYwB+wFZAl0B1wNMAZIDKwFCAw0BEgMDAQQvAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/
|
||||||
AT8B/wG/AVUBOwH/AyIB/wOPAf8DHQH/Ag0BZAH/ARcBOAGLAf8BMAGcAbkB/wEOAR8BVAH/AQ4BOgGf
|
AgAC/wIAAv8CAAL/JAADFQH/A48B/wMVAf8BxwFQATUB/wHOAVMBNwH/Ac4BUwE3Af8BpgE9ASYB/wIj
|
||||||
Af8BVAHhAfUB/wFZAecC/wFaAegC/wFbAegC/wFdAeoC/wFhAe4C/wFAAcAB6wH/AQgBHAGOAf8CDwFb
|
ATEB/wEAAUMBkAH/ASIBhwGpAf8BFQEqAUIB/wFJAQ0BJAH/AaUBHAFEAf8BwgEvAYwB/wHLAT4BpAH/
|
||||||
Af8CDwFaAf8CDwFZAf8CDwFZAf8BCwEVAYEB/wE4AaEB1AH/AVkB5gL/AQ8BUgHBAf8BWQHmAv8BIQGP
|
AdIBRgGxAf8B1AFHAbQB/wHRAUQBsAH/AcoBPQGiAf8BvgEtAYQB/wGSARYBOgH/ATsBEgEkAf8BDQE9
|
||||||
AdQB/wFGAckB8QH/AUYByQHxAf8BIQGPAdUB/wFPAdwB9QH/ARMBOAGYAf8BDgEdAVMB/wEvAZQBtAH/
|
AVsB/wEnAYoBrAH/AQABOAGIAf8BTwEoASAB/wG9AUkBMAH/Ac4BUwE3Af8BvwFNATMB/wMaAf8DjwH/
|
||||||
ARcBNAGIAf8CDQFkAf8cAAMCAQMDBgEIAw0BEQMXASADIgEyAyoBQAMsAUMDMQFOA0cBggFZAlwBzAF2
|
AxUB/wIFAVwB/wEPATABiwH/ASgBnAG5Af8BBgEXAUwB/wEGATIBnwH/AUwB4QH1Af8BUQHnAv8BUgHo
|
||||||
AYABjAH6Ae0D/wHJA/8BwwH7Av8BwwH7Av8BzQP/AfgD/wFtAXoBfgH4AVwCXgHOAUgCSQGHAysBQgMR
|
Av8BUwHoAv8BVQHqAv8BWQHuAv8BOAHAAesB/wEAARQBjgH/AgcBUwH/AgcBUgH/AgcBUQH/AgcBUQH/
|
||||||
ARcDBAEGAwABAYQAAx0B/wOQAf8DHQH/AcUBVgE8Af8BzAFZAT4B/wHMAVkBPgH/AaQBQgEtAf8BKAEr
|
AQMBDQGBAf8BMAGhAdQB/wFRAeYC/wEHAUoBwQH/AVEB5gL/ARkBjwHUAf8BPgHJAfEB/wE+AckB8QH/
|
||||||
ATsB/wEDAUUBiQH/AQUBSgGNAf8BNAEkAT4B/wG8AS0BYgH/AcQBPQGcAf8B0QFNAa8B/wHcAVkBwQH/
|
ARkBjwHVAf8BRwHcAfUB/wELATABmAH/AQYBFQFLAf8BJwGUAbQB/wEPASwBiAH/AgUBXAH/HAADAgED
|
||||||
AeYBYgHNAf8B6QFlAdIB/wHmAWMBzQH/Ad0BWgHBAf8B0AFNAa8B/wHFAT4BmwH/AbMBKQFRAf8BBAEy
|
AwYBCAMNAREDFwEgAyIBMgMqAUADLAFDAzEBTgNHAYIBWQJcAcwBbgF3AXsB+gHtA/8ByQP/AcMB+wL/
|
||||||
AVMB/wEWAVEBkAH/AQABOgGDAf8BVgEvASgB/wG7AVABNwH/AcwBWQE+Af8BvQFTAToB/wMiAf8DkAH/
|
AcMB+wL/Ac0D/wH4A/8BXQFyAXYB+AFcAl4BzgFIAkkBhwMrAUIDEQEXAwQBBgMAAQEvAAH/AwAB/wMA
|
||||||
Ax0B/wINAWQB/wEXATgBiwH/ATABmwG4Af8BDgEeAVIB/wERATIBkgH/AT0BuwHgAf8BQQG8AeYB/wFB
|
Af8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JAADFQH/A5AB/wMVAf8BxQFOATQB/wHMAVEBNgH/
|
||||||
Ab8B5gH/AUgBvwHkAf8BSAHBAecB/wFIAcUB6wH/AUMBvwHkAf8BCAEZAYQB/wIOAVkB/wINAVkB/wIH
|
AcwBUQE2Af8BpAE6ASUB/wEgASMBMwH/AQABPQGJAf8BAAFCAY0B/wEsARwBNgH/AbwBJQFaAf8BxAE1
|
||||||
AVkB/wIHAVkB/wEKAQ0BXAH/AQcBFgGFAf8BCAEcAY0B/wEIARcBiAH/AQgBHAGPAf8BCAEYAYsB/wEI
|
AZwB/wHRAUUBrwH/AdwBUQHBAf8B5gFaAc0B/wHpAV0B0gH/AeYBWwHNAf8B3QFSAcEB/wHQAUUBrwH/
|
||||||
ARsBlAH/AQkBHAGWAf8BDAEcAZMB/wEIARwBkgH/AQYBEAFdAf8BDgEdAVIB/wEwAZQBtAH/ARcBNAGI
|
AcUBNgGbAf8BswEhAUkB/wEAASoBSwH/AQ4BSQGQAf8BAAEyAYMB/wFOAScBIAH/AbsBSAEvAf8BzAFR
|
||||||
Af8CDQFkAf8XAAEBAwQBBQMKAQ4DGgElAzEBTQNEAXkBTwJQAZsBUwJUAawDVAGuA1UBtQFaAl4B2AFt
|
ATYB/wG9AUsBMgH/AxoB/wOQAf8DFQH/AgUBXAH/AQ8BMAGLAf8BKAGbAbgB/wEGARYBSgH/AQkBKgGS
|
||||||
AXoBggH3AfQD/wHKA/8BwwH7Av8BxAH8Av8B0Qf/AW0BegGCAfcBWAJbAcYDQwF4AyYBOAMQARUDBAEG
|
Af8BNQG7AeAB/wE5AbwB5gH/ATkBvwHmAf8BQAG/AeQB/wFAAcEB5wH/AUABxQHrAf8BOwG/AeQB/wEA
|
||||||
AwABAYgAAx0B/wOSAf8DHQH/AcMBUwE7Af8BygFWAT0B/wHIAVUBPAH/AYwBNAEjAf8BEQEqAUcB/wEM
|
AREBhAH/AgYBUQH/AgUBUQH/AgABUQH/AgABUQH/AQIBBQFUAf8BAAEOAYUB/wEAARQBjQH/AQABDwGI
|
||||||
AUoBjAH/AQwBVgGdAf8BUQEiAT4B/wHCATcBkAH/Ac0BSAGrAf8B3gFcAcQB/wHvAYcB2gH/AfsBkwHs
|
Af8BAAEUAY8B/wEAARABiwH/AQABEwGUAf8BAQEUAZYB/wEEARQBkwH/AQABFAGSAf8BAAEIAVUB/wEG
|
||||||
Af8B/QGYAfQB/wH7AZMB7AH/Ae8BhwHaAf8B3gFcAcQB/wHOAUgBrAH/Ab0BNAGEAf8BIAE0AVQB/wEe
|
ARUBSgH/ASgBlAG0Af8BDwEsAYgB/wIFAVwB/xcAAQEDBAEFAwoBDgMaASUDMQFNA0QBeQFPAlABmwFT
|
||||||
AV0BnQH/AQABOQGEAf8BRAErAS0B/wGwAUgBMgH/AcoBVgE9Af8BuwFQATkB/wMiAf8DkgH/Ax0B/wIN
|
AlQBrANUAa4DVQG1AVoCXgHYAm0BcQH3AfQD/wHKA/8BwwH7Av8BxAH8Av8B0Qf/Am0BcQH3AVgCWwHG
|
||||||
AWQB/wEXATgBigH/ATABlwG2Af8BDgEdAVIB/wEHAQ4BWwH/AQoBGwGPAf8BCgEdAZcB/wEKAR0BlwH/
|
A0MBeAMmATgDEAEVAwQBBgMAAQEzAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/
|
||||||
AQoBHQGPAf8BCgEdAY8B/wEKAR0BjwH/AQoBGgGIAf8BCgEOAV0B/wIJAVkB/wIGAVkB/wIGAVkB/wIG
|
JAADFQH/A5IB/wMVAf8BwwFLATMB/wHKAU4BNQH/AcgBTQE0Af8BjAEsARsB/wEJASIBPwH/AQQBQgGM
|
||||||
AVkB/wIGAVkB/wIJAVkB/wIOAVkB/wIPAVsB/wIPAWEB/wIPAWEB/wIPAWUB/wIPAYMB/wIPAYMB/wIP
|
Af8BBAFOAZ0B/wFJARoBNgH/AcIBLwGQAf8BzQFAAasB/wHeAVQBxAH/Ae8BhwHaAf8B+wGTAewB/wH9
|
||||||
AWQB/wIIAVMB/wEOAR0BUgH/ATABlAG0Af8BFwE0AYgB/wINAWQB/xMAAQEDBAEGAw8BFAMkATUBPwJA
|
AZgB9AH/AfsBkwHsAf8B7wGHAdoB/wHeAVQBxAH/Ac4BQAGsAf8BvQEsAYQB/wEYASwBTAH/ARYBVQGd
|
||||||
AW8DVgGzAVsCYQHhAmUBZgH0AXEBfQGKAfoBbQF6AX4B+AFZAWYBawH1AWgBegGGAvoD/wHNA/8BwwH7
|
Af8BAAExAYQB/wE8ASMBJQH/AbABQAEqAf8BygFOATUB/wG7AUgBMQH/AxoB/wOSAf8DFQH/AgUBXAH/
|
||||||
Av8BxAH8Av8B1AP/AfMB+AH8Af8BWQFnAWwB9QFWAlgBwQNAAXADIAEuAwsBDwMEAQUDAAEBjAADHQH/
|
AQ8BMAGKAf8BKAGXAbYB/wEGARUBSgH/AQABBgFTAf8BAgETAY8B/wECARUBlwH/AQIBFQGXAf8BAgEV
|
||||||
A5YB/wMdAf8BwQFQATsB/wHIAVMBPAH/AcQBUQE6Af8BhwExASMB/wEAATABWgH/AR4BWAGXAf8BEAFT
|
AY8B/wECARUBjwH/AQIBFQGPAf8BAgESAYgB/wECAQYBVQH/AgEBUQH/AgABUQH/AgABUQH/AgABUQH/
|
||||||
AZcB/wGAASEBQgH/AcYBPQGaAf8B1QFRAbcB/wHqAYAB0gH/AfwBlgHxAv8BqAH+Av8BrwP/AagB/gH/
|
AgABUQH/AgEBUQH/AgYBUQH/AgcBUwH/AgcBWQH/AgcBWQH/AgcBXQH/AgcBgwH/AgcBgwH/AgcBXAH/
|
||||||
AfwBlgHxAf8B6gGAAdIB/wHWAVEBtwH/AcUBOwGTAf8BNwEtAUkB/wEcAV8BoAH/AQQBRQGNAf8BIgEq
|
AgABSwH/AQYBFQFKAf8BKAGUAbQB/wEPASwBiAH/AgUBXAH/EwABAQMEAQYDDwEUAyQBNQE/AkABbwNW
|
||||||
AT4B/wGMATIBIgH/AccBUwE8Af8BuQFNATkB/wMjAf8DlgH/Ax0B/wINAWMB/wEXATYBhQH/AS0BlQG0
|
AbMBWwJhAeEDZQH0AWkBdQF6AfoBXQFyAXYB+AJZAWAB9QFaAXIBeQL6A/8BzQP/AcMB+wL/AcQB/AL/
|
||||||
Af8BDQEdAVIB/wIIAVMB/wIPAWQB/wIPAYMB/wIPAYMB/wIPAWEB/wIPAWEB/wIPAV4B/wIPAVoB/wIJ
|
AdQD/wHzAfgB/AH/AlkBYgH1AVYCWAHBA0ABcAMgAS4DCwEPAwQBBQMAAQEbAAH/AwAB/wMAAf8DAAH/
|
||||||
AVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wINAVkB/wIPAVsB/wIPAWEB/wIP
|
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/
|
||||||
AWEB/wIPAWEB/wIPAYMB/wIPAYMB/wIPAWQB/wIIAVMB/wEOAR0BUgH/ATABlAG0Af8BFwE0AYgB/wIN
|
AgAC/wIAAv8CAAL/AgAC/wwAAxUB/wOWAf8DFQH/AcEBSAEzAf8ByAFLATQB/wHEAUkBMgH/AYcBKQEb
|
||||||
AWQB/xAAAwIBAwMLAQ8DIwE0AUQCRQF8AVcCWgHFAW0BfQGDAfcB8wH4AfwB/wHxA/8B5wP/AeoD/wHv
|
Af8BAAEoAVIB/wEWAVABlwH/AQgBSwGXAf8BgAEZAToB/wHGATUBmgH/AdUBSQG3Af8B6gGAAdIB/wH8
|
||||||
A/8B5AP/Ac0D/wHDAfsC/wHGAf4C/wHaA/8B8wH4AfwB/wFkAWUBZgH0AVYCWAG8Az0BaQMdASoDCgEN
|
AZYB8QL/AagB/gL/Aa8D/wGoAf4B/wH8AZYB8QH/AeoBgAHSAf8B1gFJAbcB/wHFATMBkwH/AS8BJQFB
|
||||||
AwMBBJQAAx0B/wOaAf8DHQH/Ab4BTwE6Af8BxQFRATsB/wGvAUUBMgH/AVEBKwEmAf8BAAE6AYsB/wE1
|
Af8BFAFXAaAB/wEAAT0BjQH/ARoBIgE2Af8BjAEqARoB/wHHAUsBNAH/AbkBRQExAf8DGwH/A5YB/wMV
|
||||||
AYkBqwH/AQ4BQgFlAf8BqQEpAVMB/wHIAUEBoQH/AdoBVgG8Af8B8AGIAdwB/wH+AZ8B+gL/AbQD/wHC
|
Af8CBQFbAf8BDwEuAYUB/wElAZUBtAH/AQUBFQFKAf8CAAFLAf8CBwFcAf8CBwGDAf8CBwGDAf8CBwFZ
|
||||||
A/8BtAL/Af4BnwH6Af8B8AGIAdwB/wHbAVYBvQH/AckBQAGdAf8BXQEiAUEB/wEYAVwBnQH/ASQBYQGi
|
Af8CBwFZAf8CBwFWAf8CBwFSAf8CAQFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFR
|
||||||
Af8BAAEvAVoB/wGGATABIgH/AcMBUAE6Af8BtgFMATgB/wMjAf8DmgH/Ax0B/wINAWIB/wEXATQBgwH/
|
Af8CBQFRAf8CBwFTAf8CBwFZAf8CBwFZAf8CBwFZAf8CBwGDAf8CBwGDAf8CBwFcAf8CAAFLAf8BBgEV
|
||||||
AS8BlAG0Af8BDgEdAVIB/wIIAVMB/wIPAWQB/wIPAYMB/wIPAYMB/wIPAWEB/wIPAWEB/wIPAVwB/wIP
|
AUoB/wEoAZQBtAH/AQ8BLAGIAf8CBQFcAf8QAAMCAQMDCwEPAyMBNAFEAkUBfAFXAloBxQJtAXQB9wHz
|
||||||
AVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIHAVkB/wIPAVkB/wIP
|
AfgB/AH/AfED/wHnA/8B6gP/Ae8D/wHkA/8BzQP/AcMB+wL/AcYB/gL/AdoD/wHzAfgB/AH/AWQCZQH0
|
||||||
AV0B/wIPAWEB/wIPAWEB/wIPAYMB/wIPAYMB/wIPAWQB/wIIAVMB/wEOAR0BUgH/ATABlAG0Af8BFwE0
|
AVYCWAG8Az0BaQMdASoDCgENAwMBBCMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||||
AYgB/wINAWQB/xAAAwMBBAMYASEDPQFpAVcCWQG/AXkBgQGMAfoB8QP/Ac4D/wHEAfwC/wHDAfsC/wHD
|
Af8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/DAADFQH/
|
||||||
AfsC/wHDAfsC/wHDAfsC/wHDAfsC/wHGAf4C/wHeA/8BqAG4AcIB/gFOAl0B8AFVAlcBtwM7AWMDGgEl
|
A5oB/wMVAf8BvgFHATIB/wHFAUkBMwH/Aa8BPQEqAf8BSQEjAR4B/wEAATIBiwH/AS0BiQGrAf8BBgE6
|
||||||
AwkBDAMDAQSYAAMdAf8DnwH/Ax0B/wG7AUwBOQH/AcABTQE5Af8BhgEvASEB/wEUASkBQgH/AQUBSAGU
|
AV0B/wGpASEBSwH/AcgBOQGhAf8B2gFOAbwB/wHwAYgB3AH/Af4BnwH6Av8BtAP/AcID/wG0Av8B/gGf
|
||||||
Af8BPAGVAbkB/wEsATMBTgH/AbgBLAFgAf8BxwFBAaAB/wHZAVUBuwH/Ae8BhQHaAf8B/gGdAfoC/wGx
|
AfoB/wHwAYgB3AH/AdsBTgG9Af8ByQE4AZ0B/wFVARoBOQH/ARABVAGdAf8BHAFZAaIB/wEAAScBUgH/
|
||||||
A/8BvAP/AbEC/wH+AZ0B+gH/Ae8BhQHaAf8B2QFVAbwB/wHHAUABnwH/AaQBJgFPAf8BFwFMAYkB/wFC
|
AYYBKAEaAf8BwwFIATIB/wG2AUQBMAH/AxsB/wOaAf8DFQH/AgUBWgH/AQ8BLAGDAf8BJwGUAbQB/wEG
|
||||||
AZcBuAH/AQABOAGKAf8BUAEqAScB/wGtAUMBMQH/AbMBSQE3Af8DIwH/A58B/wMdAf8CDQFiAf8BFwE0
|
ARUBSgH/AgABSwH/AgcBXAH/AgcBgwH/AgcBgwH/AgcBWQH/AgcBWQH/AgcBVAH/AgcBUQH/AgABUQH/
|
||||||
AYMB/wEwAZQBtAH/AQ4BHQFSAf8BCQEaAWQB/wEWAUQBrAH/ARcBSQG2Af8BFQFHAbAB/wEPATYBogH/
|
AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgcBUQH/AgcBVQH/AgcBWQH/
|
||||||
AQsBIAGOAf8BDAETAWQB/wIPAVsB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIGAVkB/wIG
|
AgcBWQH/AgcBgwH/AgcBgwH/AgcBXAH/AgABSwH/AQYBFQFKAf8BKAGUAbQB/wEPASwBiAH/AgUBXAH/
|
||||||
AVkB/wIHAVkB/wIPAVkB/wIPAVwB/wIPAWEB/wIPAWEB/wIPAYMB/wIPAYMB/wIPAWQB/wIIAVMB/wEO
|
EAADAwEEAxgBIQM9AWkBVwJZAb8BcQF3AXsB+gHxA/8BzgP/AcQB/AL/AcMB+wL/AcMB+wL/AcMB+wL/
|
||||||
AR0BUgH/AS8BlAG0Af8BFwE0AYgB/wINAWQB/xAAAwQBBgMjATMBTQJOAZUCZQFmAfQE/wHaA/8B2QP/
|
AcMB+wL/AcMB+wL/AcYB/gL/Ad4D/wGYAagBsgH+AU4CXQHwAVUCVwG3AzsBYwMaASUDCQEMAwMBBCcA
|
||||||
AeAD/wHdA/8BzwP/AcUB/QL/AcMB+wL/AcMB+wL/AdMD/wGoAbgBwgH+AU4CXQHwAVUCVwG3AzoBYAMY
|
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIA
|
||||||
ASIDCAELAwIBA5wAAx0B/wOkAf8DHQH/AbkBSQE3Af8BoAE7ASsB/wFLAScBJQH/AQABKQFhAf8BKwFg
|
Av8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/DAADFQH/A58B/wMVAf8BuwFEATEB/wHAAUUBMQH/
|
||||||
AaIB/wETAVEBkgH/AVkBGQEqAf8BtwEsAWMB/wHCAT0BmwH/AdMBTwGzAf8B5gFkAc8B/wH6AZEB6wL/
|
AYYBJwEZAf8BDAEhAToB/wEAAUABlAH/ATQBlQG5Af8BJAErAUYB/wG4ASQBWAH/AccBOQGgAf8B2QFN
|
||||||
AaAB/AL/AagB/gL/AaAB/AH/AfoBkQHrAf8B5gFkAc8B/wHTAU8BtAH/AcMBPAGaAf8BtgEqAVcB/wEt
|
AbsB/wHvAYUB2gH/Af4BnQH6Av8BsQP/AbwD/wGxAv8B/gGdAfoB/wHvAYUB2gH/AdkBTQG8Af8BxwE4
|
||||||
ASUBOQH/AScBYgGkAf8BCAFGAZEB/wEPASEBPQH/AYQBLQEfAf8BqQFCATIB/wMjAf8DpAH/Ax0B/wIN
|
AZ8B/wGkAR4BRwH/AQ8BRAGJAf8BOgGXAbgB/wEAATABigH/AUgBIgEfAf8BrQE7ASkB/wGzAUEBLwH/
|
||||||
AWMB/wEXATQBhQH/ATABlAG0Af8BDgEdAVIB/wEVAToBkgH/AVQB5AH1Af8BWQHpAv8BUgHgAfgB/wE1
|
AxsB/wOfAf8DFQH/AgUBWgH/AQ8BLAGDAf8BKAGUAbQB/wEGARUBSgH/AQEBEgFcAf8BDgE8AawB/wEP
|
||||||
AbEB3wH/AR0BUgG1Af8BDwEhAYoB/wEPAREBWwH/AgkBWQH/AgYBWQH/AgYBWQH/AgYBWQH/AgYBWQH/
|
AUEBtgH/AQ0BPwGwAf8BBwEuAaIB/wEDARgBjgH/AQQBCwFcAf8CBwFTAf8CAAFRAf8CAAFRAf8CAAFR
|
||||||
AgYBWQH/AgYBWQH/Ag0BWQH/Ag8BWgH/Ag8BXgH/Ag8BYwH/AQwBFAGEAf8BCwEZAY0B/wELARcBjAH/
|
Af8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CBwFRAf8CBwFUAf8CBwFZAf8CBwFZAf8CBwGD
|
||||||
AQ4BEgGDAf8CCAFUAf8BDQEdAVIB/wEtAZUBtAH/ARcBNgGIAf8CDQFkAf8QAAMEAQYDIgEyAUwCTQGR
|
Af8CBwGDAf8CBwFcAf8CAAFLAf8BBgEVAUoB/wEnAZQBtAH/AQ8BLAGIAf8CBQFcAf8QAAMEAQYDIwEz
|
||||||
AmQBZQHxAasBsQG0Af0BnAGxAb8B/gGoAa8BtQH9AYEBjQGTAfsBcAGIAZoB/AHnAfEB+AH/AdUD/wHD
|
AU0CTgGVA2UB9AT/AdoD/wHZA/8B4AP/Ad0D/wHPA/8BxQH9Av8BwwH7Av8BwwH7Av8B0wP/AZgBqAGy
|
||||||
AfsC/wHDAfsC/wHgA/8BXwGIAZEB+wFaAl0B0wNCAXQDGgElAwYBCAMBAQKgAAMdAf8DqgH/Ax0B/wGp
|
Af4BTgJdAfABVQJXAbcDOgFgAxgBIgMIAQsDAgEDKwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||||
AT8BMAH/AVMBKAElAf8BRAGWAbUB/wFdAcEB5AH/AZQB2AHrAf8BAAE3AYgB/wEGASoBSwH/AaEBIgFK
|
Af8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIA
|
||||||
Af8BvwE1AY4B/wHKAUUBpgH/AdoBVgG8Af8B6AGBAdIB/wH0AYoB4QH/AfkBkAHoAf8B9AGKAeEB/wHo
|
Av8MAAMVAf8DpAH/AxUB/wG5AUEBLwH/AaABMwEjAf8BQwEfAR0B/wEAASEBWQH/ASMBWAGiAf8BCwFJ
|
||||||
AYEB0gH/AdoBVgG9Af8BywFFAaUB/wHAATQBigH/AWMBIQE+Af8BAAEoAVgB/wEkAWIBqQH/AZwB4QHv
|
AZIB/wFRAREBIgH/AbcBJAFbAf8BwgE1AZsB/wHTAUcBswH/AeYBXAHPAf8B+gGRAesC/wGgAfwC/wGo
|
||||||
Af8BTwGwAdYB/wE3ATABOAH/AZABNAEnAf8DJAH/A6oB/wMdAf8CDQFkAf8BFwE0AYgB/wEwAZQBtAH/
|
Af4C/wGgAfwB/wH6AZEB6wH/AeYBXAHPAf8B0wFHAbQB/wHDATQBmgH/AbYBIgFPAf8BJQEdATEB/wEf
|
||||||
AQ4BHQFSAf8BCwEkAYoB/wEeAYwBzwH/AR4BkwHcAf8BHwGPAdUB/wEVAVwBwwH/AQ8BNgGlAf8BCgEa
|
AVoBpAH/AQABPgGRAf8BBwEZATUB/wGEASUBFwH/AakBOgEqAf8DGwH/A6QB/wMVAf8CBQFbAf8BDwEs
|
||||||
AYkB/wEKARABYAH/Ag4BWQH/AgkBWQH/AgYBWQH/AgYBWQH/AgYBWQH/AgYBWQH/AgkBWQH/Ag4BWQH/
|
AYUB/wEoAZQBtAH/AQYBFQFKAf8BDQEyAZIB/wFMAeQB9QH/AVEB6QL/AUoB4AH4Af8BLQGxAd8B/wEV
|
||||||
Ag8BWwH/Ag8BYwH/AQ8BHgGOAf8BHAFUAbgB/wEyAZoB0gH/ASkBjQHLAf8BEwE7AaUB/wEIARABXAH/
|
AUoBtQH/AQcBGQGKAf8BBwEJAVMB/wIBAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIA
|
||||||
AQ4BHQFSAf8BMAGXAbYB/wEXATgBigH/Ag0BZAH/EAADAwEEAxYBHgM2AVkBTwJRAZwBVwJZAb8BWQJc
|
AVEB/wIFAVEB/wIHAVIB/wIHAVYB/wIHAVsB/wEEAQwBhAH/AQMBEQGNAf8BAwEPAYwB/wEGAQoBgwH/
|
||||||
AckBWgJdAcoBXAJeAc4BWAJfAeMBVwFiAWUB9gHwA/8BwwH7Av8BwwH7Av8B3QP/AXoBlAGgAfwDWQHH
|
AgABTAH/AQUBFQFKAf8BJQGVAbQB/wEPAS4BiAH/AgUBXAH/EAADBAEGAyIBMgFMAk0BkQNkAfEBqAGp
|
||||||
AzcBWwMPARQDAAEBpAADHQH/A7AB/wMdAf8BrwFAATMB/wFiAScBHwH/AUUBIgEkAf8BQAFcAYUB/wGw
|
AawB/QGMAaEBrwH+AqgBrQH9AW0BhQGLAfsBaAF6AYIB/AHnAfEB+AH/AdUD/wHDAfsC/wHDAfsC/wHg
|
||||||
Ae4B9wH/AZsB4wHvAf8BAAE6AZEB/wEPATYBTwH/AaUBJgFSAf8BwAE5AZUB/wHLAUcBqQH/AdYBUgG3
|
A/8BXwGAAYkB+wFaAl0B0wNCAXQDGgElAwYBCAMBAQIvAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||||
Af8B3gFcAcIB/wHhAV4BxgH/Ad4BXAHCAf8B1gFSAbcB/wHLAUcBqAH/AcMBOAGRAf8BgQEiAUQB/wEA
|
AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/
|
||||||
AUABgAH/ARcBWgGlAf8BtwHzAfoB/wGWAdoB5AH/ATgBLQE1Af8BWAEmASEB/wGjATsBMAH/AyQB/wOw
|
AgAC/wwAAxUB/wOqAf8DFQH/AakBNwEoAf8BSwEgAR0B/wE8AZYBtQH/AVUBwQHkAf8BlAHYAesB/wEA
|
||||||
Af8DHQH/Ag0BZAH/ARcBNAGIAf8BMAGUAbQB/wEOAR0BUgH/AQsBMgGPAf8BPgHHAegB/wFFAdAB8wH/
|
AS8BiAH/AQABIgFDAf8BoQEaAUIB/wG/AS0BjgH/AcoBPQGmAf8B2gFOAbwB/wHoAYEB0gH/AfQBigHh
|
||||||
AUYBywHyAf8BPAG7AeYB/wEmAY0BzAH/ARIBPQGlAf8BDQEZAYEB/wEIAQ4BWQH/AgcBWQH/AgYBWQH/
|
Af8B+QGQAegB/wH0AYoB4QH/AegBgQHSAf8B2gFOAb0B/wHLAT0BpQH/AcABLAGKAf8BWwEZATYB/wEA
|
||||||
AgYBWQH/AgYBWQH/AgYBWQH/AgcBWQH/AggBWQH/Ag8BWQH/AQwBEgFjAf8BGAFSAbUB/wFHAdAB8QH/
|
ASABUAH/ARwBWgGpAf8BnAHhAe8B/wFHAbAB1gH/AS8BKAEwAf8BkAEsAR8B/wMcAf8DqgH/AxUB/wIF
|
||||||
AVcB6QH9Af8BVAHlAfsB/wEwAakB3AH/AQoBIQGEAf8BDgEeAVIB/wEwAZsBuAH/ARcBOAGLAf8CDQFk
|
AVwB/wEPASwBiAH/ASgBlAG0Af8BBgEVAUoB/wEDARwBigH/ARYBjAHPAf8BFgGTAdwB/wEXAY8B1QH/
|
||||||
Af8QAAMCAQMDCgENAxwBJwMvAUkDPAFmA0QBegNIAYQBTgJPAZcBWQJcAcwBUwJkAfEE/wHDAfsC/wHD
|
AQ0BVAHDAf8BBwEuAaUB/wECARIBiQH/AQIBCAFYAf8CBgFRAf8CAQFRAf8CAAFRAf8CAAFRAf8CAAFR
|
||||||
AfsC/wHXA/8BqwGyAbYB/QNbAcgDNwFaAwsBD6gAAx0B/wO2Af8DHQH/AbABPwEzAf8BsgE/ATIB/wGf
|
Af8CAAFRAf8CAQFRAf8CBgFRAf8CBwFTAf8CBwFbAf8BBwEWAY4B/wEUAUwBuAH/ASoBmgHSAf8BIQGN
|
||||||
ATYBKgH/AWMBJgEdAf8BKgEiATEB/wGTAdQB6AH/AZYB3gHvAf8BAAFJAZYB/wEiAS0BRAH/AbgBKgFd
|
AcsB/wELATMBpQH/AQABCAFUAf8BBgEVAUoB/wEoAZcBtgH/AQ8BMAGKAf8CBQFcAf8QAAMDAQQDFgEe
|
||||||
Af8BvwE3AZMB/wHGAUABoAH/AcsBRgGmAf8BzQFIAaoB/wHLAUYBpgH/AcYBQAGgAf8BwAE3AZEB/wGd
|
AzYBWQFPAlEBnAFXAlkBvwFZAlwByQFaAl0BygFcAl4BzgFYAl8B4wFXAmIB9gHwA/8BwwH7Av8BwwH7
|
||||||
ASUBTgH/AQUBQgFcAf8BFwFZAagB/wGvAesB+AH/AVYBoAHDAf8BSAIhAf8BZQEmARwB/wGtAT0BMAH/
|
Av8B3QP/AXIBfgGIAfwDWQHHAzcBWwMPARQDAAEBTwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIA
|
||||||
AakBPQEyAf8DJAH/A7YB/wMdAf8CDQFkAf8BFwE0AYgB/wEvAZQBtAH/AQ4BHQFSAf8BCQEtAY4B/wE3
|
Av8CAAL/AgAC/yQAAxUB/wOwAf8DFQH/Aa8BOAErAf8BWgEfARcB/wE9ARoBHAH/ATgBVAGFAf8BsAHu
|
||||||
AcMB5wH/AT4BzgHyAf8BPgHIAfIB/wE0AbQB5gH/ASEBigHKAf8BEQE7AZ8B/wEHARUBXwH/AgYBUAH/
|
AfcB/wGbAeMB7wH/AQABMgGRAf8BBwEuAUcB/wGlAR4BSgH/AcABMQGVAf8BywE/AakB/wHWAUoBtwH/
|
||||||
AgYBTgH/AgYBTgH/AgYBTgH/AgYBTgH/AgYBTgH/AgYBTgH/AgYBTgH/AgYBTwH/AQUBDwFdAf8BKAGV
|
Ad4BVAHCAf8B4QFWAcYB/wHeAVQBwgH/AdYBSgG3Af8BywE/AagB/wHDATABkQH/AYEBGgE8Af8BAAE4
|
||||||
AcsB/wFMAekB/QH/AU4B7gL/AU4B7gL/AUAB1QHwAf8BCQEuAZAB/wEOAR8BUgH/ATABnAG5Af8BFwE4
|
AYAB/wEPAVIBpQH/AbcB8wH6Af8BlgHaAeQB/wEwASUBLQH/AVABHgEZAf8BowEzASgB/wMcAf8DsAH/
|
||||||
AYsB/wINAWQB/xMAAQEDBwEJAxYBHwMvAUkBQQJCAXMBTAJNAZEBUAJSAaMBVQJXAboDXwHgAUkBYgFl
|
AxUB/wIFAVwB/wEPASwBiAH/ASgBlAG0Af8BBgEVAUoB/wEDASoBjwH/ATYBxwHoAf8BPQHQAfMB/wE+
|
||||||
AfYB8wP/AcMB+wL/AcMB+wL/Ad0D/wF6AZQBoAH8AVcCWgG9AzEBTwMJAQyoAAMdAf8DuwH/Ax0B/wGt
|
AcsB8gH/ATQBuwHmAf8BHgGNAcwB/wEKATUBpQH/AQUBEQGBAf8BAAEGAVEB/wIAAVEB/wIAAVEB/wIA
|
||||||
ATwBMgH/AbMBPgEzAf8BswE+ATMB/wGoATkBLgH/AWIBIwEcAf8BKgEiATEB/wGRAdEB6gH/AWEBugHd
|
AVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIHAVEB/wEEAQoBWwH/ARABSgG1Af8BPwHQAfEB/wFP
|
||||||
Af8BAgFSAZMB/wFLAR8BOgH/AbgBKAFgAf8BvAEwAYcB/wHAATIBigH/Ab8BMwGMAf8BwAEyAYoB/wG8
|
AekB/QH/AUwB5QH7Af8BKAGpAdwB/wECARkBhAH/AQYBFgFKAf8BKAGbAbgB/wEPATABiwH/AgUBXAH/
|
||||||
AS8BhgH/AbQBJwFYAf8BHgEwAUUB/wEMAVgBogH/AZ0B3gHxAf8BVgGgAcYB/wFKASABIQH/AZYBMAEn
|
EAADAgEDAwoBDQMcAScDLwFJAzwBZgNEAXoDSAGEAU4CTwGXAVkCXAHMAVMCZAHxBP8BwwH7Av8BwwH7
|
||||||
Af8BsgE+ATMB/wGzAT4BMwH/AaYBOgExAf8DJQH/A7sB/wMdAf8CDQFkAf8BFwE0AYgB/wErAZQBtAH/
|
Av8B1wP/AagBqgGuAf0DWwHIAzcBWgMLAQ9TAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIA
|
||||||
AQ0BHQFSAf8BAwEfAYUB/wEVAYIBygH/ARQBjgHXAf8BFAGKAdcB/wEUAYYBzwH/ARQBXAHAAf8BDgFD
|
Av8CAAL/JAADFQH/A7YB/wMVAf8BsAE3ASsB/wGyATcBKgH/AZ8BLgEiAf8BWwEeARUB/wEiARoBKQH/
|
||||||
AaoB/wEKASQBjAH/AgYBSwH/AgYBRQH/AgYBRQH/AgYBRQH/AgYBRQH/AgYBRQH/AgYBRQH/AgYBRwH/
|
AZMB1AHoAf8BlgHeAe8B/wEAAUEBlgH/ARoBJQE8Af8BuAEiAVUB/wG/AS8BkwH/AcYBOAGgAf8BywE+
|
||||||
AgYBSQH/AQMBDAFZAf8BHgGAAcEB/wFBAeMB+wH/AUUB7gL/AUUB7gL/ATIBxgHqAf8BBgEmAYwB/wEO
|
AaYB/wHNAUABqgH/AcsBPgGmAf8BxgE4AaAB/wHAAS8BkQH/AZ0BHQFGAf8BAAE6AVQB/wEPAVEBqAH/
|
||||||
AR8BVAH/ATABnQG9Af8BFwE5AYsB/wINAWQB/xMAAQEDCgENAyoBQAFOAk8BlwFYAlwB0QNcAeoDZwHy
|
Aa8B6wH4Af8BTgGgAcMB/wFAAhkB/wFdAR4BFAH/Aa0BNQEoAf8BqQE1ASoB/wMcAf8DtgH/AxUB/wIF
|
||||||
AVkBZwFsAfUBgQGNAZMB+wHaAeoB9QH/AdgD/wHDAfsC/wHFAf0C/wHvA/8CYgFoAfYBUAJSAaMDJwE6
|
AVwB/wEPASwBiAH/AScBlAG0Af8BBgEVAUoB/wEBASUBjgH/AS8BwwHnAf8BNgHOAfIB/wE2AcgB8gH/
|
||||||
AwcBCagAAx0B/wPAAf8DHQH/AakBOgEwAf8BrwE7ATEB/wGvATsBMQH/Aa8BOwExAf8BpQE2AS0B/wFe
|
ASwBtAHmAf8BGQGKAcoB/wEJATMBnwH/AQABDQFXAf8CAAFIAf8CAAFGAf8CAAFGAf8CAAFGAf8CAAFG
|
||||||
ASEBGgH/ASsBNAFJAf8BmAHaAfEB/wE3AY8BvAH/AQgBPQFZAf8BWgEVASsB/wFOASEBPAH/AT0BJwFC
|
Af8CAAFGAf8CAAFGAf8CAAFGAf8CAAFHAf8BAAEHAVUB/wEgAZUBywH/AUQB6QH9Af8BRgHuAv8BRgHu
|
||||||
Af8BPQEnAUIB/wFBASYBQQH/AVYBHQE4Af8BRAEYASkB/wECAU0BkAH/AWUBvAHgAf8BhAG7AeEB/wE8
|
Av8BOAHVAfAB/wEBASYBkAH/AQYBFwFKAf8BKAGcAbkB/wEPATABiwH/AgUBXAH/EwABAQMHAQkDFgEf
|
||||||
AR4BJAH/AZEBLQEkAf8BrwE7ATEB/wGvATsBMQH/Aa8BOwExAf8BogE4AS8B/wMlAf8DwAH/Ax0B/wIN
|
Ay8BSQFBAkIBcwFMAk0BkQFQAlIBowFVAlcBugNfAeABSQJiAfYB8wP/AcMB+wL/AcMB+wL/Ad0D/wFy
|
||||||
AWUB/wEXATQBiwH/AS4BlAG0Af8BCgEZAU4B/wEJAS0BjAH/ATYB2gHrAf8BOwHkAfUB/wE7AeIB9QH/
|
AX4BiAH8AVcCWgG9AzEBTwMJAQxTAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/
|
||||||
ATYB2QHzAf8BMAHCAekB/wEhAZMB0QH/AREBPQGjAf8BAQEFAUIB/wIBATsB/wIBATsB/wIBATsB/wIB
|
JAADFQH/A7sB/wMVAf8BrQE0ASoB/wGzATYBKwH/AbMBNgErAf8BqAExASYB/wFaARsBFAH/ASIBGgEp
|
||||||
ATsB/wIBATsB/wIBATsB/wIBAT4B/wIBAT4B/wEAAQUBRgH/AQYBLAGQAf8BIgGeAdYB/wE2AdEB8AH/
|
Af8BkQHRAeoB/wFZAboB3QH/AQABSgGTAf8BQwEXATIB/wG4ASABWAH/AbwBKAGHAf8BwAEqAYoB/wG/
|
||||||
ATABwwHqAf8BFwFdAb0B/wEBARABWwH/AQsBGwFUAf8BMAGdAb0B/wEXATkBjgH/Ag0BZQH/EwABAQMP
|
ASsBjAH/AcABKgGKAf8BvAEnAYYB/wG0AR8BUAH/ARYBKAE9Af8BBAFQAaIB/wGdAd4B8QH/AU4BoAHG
|
||||||
ARQDOwFjA14B2AT/AfsD/wHzA/8B7gP/AeID/wHRA/8BxgH+Av8BxAH8Av8B1gP/AecB8QH4Af8BVwJc
|
Af8BQgEYARkB/wGWASgBHwH/AbIBNgErAf8BswE2ASsB/wGmATIBKQH/Ax0B/wO7Af8DFQH/AgUBXAH/
|
||||||
Ad8DRAF5AxgBIgMEAQaoAAMdAf8DxwH/Ax0B/wGmATYBLwH/AawBNwEwAf8BrAE3ATAB/wGsATcBMAH/
|
AQ8BLAGIAf8BIwGUAbQB/wEFARUBSgH/AQABFwGFAf8BDQGCAcoB/wEMAY4B1wH/AQwBigHXAf8BDAGG
|
||||||
AawBNwEwAf8BmgEvASgB/wFVAR8BHQH/AUgBkAGyAf8BlgHSAfEB/wENAVABogH/AQIBSQGLAf8BBQFR
|
Ac8B/wEMAVQBwAH/AQYBOwGqAf8BAgEcAYwB/wIAAUMB/wIAAT0B/wIAAT0B/wIAAT0B/wIAAT0B/wIA
|
||||||
AZMB/wELAVcBmgH/AQ0BWQGcAf8BCgFWAZcB/wEEAVEBkwH/AQEBRAGLAf8BMgGJAbsB/wGYAdgB8wH/
|
AT0B/wIAAT0B/wIAAT8B/wIAAUEB/wEAAQQBUQH/ARYBgAHBAf8BOQHjAfsB/wE9Ae4C/wE9Ae4C/wEq
|
||||||
ASwBOgFQAf8BXQEfARoB/wGrATYBLwH/AawBNwEwAf8BrAE3ATAB/wGsATcBMAH/AZ8BNQEuAf8DJQH/
|
AcYB6gH/AQABHgGMAf8BBgEXAUwB/wEoAZ0BvQH/AQ8BMQGLAf8CBQFcAf8TAAEBAwoBDQMqAUABTgJP
|
||||||
A8cB/wMdAf8CDwGFAf8BGwE7AY0B/wEwAZcBtAH/AQgBFwFMAf8BAAEOAU0B/wEJATEBjAH/AQoBMwGS
|
AZcBWAJcAdEDXAHqA2cB8gJZAWIB9QFtAYUBiwH7AdoB6gH1Af8B2AP/AcMB+wL/AcUB/QL/Ae8D/wNi
|
||||||
Af8BCgEzAZIB/wEIATEBkAH/AQcBLAGGAf8BBAEfAV8B/wECARABTwH/AgABOAH/AgABMgH/AgABMgH/
|
AfYBUAJSAaMDJwE6AwcBCVMAAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIAAv8kAAMV
|
||||||
AgABMgH/AgABMgH/AgABMgH/AgABMgH/AgABMgH/AgABOAH/AQABAQE5Af8BAAEJAUQB/wECARcBXwH/
|
Af8DwAH/AxUB/wGpATIBKAH/Aa8BMwEpAf8BrwEzASkB/wGvATMBKQH/AaUBLgElAf8BVgEZARIB/wEj
|
||||||
AQgBLQGKAf8BBgElAYUB/wEFARABWAH/AQUBBwFFAf8BCAEYAU0B/wEwAZwBuQH/ARsBPAGRAf8CDwGF
|
ASwBQQH/AZgB2gHxAf8BLwGPAbwB/wEAATUBUQH/AVIBDQEjAf8BRgEZATQB/wE1AR8BOgH/ATUBHwE6
|
||||||
Af8TAAEBAw0BEgM4AVwBWAJbAcsBqAG1Ab4B/gHqA/8BzQP/AcQB/AL/AcMB+wL/AcMB+wL/AcYB/gL/
|
Af8BOQEeATkB/wFOARUBMAH/ATwBEAEhAf8BAAFFAZAB/wFdAbwB4AH/AYQBuwHhAf8BNAEWARwB/wGR
|
||||||
AdgD/wHzAfgB/AH/A10B8ANSAakDLgFHAwwBEAMCAQOoAAMdAf8DzwH/Ax0B/wGjATMBLQH/AagBNAEu
|
ASUBHAH/Aa8BMwEpAf8BrwEzASkB/wGvATMBKQH/AaIBMAEnAf8DHQH/A8AB/wMVAf8CBQFdAf8BDwEs
|
||||||
Af8BqAE0AS4B/wGoATQBLgH/AagBNAEuAf8BqAE0AS4B/wGNAScBIgH/ATABIgEtAf8BjAHSAfMB/wHD
|
AYsB/wEmAZQBtAH/AQIBEQFGAf8BAQElAYwB/wEuAdoB6wH/ATMB5AH1Af8BMwHiAfUB/wEuAdkB8wH/
|
||||||
AfAB+AH/AdUB7gH3Af8B4AH3AfwB/wHnA/8B6AP/AeYB/gL/Ad0B8gH6Af8BzQHtAfcB/wG1Ae8B+wH/
|
ASgBwgHpAf8BGQGTAdEB/wEJATUBowH/AgABOgH/AgABMwH/AgABMwH/AgABMwH/AgABMwH/AgABMwH/
|
||||||
AVYBqwHPAf8BSwEbAR0B/wGWASwBJgH/AagBNAEuAf8BqAE0AS4B/wGoATQBLgH/AagBNAEuAf8BnQEy
|
AgABMwH/AgABNgH/AgABNgH/AgABPgH/AQABJAGQAf8BGgGeAdYB/wEuAdEB8AH/ASgBwwHqAf8BDwFV
|
||||||
ASwB/wMmAf8DzwH/Ax0B/wIVAYoB/wEcAT4BmAH/ATEBlQG2Af8BGwFCAYgB/wENARsBSwH/AQ0BGwFQ
|
Ab0B/wEAAQgBUwH/AQMBEwFMAf8BKAGdAb0B/wEPATEBjgH/AgUBXQH/EwABAQMPARQDOwFjA14B2AT/
|
||||||
Af8BDQEbAVAB/wENARsBUAH/AQ0BGwFKAf8BDQEbAUoB/wENARsBSgH/AQ0BGwFFAf8BBgEVAUQB/wEG
|
AfsD/wHzA/8B7gP/AeID/wHRA/8BxgH+Av8BxAH8Av8B1gP/AecB8QH4Af8BVwJcAd8DRAF5AxgBIgME
|
||||||
ARUBRAH/AQYBFQFEAf8BBgEVAUQB/wEGARUBRAH/AQYBFQFEAf8BBgEVAUQB/wEGARUBRAH/AQ0BGwFF
|
AQZTAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JAADFQH/A8cB/wMVAf8BpgEu
|
||||||
Af8BDQEcAUsB/wENAR0BTAH/AQ0BHQFMAf8BDQEdAVIB/wENAR0BUgH/AQ0BHAFRAf8BDQEbAUsB/wEZ
|
AScB/wGsAS8BKAH/AawBLwEoAf8BrAEvASgB/wGsAS8BKAH/AZoBJwEgAf8BTQEXARUB/wFAAZABsgH/
|
||||||
AUIBhwH/ATABlAG1Af8BHAE+AZgB/wIVAYoB/xMAAQEDBwEKAyYBOANKAYsBWQJcAc8BcgF6AX4B+AHz
|
AZYB0gHxAf8BBQFIAaIB/wEAAUEBiwH/AQABSQGTAf8BAwFPAZoB/wEFAVEBnAH/AQIBTgGXAf8BAAFJ
|
||||||
AfgB/AH/AfID/wHmA/8B6AP/AfoD/wGoAbgBwgH+A2EB7gNVAbIDOAFcAxUBHQMFAQcDAAEBqAADHQH/
|
AZMB/wEAATwBiwH/ASoBiQG7Af8BmAHYAfMB/wEkATIBSAH/AVUBFwESAf8BqwEuAScB/wGsAS8BKAH/
|
||||||
A9cB/wMdAf8BnwEwASwB/wGkATEBLQH/AaQBMQEtAf8BpAExAS0B/wGkATEBLQH/AaQBMQEtAf8BmQEs
|
AawBLwEoAf8BrAEvASgB/wGfAS0BJgH/Ax0B/wPHAf8DFQH/AgcBhQH/ARMBMwGNAf8BKAGXAbQB/wEA
|
||||||
ASgB/wFFARkBHQH/Aa8B3AHkAf8B4gHwAfIB/wGNAaQBrwH/AUkBTwFbAf8BNwEzAUEB/wE4ATQBQgH/
|
AQ8BRAH/AQABBgFFAf8BAQEpAYwB/wECASsBkgH/AQIBKwGSAf8BAAEpAZAB/wEAASQBhgH/AQABFwFX
|
||||||
AToBNwFEAf8BVAFgAYYB/wGlAcABxQH/Ae8C+wH/AUABggGXAf8BVgEaARkB/wGjATABLAH/AaQBMQEt
|
Af8BAAEIAUcB/wIAATAB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIA
|
||||||
Af8BpAExAS0B/wGkATEBLQH/AaQBMQEtAf8BmQEvASsB/wMmAf8D1wH/Ax0B/wIWAZQB/wEbATkBmwH/
|
ATAB/wIAATEB/wEAAQEBPAH/AQABDwFXAf8BAAElAYoB/wEAAR0BhQH/AQABCAFQAf8CAAE9Af8BAAEQ
|
||||||
ATwBogHDAf8BTwG3Ac0B/wFLAbkBzQH/AUsBuQHNAf8BSQG5Ac0B/wFIAbkBzQH/AUgBuQHNAf8BSAG5
|
AUUB/wEoAZwBuQH/ARMBNAGRAf8CBwGFAf8TAAEBAw0BEgM4AVwBWAJbAcsBmAGlAa4B/gHqA/8BzQP/
|
||||||
Ac0B/wFIAbkBzQH/AUgBuQHNAf8BSAG5Ac0B/wFIAbkBzQH/AUgBuQHNAf8BSAG5Ac0B/wFIAbkBzQH/
|
AcQB/AL/AcMB+wL/AcMB+wL/AcYB/gL/AdgD/wHzAfgB/AH/A10B8ANSAakDLgFHAwwBEAMCAQNTAAH/
|
||||||
AUgBuQHNAf8BSAG5Ac0B/wFIAbkBzQH/AUsBuQHNAf8BSwG8Ac8B/wFLAb8B0gH/AUsBvwHSAf8BSwG/
|
AwAB/wMAAf8DAAH/AwAB/0QAAxUB/wPPAf8DFQH/AaMBKwElAf8BqAEsASYB/wGoASwBJgH/AagBLAEm
|
||||||
AdIB/wFLAb8B0gH/AUkBvAHPAf8BSAG5Ac0B/wFHAbYByAH/ATcBngHAAf8BGwE4AZsB/wIWAZQB/xQA
|
Af8BqAEsASYB/wGoASwBJgH/AY0BHwEaAf8BKAEaASUB/wGMAdIB8wH/AcMB8AH4Af8B1QHuAfcB/wHg
|
||||||
AwQBBQMRARcDKQE/A0QBeQFVAlYBtAFcAmEB3AFfAWQBagHzAXEBfQGKAfoBcQF9AYoB+gJdAV8B7QFb
|
AfcB/AH/AecD/wHoA/8B5gH+Av8B3QHyAfoB/wHNAe0B9wH/AbUB7wH7Af8BTgGrAc8B/wFDARMBFQH/
|
||||||
Al4B0AFQAlEBnwM2AVkDGAEhAwcBCgMBAQKsAAMdAf8D3wH/Ax0B/wGcAS0BKwH/AaEBLgEsAf8BoQEu
|
AZYBJAEeAf8BqAEsASYB/wGoASwBJgH/AagBLAEmAf8BqAEsASYB/wGdASoBJAH/Ax4B/wPPAf8DFQH/
|
||||||
ASwB/wGhAS4BLAH/AaEBLgEsAf8BoQEuASwB/wGbASsBKQH/AUsBGAEbAf8BjwGWAaEB/wE5ARYBHgH/
|
Ag0BigH/ARQBNgGYAf8BKQGVAbYB/wETAToBiAH/AQUBEwFDAf8BBQETAUgB/wEFARMBSAH/AQUBEwFI
|
||||||
AVMCGAH/AVYBGAEXAf8BgQEgAR4B/wGBASABHgH/AYEBIAEeAf8BVQEYARcB/wFQARgBGQH/AS0BIQEw
|
Af8BBQETAUIB/wEFARMBQgH/AQUBEwFCAf8BBQETAT0B/wEAAQ0BPAH/AQABDQE8Af8BAAENATwB/wEA
|
||||||
Af8BXQFhAYgB/wFVARgBFwH/AaABLQErAf8BoQEuASwB/wGhAS4BLAH/AaEBLgEsAf8BoQEuASwB/wGW
|
AQ0BPAH/AQABDQE8Af8BAAENATwB/wEAAQ0BPAH/AQABDQE8Af8BBQETAT0B/wEFARQBQwH/AQUBFQFE
|
||||||
ASwBKgH/AycB/wPfAf8DHQH/AhcBngH/ARgBHwGUAf8BJwFBAZ8B/wE6AWEBrgH/AT0BZQGrAf8BPQFl
|
Af8BBQEVAUQB/wEFARUBSgH/AQUBFQFKAf8BBQEUAUkB/wEFARMBQwH/AREBOgGHAf8BKAGUAbUB/wEU
|
||||||
AasB/wE7AWUBqwH/AToBZQGnAf8BOgFlAaYB/wE4AWIBpgH/ATQBXwGmAf8BNAFfAaIB/wE0AV8BoQH/
|
ATYBmAH/Ag0BigH/EwABAQMHAQoDJgE4A0oBiwFZAlwBzwFnAXIBdgH4AfMB+AH8Af8B8gP/AeYD/wHo
|
||||||
ATQBXwGhAf8BNAFfAaEB/wE0AV8BoQH/ATQBXwGhAf8BNAFfAaEB/wE0AV8BoQH/ATQBXwGhAf8BOAFf
|
A/8B+gP/AZgBqAGyAf4DYQHuA1UBsgM4AVwDFQEdAwUBBwMAAQFTAAH/AwAB/wMAAf8DAAH/AwAB/0QA
|
||||||
AaIB/wE4AV8BpgH/ATsBYgGmAf8BPQFlAaYB/wE9AWUBpwH/AT0BZQGrAf8BOwFlAasB/wE6AWUBqwH/
|
AxUB/wPXAf8DFQH/AZ8BKAEkAf8BpAEpASUB/wGkASkBJQH/AaQBKQElAf8BpAEpASUB/wGkASkBJQH/
|
||||||
ATcBYQGuAf8BJQFBAZ8B/wEYAR8BlAH/AhcBngH/FwABAQMEAQYDDAEQAxwBKAMxAU0DQgF1A04BmQFT
|
AZkBJAEgAf8BPQERARUB/wGvAdwB5AH/AeIB8AHyAf8BjQGkAa8B/wFBAUcBUwH/AS8BKwE5Af8BMAEs
|
||||||
AlUBrQNSAakDSwGOATwCPQFnAykBPgMUARsDBwEJAwIBA7AAA0wB8wPfAf8DNAH/AYoCJwH/AZsBKQEq
|
AToB/wEyAS8BPAH/AUwBWAGGAf8BpQHAAcUB/wHvAvsB/wE4AYIBlwH/AU4BEgERAf8BowEoASQB/wGk
|
||||||
Af8BmwEpASoB/wGbASkBKgH/AZsBKQEqAf8BmwEpASoB/wGaASgBKQH/AVABFQEWAf8BSgEVARgB/wFS
|
ASkBJQH/AaQBKQElAf8BpAEpASUB/wGkASkBJQH/AZkBJwEjAf8DHgH/A9cB/wMVAf8CDgGUAf8BEwEx
|
||||||
AhUB/wGZASgBKQH/AZoBKQEqAf8BmwEpASoB/wGbASkBKgH/AZsBKQEqAf8BmgEoASkB/wGSASUBJgH/
|
AZsB/wE0AaIBwwH/AUcBtwHNAf8BQwG5Ac0B/wFDAbkBzQH/AUEBuQHNAf8BQAG5Ac0B/wFAAbkBzQH/
|
||||||
AVECFQH/AUcBFQEZAf8BUgIVAf8BmgEpASoB/wGbASkBKgH/AZsBKQEqAf8BmwEpASoB/wGbASkBKgH/
|
AUABuQHNAf8BQAG5Ac0B/wFAAbkBzQH/AUABuQHNAf8BQAG5Ac0B/wFAAbkBzQH/AUABuQHNAf8BQAG5
|
||||||
AWIBJQEmAf8DPAH/A90B/wNOAfACHAGkAf8CFwGeAf8CFgGUAf8CFQGPAf8CFQGMAf8CFQGGAf8CFQGC
|
Ac0B/wFAAbkBzQH/AUABuQHNAf8BQAG5Ac0B/wFDAbkBzQH/AUMBvAHPAf8BQwG/AdIB/wFDAb8B0gH/
|
||||||
Af8CEAFkAf8CDwFkAf8CDgFhAf8CDQFeAf8CDQFcAf8CDQFcAf8CDQFcAf8CDQFcAf8CDQFcAf8CDQFc
|
AUMBvwHSAf8BQwG/AdIB/wFBAbwBzwH/AUABuQHNAf8BPwG2AcgB/wEvAZ4BwAH/ARMBMAGbAf8CDgGU
|
||||||
Af8CDQFcAf8CDQFcAf8CDQFcAf8CDQFcAf8CDQFeAf8CDgFhAf8CDwFkAf8CEAFkAf8CFQGCAf8CFQGG
|
Af8UAAMEAQUDEQEXAykBPwNEAXkBVQJWAbQBXAJhAdwDXwHzAWkBdQF6AfoBaQF1AXoB+gNdAe0BWwJe
|
||||||
Af8CFQGMAf8CFQGPAf8CFgGUAf8CFwGeAf8CHAGkAf8bAAEBAwIBAwMGAQgDDAEQAxYBHgMiATIDKgFA
|
AdABUAJRAZ8DNgFZAxgBIQMHAQoDAQECVwAB/wMAAf8DAAH/AwAB/wMAAf9EAAMVAf8D3wH/AxUB/wGc
|
||||||
AykBPgMfASwDEgEZAwoBDQMEAQYDAQECtAADVwG9A78B/wOUAf8BSAEmASgB/wGKASUBKwH/AZMBIwEq
|
ASUBIwH/AaEBJgEkAf8BoQEmASQB/wGhASYBJAH/AaEBJgEkAf8BoQEmASQB/wGbASMBIQH/AUMBEAET
|
||||||
Af8BkwEjASoB/wGTASMBKgH/AZMBIwEqAf8BkwEjASoB/wGSASMBKQH/AY4BIQEoAf8BkgEjASoB/wGT
|
Af8BjwGWAaEB/wExAQ4BFgH/AUsCEAH/AU4BEAEPAf8BgQEYARYB/wGBARgBFgH/AYEBGAEWAf8BTQEQ
|
||||||
ASMBKgH/AZMBIwEqAf8BkwEjASoB/wGTASMBKgH/AZMBIwEqAf8BkwEjASoB/wGTASMBKgH/AZIBIwEp
|
AQ8B/wFIARABEQH/ASUBGQEoAf8BVQFZAYgB/wFNARABDwH/AaABJQEjAf8BoQEmASQB/wGhASYBJAH/
|
||||||
Af8BjQEhAScB/wGSASMBKgH/AZMBIwEqAf8BkwEjASoB/wGTASMBKgH/AZMBIwEqAf8BgAEmASsB/wE9
|
AaEBJgEkAf8BoQEmASQB/wGWASQBIgH/Ax8B/wPfAf8DFQH/Ag8BngH/ARABFwGUAf8BHwE5AZ8B/wEy
|
||||||
ASUBJwH/A7QB/wO0Af8DVAGuAh8BrAH/Ah8BqQH/Ah8BpgH/AhoBpgH/AhkBpgH/AhkBowH/AhkBnwH/
|
AVkBrgH/ATUBXQGrAf8BNQFdAasB/wEzAV0BqwH/ATIBXQGnAf8BMgFdAaYB/wEwAVoBpgH/ASwBVwGm
|
||||||
AhcBngH/AhcBlwH/AhcBlwH/AhcBlgH/AhcBlgH/AhcBjgH/AhcBjgH/AhcBjgH/AhcBjgH/AhcBjgH/
|
Af8BLAFXAaIB/wEsAVcBoQH/ASwBVwGhAf8BLAFXAaEB/wEsAVcBoQH/ASwBVwGhAf8BLAFXAaEB/wEs
|
||||||
AhcBjgH/AhcBjgH/AhcBjgH/AhcBlgH/AhcBlgH/AhcBlwH/AhcBlwH/AhcBngH/AhkBnwH/AhkBowH/
|
AVcBoQH/ASwBVwGhAf8BMAFXAaIB/wEwAVcBpgH/ATMBWgGmAf8BNQFdAaYB/wE1AV0BpwH/ATUBXQGr
|
||||||
AhkBpgH/AhoBpgH/Ah8BpgH/Ah8BqQH/Ah8BrAH/JAADAQECAwMEBAQGAQgDBgEIAwQBBgMDAQQDAAEB
|
Af8BMwFdAasB/wEyAV0BqwH/AS8BWQGuAf8BHQE5AZ8B/wEQARcBlAH/Ag8BngH/FwABAQMEAQYDDAEQ
|
||||||
vAADNAFUA0wB/wPuAf8DkwH/AzMB/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMd
|
AxwBKAMxAU0DQgF1A04BmQFTAlUBrQNSAakDSwGOATwCPQFnAykBPgMUARsDBwEJAwIBA1sAAf8DAAH/
|
||||||
Af8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DPAH/A7IB/wPq
|
AwAB/wMAAf8DAAH/RAADTAHzA98B/wMsAf8BigIfAf8BmwEhASIB/wGbASEBIgH/AZsBIQEiAf8BmwEh
|
||||||
Af8DPAH/Ay0BRQIfAawB/wIfAawB/wIfAawB/wIfAawB/wIfAawB/wIfAawB/wIfAawB/wIbAagB/wIa
|
ASIB/wGbASEBIgH/AZoBIAEhAf8BSAENAQ4B/wFCAQ0BEAH/AUoCDQH/AZkBIAEhAf8BmgEhASIB/wGb
|
||||||
AaQB/wIXAaIB/wIXAZ8B/wIXAZ8B/wIXAZwB/wIXAZwB/wIXAZwB/wIXAZwB/wIXAZwB/wIXAZwB/wIX
|
ASEBIgH/AZsBIQEiAf8BmwEhASIB/wGaASABIQH/AZIBHQEeAf8BSQINAf8BPwENAREB/wFKAg0B/wGa
|
||||||
AZwB/wIXAZwB/wIXAZ8B/wIXAZ8B/wIXAaIB/wIaAacB/wIbAagB/wIfAawB/wIfAawB/wIfAawB/wIf
|
ASEBIgH/AZsBIQEiAf8BmwEhASIB/wGbASEBIgH/AZsBIQEiAf8BWgEdAR4B/wM0Af8D3QH/A04B8AIU
|
||||||
AawB/wIfAawB/wIfAawB/wIfAawB//8ABQADSgGNA0sB/wPNAf8D+QH/A/sB/wP7Af8D+wH/A/sB/wP7
|
AaQB/wIPAZ4B/wIOAZQB/wINAY8B/wINAYwB/wINAYYB/wINAYIB/wIIAVwB/wIHAVwB/wIGAVkB/wIF
|
||||||
Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7
|
AVYB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIF
|
||||||
Af8D+wH/A/sB/wPrAf8DvQH/AzYB/wNIAYcEAANIAYUCHwGsAf8CHwGsAf8CHwGsAf8CHwGsAf8CHwGs
|
AVQB/wIFAVYB/wIGAVkB/wIHAVwB/wIIAVwB/wINAYIB/wINAYYB/wINAYwB/wINAY8B/wIOAZQB/wIP
|
||||||
Af8CHwGsAf8CHwGsAf8CHgGpAf8CHAGpAf8CHAGmAf8CGAGkAf8CFwGhAf8CFwGhAf8CFwGhAf8CFwGh
|
AZ4B/wIUAaQB/xsAAQEDAgEDAwYBCAMMARADFgEeAyIBMgMqAUADKQE+Ax8BLAMSARkDCgENAwQBBgMB
|
||||||
Af8CFwGhAf8CFwGhAf8CFwGhAf8CFwGhAf8CGAGkAf8CHAGmAf8CHAGpAf8CHgGrAf8CHwGsAf8CHwGs
|
AQJfAAH/AwAB/wMAAf8DAAH/AwAB/0QAA1cBvQO/Af8DlAH/AUABHgEgAf8BigEdASMB/wGTARsBIgH/
|
||||||
Af8CHwGsAf8CHwGsAf8CHwGsAf8CHwGsAf8CHwGsAf8DSAGF/wAJAAM3AVoDWQHDAysB/AMdAf8DHQH/
|
AZMBGwEiAf8BkwEbASIB/wGTARsBIgH/AZMBGwEiAf8BkgEbASEB/wGOARkBIAH/AZIBGwEiAf8BkwEb
|
||||||
Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DHQH/
|
ASIB/wGTARsBIgH/AZMBGwEiAf8BkwEbASIB/wGTARsBIgH/AZMBGwEiAf8BkwEbASIB/wGSARsBIQH/
|
||||||
Ax0B/wMdAf8DHQH/Ax0B/wMdAf8DVQHqA1QBrgMtAUUIAAMHAQoDSAGFAh8BrAH/Ah8BrAH/Ah8BrAH/
|
AY0BGQEfAf8BkgEbASIB/wGTARsBIgH/AZMBGwEiAf8BkwEbASIB/wGTARsBIgH/AYABHgEjAf8BNQEd
|
||||||
Ah8BrAH/Ah8BrAH/Ah8BrAH/Ah8BrAH/Ah8BrAH/Ah8BqwH/Ah4BqgH/Ah0BqgH/Ah0BqAH/Ah0BpAH/
|
AR8B/wO0Af8DtAH/A1QBrgIXAawB/wIXAakB/wIXAaYB/wISAaYB/wIRAaYB/wIRAaMB/wIRAZ8B/wIP
|
||||||
Ah0BpAH/Ah0BpAH/Ah0BpAH/Ah0BqAH/Ah0BqgH/Ah4BqgH/Ah8BqwH/Ah8BrAH/Ah8BrAH/Ah8BrAH/
|
AZ4B/wIPAZcB/wIPAZcB/wIPAZYB/wIPAZYB/wIPAY4B/wIPAY4B/wIPAY4B/wIPAY4B/wIPAY4B/wIP
|
||||||
Ah8BrAH/Ah8BrAH/Ah8BrAH/Ah8BrAH/Ah8BrAH/A0gBhQMHAQr/AAEAAUIBTQE+BwABPgMAASgDAAGA
|
AY4B/wIPAY4B/wIPAY4B/wIPAZYB/wIPAZYB/wIPAZcB/wIPAZcB/wIPAZ4B/wIRAZ8B/wIRAaMB/wIR
|
||||||
AwABIAMAAQEBAAEBBgABAhYAA/8BAAHAAgABAwQABP8EAAGAAgABAQQAAv8B+AEHDAAC/wHwAQMMAAL/
|
AaYB/wISAaYB/wIXAaYB/wIXAakB/wIXAawB/yQAAwEBAgMDBAQEBgEIAwYBCAMEAQYDAwEEAwABAWcA
|
||||||
AeABAQwAAv8BwAEBDAAC/wGAAQEMAAL/AQABAQwAAf8B/gEAAQEMAAH/AfwBAAEBDAAB/wH8AQABAQwA
|
Af8DAAH/AwAB/wMAAf8DAAH/RAADNAFUA0QB/wPuAf8DkwH/AysB/wMVAf8DFQH/AxUB/wMVAf8DFQH/
|
||||||
Af8BgAEAAQEMAAH+AgABAQwAAfgCAAEDDAAB8AIAAQcMAAHwAgABHwwAAfACAAE/DAAB8AIAAX8MAAHw
|
AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/
|
||||||
AgAB/wwAAfABAAEBAf8MAAHwAQABAwH/DAAB8AEAAQMB/wwAAfABAAEDAf8MAAHwAQABAwH/DAAB8AEA
|
AxUB/wMVAf8DNAH/A7IB/wPqAf8DNAH/Ay0BRQIXAawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB/wIX
|
||||||
AQMB/wwAAfABAAEDAf8MAAH4AQABBwH/DAAB+AEAAQ8B/wwAAfwBAAEfAf8MAAH/AYABfwH/DAAE/wQA
|
AawB/wIXAawB/wITAagB/wISAaQB/wIPAaIB/wIPAZ8B/wIPAZ8B/wIPAZwB/wIPAZwB/wIPAZwB/wIP
|
||||||
AYACAAEBBAAE/wQAAcACAAEDBAAE/wQACw==
|
AZwB/wIPAZwB/wIPAZwB/wIPAZwB/wIPAZwB/wIPAZ8B/wIPAZ8B/wIPAaIB/wISAacB/wITAagB/wIX
|
||||||
|
AawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB//8ABQADSgGNA0MB/wPNAf8D+QH/
|
||||||
|
A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/
|
||||||
|
A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wPrAf8DvQH/Ay4B/wNIAYcEAANIAYUCFwGsAf8CFwGs
|
||||||
|
Af8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFgGpAf8CFAGpAf8CFAGmAf8CEAGkAf8CDwGh
|
||||||
|
Af8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CEAGkAf8CFAGmAf8CFAGp
|
||||||
|
Af8CFgGrAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8DSAGF/wAJAAM3
|
||||||
|
AVoDWQHDAysB/AMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMV
|
||||||
|
Af8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DVQHqA1QBrgMtAUUIAAMHAQoDSAGF
|
||||||
|
AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBqwH/AhYBqgH/
|
||||||
|
AhUBqgH/AhUBqAH/AhUBpAH/AhUBpAH/AhUBpAH/AhUBpAH/AhUBqAH/AhUBqgH/AhYBqgH/AhcBqwH/
|
||||||
|
AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/A0gBhQMHAQr/AAEA
|
||||||
|
AUIBTQE+BwABPgMAASgDAAGAAwABQAMAAQEBAAEBBgABBBYAA///AP8AAwABwAIAAQMEAAj/AYACAAEB
|
||||||
|
BAAC/wH4AQcE/wgAAv8B8AEDBP8IAAL/AeABAQH/AcEC/wgAAv8BwAEBAf8BwQL/CAAC/wGAAQEB/wHB
|
||||||
|
Av8IAAL/AQABAQH/AcEC/wgAAf8B/gEAAQEB/wHBAv8IAAH/AfwBAAEBAf8CwQH/CAAB/wH8AQABAQH/
|
||||||
|
AsEB/wgAAf8BgAEAAQEB/wLBAf8IAAH+AgABAQH/AsEB/wgAAfgCAAEDAf8CwQH/CAAB8AIAAQcB4AEB
|
||||||
|
AcABBwgAAfACAAEfAeABAQHAAQcIAAHwAgABPwHgAQEBwAEHCAAB8AIAAX8B4AEBAcABBwgAAfACAAH/
|
||||||
|
AeABAQHAAQcIAAHwAQABAQL/AsEB/wgAAfABAAEDAv8CwQH/CAAB8AEAAQMC/wLBAf8IAAHwAQABAwL/
|
||||||
|
AsEB/wgAAfABAAEDAv8CwQH/CAAB8AEAAQMC/wHBAv8IAAHwAQABAwL/AcEC/wgAAfgBAAEHAv8BwQL/
|
||||||
|
CAAB+AEAAQ8C/wHBAv8IAAH8AQABHwL/AcEC/wgAAf8BgAF/Av8BwQL/CAAI/wGAAgABAQQACP8BwAIA
|
||||||
|
AQMEAAj/Cw==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
60
ThirdParty/Converter.cs
vendored
60
ThirdParty/Converter.cs
vendored
|
@ -1,7 +1,42 @@
|
||||||
namespace DutyContent.ThirdParty
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
|
namespace DutyContent.ThirdParty
|
||||||
{
|
{
|
||||||
static class Converter
|
static class Converter
|
||||||
{
|
{
|
||||||
|
public static bool TryLong(string s, out long ret)
|
||||||
|
{
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < s.Length; i++)
|
||||||
|
{
|
||||||
|
var n = s[i] - '0';
|
||||||
|
if (n < 0 || n > 9)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ret = ret * 10 + n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long ToLong(string s, long failret = 0)
|
||||||
|
{
|
||||||
|
long ret = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < s.Length; i++)
|
||||||
|
{
|
||||||
|
var n = s[i] - '0';
|
||||||
|
if (n < 0 || n > 9)
|
||||||
|
return failret;
|
||||||
|
|
||||||
|
ret = ret * 10 + n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
public static bool TryInt(string s, out int ret)
|
public static bool TryInt(string s, out int ret)
|
||||||
{
|
{
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
@ -50,7 +85,7 @@
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ushort ToUshort(string s, ushort failret=0)
|
public static ushort ToUshort(string s, ushort failret = 0)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
@ -71,9 +106,28 @@
|
||||||
return s.ToUpper().Equals("TRUE");
|
return s.ToUpper().Equals("TRUE");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float ToFloat(string s, float failret=0.0f)
|
public static float ToFloat(string s, float failret = 0.0f)
|
||||||
{
|
{
|
||||||
return float.TryParse(s, out float v) ? v : failret;
|
return float.TryParse(s, out float v) ? v : failret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Color ToColorArgb(string s, Color failret)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var i = Convert.ToInt32(s, 16);
|
||||||
|
var r = Color.FromArgb(i);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return failret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Color ToColorArgb(string s)
|
||||||
|
{
|
||||||
|
return ToColorArgb(s, Color.Transparent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
24
ThirdParty/LineDb.cs
vendored
24
ThirdParty/LineDb.cs
vendored
|
@ -10,8 +10,6 @@ namespace DutyContent.ThirdParty
|
||||||
private Dictionary<string, string> _dbstr = new Dictionary<string, string>();
|
private Dictionary<string, string> _dbstr = new Dictionary<string, string>();
|
||||||
private Dictionary<int, string> _dbint = new Dictionary<int, string>();
|
private Dictionary<int, string> _dbint = new Dictionary<int, string>();
|
||||||
|
|
||||||
public static string InvalidKey = "<invalid>";
|
|
||||||
|
|
||||||
public LineDb(string ctx, bool useintdb)
|
public LineDb(string ctx, bool useintdb)
|
||||||
{
|
{
|
||||||
LoadString(ctx, useintdb, false);
|
LoadString(ctx, useintdb, false);
|
||||||
|
@ -140,15 +138,25 @@ namespace DutyContent.ThirdParty
|
||||||
|
|
||||||
public string Get(string name)
|
public string Get(string name)
|
||||||
{
|
{
|
||||||
if (!_dbstr.TryGetValue(name, out string value))
|
return Get(name, string.Empty);
|
||||||
return name;
|
|
||||||
return value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Get(int key)
|
public string Get(int key)
|
||||||
|
{
|
||||||
|
return Get(key, string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Get(string name, string defvalue)
|
||||||
|
{
|
||||||
|
if (!_dbstr.TryGetValue(name, out string value))
|
||||||
|
return defvalue;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Get(int key, string defvalue)
|
||||||
{
|
{
|
||||||
if (!_dbint.TryGetValue(key, out string value))
|
if (!_dbint.TryGetValue(key, out string value))
|
||||||
return InvalidKey;
|
return defvalue;
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +216,7 @@ namespace DutyContent.ThirdParty
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Try(index, out string v) ? v : "";
|
return Try(index, out string v) ? v : string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +224,7 @@ namespace DutyContent.ThirdParty
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Try(key, out string v) ? v : "";
|
return Try(key, out string v) ? v : string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
84
ThirdParty/ThreadWorker.cs
vendored
Normal file
84
ThirdParty/ThreadWorker.cs
vendored
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace DutyContent.ThirdParty
|
||||||
|
{
|
||||||
|
public abstract class ThreadWorker<T>
|
||||||
|
{
|
||||||
|
protected readonly object _thread_lock = new object();
|
||||||
|
protected readonly object _sleep_lock = new object();
|
||||||
|
private Thread _thread_ptr;
|
||||||
|
|
||||||
|
protected bool IsBreak { get; private set; } = false;
|
||||||
|
|
||||||
|
protected abstract void RunThread(T context);
|
||||||
|
|
||||||
|
public void StartThread(T context, string name = null)
|
||||||
|
{
|
||||||
|
lock (_thread_lock)
|
||||||
|
{
|
||||||
|
StopThread();
|
||||||
|
_thread_ptr = CreateThread(name);
|
||||||
|
_thread_ptr.Start(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopThread()
|
||||||
|
{
|
||||||
|
lock (_thread_lock)
|
||||||
|
{
|
||||||
|
while (_thread_ptr!=null && _thread_ptr.IsAlive)
|
||||||
|
{
|
||||||
|
IsBreak = true;
|
||||||
|
lock (_sleep_lock)
|
||||||
|
Monitor.Pulse(_sleep_lock);
|
||||||
|
Monitor.Wait(_thread_lock, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
_thread_ptr = null;
|
||||||
|
IsBreak = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual Thread CreateThread(string name = null)
|
||||||
|
{
|
||||||
|
var thd = new Thread(new ParameterizedThreadStart((context) =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
RunThread((T)context);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
lock (_thread_lock)
|
||||||
|
{
|
||||||
|
_thread_ptr = null;
|
||||||
|
Monitor.PulseAll(_thread_lock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
{
|
||||||
|
IsBackground = true,
|
||||||
|
Name = !string.IsNullOrEmpty(name) ? name : GetType().FullName
|
||||||
|
};
|
||||||
|
|
||||||
|
return thd;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void SafeSleep(TimeSpan ts)
|
||||||
|
{
|
||||||
|
lock (_sleep_lock)
|
||||||
|
Monitor.Wait(_sleep_lock, ts);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void SafeSleep(int milliseconds)
|
||||||
|
{
|
||||||
|
lock (_sleep_lock)
|
||||||
|
Monitor.Wait(_sleep_lock, milliseconds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue