Reimplement Games From Old Client

This commit is contained in:
Alan Moon 2025-12-11 14:41:56 -08:00
parent 72899af1e4
commit cd77340b7c
20 changed files with 2528 additions and 472 deletions

View File

@ -42,7 +42,7 @@
lvUserList = new ListView(); lvUserList = new ListView();
ilStatusIcons = new ImageList(components); ilStatusIcons = new ImageList(components);
tpGames = new TabPage(); tpGames = new TabPage();
lvGameList = new ListView(); lvGames = new ListView();
ilGameIcons = new ImageList(components); ilGameIcons = new ImageList(components);
tpStore = new TabPage(); tpStore = new TabPage();
lvStoreItems = new ListView(); lvStoreItems = new ListView();
@ -169,7 +169,7 @@
// tpGames // tpGames
// //
tpGames.BorderStyle = BorderStyle.Fixed3D; tpGames.BorderStyle = BorderStyle.Fixed3D;
tpGames.Controls.Add(lvGameList); tpGames.Controls.Add(lvGames);
tpGames.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 0); tpGames.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 0);
tpGames.ImageKey = "Games"; tpGames.ImageKey = "Games";
tpGames.Location = new Point(4, 24); tpGames.Location = new Point(4, 24);
@ -180,23 +180,27 @@
tpGames.Text = "Games"; tpGames.Text = "Games";
tpGames.UseVisualStyleBackColor = true; tpGames.UseVisualStyleBackColor = true;
// //
// lvGameList // lvGames
// //
lvGameList.BorderStyle = BorderStyle.None; lvGames.BorderStyle = BorderStyle.None;
lvGameList.Dock = DockStyle.Fill; lvGames.Dock = DockStyle.Fill;
lvGameList.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point, 0); lvGames.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point, 0);
listViewItem1.Tag = "StockMarketGame";
listViewItem1.ToolTipText = "Stock Market"; listViewItem1.ToolTipText = "Stock Market";
listViewItem2.Tag = "GuessTheNumberGame";
listViewItem2.ToolTipText = "Guess The Number"; listViewItem2.ToolTipText = "Guess The Number";
listViewItem3.Tag = "TicTacToeGame";
listViewItem3.ToolTipText = "Tic-Tac-Toe (Multiplayer)"; listViewItem3.ToolTipText = "Tic-Tac-Toe (Multiplayer)";
lvGameList.Items.AddRange(new ListViewItem[] { listViewItem1, listViewItem2, listViewItem3 }); lvGames.Items.AddRange(new ListViewItem[] { listViewItem1, listViewItem2, listViewItem3 });
lvGameList.LargeImageList = ilGameIcons; lvGames.LargeImageList = ilGameIcons;
lvGameList.Location = new Point(3, 3); lvGames.Location = new Point(3, 3);
lvGameList.MultiSelect = false; lvGames.MultiSelect = false;
lvGameList.Name = "lvGameList"; lvGames.Name = "lvGames";
lvGameList.Size = new Size(362, 539); lvGames.Size = new Size(362, 539);
lvGameList.SmallImageList = ilGameIcons; lvGames.SmallImageList = ilGameIcons;
lvGameList.TabIndex = 0; lvGames.TabIndex = 0;
lvGameList.UseCompatibleStateImageBehavior = false; lvGames.UseCompatibleStateImageBehavior = false;
lvGames.DoubleClick += lvGames_DoubleClick;
// //
// ilGameIcons // ilGameIcons
// //
@ -278,7 +282,7 @@
private TabPage tpUsers; private TabPage tpUsers;
private ListView lvUserList; private ListView lvUserList;
private TabPage tpGames; private TabPage tpGames;
private ListView lvGameList; private ListView lvGames;
private ImageList ilTabIcons; private ImageList ilTabIcons;
private ImageList ilStatusIcons; private ImageList ilStatusIcons;
private TableLayoutPanel tlpContactsList; private TableLayoutPanel tlpContactsList;

View File

@ -1,5 +1,6 @@
using Krypton.Toolkit; using Krypton.Toolkit;
using qtcnet_client.Factories; using qtcnet_client.Factories;
using qtcnet_client.Forms.Games;
using QtCNETAPI.Schema; using QtCNETAPI.Schema;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -17,11 +18,14 @@ namespace qtcnet_client.Controls
public ListViewItem? SelectedUser { get; set; } public ListViewItem? SelectedUser { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public ListViewItem? SelectedStoreItem { get; set; } public ListViewItem? SelectedStoreItem { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public ListViewItem? SelectedGameItem { get; set; }
public event EventHandler? OnContactControlDoubleClicked; public event EventHandler? OnContactControlDoubleClicked;
public event EventHandler? OnUserItemDoubleClicked; public event EventHandler? OnUserItemDoubleClicked;
public event EventHandler? OnRoomControlDoubleClicked; public event EventHandler? OnRoomControlDoubleClicked;
public event EventHandler? OnStoreItemDoubleClicked; public event EventHandler? OnStoreItemDoubleClicked;
public event EventHandler? OnGameItemDoubleClicked;
private ImageFactory _imgFactory; private ImageFactory _imgFactory;
public MainTabControl(ImageFactory imageFactory) public MainTabControl(ImageFactory imageFactory)
@ -203,5 +207,18 @@ namespace qtcnet_client.Controls
} }
} }
} }
private void lvGames_DoubleClick(object sender, EventArgs e)
{
if (lvGames.SelectedItems.Count > 0)
{
ListViewItem? lvi = lvGames.SelectedItems[0];
if (lvi != null)
{
SelectedGameItem = lvi;
OnGameItemDoubleClicked?.Invoke(this, EventArgs.Empty);
}
}
}
} }
} }

View File

@ -124,91 +124,91 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAuBMAAAJNU0Z0AUkBTAIBAQQC SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAshMAAAJNU0Z0AUkBTAIBAQQB
AAEBAQABAQEQAQABEAEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAUADAAEgAwABAQEAASAGAAEg/wD/ AAEYAQEBGAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wAuAAMGAQcDNAFUA1EBogNeAdIDWgHpA2AB6ANdAdED AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AC4AAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B
UAGfAzEBTQMFAQYYAAMGAQcDNAFUA1EBogNeAdIDWgHpA2AB6ANdAdEDUAGfAzEBTQMFAQYYAAMGAQcD 0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYB
NAFUA1EBogNeAdIDWgHpA2AB6ANdAdEDUAGfAzEBTQMFAQYYAAMGAQcDNAFUA1EBogNeAdIDWgHpA2AB BwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekD
6ANdAdEDUAGfAzEBTQMFAQYUAAMgAS0DVAGrA1sB5ANaAfUDJAH7A0QB/gNEAf4DJAH7A1MB9ANiAeED YAHoA10B0QNQAZ8DMQFNAwUBBhQAAyABLQNUAasDWwHkA1oB9QMkAfsDRwH+A0cB/gMkAfsDUwH0A2IB
UQGhAx4BKhAAAyABLQNUAasDWwHkAVcBWgFXAfUBIQFeASEB+wEgAWABIAH+ASABYAEgAf4BIQFeASEB 4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQDWgH1ASEBXgEhAfsBIwFjASMB/gEjAWMBIwH+ASEBXgEhAfsD
+wNTAfQDYgHhA1EBoQMeASoQAAMgAS0DVAGrA1sB5AFXAloB9QEhAl4B+wEgAmAB/gEgAmAB/gEhAl4B UwH0A2IB4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQDWgH1ASECXgH7ASMCYwH+ASMCYwH+ASECXgH7A1MB
+wNTAfQDYgHhA1EBoQMeASoQAAMgAS0DVAGrA1sB5AJXAVoB9QIhAV4B+wIgAWAB/gIgAWAB/gIhAV4B 9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkA1oB9QIhAV4B+wIjAWMB/gIjAWMB/gIhAV4B+wNTAfQD
+wNTAfQDYgHhA1EBoQMeASoMAAMbASUDWAG9A1oB8gNIAf4DMAH/AzkB/wM8Af8DNgH/AyoB/wMkAf8D YgHhA1EBoQMeASoMAAMbASUDWAG9A1oB8gNLAf4DMAH/AzkB/wM8Af8DNgH/AyoB/wMkAf8DQAH9A14B
QAH9A14B8ANWAbIDGgEjCAADGwElA1gBvQNaAfIBIAFoASAB/gEAAVcBAAH/AQABZwEAAf8BAAFsAQAB 8ANWAbIDGgEjCAADGwElA1gBvQNaAfIBIwFrASMB/gEAAVcBAAH/AQABZwEAAf8BAAFsAQAB/wEAAWEB
/wEAAWEBAAH/AQABTAEAAf8BAAFAAQAB/wNAAf0DXgHwA1YBsgEZARoBGQEjCAADGwElA1gBvQNaAfIB AAH/AQABTAEAAf8BAAFAAQAB/wNAAf0DXgHwA1YBsgEZARoBGQEjCAADGwElA1gBvQNaAfIBIwJrAf4B
IAJoAf4BAAJXAf8BAAJnAf8BAAJsAf8BAAJhAf8BAAJMAf8BAAJAAf8DQAH9A14B8ANWAbIBGQIaASMI AAJXAf8BAAJnAf8BAAJsAf8BAAJhAf8BAAJMAf8BAAJAAf8DQAH9A14B8ANWAbIBGQIaASMIAAMbASUD
AAMbASUDWAG9A1oB8gIgAWgB/gIAAVcB/wIAAWcB/wIAAWwB/wIAAWEB/wIAAUwB/wIAAUAB/wNAAf0D WAG9A1oB8gIjAWsB/gIAAVcB/wIAAWcB/wIAAWwB/wIAAWEB/wIAAUwB/wIAAUAB/wNAAf0DXgHwA1YB
XgHwA1YBsgIZARoBIwQAAwMBBANSAaUDYAHzA0kB/wNVAf8DZQH/A3EB/wN1Af8DcQH/A2QB/wNMAf8D sgIZARoBIwQAAwMBBANSAaUDYAHzA0kB/wNVAf8DZQH/A3EB/wN1Af8DcQH/A2QB/wNMAf8DMQH/A0cB
MQH/A0QB/gNiAe4DUAGaAwMBBAMDAQQBUgFTAVIBpQFgAW8BYAHzAQABggEAAf8BAAGZAQAB/wEAAbYB /gNiAe4DUAGaAwMBBAMDAQQBUgFTAVIBpQFgAW8BYAHzAQABggEAAf8BAAGZAQAB/wEAAbYBAAH/AQAB
AAH/AQABzAEAAf8BAAHTAQAB/wEAAcsBAAH/AQABswEAAf8BAAGIAQAB/wEAAVcBAAH/ASABYAEgAf4D zAEAAf8BAAHTAQAB/wEAAcsBAAH/AQABswEAAf8BAAGIAQAB/wEAAVcBAAH/ASMBYwEjAf4DYgHuA1AB
YgHuA1ABmgMDAQQDAwEEAVICUwGlAWACbwHzAQACggH/AQACmQH/AQACtgH/AQACzAH/AQAC0wH/AQAC mgMDAQQDAwEEAVICUwGlAWACbwHzAQACggH/AQACmQH/AQACtgH/AQACzAH/AQAC0wH/AQACywH/AQAC
ywH/AQACswH/AQACiAH/AQACVwH/ASACYAH+A2IB7gNQAZoDAwEEAwMBBAJSAVMBpQJgAW8B8wIAAYIB swH/AQACiAH/AQACVwH/ASMCYwH+A2IB7gNQAZoDAwEEAwMBBAJSAVMBpQJgAW8B8wIAAYIB/wIAAZkB
/wIAAZkB/wIAAbYB/wIAAcwB/wIAAdMB/wIAAcsB/wIAAbMB/wIAAYgB/wIAAVcB/wIgAWAB/gNiAe4D /wIAAbYB/wIAAcwB/wIAAdMB/wIAAcsB/wIAAbMB/wIAAYgB/wIAAVcB/wIjAWMB/gNiAe4DUAGaAwMB
UAGaAwMBBAMtAUQDYAHoA4AB/gNuAf8DewH/A4UB/wOKAf8DjAH/A4oB/wOFAf8DdgH/A1cB/wMyAf8D BAMtAUQDYAHoA4AB/gNuAf8DewH/A4UB/wOKAf8DjAH/A4oB/wOFAf8DdgH/A1cB/wMyAf8DQAH9A14B
QAH9A14B3QMqAT8DLQFEAWABaQFgAegBIAGAASAB/gEAAcYBAAH/AQAB3AEAAf8BAAHuAQAB/wEAAfgB 3QMqAT8DLQFEAWABaQFgAegBIwGAASMB/gEAAcYBAAH/AQAB3AEAAf8BAAHuAQAB/wEAAfgBAAH/AQAB
AAH/AQAB+wEAAf8BAAH5AQAB/wEAAe8BAAH/AQAB1AEAAf8BAAGcAQAB/wEAAVoBAAH/A0AB/QNeAd0D +wEAAf8BAAH5AQAB/wEAAe8BAAH/AQAB1AEAAf8BAAGcAQAB/wEAAVoBAAH/A0AB/QNeAd0DKgE/Ay0B
KgE/Ay0BRAFgAmkB6AEgAoAB/gEAAsYB/wEAAtwB/wEAAu4B/wEAAvgB/wEAAvsB/wEAAvkB/wEAAu8B RAFgAmkB6AEjAoAB/gEAAsYB/wEAAtwB/wEAAu4B/wEAAvgB/wEAAvsB/wEAAvkB/wEAAu8B/wEAAtQB
/wEAAtQB/wEAApwB/wEAAloB/wNAAf0DXgHdAyoBPwMtAUQCYAFpAegCIAGAAf4CAAHGAf8CAAHcAf8C /wEAApwB/wEAAloB/wNAAf0DXgHdAyoBPwMtAUQCYAFpAegCIwGAAf4CAAHGAf8CAAHcAf8CAAHuAf8C
AAHuAf8CAAH4Af8CAAH7Af8CAAH5Af8CAAHvAf8CAAHUAf8CAAGcAf8CAAFaAf8DQAH9A14B3QMqAT8D AAH4Af8CAAH7Af8CAAH5Af8CAAHvAf8CAAHUAf8CAAGcAf8CAAFaAf8DQAH9A14B3QMqAT8DTgGVA3cB
TgGVA3cB+AN/Af8DhQH/A4oB/wONAf8DjgH/A44B/wOOAf8DjQH/A4kB/wN3Af8DTQH/AyUB/wNaAfID +AN/Af8DhQH/A4oB/wONAf8DjgH/A44B/wOOAf8DjQH/A4kB/wN3Af8DTQH/AyUB/wNaAfIDSgGLA04B
SgGLA04BlQFLAXwBSwH4AQAB5QEAAf8BAAHvAQAB/wEAAfgBAAH/AQAB/QEAAf8BAAH/AQAB/wEAAf8B lQFRAXwBUQH4AQAB5QEAAf8BAAHvAQAB/wEAAfgBAAH/AQAB/QEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
AAH/AQAB/wEAAf8BAAH+AQAB/wEAAfYBAAH/AQAB1QEAAf8BAAGLAQAB/wEAAUEBAAH/A1oB8gNKAYsD /wEAAf8BAAH+AQAB/wEAAfYBAAH/AQAB1QEAAf8BAAGLAQAB/wEAAUEBAAH/A1oB8gNKAYsDTgGVAVEC
TgGVAUsCfAH4AQAC5QH/AQAC7wH/AQAC+AH/AQAC/QH/AQAD/wEAA/8BAAP/AQAC/gH/AQAC9gH/AQAC fAH4AQAC5QH/AQAC7wH/AQAC+AH/AQAC/QH/AQAD/wEAA/8BAAP/AQAC/gH/AQAC9gH/AQAC1QH/AQAC
1QH/AQACiwH/AQACQQH/A1oB8gNKAYsDTgGVAksBfAH4AgAB5QH/AgAB7wH/AgAB+AH/AgAB/QH/AgAC iwH/AQACQQH/A1oB8gNKAYsDTgGVAlEBfAH4AgAB5QH/AgAB7wH/AgAB+AH/AgAB/QH/AgAC/wIAAv8C
/wIAAv8CAAL/AgAB/gH/AgAB9gH/AgAB1QH/AgABiwH/AgABQQH/A1oB8gNKAYsDXwHTA34B/AOTAf8D AAL/AgAB/gH/AgAB9gH/AgAB1QH/AgABiwH/AgABQQH/A1oB8gNKAYsDXwHTA34B/AOTAf8DjgH/A40B
jgH/A40B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wOFAf8DZwH/AzQB/wNBAfkDWgHEAVsBXwFbAdMB /wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wOFAf8DZwH/AzQB/wNBAfkDWgHEAVsBXwFbAdMBKwGSASsB
KwGbASsB/AEOAfsBDgH/AQMB/QEDAf8BAAH+AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8B /AEOAfsBDgH/AQMB/QEDAf8BAAH+AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
AAH/AQAB/wEAAf8BAAH9AQAB/wEAAe8BAAH/AQABuQEAAf8BAAFdAQAB/wNBAfkDWgHEAVsCXwHTASsC /wEAAf8BAAH9AQAB/wEAAe8BAAH/AQABuQEAAf8BAAFdAQAB/wNBAfkDWgHEAVsCXwHTASsCkgH8AQ4C
mwH8AQ4C+wH/AQMC/QH/AQAC/gH/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8BAALvAf8BAAK5Af8B +wH/AQMC/QH/AQAC/gH/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8BAALvAf8BAAK5Af8BAAJdAf8D
AAJdAf8DQQH5A1oBxAJbAV8B0wIrAZsB/AIOAfsB/wIDAf0B/wIAAf4B/wIAAv8CAAL/AgAC/wIAAv8C QQH5A1oBxAJbAV8B0wIrAZIB/AIOAfsB/wIDAf0B/wIAAf4B/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB
AAL/AgAB/QH/AgAB7wH/AgABuQH/AgABXQH/A0EB+QNaAcQDbgH1A4AB/gOfAf8DkwH/A48B/wOOAf8D /QH/AgAB7wH/AgABuQH/AgABXQH/A0EB+QNaAcQDbgH1A4AB/gOfAf8DkwH/A48B/wOOAf8DjgH/A44B
jgH/A44B/wOOAf8DjgH/A44B/wOLAf8DdwH/A0gB/wNAAf0DYgHhAVoBbgFaAfUBRAG/AUQB/gEnAf8B /wOOAf8DjgH/A44B/wOLAf8DdwH/A0gB/wNAAf0DYgHhAVoBbgFaAfUBRwG5AUcB/gEnAf8BJwH/AQsB
JwH/AQsB/wELAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8B /wELAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
AAH/AQAB/wEAAfkBAAH/AQAB1gEAAf8BAAGBAQAB/wNAAf0DYgHhAVoCbgH1AUQCvwH+AScD/wELA/8B /wEAAfkBAAH/AQAB1gEAAf8BAAGBAQAB/wNAAf0DYgHhAVoCbgH1AUcCuQH+AScD/wELA/8BAQP/AQAD
AQP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC+QH/AQAC1gH/AQACgQH/A0AB/QNiAeECWgFuAfUC /wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC+QH/AQAC1gH/AQACgQH/A0AB/QNiAeECWgFuAfUCRwG5Af4C
RAG/Af4CJwL/AgsC/wIBAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH5Af8CAAHWAf8CAAGBAf8D JwL/AgsC/wIBAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH5Af8CAAHWAf8CAAGBAf8DQAH9A2IB
QAH9A2IB4QNjAfYDgAH+A6sB/wOZAf8DkAH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wN/Af8D 4QNjAfYDgAH+A6sB/wOZAf8DkAH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wN/Af8DVQH/A0AB
VQH/A0AB/QNeAeIBSAFyAUgB9gFnAb8BZwH+AUIB/wFCAf8BGQH/ARkB/wEEAf8BBAH/AQAB/wEAAf8B /QNeAeIBSAFtAUgB9gFqAbkBagH+AUIB/wFCAf8BGQH/ARkB/wEEAf8BBAH/AQAB/wEAAf8BAAH/AQAB
AAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHkAQAB/wEAAZgB /wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHkAQAB/wEAAZgBAAH/A0AB
AAH/A0AB/QNeAeIBSAJyAfYBZwK/Af4BQgP/ARkD/wEEA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAA/8B /QNeAeIBSAJtAfYBagK5Af4BQgP/ARkD/wEEA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8B
AAL9Af8BAALkAf8BAAKYAf8DQAH9A14B4gJIAXIB9gJnAb8B/gJCAv8CGQL/AgQC/wIAAv8CAAL/AgAC AALkAf8BAAKYAf8DQAH9A14B4gJIAW0B9gJqAbkB/gJCAv8CGQL/AgQC/wIAAv8CAAL/AgAC/wIAAv8C
/wIAAv8CAAL/AgAC/wIAAf0B/wIAAeQB/wIAAZgB/wNAAf0DXgHiA2EB1gN+AfwDuAH/A6MB/wOTAf8D AAL/AgAC/wIAAf0B/wIAAeQB/wIAAZgB/wNAAf0DXgHiA2EB1gN+AfwDuAH/A6MB/wOTAf8DjgH/A44B
jgH/A44B/wOOAf8DjgH/A44B/wOOAf8DjQH/A4IB/wNcAf8DTQH6A1oBxwFcAWEBXAHWAWQBoQFkAfwB /wOOAf8DjgH/A44B/wOOAf8DjQH/A4IB/wNcAf8DTQH6A1oBxwFcAWEBXAHWAWQBmAFkAfwBXwH/AV8B
XwH/AV8B/wEvAf8BLwH/AQwB/wEMAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8B /wEvAf8BLwH/AQwB/wEMAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
AAH/AQAB/wEAAf8BAAH+AQAB/wEAAeoBAAH/AQABpQEAAf8BNAFNATQB+gNaAccBXAJhAdYBZAKhAfwB /wEAAf8BAAH+AQAB/wEAAeoBAAH/AQABpQEAAf8BOgFNAToB+gNaAccBXAJhAdYBZAKYAfwBXwP/AS8D
XwP/AS8D/wEMA/8BAQP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL+Af8BAALqAf8BAAKlAf8BNAJNAfoD /wEMA/8BAQP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL+Af8BAALqAf8BAAKlAf8BOgJNAfoDWgHHAlwB
WgHHAlwBYQHWAmQBoQH8Al8C/wIvAv8CDAL/AgEC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB/gH/AgAB YQHWAmQBmAH8Al8C/wIvAv8CDAL/AgEC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB/gH/AgAB6gH/AgAB
6gH/AgABpQH/AjQBTQH6A1oBxwNQAZoDgAH5A8UB/wOyAf8DnAH/A5EB/wOOAf8DjgH/A44B/wOOAf8D pQH/AjoBTQH6A1oBxwNQAZoDewH5A8UB/wOyAf8DnAH/A5EB/wOOAf8DjgH/A44B/wOOAf8DjwH/A44B
jwH/A44B/wODAf8DYAH/A1oB8gNMAZADUAGaAWoBiQFqAfkBfAH/AXwB/wFRAf8BUQH/AR8B/wEfAf8B /wODAf8DYAH/A1oB8gNMAZADUAGaAWoBhgFqAfkBfAH/AXwB/wFRAf8BUQH/AR8B/wEfAf8BBwH/AQcB
BwH/AQcB/wEBAf8BAQH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQIB/wECAf8BAgH+AQIB/wEAAesB /wEBAf8BAQH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQIB/wECAf8BAgH+AQIB/wEAAesBAAH/AQAB
AAH/AQABrQEAAf8BWgFrAVoB8gNMAZADUAGaAWoCiQH5AXwD/wFRA/8BHwP/AQcD/wEBA/8BAAP/AQAD rQEAAf8BWgFrAVoB8gNMAZADUAGaAWoChgH5AXwD/wFRA/8BHwP/AQcD/wEBA/8BAAP/AQAD/wEAA/8B
/wEAA/8BAgP/AQIC/gH/AQAC6wH/AQACrQH/AVoCawHyA0wBkANQAZoCagGJAfkCfAL/AlEC/wIfAv8C AgP/AQIC/gH/AQAC6wH/AQACrQH/AVoCawHyA0wBkANQAZoCagGGAfkCfAL/AlEC/wIfAv8CBwL/AgEC
BwL/AgEC/wIAAv8CAAL/AgAC/wICAv8CAgH+Af8CAAHrAf8CAAGtAf8CWgFrAfIDTAGQAy8BSQNsAesD /wIAAv8CAAL/AgAC/wICAv8CAgH+Af8CAAHrAf8CAAGtAf8CWgFrAfIDTAGQAy8BSQNsAesDigH+A8YB
kAH+A8YB/wOuAf8DnAH/A5MB/wOQAf8DjwH/A5AB/wOTAf8DkwH/A4UB/wNGAf0DYAHgAy0BRQMvAUkD /wOuAf8DnAH/A5MB/wOQAf8DjwH/A5AB/wOTAf8DkwH/A4UB/wNDAf0DYAHgAy0BRQMvAUkDbAHrAYAB
bAHrAYABvwGAAf4BfwH/AX8B/wFJAf8BSQH/AR8B/wEfAf8BDAH/AQwB/wEFAf8BBQH/AQMB/wEDAf8B uQGAAf4BfwH/AX8B/wFJAf8BSQH/AR8B/wEfAf8BDAH/AQwB/wEFAf8BBQH/AQMB/wEDAf8BBQH/AQUB
BQH/AQUB/wEKAf8BCgH/AQoB/gEKAf8BAQHtAQEB/wFAAbYBQAH9AWABZgFgAeADLQFFAy8BSQNsAesB /wEKAf8BCgH/AQoB/gEKAf8BAQHtAQEB/wFAAbYBQAH9AWABZgFgAeADLQFFAy8BSQNsAesBgAK5Af4B
gAK/Af4BfwP/AUkD/wEfA/8BDAP/AQUD/wEDA/8BBQP/AQoD/wEKAv4B/wEBAu0B/wFAArYB/QFgAmYB fwP/AUkD/wEfA/8BDAP/AQUD/wEDA/8BBQP/AQoD/wEKAv4B/wEBAu0B/wFAArYB/QFgAmYB4AMtAUUD
4AMtAUUDLwFJA2wB6wKAAb8B/gJ/Av8CSQL/Ah8C/wIMAv8CBQL/AgMC/wIFAv8CCgL/AgoB/gH/AgEB LwFJA2wB6wKAAbkB/gJ/Av8CSQL/Ah8C/wIMAv8CBQL/AgMC/wIFAv8CCgL/AgoB/gH/AgEB7QH/AkAB
7QH/AkABtgH9AmABZgHgAy0BRQMDAQQDVgGuA24B9QPZAf8DywH/A7cB/wOnAf8DnQH/A5oB/wOcAf8D tgH9AmABZgHgAy0BRQMDAQQDVgGuA24B9QPZAf8DywH/A7cB/wOnAf8DnQH/A5oB/wOcAf8DnwH/A5sB
nwH/A5sB/wOJAf8DaAHwA1IBowMDAQQDAwEEA1YBrgNuAfUBqAH/AagB/wGJAf8BiQH/AVwB/wFcAf8B /wOJAf8DaAHwA1IBowMDAQQDAwEEA1YBrgNuAfUBqAH/AagB/wGJAf8BiQH/AVwB/wFcAf8BNwH/ATcB
NwH/ATcB/wEiAf8BIgH/ARsB/wEbAf8BHwH/AR8B/wEmAf8BJgH/AR0B/wEdAf8BBQHzAQUB/wFeAWgB /wEiAf8BIgH/ARsB/wEbAf8BHwH/AR8B/wEmAf8BJgH/AR0B/wEdAf8BBQHzAQUB/wFeAWgBXgHwA1IB
XgHwA1IBowMDAQQDAwEEA1YBrgNuAfUBqAP/AYkD/wFcA/8BNwP/ASID/wEbA/8BHwP/ASYD/wEdA/8B owMDAQQDAwEEA1YBrgNuAfUBqAP/AYkD/wFcA/8BNwP/ASID/wEbA/8BHwP/ASYD/wEdA/8BBQLzAf8B
BQLzAf8BXgJoAfADUgGjAwMBBAMDAQQDVgGuA24B9QKoAv8CiQL/AlwC/wI3Av8CIgL/AhsC/wIfAv8C XgJoAfADUgGjAwMBBAMDAQQDVgGuA24B9QKoAv8CiQL/AlwC/wI3Av8CIgL/AhsC/wIfAv8CJgL/Ah0C
JgL/Ah0C/wIFAfMB/wJeAWgB8ANSAaMDAwEEBAADHAEnA10BxwNtAfYDnwH+A9cB/wPMAf8DwgH/A7sB /wIFAfMB/wJeAWgB8ANSAaMDAwEEBAADHAEnA10BxwNnAfYDmQH+A9cB/wPMAf8DwgH/A7sB/wO3Af8D
/wO3Af8DsQH/A4AB/gNoAfQDWQG8AxsBJggAAxwBJwNdAccBYwFyAWMB9gGAAb8BgAH+AaUB/wGlAf8B sQH/A4AB/gNoAfQDWQG8AxsBJggAAxwBJwNdAccBYwFtAWMB9gGAAbkBgAH+AaUB/wGlAf8BiwH/AYsB
iwH/AYsB/wF0Af8BdAH/AWYB/wFmAf8BXAH/AVwB/wFOAf8BTgH/AVABvwFQAf4BUwFrAVMB9AFXAVkB /wF0Af8BdAH/AWYB/wFmAf8BXAH/AVwB/wFOAf8BTgH/AVMBuQFTAf4BUwFoAVMB9AFXAVkBVwG8AxsB
VwG8AxsBJggAAxwBJwNdAccBYwJyAfYBgAK/Af4BpQP/AYsD/wF0A/8BZgP/AVwD/wFOA/8BUAK/Af4B JggAAxwBJwNdAccBYwJtAfYBgAK5Af4BpQP/AYsD/wF0A/8BZgP/AVwD/wFOA/8BUwK5Af4BUwJoAfQB
UwJrAfQBVwJZAbwDGwEmCAADHAEnA10BxwJjAXIB9gKAAb8B/gKlAv8CiwL/AnQC/wJmAv8CXAL/Ak4C VwJZAbwDGwEmCAADHAEnA10BxwJjAW0B9gKAAbkB/gKlAv8CiwL/AnQC/wJmAv8CXAL/Ak4C/wJTAbkB
/wJQAb8B/gJTAWsB9AJXAVkBvAMbASYMAAMhATADWQG2A2IB7gN9AfoDvgH9A9QB/wPMAf8DvgH9A3kB /gJTAWgB9AJXAVkBvAMbASYMAAMhATADWQG2A2IB7gN9AfoDvgH9A9QB/wPMAf8DvgH9A3MB+QNsAesD
+QNsAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAX0BigF9AfoBrgG+Aa4B/QGfAf8BnwH/AYwB/wGMAf8B VQGsAx8BLBAAAyEBMANZAbYDYgHuAX0BgQF9AfoBrgG+Aa4B/QGfAf8BnwH/AYwB/wGMAf8BUwG+AVMB
VgG+AVYB/QFoAYkBaAH5AWEBbAFhAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAX0CigH6Aa4CvgH9AZ8D /QFoAYYBaAH5AWEBbAFhAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAX0CgQH6Aa4CvgH9AZ8D/wGMA/8B
/wGMA/8BVgK+Af0BaAKJAfkBYQJsAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAn0BigH6Aq4BvgH9Ap8C UwK+Af0BaAKGAfkBYQJsAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAn0BgQH6Aq4BvgH9Ap8C/wKMAv8C
/wKMAv8CVgG+Af0CaAGJAfkCYQFsAesDVQGsAx8BLBQAAwYBBwM2AVgDVQGsA2YB5QOIAfwDiwH7A2UB UwG+Af0CaAGGAfkCYQFsAesDVQGsAx8BLBQAAwYBBwM2AVgDVQGsA2YB5QN/AfwDiAH7A2UB4gNTAacD
4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB5QF+AaEBfgH8AV8BlgFfAfsDZQHiA1MBpwMzAVED MwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB5QF+AZgBfgH8AV8BkwFfAfsDZQHiA1MBpwMzAVEDBgEHGAAD
BgEHGAADBgEHAzYBWANVAawDZgHlAX4CoQH8AV8ClgH7A2UB4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgD BgEHAzYBWANVAawDZgHlAX4CmAH8AV8CkwH7A2UB4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB
VQGsA2YB5QJ+AaEB/AJfAZYB+wNlAeIDUwGnAzMBUQMGAQcMAAFCAU0BPgcAAT4DAAEoAwABQAMAASAD 5QJ+AZgB/AJfAZMB+wNlAeIDUwGnAzMBUQMGAQcMAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQAB
AAEBAQABAQYAAQEWAAP/gQAB4AEHAeABBwHgAQcB4AEHAcABAwHAAQMBwAEDAcABAwGAAQEBgAEBAYAB AQYAAQEWAAP/gQAB4AEHAeABBwHgAQcB4AEHAcABAwHAAQMBwAEDAcABAwGAAQEBgAEBAYABAQGAAQFQ
AQGAAQFQAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBws= AAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBws=
</value> </value>
</data> </data>
<metadata name="ilGameIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ilGameIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -218,169 +218,168 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAziUAAAJNU0Z0AUkBTAIBAQMB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAlCUAAAJNU0Z0AUkBTAIBAQMB
AAFwAQABcAEAASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6 AAGIAQABiAEAASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6
AANcAecBCAEKAQAB/wMqAUAMAAMqAUADNgFXAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwD AANcAecBCAEKAQAB/wMqAUAMAAMqAUADNgFXAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwD
PwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAI7AToBYgMzAVEDGAEhVAADUwGiA1sBwCAAA1QB PwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAI7AToBYgMzAVEDGAEhVAADUwGiA1sBwCAAA1QB
pgNZAbzwAAMhATADRgGAFAABFQEfAQQB/wENARUBAAH/AQgBCgEAAf8BCAEKAQAB/wwAA0QBegNTAacC pgNZAbzwAAMhATADRgGAFAABFQEfAQQB/wENARUBAAH/AQgBCgEAAf8BCAEKAQAB/wwAA0QBegNTAacC
YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8C YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8C
YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYAFdAc4DWQG7AlABTwGbAyoBQFQAA18B0ANmAe4g YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYAFdAc4DWQG7AlABTwGbAyoBQFQAA18B0ANjAe4g
AANhAdQDYwHp5AADWgG/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB AANhAdQDYwHp5AADWgG/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB
AAH/AQgBCgEAAf8DWgG/A1oBvwFDAXQBBwH/AUcBdwEMAf8BJQFHAQAB/wEOARkBAAH/DAACSwFKAYoC AAH/AQgBCgEAAf8DWgG/A1oBvwFDAXQBBwH/AUcBdwEMAf8BJQFHAQAB/wEOARkBAAH/DAACSwFKAYoC
WgFYAb0BbwFnAVYB6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB WgFYAb0BaAFnAVwB6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB
6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB6gFvAWcBVgHqAW8B 6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB6gFoAWcBXAHqAWgB
ZwFWAeoBbQFjAVkB6QJfAVsB0wNVAa8DLgFIVAADXwHQA2YB7iAAA2EB1ANjAengAAEIAQoBAAH/ARAB ZwFcAeoBagFjAVoB6QJfAVsB0wNVAa8DLgFIVAADXwHQA2MB7iAAA2EB1ANjAengAAEIAQoBAAH/ARAB
HgEAAf8BIQFBAQAB/wEnAUsBAAH/ASYBSgEAAf8BIQFBAQAB/wEQAR4BAAH/AQgBCgEAAf8BCAEKAQAB HgEAAf8BIQFBAQAB/wEnAUsBAAH/ASYBSgEAAf8BIQFBAQAB/wEQAR4BAAH/AQgBCgEAAf8BCAEKAQAB
/wEIAQoBAAH/ASkBTgEAAf8BWgGWARAB/wFaAZwBEAH/AXMBtgEmAf8BGAEuAQAB/wwAA0kBhgJaAVgB /wEIAQoBAAH/ASkBTgEAAf8BWgGWARAB/wFaAZwBEAH/AXMBtgEmAf8BGAEuAQAB/wwAA0kBhgJaAVgB
twFnAWUBXQHjAWcBZQFdAeMBZwFlAV0B4wFnAWUBXQHjAWwBagFcAeYBdwFqAVYB7QGPAWgBQwH0AcgB twJlAWAB4wJlAWAB4wJlAWAB4wJlAWAB4wJqAWEB5gFxAWoBXAHtAYUBaAFKAfQBwgF3ASIB/AH/AXgB
dwEcAfwB/wF4AQAC/wF4AQAB/wGTAW4BQAH1AWwBagFcAeYBZwFlAV0B4wFnAWUBXQHjAWcBZQFdAeMB AAL/AXgBAAH/AYcBbgFEAfUCagFhAeYCZQFgAeMCZQFgAeMCZQFgAeMCZQFeAeICXgFbAc0CVQFTAaoC
ZwFlAV4B4gJeAVsBzQJVAVMBqgIuAS0BRlQAA18B0ANmAe4gAANhAdQDYwHp3AABCAEKAQAB/wE9AXEB LgEtAUZUAANfAdADYwHuIAADYQHUA2MB6dwAAQgBCgEAAf8BPQFxAQIB/wFMAYYBBwH/AVIBjAEIAf8B
AgH/AUwBhgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AUwBfwEPAf8B UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFMAX8BDwH/ATsBZwEIAf8BIQE0AQgB/wFTAY4B
OwFnAQgB/wEhATQBCAH/AVMBjgELAf8BWgGcARAB/wFyAbMBJwH/AVMBgQEbAf8QAAMrAUEDNgFZAkAB CwH/AVoBnAEQAf8BcgGzAScB/wFTAYEBGwH/EAADKwFBAzYBWQJAAT8BbgJAAT8BbgJAAT8BbgJAAT8B
PwFuAkABPwFuAkABPwFuAkABPwFuA0QBewJRAVABnwJdAVsBxQF5AWQBVQHuAf8BeAEAAv8BeAEAAf8C bgNEAXsCUQFQAZ8CXQFbAcUBcQFiAVgB7gH/AXgBAAL/AXgBAAH/Al8BXQHJA0UBfAJAAT8BbgJAAT8B
XwFdAckDRQF8AkABPwFuAkABPwFuAkABPwFuAz8BbQM7AWMDMwFSAxkBIlQAA18B0ANmAe4gAANhAdQD bgJAAT8BbgM/AW0DOwFjAzMBUgMZASJUAANfAdADYwHuIAADYQHUA2MB6dgAARUBKQEAAf8BSgGEAQQB
YwHp2AABFQEpAQAB/wFKAYQBBAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIB
/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVYBkAEMAf8BWgGaARAB/wFaAZwBEAH/AXIB jAEQAf8BWgGUARAB/wFWAZABDAH/AVoBmgEQAf8BWgGcARAB/wFyAakBMAH/AQgBCgEAAf8BCAEKAQAB
qQEwAf8BCAEKAQAB/wEIAQoBAAH/DAADDAEQAxEBFgMVARwDFQEcAxUBHAMVARwDIQEwAj4BPQFpAlMB /wwAAwwBEAMRARYDFQEcAxUBHAMVARwDFQEcAyEBMAI+AT0BaQJTAVIBpQFpAWYBXwHlAf8BeAEAAv8B
UgGlAW0BZgFfAeUB/wF4AQAC/wF4AQAB/wJVAVMBqgMiATEDFQEcAxUBHAMVARwDFAEbAxMBGQMQARUD eAEAAf8CVQFTAaoDIgExAxUBHAMVARwDFQEcAxQBGwMTARkDEAEVAwcBCVQAA18B0ANjAe4gAANhAdQD
BwEJVAADXwHQA2YB7iAAA2EB1ANjAenUAAEWAScBAgH/AUkBgAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIB YwHp1AABFgEnAQIB/wFJAYABBwH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAELAf8BUgGMARAB/wFSAYwBEAH/AVgBkgEQAf8BWgGUARAB /wFSAYwBCwH/AVIBjAEQAf8BUgGMARAB/wFYAZIBEAH/AVoBlAEQAf8BWgGbARAB/wFaAZwBEAH/AVwB
/wFaAZsBEAH/AVoBnAEQAf8BXAGeARIB/wE7AW0BAwH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/CAAD ngESAf8BOwFtAQMB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wgAAwUEBgQIAQoDCAEKAwgBCgMIAQoD
BQQGBAgBCgMIAQoDCAEKAwgBCgMXAR8COQE4AV0DUQGeAWcBZQFdAeMB/wF4AQAC/wF4AQAB/wNSAaMD FwEfAjkBOAFdA1EBngJlAWAB4wH/AXgBAAL/AXgBAAH/A1IBowMYASEDCAEKAwgBCgMIAQoDCAEKAwcB
GAEhAwgBCgMIAQoDCAEKAwgBCgMHAQkDBgEHAwIBA1QAA18B0ANmAe4gAANhAdQDYwHp0AADXQHfAUcB CQMGAQcDAgEDVAADXwHQA2MB7iAAA2EB1ANjAenQAANdAd8BRwGAAQMB/wFSAYwBCAH/AVIBjAEIAf8B
gAEDAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQB
/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoB EAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZgBEAH/ARYBKgEAAf8B
nAEQAf8BWgGYARAB/wEWASoBAAH/AQgBCgEAAf8BCAEKAQAB/xwAAxIBFwM1AVYDUAGaAWcBYgFgAeEB CAEKAQAB/wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARhw
/wF4AQAC/wF4AQAB/wJRAVABnwMSARhwAANfAdADZgHuIAADYQHUA2MB6dAAASwBUAEAAf8BSgGMAQAB AANfAdADYwHuIAADYQHUA2MB6dAAASwBUAEAAf8BSgGMAQAB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB
/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQ4B/wFVAZIBEAH/AVoB /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQ4B/wFVAZIBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBEAH/AVoB
nAEQAf8BWgGcARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AVgBkgEWAf8BEAEeAQAB
/wFaAZQBGAH/AVgBkgEWAf8BEAEeAQAB/wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBZwFiAWAB4QH/AXgB /wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARhwAANfAdAD
AAL/AXgBAAH/AlEBUAGfAxIBGHAAA18B0ANmAe4gAANhAdQDYwHp1AADSwGPATMBXgEAAf8BUgGMAQgB YwHuIAADYQHUA2MB6dQAA0sBjwEzAV4BAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8B
/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wF/AcABMwH/AV8BngEXAf8BIAE/AQAB/wEIAQoBAAH/AVIB fwHAATMB/wFfAZ4BFwH/ASABPwEAAf8BCAEKAQAB/wFSAYwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB
jAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZUBFwH/AVoBlAEYAf8BWgGUARgB EAH/AVoBnAEQAf8BWgGVARcB/wFaAZQBGAH/AVoBlAEYAf8BWgGUARgB/wEIAQoBAAH/AQgBCgEAAf8Y
/wFaAZQBGAH/AQgBCgEAAf8BCAEKAQAB/xgAAxIBFwM1AVYDUAGaAWcBYgFgAeEB/wF4AQAC/wF4AQAB AAMSARcDNQFWA1ABmgFkAmIB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQABAEDAwEEAwYEBwEJAwcB
/wJRAVABnwMSARgUAAQBAwMBBAMGBAcBCQMHAQkDBAEFBAIEARQAAxEBFgMhAS8DIQEvAyEBLwMhAS8D CQMEAQUEAgQBFAADEQEWAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvA2EB2QNwAfED
IQEvAyEBLwMhAS8DIQEvAyEBLwNhAdkDcAHxAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8D IQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwNiAdwDagHtAyEBLwMhAS8DIQEvAyEBLwMhAS8D
YgHcA2oB7QMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMNARG4AAFCAXsBAAH/AVIB IQEvAyEBLwMhAS8DIQEvAw0BEbgAAUIBewEAAf8BUgGMAQgB/wF7AcYBKQH/AzMBUAQAAwwBEAE5AWsB
jAEIAf8BewHGASkB/wMzAVAEAAMMARABOQFrAQAB/wFaAZwBEAH/AVoBnAEQAf8BXQGXARMB/wFWAZQB AAH/AVoBnAEQAf8BWgGcARAB/wFdAZcBEwH/AVYBlAEMAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8B
DAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB/wEpAVABAAH/AQgBCgEAAf8Y YwGcARgB/wFjAaUBFwH/ASkBUAEAAf8BCAEKAQAB/xgAAxIBFwM1AVYDUAGaAWQCYgHhAf8BeAEAAv8B
AAMSARcDNQFWA1ABmgFnAWIBYAHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAAEAgMJAQwDDwEUAxMB eAEAAf8CUQFQAZ8DEgEYFAAEAgMJAQwDDwEUAxMBGgMSARgDCgENAwQBBQQBFAADaQHoA38B/wN/Af8D
GgMSARgDCgENAwQBBQQBFAADaQHoA38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
/wN/Af8DfwH/A38B/wN/Af8DfwH/A2EBz7wAAQgBCgEAAf8MAAETASMBAAH/AVoBlAEQAf8BWgGcARAB
/wGUAdYBSgH/AQ0BEQECAf8BMQFaAQAB/wFaAZQBEgH/AVoBlAEYAf8BWgGUARgB/wFjAZwBGAH/AWMB
pQEXAf8BawGlASEB/wEQAR4BAAH/GAADEgEXAzUBVgNQAZoBZwFiAWAB4QH/AXgBAAL/AXgBAAH/AlEB
UAGfAxIBGBQAAwUBBgMdASkDMAFKAjsBPAFlAjsBPAFkAygBPAIVARYBHQMGAQgUAAM8AWQDTAGPA0wB
jwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DZwHqA3wB+ANMAY8DTAGPA0wBjwNMAY8DTAGPA0wB
jwNMAY8DTAGPA2gB7ANuAfUDTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DNQFWqAAD
XQHfAQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AzMBUAM6AWAB
SwGFAQcB/wFaAZQBEAH/AVoBnAEQAf8BOQFrAQAB/wMJAQwBEAEeAQAB/wFUAY4BEgH/AVoBlAEYAf8B
YwGcARgB/wFjAZwBGAH/AWMBpQEXAf8BcwG0ASkB/wEQAR4BAAH/GAADEgEXAzUBVgNQAZoBZwFiAWAB
4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwkBDAMzAVACTAFNAZECXQFfAckCWwFdAcoDRAF6AykB
PQMMARA8AANfAdADZgHuIAADYQHUA2MB6cwAAQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8B
CAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/ATMBXwECAf8BWgGUARAB/wFaAZwB
EAH/Aa0B5wFjAf8BEAEeAQAB/wEIAQoBAAH/ARQBJgEAAf8BVAGOARIB/wFiAZsBGAH/AWMBnAEYAf8B
YwGlARcB/wFjAaUBFwH/AWMBnAEhAf8BGAEuAQAB/xgAAxIBFwM1AVYDUAGaAWcBYgFgAeEB/wF4AQAC
/wF4AQAB/wJRAVABnwMSARgUAAMJAQsDLgFHA0gBhAJZAVwBwwJcAV8BywNJAYUDLgFHAw8BEzwAA18B
0ANmAe4gAANhAdQDYwHpyAABCAEKAQAB/wErAVIBAAH/AUEBcgEFAf8BSgGEAQYB/wFKAYQBBgH/AUoB
hAEGAf8BQgFzAQYB/wEpAVABAAH/ARABHgEAAf8BHwE6AQAB/wFVAY8BCwH/AVoBlQEQAf8BWgGcARAB
/wHWAf8BjAH/ARABHgEAAf8BGAEuAQAB/wFCAXgBAwH/AVoBlAEYAf8BYgGbARgB/wFjAZwBGAH/AWMB
pQEXAf8BYwGlARcB/wFzAbQBKQH/ARABHgEAAf8YAAMSARcDNQFWA1ABmgFnAWIBYAHhAf8BeAEAAv8B
eAEAAf8CUQFQAZ8DEgEYFAADBgEIAyQBNAM8AWYDUwGnA1gBuAJHAUgBgwMxAU0DDwEUPAADXwHQA2YB
7iAAA2EB1ANjAenEAAEoAU0BAAH/AU4BiAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB
/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZwBEAH/AWMB
pQEXAf8BQgF7AQAB/wFKAYQBBgH/AVIBjAEIAf8BWgGYARQB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB
/wFjAaUBFwH/AWMBpQEXAf8BlAHJAU0B/wQAAxABFQMaASQDIQEvAxEBFgQCBAEDEgEXAzUBVgNQAZoB
ZwFiAWAB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwMBBAMTARkDJQE2AjsBPAFkAkEBQgFyAzMB
UQMhAS8DCQEMPAADXwHQA2YB7iAAA2EB1ANjAenAAAEpAU4BAgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8B
WgGUARAB/wFaAZUBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQB
GAH/AWMBnAEYAf8BYwGcARgB/wFjAaUBFwH/AWMBpQEXAf8BYwGlARcB/wFlAaABIQH/BAADHgErAjEB
MAFMAzsBYwMiATEDBwEJAwQBBQMSARgDNgFXA1ABmgFnAWIBYAHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8D
EgEYHAADBwEJAxwBJwMjATICGQEaASMDDwEUAwQBBTwAA18B0ANmAe4gAANhAdQDYwHpvAADRgGAAU4B
iAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB
/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlwEQAf8BWgGcARAB/wFaAZwBEAH/AVoB
nAEQAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAaEBGAH/AWMBpQEXAf8BYwGlARcB
/wF4AboBLAH/AQgBCgEAAf8EAAMkATQDRQF8AloBWAG3A04BlAM/AW0DKAE7Ax8BLAM5AV4DUAGaAWcB
YgFgAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAMSARcDPAFmA0oBiQNAAW8DLgFHAw4BEjwAA18B
0ANmAe4gAANhAdQDYwHpvAABNQFeAQcB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGUARAB
/wFaAZsBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlgEWAf8BWgGUARgB/wFdAZcBGAH/AWMB
nAEYAf8BYwGlARcB/wFjAaUBFwH/AXABswEgAf8BKwFQAQQB/wgAAycBOgJTAVEBogHEAV8BIQH7AW4B
ZQFcAecCXAFaAcQCQwFCAXUDMQFNAkABPwFuAlEBUAGfAWcBZQFdAeMB/wF4AQAC/wF4AQAB/wJRAVAB
nwMSARgcAAMZASIDTgGVAlsBXgHNAlYBVwGyA0QBegMdASkDBgEIBAIEATAAA18B0ANmAe4gAANhAdQD
YwHpvAABSgGEAQYB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BZwGpARcB
/wFSAYwBCAH/AUoBhAEGAf8BSgGEAQYB/wFSAYwBEAH/AVoBlAEQAf8BWgGXARAB/wFaAZwBEAH/AVoB
nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wFfAZgBGAH/AWMBngEYAf8BYwGlARcB
/wFrAakBHQH/ASkBUAEAAf8MAAMiATEDTgGYAYwBbwFKAfMBfAFoAU8B8AFsAWoBXAHmAloBVwHCAlUB
UwGqA1MBpwJZAVcBvAF1AWwBWgHrAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADFAEbAkMBRAF3AlYB
WQG2AlsBXgHNAlYBWAGzAz8BbAMmATgDDAEPAwIBAwgAAwIBAwMNAREDDQERAw0BEQMNAREDDQERAw0B
EQMNAREDDQERAw0BEQNfAdMDZwHvAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDYgHXA2cB
6gMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMEAQWUAAFKAYQBBgH/AVIBjAEIAf8B
UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BaQGkAR4B/wEsAVABAwH/AQgBCgEAAf8BNwFhAQcB/wFSAYwB
DgH/AVIBjAEQAf8BfwHBATIB/wFbAV4BWwHTA1oBvwEvAVkBAAH/AUQBegEFAf8BUAGKAQgB/wFaAZwB
DgH/AVoBnAEQAf8BWgGcARAB/wFPAYYBEAH/AUQBdAEMAf8DWgG/EAACGgEZASMDRAF7Al0BWwHKAmMB
XwHaAW4BaQFZAegBewFnAVAB7wF1AWYBWgHsAmEBXAHWAWABXwFbAdgBjwFoAUMB9AH/AXgBAAL/AXgB
AAH/AlEBUAGfAxIBGBwAAw8BEwM0AVMDTQGSAl0BYQHPAl0BYQHUAlIBVAGoAkEBQgFyAyYBOAMUARsD
BgEIAwIBAwNaAcIDfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D
fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D
fwH/A38B/wN/Af8DYgHclAABSgGMAQAB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AWcB fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A2EBz7wAAQgB
nQEnAf8BCAEKAQAB/wEKAQ8BAAH/AUIBdwEDAf8BUgGMARAB/wFaAZwBEAH/ASUBQQEFAf8EAAM6AWAB CgEAAf8MAAETASMBAAH/AVoBlAEQAf8BWgGcARAB/wGUAdYBSgH/AQ0BEQECAf8BMQFaAQAB/wFaAZQB
CAEKAQAB/wEIAQoBAAH/BAADRgGAA0YBgANGAYAcAAMKAQ0DIgExAzQBVANEAXgCUQFQAZ8CYQFdAc8B EgH/AVoBlAEYAf8BWgGUARgB/wFjAZwBGAH/AWMBpQEXAf8BawGlASEB/wEQAR4BAAH/GAADEgEXAzUB
dwFqAVYB7QF1AWYBWgHsAXwBaAFPAfABxAFfASEB+wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBwAAwYB VgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAMFAQYDHQEpAzABSgI7ATwBZQI7ATwB
CAMYASEDMQFNAkwBTQGRAlgBWgG9Al0BYQHRAlkBXAHDAlEBUwGiAz0BZwIZARoBIwMMAQ8DQAFvA1UB ZAMoATwCFQEWAR0DBgEIFAADPAFkA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA2cB
rQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA2gB8AN9AfoDVQGtA1UBrQNVAa0DVQGtA1UB 6gN8AfgDTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNlAewDbgH1A0wBjwNMAY8DTAGPA0wB
rQNVAa0DVQGtA1UBrQNwAfEDfAH4A1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA0cB jwNMAY8DTAGPA0wBjwNMAY8DTAGPAzUBVqgAA10B3wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB
gZQAATsBbQECAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFTAY4BEAH/AQ8BGwEAAf8B AAH/AQgBCgEAAf8BCAEKAQAB/wMzAVADOgFgAUsBhQEHAf8BWgGUARAB/wFaAZwBEAH/ATkBawEAAf8D
IwFDAQAB/wFSAYwBEAH/AVIBjAEQAf8BewG9ATAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB CQEMARABHgEAAf8BVAGOARIB/wFaAZQBGAH/AWMBnAEYAf8BYwGcARgB/wFjAaUBFwH/AXMBtAEpAf8B
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/KAADAwEEAwkBCwMiATEDOAFbAk8BTgGXAl8BXAHIAW0B EAEeAQAB/xgAAxIBFwM1AVYDUAGaAWQCYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAADCQEMAzMB
ZgFfAeUBpgFvAToB9wHVAWoBHAH9Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAAEAQMCAQMDFQEcAzUB UAJMAU0BkQJdAV8ByQJbAV0BygNEAXoDKQE9AwwBEDwAA18B0ANjAe4gAANhAdQDYwHpzAABCAEKAQAB
VgJLAUwBjwJcAV8ByAJdAWMB3wJdAWcB4wJSAVMBpQM0AVMDHAEnKAADXwHQA2YB7iAAA2EB1ANjAem8 /wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgB
AAEIAQoBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFOAYIBDwH/AUoB CgEAAf8BMwFfAQIB/wFaAZQBEAH/AVoBnAEQAf8BrQHnAWMB/wEQAR4BAAH/AQgBCgEAAf8BFAEmAQAB
hAEGAf8BUgGMARAB/wFjAaUBFwH/AQgBCgEAAf8BCAEKAQAB/wETASMBAAH/AUIBcwEGAf8BIAE/AQAB /wFUAY4BEgH/AWIBmwEYAf8BYwGcARgB/wFjAaUBFwH/AWMBpQEXAf8BYwGcASEB/wEYAS4BAAH/GAAD
/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8gAAQBAwMBBAMMARADGAEgAykB EgEXAzUBVgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAMJAQsDLgFHA0gBhAJZAVwB
PQM+AWoCVwFWAbUBbQFmAV8B5QGmAW8BOgH3Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYIAAEAQMHAQkD wwJcAV8BywNJAYUDLgFHAw8BEzwAA18B0ANjAe4gAANhAdQDYwHpyAABCAEKAQAB/wErAVIBAAH/AUEB
FAEbAyoBQANDAXYDVQGvAlkBbQHpAlsBXwHQAlABUQGfAzMBUSgAA18B0ANmAe4gAANhAdQDYwHpwAAB cgEFAf8BSgGEAQYB/wFKAYQBBgH/AUoBhAEGAf8BQgFzAQYB/wEpAVABAAH/ARABHgEAAf8BHwE6AQAB
QgFzAQYB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwB /wFVAY8BCwH/AVoBlQEQAf8BWgGcARAB/wHWAf8BjAH/ARABHgEAAf8BGAEuAQAB/wFCAXgBAwH/AVoB
EAH/AUoBhAEGAf8BEAEeAQAB/wExAVoBAAH/AU0BhAENAf8BWgGcARAB/wFaAZwBEAH/AVIBjAEIAf8B lAEYAf8BYgGbARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFzAbQBKQH/ARABHgEAAf8YAAMSARcD
EAEeAQAB/wEIAQoBAAH/AQgBCgEAAf8DRgGALAADAgEDAwsBDgMgAS4DQwF2AlcBVQGxAWcBZgFgAeAB NQFWA1ABmgFkAmIB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwYBCAMkATQDPAFmA1MBpwNYAbgC
lwFjATcB9gGyAWoBKgH5AlEBUAGcAxIBFwwABAEDDAEQAxcBHwMdASgDHQEoAwwBDwgAAw8BFAImAScB RwFIAYMDMQFNAw8BFDwAA18B0ANjAe4gAANhAdQDYwHpxAABKAFNAQAB/wFOAYgBBwH/AVIBjAEIAf8B
OQJHAUgBgwJgAWcB4QJcAW4B5wNeAdICPwFAAW4oAANfAdADZgHuIAADYQHUA2MB6cQAAUkBiQEAAf8B UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFSAYwB
UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFSAYwB EAH/AVoBlAEQAf8BWgGcARAB/wFjAaUBFwH/AUIBewEAAf8BSgGEAQYB/wFSAYwBCAH/AVoBmAEUAf8B
EAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AUIBcwEGAf8B WgGUARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFjAaUBFwH/AZQByQFNAf8EAAMQARUDGgEkAyEB
CgEOAQAB/zAABAEDAwEEAwwBDwMeASoDOgFhAlkBVwG5AWgBYwFbAeQBeQFkAVUB7gJPAU4BlwMSARcM LwMRARYEAgQBAxIBFwM1AVYDUAGaAWQCYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAADAwEEAxMB
AAMCAQMDIQEvAzYBWQJCAUMBdQJBAUIBcwMeASsIAAMEAQUDDAEPAzgBXAJdAWABzgJaAXUB7AJQAXsB GQMlATYCOwE8AWQCQQFCAXIDMwFRAyEBLwMJAQw8AANfAdADYwHuIAADYQHUA2MB6cAAASkBTgECAf8B
7wNGAX8oAANfAdADZgHuIAADYQHUA2MB6cgAAToBawEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
UgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB EAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlQEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B
EAH/AVoBlAEYAf8BWgGUARgB/wFjAaUBFwH/ARkBLAEDAf84AAMCAQMDCAEKAyABLQJBAUABcQJNAUwB WgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFjAaUB
kQNQAZoCOwE6AWIDDAEPDAADAwEEAysBQQNEAXoDUwGnA1UBrQM3AVoDGAEgAwkBCwMGAQcDDQERAzkB FwH/AWUBoAEhAf8EAAMeASsCMQEwAUwDOwFjAyIBMQMHAQkDBAEFAxIBGAM2AVcDUAGaAWQCYgHhAf8B
XwJdAWEB0QJQAXsB7wJKAYwB8wJGAUcBgSgAA18B0ANmAe4gAANhAdQDYwHpzAABLAFVAQAB/wFSAYwB eAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADBwEJAxwBJwMjATICGQEaASMDDwEUAwQBBTwAA18B0ANjAe4g
CAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8B AANhAdQDYwHpvAADRgGAAU4BiAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
WgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wEhAUEBAAH/QAAEAgMHAQkDEAQVARwCFgEVAR0D CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlwEQAf8B
DwETAwIBAwwAAwMBBAMwA0sBTAGPAlsBXQHKAlsBZAHeA04BlAM0AVMDFQEcAw0BEQMeASsCQwFEAXcC WgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAaEB
XQFjAd8CUQGFAfECWQFtAekDRAF7KAADXwHQA2YB7iAAA2EB1ANjAenIAAESASIBAAH/AUwBhgEGAf8B GAH/AWMBpQEXAf8BYwGlARcB/wF4AboBLAH/AQgBCgEAAf8EAAMkATQDRQF8AloBWAG3A04BlAM/AW0D
UgGMAQgB/wFaAZwBEAH/AVABigEIAf8BUgGMARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB KAE7Ax8BLAM5AV4DUAGaAWQCYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADEgEXAzwBZgNKAYkD
EAH/AVoBnAEQAf8BWgGcAREB/wFpAasBHwH/AQgBCgEAAf9sAAMCAQMDIQEvAzoBYQNVAa0CXwFjAdoD QAFvAy4BRwMOARI8AANfAdADYwHuIAADYQHUA2MB6bwAATUBXgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIB
WgG/AlABUQGfA0QBegJBAUIBcgNJAYUCVgFXAbICVgF3Ae0CYAFkAdsCVQFXAbEDOAFbKAADXwHQA2YB jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB
7iAAA2EB1ANjAenIAAEQAR4BAAH/AUgBfQEHAf8BWQGTARMB/wFVAYgBGAH/CAABIQFBAQAB/wFCAXsB /wFaAZQBEAH/AVoBlAEQAf8BWgGbARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZYBFgH/AVoB
AAH/AVIBjAEIAf8BVQGRAQgB/wE5AWYBBAH/AVMBVQFQAe94AAMGAQgDFwEfA0QBewJZAVwBxgJbAWgB lAEYAf8BXQGXARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFwAbMBIAH/ASsBUAEEAf8IAAMnAToC
5AJDAY8B9AJVAXkB7gJVAXkB7gJRAYUB8QI3AZcB9gIcAcgB/AJZAVwBvgM+AWsDJAE0KAADXwHQA2YB UwFRAaIBugFfASEB+wFrAWUBXAHnAlwBWgHEAkMBQgF1AzEBTQJAAT8BbgJRAVABnwJlAWAB4wH/AXgB
7iAAA2EB1ANjAenQAAEeAToBAAH/nAAEAgMJAQwDKgM/AUABbgNOAZYCVgFYAbMCWQFcAcECWgFdAccC AAL/AXgBAAH/AlEBUAGfAxIBGBwAAxkBIgNOAZUCWwFeAc0CVgFXAbIDRAF6Ax0BKQMGAQgEAgQBMAAD
WgFdAccCVwFZAbkCUQFSAaQCQAFBAXEDJQE2AxMBGSgAA18B0ANmAe4gAANhAdQDYwHp/wB5AAQBAwsB XwHQA2MB7iAAA2EB1ANjAem8AAFKAYQBBgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B
DgMmATgDOQFeA0YBfQJKAUsBiwNKAYkDPgFrAyoBPwMXAR8DAgEDLAADUwGiA1oBvyAAA1QBpgNZAbuo UgGMAQgB/wFnAakBFwH/AVIBjAEIAf8BSgGEAQYB/wFKAYQBBgH/AVIBjAEQAf8BWgGUARAB/wFaAZcB
AAFCAU0BPgcAAT4DAAEoAwABgAMAASADAAEBAQABAQYAAQIWAAP/AQAD/wHHAgABBwL/Ac8B8wH/BAAC EAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AV8BmAEYAf8B
/wHPAYcCAAEHAv8BzwHzAf8EAAH/Af4BAAEHAgABBwL/Ac8B8wH/BAAB/wH8AQABBwIAAQcC/wHPAfMB YwGeARgB/wFjAaUBFwH/AWsBqQEdAf8BKQFQAQAB/wwAAyIBMQNOAZgBggFvAU8B8wF1AWgBUgHwAmoB
/wQAAf8B+AEAAQ8CAAEHAv8BzwHzAf8EAAH/AfABAAEHAgABBwL/Ac8B8wH/BAAB/wHgAQABAwIAAQcC YQHmAloBVwHCAlUBUwGqA1MBpwJZAVcBvAFvAWwBYAHrAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAAD
/wHPAfMB/wQAAf8BwAEAAQEB/AEDA/8BzwHzAf8EAAH/AcABAAEBAfwBAwP/Ac8B8wH/BAAB/wHgAgAB FAEbAkMBRAF3AlYBWQG2AlsBXgHNAlYBWAGzAz8BbAMmATgDDAEPAwIBAwgAAwIBAwMNAREDDQERAw0B
/AEDAeABHwgAAf8B/AEgAQAB/AEDAeABHwgAAf8B/gHgAQAB/AEDAeABHwgAAf8BwAIAAfwBAwHgAR8B EQMNAREDDQERAw0BEQMNAREDDQERAw0BEQNfAdMDZwHvAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0B
/wHPAfMB/wQAAf8BgAIAAfwBAwHgAR8B/wHPAfMB/wQAAf8DAAH8AQMB4AEfAf8BzwHzAf8EAAH+AgAB EQMNAREDYgHXA2cB6gMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMEAQWUAAFKAYQB
AQEAAQMB4AEfAf8BzwHzAf8EAAH8AgABAQEAAQMB+AEfAf8BzwHzAf8EAAH4AgABAQEAAQMB+AEfAf8B BgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BaQGkAR4B/wEsAVABAwH/AQgBCgEAAf8B
zwHzAf8EAAH4AgABAwEAAQMB+AEDAf8BzwHzAf8EAAH4AgABBwEAAQMB+AEDCAAB+AIAAQ8BAAEDAfgJ NwFhAQcB/wFSAYwBDgH/AVIBjAEQAf8BfwHBATIB/wFbAV4BWwHTA1oBvwEvAVkBAAH/AUQBegEFAf8B
AAH4AQABRAF/AQABAwH4CQAB+AEAAQEB/wGAAQMB+AEAAf8BzwHzAf8EAAH4AgABfwGAAQMB/AEAAf8B UAGKAQgB/wFaAZwBDgH/AVoBnAEQAf8BWgGcARAB/wFPAYYBEAH/AUQBdAEMAf8DWgG/EAACGgEZASMD
zwHzAf8EAAH8AgABfwHwAQMBgQGAAf8BzwHzAf8EAAH+AgAB/wHwAQMBgQGAAf8BzwHzAf8EAAH/AgAB RAF7Al0BWwHKAmMBXwHaAmkBXwHoAXMBZwFWAe8BcAFlAV0B7AJhAVwB1gJfAVsB2AGFAWgBSgH0Af8B
/wH8AQMBgAEAAf8BzwHzAf8EAAH/AYABAQH/Af4BAwGAAQAB/wHPAfMB/wQAAf8BAAEDA/8BgAEAAf8B eAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADDwETAzQBUwNNAZICXQFhAc8CXQFhAdQCUgFUAagCQQFCAXID
zwHzAf8EAAH/AQwBDwP/AcABAAH/Ac8B8wH/BAAB/wHfBP8BwAEAAf8BzwHzAf8EAAb/AfABAQH/Ac8B JgE4AxQBGwMGAQgDAgEDA1oBwgN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D
8wH/BAAL fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D
fwH/A38B/wN/Af8DfwH/A38B/wNiAdyUAAFKAYwBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB
jAEIAf8BZwGdAScB/wEIAQoBAAH/AQoBDwEAAf8BQgF3AQMB/wFSAYwBEAH/AVoBnAEQAf8BJQFBAQUB
/wQAAzoBYAEIAQoBAAH/AQgBCgEAAf8EAANGAYADRgGAA0YBgBwAAwoBDQMiATEDNAFUA0QBeAJRAVAB
nwJhAV0BzwFxAWoBXAHtAXABZQFdAewBdQFoAVIB8AG6AV8BIQH7Af8BeAEAAv8BeAEAAf8CUQFQAZ8D
EgEYHAADBgEIAxgBIQMxAU0CTAFNAZECWAFaAb0CXQFhAdECWQFcAcMCUQFTAaIDPQFnAhkBGgEjAwwB
DwNAAW8DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DaAHwA30B+gNVAa0DVQGtA1UB
rQNVAa0DVQGtA1UBrQNVAa0DVQGtA3AB8QN8AfgDVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UB
rQNVAa0DRwGBlAABOwFtAQIB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVMBjgEQAf8B
DwEbAQAB/wEjAUMBAAH/AVIBjAEQAf8BUgGMARAB/wF7Ab0BMAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8oAAMDAQQDCQELAyIBMQM4AVsCTwFOAZcC
XwFcAcgBaQFmAV8B5QGdAW8BQAH3AcwBZwEiAf0B/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAQBAwIB
AwMVARwDNQFWAksBTAGPAlwBXwHIAl0BYwHfAmABZQHjAlIBUwGlAzQBUwMcAScoAANfAdADYwHuIAAD
YQHUA2MB6bwAAQgBCgEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AU4B
ggEPAf8BSgGEAQYB/wFSAYwBEAH/AWMBpQEXAf8BCAEKAQAB/wEIAQoBAAH/ARMBIwEAAf8BQgFzAQYB
/wEgAT8BAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/yAABAEDAwEEAwwB
EAMYASADKQE9Az4BagJXAVYBtQFpAWYBXwHlAZ0BbwFAAfcB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgg
AAQBAwcBCQMUARsDKgFAA0MBdgNVAa8CWgFqAekCWwFfAdACUAFRAZ8DMwFRKAADXwHQA2MB7iAAA2EB
1ANjAenAAAFCAXMBBgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
EAH/AVIBjAEQAf8BSgGEAQYB/wEQAR4BAAH/ATEBWgEAAf8BTQGEAQ0B/wFaAZwBEAH/AVoBnAEQAf8B
UgGMAQgB/wEQAR4BAAH/AQgBCgEAAf8BCAEKAQAB/wNGAYAsAAMCAQMDCwEOAyABLgNDAXYCVwFVAbEC
ZgFgAeABjgFjAT8B9gGpAWoBMgH5AlEBUAGcAxIBFwwABAEDDAEQAxcBHwMdASgDHQEoAwwBDwgAAw8B
FAImAScBOQJHAUgBgwJiAWQB4QJcAWsB5wNeAdICPwFAAW4oAANfAdADYwHuIAADYQHUA2MB6cQAAUkB
iQEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB
/wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AUIB
cwEGAf8BCgEOAQAB/zAABAEDAwEEAwwBDwMeASoDOgFhAlkBVwG5AmMBWwHkAXEBYgFYAe4CTwFOAZcD
EgEXDAADAgEDAyEBLwM2AVkCQgFDAXUCQQFCAXMDHgErCAADBAEFAwwBDwM4AVwCXQFgAc4CXQFwAewC
VgFzAe8DRgF/KAADXwHQA2MB7iAAA2EB1ANjAenIAAE6AWsBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
CAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B
WgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGlARcB/wEZASwBAwH/OAADAgEDAwgBCgMgAS0CQQFAAXEC
TQFMAZEDUAGaAjsBOgFiAwwBDwwAAwMBBAMrAUEDRAF6A1MBpwNVAa0DNwFaAxgBIAMJAQsDBgEHAw0B
EQM5AV8CXQFhAdECVgFzAe8CTwGCAfMCRgFHAYEoAANfAdADYwHuIAADYQHUA2MB6cwAASwBVQEAAf8B
UgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwB
EAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BIQFBAQAB/0AABAIDBwEJAxAEFQEcAhYB
FQEdAw8BEwMCAQMMAAMDAQQDMANLAUwBjwJbAV0BygJbAWEB3gNOAZQDNAFTAxUBHAMNAREDHgErAkMB
RAF3Al0BYwHfAlYBfgHxAloBagHpA0QBeygAA18B0ANjAe4gAANhAdQDYwHpyAABEgEiAQAB/wFMAYYB
BgH/AVIBjAEIAf8BWgGcARAB/wFQAYoBCAH/AVIBjAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8B
WgGcARAB/wFaAZwBEAH/AVoBnAERAf8BaQGrAR8B/wEIAQoBAAH/bAADAgEDAyEBLwM6AWEDVQGtAl8B
YwHaA1oBvwJQAVEBnwNEAXoCQQFCAXIDSQGFAlYBVwGyAlwBcQHtAmABZAHbAlUBVwGxAzgBWygAA18B
0ANjAe4gAANhAdQDYwHpyAABEAEeAQAB/wFIAX0BBwH/AVkBkwETAf8BVQGIARgB/wgAASEBQQEAAf8B
QgF7AQAB/wFSAYwBCAH/AVUBkQEIAf8BOQFmAQQB/wJZAVYB73gAAwYBCAMXAR8DRAF7AlkBXAHGAlsB
YwHkAkoBhQH0AlgBcQHuAlgBcQHuAlYBfgHxAj8BjgH2AiIBwgH8AlkBXAG+Az4BawMkATQoAANfAdAD
YwHuIAADYQHUA2MB6dAAAR4BOgEAAf+cAAQCAwkBDAMqAz8BQAFuA04BlgJWAVgBswJZAVwBwQJaAV0B
xwJaAV0BxwJXAVkBuQJRAVIBpAJAAUEBcQMlATYDEwEZKAADXwHQA2MB7iAAA2EB1ANjAen/AHkABAED
CwEOAyYBOAM5AV4DRgF9AkoBSwGLA0oBiQM+AWsDKgE/AxcBHwMCAQMsAANTAaIDWgG/IAADVAGmA1kB
u6gAAUIBTQE+BwABPgMAASgDAAGAAwABIAMAAQEBAAEBBgABAhYAA/8BAAP/AccCAAEHAv8BzwHzAf8E
AAL/Ac8BhwIAAQcC/wHPAfMB/wQAAf8B/gEAAQcCAAEHAv8BzwHzAf8EAAH/AfwBAAEHAgABBwL/Ac8B
8wH/BAAB/wH4AQABDwIAAQcC/wHPAfMB/wQAAf8B8AEAAQcCAAEHAv8BzwHzAf8EAAH/AeABAAEDAgAB
BwL/Ac8B8wH/BAAB/wHAAQABAQH8AQMD/wHPAfMB/wQAAf8BwAEAAQEB/AEDA/8BzwHzAf8EAAH/AeAC
AAH8AQMB4AEfCAAB/wH8ASABAAH8AQMB4AEfCAAB/wH+AeABAAH8AQMB4AEfCAAB/wHAAgAB/AEDAeAB
HwH/Ac8B8wH/BAAB/wGAAgAB/AEDAeABHwH/Ac8B8wH/BAAB/wMAAfwBAwHgAR8B/wHPAfMB/wQAAf4C
AAEBAQABAwHgAR8B/wHPAfMB/wQAAfwCAAEBAQABAwH4AR8B/wHPAfMB/wQAAfgCAAEBAQABAwH4AR8B
/wHPAfMB/wQAAfgCAAEDAQABAwH4AQMB/wHPAfMB/wQAAfgCAAEHAQABAwH4AQMIAAH4AgABDwEAAQMB
+AkAAfgBAAFEAX8BAAEDAfgJAAH4AQABAQH/AYABAwH4AQAB/wHPAfMB/wQAAfgCAAF/AYABAwH8AQAB
/wHPAfMB/wQAAfwCAAF/AfABAwGBAYAB/wHPAfMB/wQAAf4CAAH/AfABAwGBAYAB/wHPAfMB/wQAAf8C
AAH/AfwBAwGAAQAB/wHPAfMB/wQAAf8BgAEBAf8B/gEDAYABAAH/Ac8B8wH/BAAB/wEAAQMD/wGAAQAB
/wHPAfMB/wQAAf8BDAEPA/8BwAEAAf8BzwHzAf8EAAH/Ad8E/wHAAQAB/wHPAfMB/wQABv8B8AEBAf8B
zwHzAf8EAAs=
</value> </value>
</data> </data>
<metadata name="ilStoreIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ilStoreIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -390,217 +389,211 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAODEAAAJNU0Z0AUkBTAMBAQAB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAxi8AAAJNU0Z0AUkBTAMBAQAB
EAEAARABAAEyAQABMgEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAcgDAAEyAwABAQEAASAFAAFAAZz/ KAEAASgBAAEyAQABMgEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAcgDAAEyAwABAQEAASAFAAFAAZz/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wDmAAQBAwMBBAMHAQkDCgENAw4BEgMQARUDEgEXAxIBGAMSARcD AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wDmAAQBAwMBBAMHAQkDCgENAw4BEgMQARUDEgEXAxIBGAMSARcD
EAEVAw4BEgMKAQ0DBgEIAwMBBAQB/wD/AOYAAwUBBgMNAREDGgEkAyYBOAEyATEBMAFMAToBOAE2AVoB EAEVAw4BEgMKAQ0DBgEIAwMBBAQB/wD/AOYAAwUBBgMNAREDGgEkAyYBOAIxATABTAM3AVoCOwE6AWID
PgE8ATkBYgFAAT4BOwFmAT4BPAE5AWIBOQE4ATYBWQExATABLwFKAyUBNgMZASIDDAEPAwQBBf8A/wDa PAFmAjsBOgFiAzYBWQMwAUoDJQE2AxkBIgMMAQ8DBAEF/wD/ANoAAwcBCQMTARkDIwEzAzIBTwM/AWwD
AAMHAQkDEwEZASQCIwMzATIBTwFEAUIBPQFsAVMBTQFDAYQBYQFWAUUBmAFtAV4BRAGoAXYBZAFCAbIB SAGEAU8CTgGYAVYBVQFSAagBWwFZAVQBsgFdAVsBVgG3AV0BWgFVAboBXQFbAVYBtwFaAVgBVQGxAVYB
ewFnAUEBtwF9AWcBQAG6AXsBZwFBAbcBdQFjAUMBsQFsAV0BRAGnAV8BVQFEAZYBUQFLAUIBggFBAUAB VAFSAacDTgGWA0cBggM9AWgCMQEwAUwDIQEwAxEBFgMGAQf/AP8AwgAEAQMDAQQDCQELAxoBJAMuAUgD
PAFoATIBMQEwAUwCIgEhATADEQEWAwYBB/8A/wDCAAQBAwMBBAMJAQsDGgEkAi8BLgFIAU0BSAFBAXsB RAF7AVYBVQFSAakBbwFkAVEB0QGSAXMBOgHpAbMBewEcAfYBzAGMAQoB/QHbAYwBAAH/AdsBjAEAAf8B
bQFfAUMBqQGXAXMBNAHRAbQBgAEeAekBygGEAQ4B9gHVAYwBBAH9AdsBjAEAAf8B2wGMAQAB/wHbAYwB 2wGMAQAB/wHbAYwBAAH/AdEBgwEFAf4BzAGLAQoB/QGwAXsBIwH0AY4BcwFBAeYBawFhAVMBzQFUAVIB
AAH/AdsBjAEAAf8B1wGJAQIB/gHVAYsBBAH9AckBhQERAfQBtAF/ASEB5gGSAXEBNwHNAWkBXAFEAaQB UQGkAkMBQgF1AywBQwMYASEDCAEKAwMBBP8A/wC6AAMEAQUDFQEcAy4BRwJIAUcBgwFcAVkBVAG2AXQB
SQFGAT8BdQEtAiwBQwMYASEDCAEKAwMBBP8A/wC6AAMEAQUDFQEcAi8BLgFHAVIBTQFDAYMBeQFlAUEB ZwFOAdcBkAFzAT8B5wGrAXsBKQHyAb8BhwEYAfkBzAGMAQoB/QHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
tgGdAXQBMAHXAbMBfwEgAecBxAGFARMB8gHRAYoBCgH5AdUBjAEEAf0B2wGMAQAB/wHbAYwBAAH/AdsB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYMBBQH+AcwBfgEKAfwBvwF+ARoB+AGpAX4BKwHxAY4B
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B1wGJAQIB/gHSAYYBBAH8Ac4BhgEMAfgBxQGFARQB cwFBAeUBdAFmAVEB1AFYAVcBVAGwA0UBfAMqAUADEgEYAwIBA/8A/wCuAAMCAQMDBwEJAyABLgM5AV4C
8QGzAX8BJAHlAZsBdQEzAdQBcwFiAUIBsAFNAUkBQQF8AisBKgFAAxIBGAMCAQP/AP8ArgADAgEDAwcB TwFOAZkBaQFiAVQByQGdAXYBNwHsAcwBhwEPAfsB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
CQMgAS4BPAE6ATgBXgFhAVYBRAGZAY4BbgE6AckBvAGBARwB7AHVAYoBBgH7AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHXAYkBAgH+AdMBhwEIAfoBtAF+AR8B jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdEBgwEFAf4BxgF+ARQB+gGQAXIBOgHoAWUBXwFVAcQDTQGTAzYB
6AGIAWwBOwHEAVwBVAFEAZMBOAE3ATUBVwMdASkDBgEIBAL/AP8ApgADCAEKAhYBFQEdAUUBQgE9AW4B VwMdASkDBgEIBAL/AP8ApgADCAEKAhYBFQEdAkABPwFuAVwBWQFUAbYBrQF/ASYB8wHMAX4BCgH8AdsB
eQFlAUEBtgHGAYUBEwHzAdIBhgEEAfwB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHVAYoB
BgH7AcEBhAEUAfABcgFhAUMBrQFAAT4BOgFlAxIBGAMGAQj/AP8AngAEAQMGAQgDJAE0AUoBRgE/AXYB
fQFmAUABuQGzAX0BIQHmAdUBigEGAfsB1wGIAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdcBiAECAf4B0wGGAQgB+gGrAXoBJgHiAXcBZAFCAbMBRAFCAT0BbQMgAS4DBQEGBAH/AP8AkgAE
AQMGAQgDHQEpAUQBQgE9AWwBhAFqAT0BwAG2AYABHgHpAdcBiQECAf4B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdcBiAECAf4BswF9ASEB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BzAGHAQ8B+wGkAXkBKwHwAVgBVwFTAa0CPAE7AWUD
5gF7AWcBQQG3AT8BPQE6AWQCGgEZASMDBQEG/wD/AJIABAIDDwETAT8BPQE6AWQBdgFkAUIBsgHRAYoB EgEYAwYBCP8A/wCeAAQBAwYBCAMkATQDQwF2AV4BWwFVAbkBjgFyAUEB5gHMAYcBDwH7AdEBggEFAf4B
CgH5AdUBjAEEAf0B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHSAYYBBAH8AcsBhAEOAfYBbQFeAUQBqAE5ATgB 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYIBBQH+AcYBfgEUAfoBhgFtAUMB4gFbAVgB
NgFZAwwBEAQB/wD/AI4AAxIBFwIsASsBQgFoAVsBRAGiAaQBeAEsAdwB1wGJAQIB/gHbAYwBAAH/AdsB VAGzAz8BbQMgAS4DBQEGBAH/AP8AkgAEAQMGAQgDHQEpAz8BbAFiAV0BVQHAAZMBcwE6AekB0QGDAQUB
/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB jAEAAf8B0QGCAQUB/gGOAXIBQQHmAV0BWwFWAbcCPAE7AWQCGgEZASMDBQEG/wD/AJIABAIDDwETAjwB
/wHbAYwBAAH/AdsBjAEAAf8B1wGJAQIB/gHVAYwBBAH9AZ4BdgEwAdYBYQFWAUQBmQInASYBOQMPARP/ OwFkAVsBWQFUAbIBvwGHARgB+QHMAYwBCgH9AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
AP8AhgAEAQMCAQMDJAE0AUsBSAFBAXkBmAFyATMB0gHOAYYBDAH4AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHJAYcBDwH1AZABcAE3AcsBRAFCAT0BbAMgAS0E 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BzAF+AQoB/AG0AXsB
Av8A/wCCAAMCAQMDCQEMATsBOQE3AVwBfQFmAUACuQGBAR0B6wHXAYgBAgH+AdsBjAEAAf8B2wGMAQAB HAH2AVYBVQFSAagDNgFZAwwBEAQB/wD/AI4AAxIBFwMrAUICUwFRAaIBfQFrAUsB3AHRAYMBBQH+AdsB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHWAYwBBAH9AbMBfwEgAecBcgFhAUMB
rQE1ATQBMwFSAwYBBwQC/wD/AH4AAwgBCgMeASoBUgFNAUMBgwGoAXoBJwHfAcsBhAEOAfYB2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
iwEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHJAYUBEQH0AZ4BdAEwAdcBSwFIAUEBeQMYASEDBgEI/wD/AH4AAw8BEwEzATIBMQFOAW0BXgFEAagB
0QGKAQoB+QHWAYwBBAH9AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B2wGNAQIB/wHcAY0B
BAH/AdwBjgEFAf8B3AGNAQQB/wHbAY0BAgH/AdsBjAEBAf8B2wGNAQIB/wHbAY0BAgH/AdsBjAEBAf8B
2wGMAQAB/wHbAYwBAQH/AdsBjQECAf8B2wGNAQMB/wHbAY0BAwH/AdsBjAEBAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQIB/wHcAY0BBAH/AdwBjQEFAf8B3AGNAQQB/wHbAY0BAgH/AdsBjAEBAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B0gGHAQQB/AHJAYcBDwH1AWQBWQFFAZ4CLAErAUIDDAEQ/wD/
AHoABAEDFgEeAUsBSAFAAXgBiAFsATsBxAHXAYgBAgH+AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
iwEAAf8B2wGNAQMB/wHcAZABCQH/Ad4BlQEVAf8B3wGYARoB/wHeAZYBFgH/Ad0BkQEMAf8B2wGNAQQB
/wHcAY8BCAH/AdwBjwEIAf8B3AGOAQUB/wHbAYwBAgH/AdwBjQEEAf8B3QGRAQoB/wHdAZQBEQH/Ad0B
kwEQAf8B2wGNAQQB/wHbAYwBAQH/AdsBjAEAAf8B2wGMAQEB/wHcAY8BCAH/Ad4BlAESAf8B3wGXARoB
/wHeAZYBFgH/Ad0BkQEMAf8B3AGNAQQB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHXAYkBAgH+AdUB
jAEEAf0BfgFoAT4BvAFDAUEBPAFrAxMBGv8A/wB6AAMFAQYDIAEtAWIBWAFFAZoBoAF1ASwB2QHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAQH/Ad0BkgEQAf8B4QGfASwB/wHmAbIBVQH/AekBuwFoAf8B
6wG/AXEB/wHqAbwBbAH/AecBsgFWAf8B5AGrAUUB/wHlAa8BTQH/AeMBpwE8Af8B4AGaASAB/wHdAZIB
DgH/AeABmwEiAf8B5gGxAVIB/wHnAbUBWgH/AeUBrAFHAf8B3QGUAREB/wHcAY4BBQH/AdwBkAEJAf8B
4AGcASUB/wHlAawBSAH/AekBugFnAf8B6gG+AXAB/wHqAbwBagH/AegBtQFbAf8B4gGiATMB/wHeAZUB
FQH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BmAFyATMB0gFaAVIBRAGOAxwBJwMDAQT/
AP8AdgADCwEOAioBKQE+AXwBZgFAArgBfwEdAeoB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGNAQQB
/wHhAZ8BLAH/AekBuQFmAf8B8wHbAbEB/wH2AeQBwwH/AfcB5wHMAf8B9wHnAcwB/wH0AdwBswH/AfEB
0wGeAf8B8gHWAaUB/wHsAcMBewH/AeQBpwE+Af8B3wGaAR8B/wHlAa0BSgH/AfMB2gGuAf8B8wHaAa8B
/wHtAccBgwH/Ad8BmgEfAf8B3QGRAQwB/wHeAZcBGwH/AecBtQFcAf8B8AHPAZcB/wH2AeQBxwH/AfYB
5gHJAf8B9gHkAcUB/wH1Ad8BuQH/AesBwAF0Af8B4wGlATkB/wHcAY4BBgH/AdsBjAEBAf8B2wGMAQAB
/wHbAYwBAAH/Aa4BfgElAeMBcQFgAUQBrAMlATYDBwEJ/wD/AHYAAxIBGAE0ATMBMgFQAY4BbgE6AckB
xAGFARMB8gHbAYwBAAH/AdsBjAEAAf8B3AGOAQQB/wHdAZMBEAH/AeoBvAFqAf8B8QHTAZ8B/wHzAdoB
rwH/Ae4ByAGGAf8B7AHCAXkB/wHxAdQBoAH/AfcB5QHGAf8B+QHtAdgB/wH0Ad4BtwH/AeoBvQFtAf8B
3wGZAR4B/wHgAZwBJQH/AekBuQFkAf8B+AHpAc8B/wHvAc0BkQH/AeYBsAFQAf8B3QGSAQ4B/wHfAZcB
GgH/AeUBqwFHAf8B8gHWAaUB/wHyAdcBpwH/Ae4BygGLAf8B6gG9AW0B/wHrAcIBeQH/AfAB0gGdAf8B
8gHWAaYB/wHsAcQBfQH/Ad8BmgEgAf8B3AGQAQoB/wHbAYsBAAH/AdsBjAEAAf8BvwGCARkB7QGCAWoB
PgG/Ai4BLQFGAw4BEv8A/wB2AAMYASABPAE7ATgBXwGbAXUBMwHUAc4BhgEMAfgB2wGMAQAB/wHbAYwB
AAH/Ad0BkQELAf8B4AGcASMB/wHvAc0BkQH/AfMB3AGyAf8B7QHHAYUB/wHmAbABUQH/AeUBrQFLAf8B
7wHMAZAB/wH2AeUBxgH/AfoB8QHhAf8B9AHfAboB/wHpAbkBZQH/Ad0BkQEMAf8B4AGdAScB/wHrAb4B
cAH/AfoB7wHcAf8B7AHCAXkB/wHhAaABLwH/AdsBjQEFAf8B4QGfASwB/wHqAbsBagH/AfYB4gG/Af8B
8AHPAZYB/wHlAa0BTAH/AeEBoAEtAf8B4wGmATsB/wHoAbcBYwH/Ae8BzQGTAf8B7QHFAYAB/wHhAZ4B
KgH/Ad0BkgEPAf8B2wGLAQAB/wHbAYwBAAH/AckBhQERAfQBkAFwATYBzAE2ATUBMwFTAxMBGf8A/wB2
AAMdASgBQwFBATwBawGmAXgBKgHdAdIBhgEEAfwB2wGMAQAB/wHbAYsBAAH/Ad4BlAEUAf8B4wGlATkB
/wHyAdYBpgH/AfIB1wGnAf8B4wGmATwB/wHgAZsBIwH/AeMBpQE5Af8B8AHOAZUB/wH0Ad4BuAH/AfUB
4wHEAf8B8wHbAbIB/wHoAbcBYAH/AdwBjgEEAf8B4AGdAScB/wHqAb4BcAH/AfkB7AHYAf8B6QG5AWcB
/wHeAZcBHAH/AdoBiwEDAf8B5AGoAUMB/wHtAcgBhgH/AfQB3gG2Af8B6gG7AWsB/wHcAY8BCwH/AdsB
iwEDAf8B3AGNAQYB/wHdAZMBEgH/AeUBrAFJAf8B5gGwAVEB/wHgAZ0BKAH/Ad0BkgEPAf8B2wGLAQAB
/wHbAYwBAAH/AdEBiQEKAfkBnQF1ATAB1QE8ATsBOAFfAxgBIP8A/wB2AAMfASwBRgFDAT4BcAGoAXoB
JwHfAdUBjAEEAf0B2wGMAQAB/wHbAYsBAAH/Ad4BlQEXAf8B5AGoAT8B/wHyAdcBpwH/AfEB1QGkAf8B
4gGiATMB/wHeAZYBFwH/Ad4BlgEYAf8B5AGoAT8B/wHqAb4BcAH/AfAB0QGcAf8B8wHaAbAB/wHpAbkB
ZwH/AdwBjwEGAf8B4AGdAScB/wHqAb4BcAH/AfkB7AHYAf8B6QG5AWcB/wHeAZcBHAH/AdoBiwEDAf8B
5AGrAUgB/wHuAcoBiwH/AfMB2gGvAf8B6AG4AWMB/wHbAY4BBgH/AdsBjAECAf8B2wGMAQIB/wHcAY4B
BwH/Ad4BlwEaAf8B3wGYAR0B/wHdAZIBDgH/AdwBjgEFAf8B2wGMAQAB/wHbAYwBAAH/AdMBhgEIAfoB
oAF3AS8B2AE/AT0BOgFkAhoBGQEj/wD/AHYAAyABLQFIAUQBPwFyAaoBewEoAeAB1QGMAQQB/QHbAYwB
AAH/AdsBigEAAf8B3gGWARgB/wHkAaoBQgH/AfIB1wGoAf8B8QHUAaEB/wHhAaABLgH/Ad0BkwEQAf8B
2wGNAQMB/wHcAZABCgH/AeQBqwFGAf8B7QHHAYYB/wHzAdkBrgH/AeoBuwFqAf8B3AGPAQgB/wHhAZ8B
LAH/AesBwAF0Af8B+QHtAdoB/wHqAbwBbAH/Ad8BmgEhAf8B2wGLAQQB/wHlAawBSgH/Ae4BywGOAf8B
8gHZAasB/wHnAbYBXwH/AdsBjQEEAf8B2wGMAQEB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsB
AAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B1AGKAQYB+wGgAXgBLAHZAUABPgE6AWUD
GgEk/wD/AHYAAh8BHgErAUUBQwE+AW8BpwF5ASoB3gHSAYYBBAH8AdsBjAEAAf8B2wGKAQAB/wHeAZYB
GAH/AeQBqgFCAf8B8gHXAagB/wHxAdQBoQH/AeEBoAEuAf8B3QGSARAB/wHbAYsBAAH/AdoBiwEBAf8B
4wGoAUAB/wHtAccBhQH/AfMB2QGuAf8B6gG7AWsB/wHdAZABCgH/AeIBowE0Af8B7AHEAX0B/wH6Ae8B
3gH/AewBwQF3Af8B4QGfAS0B/wHcAY0BBQH/AeUBrQFKAf8B7gHLAY4B/wHyAdkBqwH/AecBtwFfAf8B
2wGOAQQB/wHbAYwBAQH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHSAYYBCAH6AZ8BdwEvAdgBPgE8ATkBYgMZASL/AP8AdgADGwElAUAB
PgE6AWUBoAF1ASwB2QHTAYYBCAH6AdsBjAEAAf8B2wGKAQAB/wHeAZUBGAH/AeQBqQFBAf8B8gHXAagB
/wHxAdQBogH/AeEBoQEvAf8B3QGSARAB/wHbAYsBAAH/AdoBigEAAf8B4wGnAUEB/wHtAccBhgH/AfMB
2QGtAf8B6gG8AWsB/wHdAZQBEQH/AecBswFZAf8B8gHVAaMB/wH8AfcB7gH/AfIB1wGpAf8B6AG3AWAB
/wHdAZQBEwH/AeYBrgFNAf8B7gHKAY0B/wHzAdkBrAH/AegBtwFgAf8B2wGOAQQB/wHbAYwBAQH/AdsB
jAEAAf8B2wGMAQIB/wHcAY8BCQH/AdwBkAEKAf8B3AGOAQYB/wHbAY0BAgH/AdsBjAEAAf8B2wGMAQAB
/wHLAYoBDgH3AZcBcwE0AdEBOQE4ATYBWQIWARUBHf8A/wB2AAIWARUBHQE5ATgBNgFZAZUBcQE0AdAB
ygGEAQ4B9gHbAYwBAAH/AdsBiwEAAf8B3gGUARUB/wHjAacBPAH/AfIB1gGmAf8B8gHWAaUB/wHjAaYB
OwH/Ad4BlQEVAf8B2wGLAQEB/wHbAYwBAwH/AeQBqwFJAf8B7gHLAY8B/wHyAdgBqQH/AekBugFnAf8B
3QGVARMB/wHpAboBaAH/AfQB3AGzAf8B/QH7AfYB/wH1AeEBvgH/AesBwAF2Af8B3gGXARkB/wHlAa0B
SgH/Ae4ByAGHAf8B9AHbAbIB/wHpAboBaAH/Ad0BkQELAf8B2wGNAQMB/wHcAY4BBQH/Ad0BkgEPAf8B
4QGeASoB/wHhAZ8BLAH/Ad0BlAEUAf8B3AGPAQcB/wHbAYwBAAH/AdsBjAEAAf8BxAGFARMB8gGLAW0B
OQHHATMBMgExAU4DEQEW/wD/AHYAAw8BEwIvAS4BSAGGAWsBPAHCAb0BggEWAe8B2wGMAQAB/wHbAYsB
AAH/Ad0BkgEPAf8B4QGgAS0B/wHxAdMBoAH/AfMB2wGwAf8B5wG2AV4B/wHgAZwBJAH/AdsBjQEDAf8B
3AGRAQsB/wHoAbcBXwH/AfIB2AGpAf8B8QHUAaAB/wHnAbMBWQH/AdwBjwEJAf8B5AGpAUAB/wHuAcoB
iwH/AfsB8wHkAf8B7gHJAYkB/wHjAagBPgH/AdwBjwEJAf8B4wGlATgB/wHsAcIBeQH/AfYB4gHBAf8B
7QHFAX8B/wHgAZoBIAH/AdwBjwEJAf8B3gGVARQB/wHiAaUBNwH/AewBxQGAAf8B7AHEAX8B/wHiAaIB
MgH/Ad0BkwESAf8B2wGLAQAB/wHbAYwBAAH/AbgBfwEdAeoBfAFmAUABuAMqAT8DCwEO/wD/AHYAAwgB
CgImASUBNwFvAV8BQwGqAasBegEmAeIB2wGMAQAB/wHbAYwBAAH/AdwBjwEHAf8B3gGXARkB/wHsAcMB
fAH/AfIB1wGoAf8B8QHTAZ8B/wHqAb8BcQH/AecBswFWAf8B6AG4AWIB/wHvAc8BlgH/AfQB3QG1Af8B
7AHDAXsB/wHjAaYBOwH/AdsBjQEFAf8B4QGfASoB/wHqAbwBawH/AfYB4wHCAf8B6QG5AWUB/wHgAZsB
IwH/AdwBjAEEAf8B4AGaASEB/wHnAbMBVwH/AfMB2wGxAf8B8gHVAaIB/wHrAcABdQH/AecBtAFaAf8B
6QG5AWYB/wHuAckBiQH/AfEB1AGhAf8B7AHFAYAB/wHgAZwBJgH/Ad0BkQENAf8B2wGMAQAB/wHbAYwB
AAH/AaMBeAEsAdsBZAFZAUUBngMhAS8DBgEH/wD/AHYAAwIBAwEcAhsBJgFYAVEBRAGMAZcBcwE0AdEB
2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B3AGPAQYB/wHlAa4BTAH/Ae4BywGOAf8B9wHmAcsB/wH0Ad4B
twH/AfIB2QGrAf8B9AHdAbYB/wH1AeABvAH/AfIB2AGpAf8B5QGuAUwB/wHeAZcBGwH/AdsBjAEDAf8B
3wGXARoB/wHlAa0BSwH/Ae4BzAGQAf8B5AGqAUQB/wHeAZMBEgH/AdsBiwECAf8B3AGQAQsB/wHiAaEB
MAH/Ae4BygGLAf8B9AHcAbIB/wH2AeIBwAH/AfMB2AGrAf8B9AHcAbIB/wH3AeUBxwH/AfEB0wGeAf8B
6AG3AWAB/wHdAZIBDgH/AdsBjQEEAf8B2wGMAQAB/wHYAYkBAgH+AY4BbgE6AckBTwFLAUIBfwMYASAE
Af8A/wB2AAQBAxMBGQFAAT4BOgFlAXwBZgFAAbgB1wGIAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGNAQIB
/wHeAZcBGQH/AeMBpwE9Af8B6gG9AW8B/wHtAccBhAH/Ae4BzAGPAf8B7gHKAYsB/wHqAb0BbgH/AeUB
rQFJAf8B3wGYARsB/wHcAY8BBwH/AdsBjAEBAf8B3AGQAQgB/wHeAZYBFwH/AeEBoAEtAf8B3gGVARUB
/wHcAY4BBgH/AdsBjAEBAf8B2wGNAQMB/wHdAZMBEQH/AeIBpAE1Af8B6AG2AV8B/wHtAccBhAH/Ae4B
ywGNAf8B7gHJAYgB/wHsAcEBdwH/AeUBrAFIAf8B4AGaASIB/wHbAY0BBAH/AdsBjAEBAf8B1wGIAQIB
/gHSAYYBBAH8AXMBYQFDAa8BOAE3ATUBVwMQARX/AP8AfgADCwEOAykBPQFgAVYBRQGXAb0BggEXAe4B
0wGHAQgB+gHbAYwBAAH/AdsBjAEAAf8B2wGNAQQB/wHdAZQBEwH/AeEBnwEuAf8B5AGqAUQB/wHmAa8B
TwH/AeUBrAFKAf8B4gGhATEB/wHeAZYBFgH/AdwBjgEFAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B
2wGNAQIB/wHcAY4BBQH/AdsBjQECAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGNAQMB/wHdAZEB
DQH/AeABnAEmAf8B4wGpAUIB/wHmAa8BTgH/AeUBrAFIAf8B4gGjATUB/wHeAZYBGAH/AdwBjgEGAf8B
2wGMAQAB/wHbAYwBAAH/AdEBigEKAfkBtgGAAR4B6QFYAVEBRAGNAyMBMgMJAQz/AP8AfgADBAEFAxIB
FwFGAUMBPgFxAZsBdQEwAdUBxgGFARMB8wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdoB
igEAAf8B2wGLAQAB/wHbAYsBAAH/AdoBigEAAf8B2wGLAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBiwEAAf8B2gGKAQAB/wHbAYsBAAH/AdsBiwEAAf8B2gGKAQAB
/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AcABhAEUAfABjgFwATkBygFBAT8BOwFnAwwB
EAMDAQT/AP8AfgAEAgMGAQgCLwEuAUgBYgFYAUUBmgGrAXwBJwHhAdYBjAEEAf0B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdIBhgEEAfwBpAF4ASwB3AFYAVEB
RAGNAisBKgFAAwQBBQQB/wD/AIYAAxsBJQE8ATsBOAFfAYIBagE/Ab4BvwGCARkB7QHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BtgGAAR4B6QF5AWUBQQG2ATYB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYMBBQH+AcwBjAEKAf0BdgFnAU4B1gJPAU4BmQInASYB
NQEzAVQDFwEf/wD/AI4AAwcBCQMbASUBVgFQAUQBiQGVAXIBNgHPAdsBjAEAAf8B2wGMAQAB/wHbAYwB OQMPARP/AP8AhgAEAQMCAQMDJAE0A0QBeQFxAWUBUQHSAb8BfgEaAfgB2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AbIBgQEeAfUBawFiAVMBywM/AWwDIAEtBAL/
AP8AggADAgEDAwkBDAM4AVwBXgFbAVUBuQGYAXcBOgHrAdEBggEFAf4B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/Ac0BjAEKAf0BkAFzAT8B5wFYAVcBUwGtAzMB
UgMGAQcEAv8A/wB+AAMIAQoDHgEqAkgBRwGDAYABawFFAd8BtAF7ARwB9gHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AbABewEjAfQB
dAFnAU4B1wNEAXkDGAEhAwYBCP8A/wB+AAMPARMDMQFOAVYBVQFSAagBvwGHARgB+QHNAYwBCgH9AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B2wGNAQIB/wHcAY0BBAH/AdwBjgEFAf8B3AGNAQQB
/wHbAY0BAgH/AdsBjAEBAf8B2wGNAQIB/wHbAY0BAgH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAQH/AdsB
jQECAf8B2wGNAQMB/wHbAY0BAwH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQIB
/wHcAY0BBAH/AdwBjQEFAf8B3AGNAQQB/wHbAY0BAgH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8BzAF+AQoB/AGyAYEBHgH1AlEBTwGeAysBQgMMARD/AP8AegAEAQMWAR4DRAF4AWUBXwFVAcQB
0QGCAQUB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBjQEDAf8B3AGQAQkB/wHeAZUB
FQH/Ad8BmAEaAf8B3gGWARYB/wHdAZEBDAH/AdsBjQEEAf8B3AGPAQgB/wHcAY8BCAH/AdwBjgEFAf8B
2wGMAQIB/wHcAY0BBAH/Ad0BkQEKAf8B3QGUAREB/wHdAZMBEAH/AdsBjQEEAf8B2wGMAQEB/wHbAYwB
AAH/AdsBjAEBAf8B3AGPAQgB/wHeAZQBEgH/Ad8BlwEaAf8B3gGWARYB/wHdAZEBDAH/AdwBjQEEAf8B
2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B0QGDAQUB/gHMAYwBCgH9AV8BWwFVAbwDPgFrAxMBGv8A/wB6
AAMFAQYDIAEtAVECUAGaAXgBZgFMAdkB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQEB/wHdAZIB
EAH/AeEBnwEsAf8B5gGyAVUB/wHpAbsBaAH/AesBvwFxAf8B6gG8AWwB/wHnAbIBVgH/AeQBqwFFAf8B
5QGvAU0B/wHjAacBPAH/AeABmgEgAf8B3QGSAQ4B/wHgAZsBIgH/AeYBsQFSAf8B5wG1AVoB/wHlAawB
RwH/Ad0BlAERAf8B3AGOAQUB/wHcAZABCQH/AeABnAElAf8B5QGsAUgB/wHpAboBZwH/AeoBvgFwAf8B
6gG8AWoB/wHoAbUBWwH/AeIBogEzAf8B3gGVARUB/wHbAYwBAQH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AXEBZQFRAdIDTAGOAxwBJwMDAQT/AP8AdgADCwEOAykBPgFdAVoBVAG4AZYBcwE6AeoB2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGNAQQB/wHhAZ8BLAH/AekBuQFmAf8B8wHbAbEB/wH2AeQBwwH/AfcB
5wHMAf8B9wHnAcwB/wH0AdwBswH/AfEB0wGeAf8B8gHWAaUB/wHsAcMBewH/AeQBpwE+Af8B3wGaAR8B
/wHlAa0BSgH/AfMB2gGuAf8B8wHaAa8B/wHtAccBgwH/Ad8BmgEfAf8B3QGRAQwB/wHeAZcBGwH/AecB
tQFcAf8B8AHPAZcB/wH2AeQBxwH/AfYB5gHJAf8B9gHkAcUB/wH1Ad8BuQH/AesBwAF0Af8B4wGlATkB
/wHcAY4BBgH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AYgBbgFEAeMBWAFWAVQBrAMlATYDBwEJ/wD/
AHYAAxIBGAMzAVABaQFiAVQByQGrAXsBKQHyAdsBjAEAAf8B2wGMAQAB/wHcAY4BBAH/Ad0BkwEQAf8B
6gG8AWoB/wHxAdMBnwH/AfMB2gGvAf8B7gHIAYYB/wHsAcIBeQH/AfEB1AGgAf8B9wHlAcYB/wH5Ae0B
2AH/AfQB3gG3Af8B6gG9AW0B/wHfAZkBHgH/AeABnAElAf8B6QG5AWQB/wH4AekBzwH/Ae8BzQGRAf8B
5gGwAVAB/wHdAZIBDgH/Ad8BlwEaAf8B5QGrAUcB/wHyAdYBpQH/AfIB1wGnAf8B7gHKAYsB/wHqAb0B
bQH/AesBwgF5Af8B8AHSAZ0B/wHyAdYBpgH/AewBxAF9Af8B3wGaASAB/wHcAZABCgH/AdsBiwEAAf8B
2wGMAQAB/wGdAXYBNAHtAWEBXAFVAb8CLgEtAUYDDgES/wD/AHYAAxgBIAM5AV8BdAFmAVEB1AG/AX4B
GgH4AdsBjAEAAf8B2wGMAQAB/wHdAZEBCwH/AeABnAEjAf8B7wHNAZEB/wHzAdwBsgH/Ae0BxwGFAf8B
5gGwAVEB/wHlAa0BSwH/Ae8BzAGQAf8B9gHlAcYB/wH6AfEB4QH/AfQB3wG6Af8B6QG5AWUB/wHdAZEB
DAH/AeABnQEnAf8B6wG+AXAB/wH6Ae8B3AH/AewBwgF5Af8B4QGgAS8B/wHbAY0BBQH/AeEBnwEsAf8B
6gG7AWoB/wH2AeIBvwH/AfABzwGWAf8B5QGtAUwB/wHhAaABLQH/AeMBpgE7Af8B6AG3AWMB/wHvAc0B
kwH/Ae0BxQGAAf8B4QGeASoB/wHdAZIBDwH/AdsBiwEAAf8B2wGMAQAB/wGwAXsBIwH0AWoBYwFTAcwD
NAFTAxMBGf8A/wB2AAMdASgDPgFrAX0BagFJAd0BzAF+AQoB/AHbAYwBAAH/AdsBiwEAAf8B3gGUARQB
/wHjAaUBOQH/AfIB1gGmAf8B8gHXAacB/wHjAaYBPAH/AeABmwEjAf8B4wGlATkB/wHwAc4BlQH/AfQB
3gG4Af8B9QHjAcQB/wHzAdsBsgH/AegBtwFgAf8B3AGOAQQB/wHgAZ0BJwH/AeoBvgFwAf8B+QHsAdgB
/wHpAbkBZwH/Ad4BlwEcAf8B2gGLAQMB/wHkAagBQwH/Ae0ByAGGAf8B9AHeAbYB/wHqAbsBawH/AdwB
jwELAf8B2wGLAQMB/wHcAY0BBgH/Ad0BkwESAf8B5QGsAUkB/wHmAbABUQH/AeABnQEoAf8B3QGSAQ8B
/wHbAYsBAAH/AdsBjAEAAf8BvwGGARgB+QF0AWgBUAHVAzkBXwMYASD/AP8AdgADHwEsAkEBQAFwAYAB
awFFAd8BzAGMAQoB/QHbAYwBAAH/AdsBiwEAAf8B3gGVARcB/wHkAagBPwH/AfIB1wGnAf8B8QHVAaQB
/wHiAaIBMwH/Ad4BlgEXAf8B3gGWARgB/wHkAagBPwH/AeoBvgFwAf8B8AHRAZwB/wHzAdoBsAH/AekB
uQFnAf8B3AGPAQYB/wHgAZ0BJwH/AeoBvgFwAf8B+QHsAdgB/wHpAbkBZwH/Ad4BlwEcAf8B2gGLAQMB
/wHkAasBSAH/Ae4BygGLAf8B8wHaAa8B/wHoAbgBYwH/AdsBjgEGAf8B2wGMAQIB/wHbAYwBAgH/AdwB
jgEHAf8B3gGXARoB/wHfAZgBHQH/Ad0BkgEOAf8B3AGOAQUB/wHbAYwBAAH/AdsBjAEAAf8BxgF+ARQB
+gF3AWgBTQHYAjwBOwFkAhoBGQEj/wD/AHYAAyABLQJCAUEBcgGEAW0BRwHgAcwBjAEKAf0B2wGMAQAB
/wHbAYoBAAH/Ad4BlgEYAf8B5AGqAUIB/wHyAdcBqAH/AfEB1AGhAf8B4QGgAS4B/wHdAZMBEAH/AdsB
jQEDAf8B3AGQAQoB/wHkAasBRgH/Ae0BxwGGAf8B8wHZAa4B/wHqAbsBagH/AdwBjwEIAf8B4QGfASwB
/wHrAcABdAH/AfkB7QHaAf8B6gG8AWwB/wHfAZoBIQH/AdsBiwEEAf8B5QGsAUoB/wHuAcsBjgH/AfIB
2QGrAf8B5wG2AV8B/wHbAY0BBAH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBiwEAAf8B2wGLAQAB
/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AcsBhwEPAfsBeAFmAUwB2QI8ATsBZQMaAST/
AP8AdgADHgErA0ABbwF/AWoBSQHeAcwBfgEKAfwB2wGMAQAB/wHbAYoBAAH/Ad4BlgEYAf8B5AGqAUIB
/wHyAdcBqAH/AfEB1AGhAf8B4QGgAS4B/wHdAZIBEAH/AdsBiwEAAf8B2gGLAQEB/wHjAagBQAH/Ae0B
xwGFAf8B8wHZAa4B/wHqAbsBawH/Ad0BkAEKAf8B4gGjATQB/wHsAcQBfQH/AfoB7wHeAf8B7AHBAXcB
/wHhAZ8BLQH/AdwBjQEFAf8B5QGtAUoB/wHuAcsBjgH/AfIB2QGrAf8B5wG3AV8B/wHbAY4BBAH/AdsB
jAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBiwEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AcUBfgEUAfoBdwFoAU0B2AI7AToBYgMZASL/AP8AdgADGwElAjwBOwFlAXgBZgFMAdkB
xgF+ARQB+gHbAYwBAAH/AdsBigEAAf8B3gGVARgB/wHkAakBQQH/AfIB1wGoAf8B8QHUAaIB/wHhAaEB
LwH/Ad0BkgEQAf8B2wGLAQAB/wHaAYoBAAH/AeMBpwFBAf8B7QHHAYYB/wHzAdkBrQH/AeoBvAFrAf8B
3QGUAREB/wHnAbMBWQH/AfIB1QGjAf8B/AH3Ae4B/wHyAdcBqQH/AegBtwFgAf8B3QGUARMB/wHmAa4B
TQH/Ae4BygGNAf8B8wHZAawB/wHoAbcBYAH/AdsBjgEEAf8B2wGMAQEB/wHbAYwBAAH/AdsBjAECAf8B
3AGPAQkB/wHcAZABCgH/AdwBjgEGAf8B2wGNAQIB/wHbAYwBAAH/AdsBjAEAAf8BvAGHARwB9wFvAWQB
UQHRAzYBWQIWARUBHf8A/wB2AAIWARUBHQM2AVkBbgFjAVIB0AGzAXsBHAH2AdsBjAEAAf8B2wGLAQAB
/wHeAZQBFQH/AeMBpwE8Af8B8gHWAaYB/wHyAdYBpQH/AeMBpgE7Af8B3gGVARUB/wHbAYsBAQH/AdsB
jAEDAf8B5AGrAUkB/wHuAcsBjwH/AfIB2AGpAf8B6QG6AWcB/wHdAZUBEwH/AekBugFoAf8B9AHcAbMB
/wH9AfsB9gH/AfUB4QG+Af8B6wHAAXYB/wHeAZcBGQH/AeUBrQFKAf8B7gHIAYcB/wH0AdsBsgH/AekB
ugFoAf8B3QGRAQsB/wHbAY0BAwH/AdwBjgEFAf8B3QGSAQ8B/wHhAZ4BKgH/AeEBnwEsAf8B3QGUARQB
/wHcAY8BBwH/AdsBjAEAAf8B2wGMAQAB/wGrAXsBKQHyAWUBXwFUAccDMQFOAxEBFv8A/wB2AAMPARMD
LgFIAWEBXQFVAcIBnwF3AS8B7wHbAYwBAAH/AdsBiwEAAf8B3QGSAQ8B/wHhAaABLQH/AfEB0wGgAf8B
8wHbAbAB/wHnAbYBXgH/AeABnAEkAf8B2wGNAQMB/wHcAZEBCwH/AegBtwFfAf8B8gHYAakB/wHxAdQB
oAH/AecBswFZAf8B3AGPAQkB/wHkAakBQAH/Ae4BygGLAf8B+wHzAeQB/wHuAckBiQH/AeMBqAE+Af8B
3AGPAQkB/wHjAaUBOAH/AewBwgF5Af8B9gHiAcEB/wHtAcUBfwH/AeABmgEgAf8B3AGPAQkB/wHeAZUB
FAH/AeIBpQE3Af8B7AHFAYAB/wHsAcQBfwH/AeIBogEyAf8B3QGTARIB/wHbAYsBAAH/AdsBjAEAAf8B
lgFzAToB6gFdAVoBVAG4AyoBPwMLAQ7/AP8AdgADCAEKAyUBNwFWAVUBUwGqAYYBbQFDAeIB2wGMAQAB
/wHbAYwBAAH/AdwBjwEHAf8B3gGXARkB/wHsAcMBfAH/AfIB1wGoAf8B8QHTAZ8B/wHqAb8BcQH/AecB
swFWAf8B6AG4AWIB/wHvAc8BlgH/AfQB3QG1Af8B7AHDAXsB/wHjAaYBOwH/AdsBjQEFAf8B4QGfASoB
/wHqAbwBawH/AfYB4wHCAf8B6QG5AWUB/wHgAZsBIwH/AdwBjAEEAf8B4AGaASEB/wHnAbMBVwH/AfMB
2wGxAf8B8gHVAaIB/wHrAcABdQH/AecBtAFaAf8B6QG5AWYB/wHuAckBiQH/AfEB1AGhAf8B7AHFAYAB
/wHgAZwBJgH/Ad0BkQENAf8B2wGMAQAB/wHbAYwBAAH/AXsBagFMAdsCUQFPAZ4DIQEvAwYBB/8A/wB2
AAMCAQMDGwEmA0sBjAFvAWQBUQHRAdsBjAEAAf8B2wGMAQAB/wHbAYwBAQH/AdwBjwEGAf8B5QGuAUwB
/wHuAcsBjgH/AfcB5gHLAf8B9AHeAbcB/wHyAdkBqwH/AfQB3QG2Af8B9QHgAbwB/wHyAdgBqQH/AeUB
rgFMAf8B3gGXARsB/wHbAYwBAwH/Ad8BlwEaAf8B5QGtAUsB/wHuAcwBkAH/AeQBqgFEAf8B3gGTARIB
/wHbAYsBAgH/AdwBkAELAf8B4gGhATAB/wHuAcoBiwH/AfQB3AGyAf8B9gHiAcAB/wHzAdgBqwH/AfQB
3AGyAf8B9wHlAccB/wHxAdMBngH/AegBtwFgAf8B3QGSAQ4B/wHbAY0BBAH/AdsBjAEAAf8B0gGDAQUB
/gFpAWIBVAHJA0YBfwMYASAEAf8A/wB2AAQBAxMBGQI8ATsBZQFdAVoBVAG4AdEBggEFAf4B2wGMAQAB
/wHbAYwBAAH/AdsBjQECAf8B3gGXARkB/wHjAacBPQH/AeoBvQFvAf8B7QHHAYQB/wHuAcwBjwH/Ae4B
ygGLAf8B6gG9AW4B/wHlAa0BSQH/Ad8BmAEbAf8B3AGPAQcB/wHbAYwBAQH/AdwBkAEIAf8B3gGWARcB
/wHhAaABLQH/Ad4BlQEVAf8B3AGOAQYB/wHbAYwBAQH/AdsBjQEDAf8B3QGTAREB/wHiAaQBNQH/AegB
tgFfAf8B7QHHAYQB/wHuAcsBjQH/Ae4ByQGIAf8B7AHBAXcB/wHlAawBSAH/AeABmgEiAf8B2wGNAQQB
/wHbAYwBAQH/AdEBggEFAf4BzAF+AQoB/AFZAVYBVAGvAzYBVwMQARX/AP8AfgADCwEOAykBPQJPAU4B
lwGcAXcBMQHuAcYBfgEUAfoB2wGMAQAB/wHbAYwBAAH/AdsBjQEEAf8B3QGUARMB/wHhAZ8BLgH/AeQB
qgFEAf8B5gGvAU8B/wHlAawBSgH/AeIBoQExAf8B3gGWARYB/wHcAY4BBQH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAQH/AdsBjQECAf8B3AGOAQUB/wHbAY0BAgH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jQEDAf8B3QGRAQ0B/wHgAZwBJgH/AeMBqQFCAf8B5gGvAU4B/wHlAawBSAH/AeIBowE1Af8B3gGWARgB
/wHcAY4BBgH/AdsBjAEAAf8B2wGMAQAB/wG/AYcBGAH5AZMBcwE6AekDSwGNAyMBMgMJAQz/AP8AfgAD
BAEFAxIBFwJBAUABcQF0AWgBUAHVAa0BfwEmAfMB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB
/wHaAYoBAAH/AdsBiwEAAf8B2wGLAQAB/wHaAYoBAAH/AdsBiwEAAf8B2wGLAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsBAAH/AdoBigEAAf8B2wGLAQAB/wHbAYsBAAH/AdoB
igEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wGjAXkBKwHwAWkBYQFUAcoDPQFnAwwB
EAMDAQT/AP8AfgAEAgMGAQgDLgFIAVECUAGaAYQBbgFHAeEBzQGMAQoB/QHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BzAF+AQoB/AF9AWsBSwHcA0sBjQMqAUAD
BAEFBAH/AP8AhgADGwElAzkBXwFgAV0BVQG+AZ0BdgE0Ae0B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wGLAW0BOQHHAU8BSgFCAX4DFgEeAwUBBv8A/wCO
AAMCAQMDDAEQAi4BLQFGAVoBUgFEAY4BpwF5ASoB3gHJAYUBEQH0AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AZMBcwE6AekBXAFZAVQBtgM0AVQDFwEf/wD/AI4AAwcB
xAGFARMB8gGgAXcBLwHYAVQBTgFDAYYCKgEpAT4DCgENBAL/AP8AkgADAgEDAxABFQE1ATQBMwFRAWkB CQMbASUDSgGJAW8BZQFTAc8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
XAFEAaQBnQF0ATAB1wHIAYYBDwH1AdcBiQECAf4B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B1wGIAQIB/gHFAYQBEwHzAZcBcwE0AdEBYgFYAUUBmgIwAS8BSQMNARED
AgED/wD/AJYABAEDAgEDAxQBGwEtAiwBQwFjAVgBRQGbAaABdQEsAdkB1QGMAQQB/QHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHSAYYBBAH8AZgBcgEzAdIBXAFUAUUB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
kgMoATsDEgEXAwIBA/8A/wCiAAMGAQgDEgEYAjMBMgFPAVYBUAFEAYkBiAFsATsBxAGxAX8BJAHlAdEB /wHbAYwBAAH/AWUBXwFUAccDRgF+AxYBHgMFAQb/AP8AjgADAgEDAwwBEAIuAS0BRgNMAY4BfwFqAUkB
igEKAfkB1wGJAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB 3gGwAXsBIwH0AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
jAEAAf8B2wGMAQAB/wHXAYgBAgH+Ac4BhgEMAfgBqwF8AScB4QGCAWoBPwG+AVABSwFCAYECLwEuAUgD jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BqwF7ASkB8gF3AWgBTQHYA0kBhgMpAT4DCgENBAL/
DwEUAwYBB/8A/wCqAAQBAwwBEAMmATgBTAFIAUEBegF3AWQBQgGzAaQBeAEsAdwBvQGCARcB7gHLAYkB AP8AkgADAgEDAxABFQMzAVEBVAFSAVEBpAF0AWcBTgHXAbIBgAEeAfUB0QGDAQUB/gHbAYwBAAH/AdsB
DgH3AdIBhgEEAfwB1wGIAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHXAYgBAgH+AdIBhgEEAfwBygGEAQ4B9gG+AYIB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
GQHtAaABeAEsAdkBcgFhAUMBrQFGAUMBPgFxAyMBMgMKAQ0EAf8A/wCyAAMDAQQDDAEPAxgBIQEyATEB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYIBBQH+Aa0BfgEmAfMBbwFkAVEB
MAFMAU0BSQFBAXwBdQFjAUMBsQGbAXUBMAHVAcABhAEUAfAB1AGJAQYB+wHbAYwBAAH/AdsBjAEAAf8B 0QFRAlABmgMvAUkDDQERAwIBA/8A/wCWAAQBAwIBAwMUARsDLAFDAVEBUAFPAZsBeAFmAUwB2QHMAYwB
2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B1wGJAQIB/gHSAYYB CgH9AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B
CAH6Ab0BggEWAe8BmAFyATMB0gFxAWABRAGsAUoBRgE/AXYCLwEuAUcDFgEeAwoBDQMCAQP/AP8AugAE 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AQMCAQMDEwEZAiUBJAE1AToBOQE3AVsBTwFKAUIBfgFkAVgBRQGcAXcBZAFCAbMBiAFsATsBxAGVAXEB AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AcwBfgEKAfwB
NAHQAZ4BdAEwAdcBowF4ASwB2wGnAXkBKgHeAaMBeAEsAdsBngF2ATAB1gGVAXIBNgHPAYUBawE8AcIB cQFlAVEB0gNNAZIDKAE7AxIBFwMCAQP/AP8AogADBgEIAxIBGAMyAU8DSgGJAWUBXwFVAcQBjQFzAUEB
dQFjAUMBsQFiAVgBRQGaAUwBSAFBAXoBOAE3ATUBVwMiATEDEQEWBAIEAf8A/wDKAAQCAwUBBgMTARkD 5QG/AYcBGAH5AdEBgwEFAf4B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB
IwEyAjUBMwFTAUUBQwE+AW8BVQFOAUMBiAFgAVYBRQGXAWcBWwFFAaABawFdAUMBpQFnAVoBRQGgAV8B jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB
VQFEAZYBVAFOAUMBhgFEAUIBPQFsAjMBMgFPAyEBLwMRARYDAwEEBAH/AP8A2gAEAgMGAQgDDAEPAxME /wHbAYwBAAH/AdsBjAEAAf8B0QGCAQUB/gG/AX4BGgH4AYQBbgFHAeEBYAFdAVUBvgJHAUYBgQMuAUgD
GQEiAx4BKgMhAS8BJAIjATMDJQE2ASQCIwEzAyABLgMdASkDGAEhAxIBGAMLAQ4DBgEHBAH/AP8A9gAE DwEUAwYBB/8A/wCqAAQBAwwBEAMmATgDRAF6AVsBWAFUAbMBfQFrAUsB3AGcAXcBMQHuAbwBhgEcAfcB
AQcCAQMEAgQB/wD/AP8A/wD/ANUAAUIBTQE+BwABPgMAASgDAAHIAwABMgMAAQEBAAEBBQABeAEFFgAD zAF+AQoB/AHRAYIBBQH+AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
/wEABv8BwBUABv8BwBUABv8BwBUABv8BwBUAAv8BwAEAAX8B/wHAFQAC/wHAAQABfwH/AcAVAAH/Af4C AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdEBggEFAf4BzAF+AQoB/AGzAXsBHAH2AZ0BdgE0Ae0B
AAEPAf8BwBUAAf8B8AIAAQMB/wHAFQAB/wHwAgABAQH/AcAVAAH/AcADAAF/AcAVAAH/AcADAAF/AcAV eAFmAUwB2QFYAVcBUwGtAkEBQAFxAyMBMgMKAQ0EAf8A/wCyAAMDAQQDDAEPAxgBIQIxATABTANFAXwB
AAH/BAABHwHAFQAB/gQAAR8BwBUAAf4EAAEPAcAVAAH+BAABDwHAFQAB+AQAAQcBwBUAAfgEAAEDAcAV WgFYAVUBsQF0AWgBUAHVAaMBeQErAfABywGGAQ8B+wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB
AAH4BAABAwHAFQAB+AQAAQMBwBUAAfAEAAEDAcAVAAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAV AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B0QGDAQUB/gHFAX4BFAH6AZ8BdwEvAe8B
cQFlAVEB0gFYAVYBVAGsA0MBdgMuAUcDFgEeAwoBDQMCAQP/AP8AugAEAQMCAQMDEwEZAyQBNQM4AVsD
RgF+AlEBUAGcAVsBWAFUAbMBZQFfAVUBxAFuAWMBUgHQAXQBZwFOAdcBewFqAUwB2wF/AWoBSQHeAXsB
agFMAdsBdgFnAU4B1gFvAWUBUwHPAWEBXQFVAcIBWgFYAVUBsQFRAlABmgNEAXoDNgFXAyIBMQMRARYE
AgQB/wD/AMoABAIDBQEGAxMBGQMjATIDNAFTA0ABbwNJAYgCTwFOAZcBUwFSAVEBoAFUAVMBUgGlAVMB
UgFRAaADTgGWA0kBhgM/AWwDMgFPAyEBLwMRARYDAwEEBAH/AP8A2gAEAgMGAQgDDAEPAxMEGQEiAx4B
KgMhAS8DIwEzAyUBNgMjATMDIAEuAx0BKQMYASEDEgEYAwsBDgMGAQcEAf8A/wD2AAQBBwIBAwQCBAH/
AP8A/wD/AP8A1QABQgFNAT4HAAE+AwABKAMAAcgDAAEyAwABAQEAAQEFAAF4AQUWAAP/AQAG/wHAFQAG
/wHAFQAG/wHAFQAG/wHAFQAC/wHAAQABfwH/AcAVAAL/AcABAAF/Af8BwBUAAf8B/gIAAQ8B/wHAFQAB
/wHwAgABAwH/AcAVAAH/AfACAAEBAf8BwBUAAf8BwAMAAX8BwBUAAf8BwAMAAX8BwBUAAf8EAAEfAcAV
AAH+BAABHwHAFQAB/gQAAQ8BwBUAAf4EAAEPAcAVAAH4BAABBwHAFQAB+AQAAQMBwBUAAfgEAAEDAcAV
AAH4BAABAwHAFQAB8AQAAQMBwBUAAfAEAAEBAcAVAAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAV
AAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAVAAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAV AAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAVAAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAV
AAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAVAAHwBAABAQHAFQAB8AQAAQMBwBUAAfgEAAEDAcAV AAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAVAAHwBAABAwHAFQAB+AQAAQMBwBUAAfgEAAEDAcAV
AAH4BAABAwHAFQAB+AQAAQMBwBUAAf4EAAEPAcAVAAH+BAABDwHAFQAB/gQAAQ8BwBUAAf8EAAEfAcAV AAH4BAABAwHAFQAB/gQAAQ8BwBUAAf4EAAEPAcAVAAH+BAABDwHAFQAB/wQAAR8BwBUAAf8EAAE/AcAV
AAH/BAABPwHAFQAB/wHAAwABfwHAFQAB/wHgAwAB/wHAFQAB/wHwAgABAQH/AcAVAAH/AfgCAAEDAf8B AAH/AcADAAF/AcAVAAH/AeADAAH/AcAVAAH/AfACAAEBAf8BwBUAAf8B+AIAAQMB/wHAFQAC/wIAAR8B
wBUAAv8CAAEfAf8BwBUAAv8BgAEAAT8B/wHAFQAC/wH+AQ8C/wHAFQAG/wHAFQAL /wHAFQAC/wGAAQABPwH/AcAVAAL/Af4BDwL/AcAVAAb/AcAVAAs=
</value> </value>
</data> </data>
<metadata name="ilTabIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ilTabIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -610,8 +603,8 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA5hgAAAJNU0Z0AUkBTAIBAQUB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA5BgAAAJNU0Z0AUkBTAIBAQUB
AAEIAQEBCAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASAa AAEgAQEBIAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASAa
AAM3AVoDWAG4A2MB3wJjAV0B3wFiAl0B3wNdAd8DXQHfAWECXQHfA2MB3wNjAd8DVQGsAzABS8wAAzsB AAM3AVoDWAG4A2MB3wJjAV0B3wFiAl0B3wNdAd8DXQHfAWECXQHfA2MB3wNjAd8DVQGsAzABS8wAAzsB
YgNdAcUDaAH0AZ8BZQExAf8BlwFTARcB/wGWAUsBCQH/AZMBRgEBAf8BjAFDAQMB/wF9AUABCwH/AWsB YgNdAcUDaAH0AZ8BZQExAf8BlwFTARcB/wGWAUsBCQH/AZMBRgEBAf8BjAFDAQMB/wF9AUABCwH/AWsB
QAEaAf8BbgFQATYB/wNoAfADWgG3AzQBVMQAAzUBVQNdAccCbgFaAfUBuAFlARsB/wG5AVgBAgH/AckB QAEaAf8BbgFQATYB/wNoAfADWgG3AzQBVMQAAzUBVQNdAccCbgFaAfUBuAFlARsB/wG5AVgBAgH/AckB
@ -632,10 +625,10 @@
/wFjAWEBXQHfwAAB/wHMAZ8C/wGsAWMC/wGTATMC/wGBAREC/wF5AQIC/wGCARYC/wGaAUsC/wGuAXgC /wFjAWEBXQHfwAAB/wHMAZ8C/wGsAWMC/wGTATMC/wGBAREC/wF5AQIC/wGCARYC/wGaAUsC/wGuAXgC
/wGlAVcC/wGBARcC/wF5AQQC/wF4AQAC/wF4AQAB/wHwAXEBAAH/AdUBcQEXAf8CYwFdAd/AAAH/AekB /wGlAVcC/wGBARcC/wF5AQQC/wF4AQAC/wF4AQAB/wHwAXEBAAH/AdUBcQEXAf8CYwFdAd/AAAH/AekB
1QL/AbwBgQL/AaQBVAL/AY4BKgL/AX8BDQL/AXkBAgL/AXsBCQL/AYIBHQL/AXgBAAL/AXgBAAL/AXgB 1QL/AbwBgQL/AaQBVAL/AY4BKgL/AX8BDQL/AXkBAgL/AXsBCQL/AYIBHQL/AXgBAAL/AXgBAAL/AXgB
AQL/AXoBBAL/AXoBAwH/AfMBdAEDAf8B4gGEATIB/wNjAd/AAANeAdIBiAGBAXEB+QH/AbsBfQL/AaMB AQL/AXoBBAL/AXoBAwH/AfMBdAEDAf8B4gGEATIB/wNjAd/AAANeAdIBhQF9AWsB+QH/AbsBfQL/AaMB
UgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0BCQL/AYABDwL/AX8BDQH/AfgB UgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0BCQL/AYABDwL/AX8BDQH/AfgB
hgEgAf8DaAH0A1gBuMAAAzwBZgNjAdUDfAH4Af8BvgGFAv8BqgFfAv8BmQE+Av8BjQEnAv8BhgEaAv8B hgEgAf8DaAH0A1gBuMAAAzwBZgNjAdUDfAH4Af8BvgGFAv8BqgFfAv8BmQE+Av8BjQEnAv8BhgEaAv8B
gwEVAv8BhQEZAv8BigEiAv8BjQEoAv8BkwEzAf8CbgFoAfUDXQHFAzYBWcQAA0IBcgNjAdUBiAGDAXsB gwEVAv8BhQEZAv8BigEiAv8BjQEoAv8BkwEzAf8CbgFoAfUDXQHFAzYBWcQAA0IBcgNjAdUBhQGAAXUB
+QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacBWAH/A3wB+ANdAccD +QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacBWAH/A3wB+ANdAccD
OwFizAADPAFlA14B0gH/Ae8B4AL/AdwBvAL/Ac0BnwL/AcEBigL/AbsBfwL/Ab8BhgL/Ac0BoQL/AekB OwFizAADPAFlA14B0gH/Ae8B4AL/AdwBvAL/Ac0BnwL/AcEBigL/AbsBfwL/Ab8BhgL/Ac0BoQL/AekB
1gH/A1wBxAM1AVXIAANnAe8CZwFZAe8BZwFdAVkB7wFnAVsBWQHvAWcBWwFZAe8BZwJZAe8BZwFkAVkB 1gH/A1wBxAM1AVXIAANnAe8CZwFZAe8BZwFdAVkB7wFnAVsBWQHvAWcBWwFZAe8BZwJZAe8BZwFkAVkB
@ -661,8 +654,8 @@
8wFzAQAB/wH6AXYBAAH/Af4BeAEAAv8BewEIAv8BiAEnAv8BogFTAf8B/gGBARcB/wH8AXgBBAH/AewB 8wFzAQAB/wH6AXYBAAH/Af4BeAEAAv8BewEIAv8BiAEnAv8BogFTAf8B/gGBARcB/wH8AXgBBAH/AewB
bwEAAf8BwQFbAQAB/wGGAUEBAwH/AXgBVgE2Af8DYwHfBP8BrAGWAWAB/wGDAYIBfwH/AYUBggF9Af8B bwEAAf8BwQFbAQAB/wGGAUEBAwH/AXgBVgE2Af8DYwHfBP8BrAGWAWAB/wGDAYIBfwH/AYUBggF9Af8B
swGTAUQB/wHPAZQBAAH/Ad4BzAGfAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOoAf8I swGTAUQB/wHPAZQBAAH/Ad4BzAGfAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOoAf8I
AAMaASQDUgGgAmMBSAH2AaIBcwEAAf8BrgF8AQAB/wGwAX0BAAH/AagBeAEAAf8BlQFqAQAB/wGAAXUB AAMaASQDUgGgAmMBSAH2AaIBcwEAAf8BrgF8AQAB/wGwAX0BAAH/AagBeAEAAf8BlQFqAQAB/wGAAXgB
IQH+AVwCWQHGA1cBtQMWAR4IAAMCAQMDGgEjAzgBXANUAagDYgHXA3AB8QOAAf4DgQH/A4EB/wOBAf8D JAH+AVwCWQHGA1cBtQMWAR4IAAMCAQMDGgEjAzgBXANUAagDYgHXA3AB8QOAAf4DgQH/A4EB/wOBAf8D
gQH9A2gB8ANhAdQDUwGlAzYBWQMYASAB/wGyAW8B/wH9AYABEQH/AfwBdwEBAf8B/QF3AQAC/wF4AQAC gQH9A2gB8ANhAdQDUwGlAzYBWQMYASAB/wGyAW8B/wH9AYABEQH/AfwBdwEBAf8B/QF3AQAC/wF4AQAC
/wF/AQ8C/wGSATsC/wGzAYMC/wHqAeAC/wGQAT0C/wF7AQoB/wH8AXcBAAH/AeUBbAEAAf8BsQFUAQAB /wF/AQ8C/wGSATsC/wGzAYMC/wHqAeAC/wGQAT0C/wF7AQoB/wH8AXcBAAH/AeUBbAEAAf8BsQFUAQAB
/wGEAUsBGgH/A2MB3wT/AdkBqgE3Af8BvgGYATgB/wHAAZgBNgH/AdwBogEUAf8BzwGUAQAB/wHeAcwB /wGEAUsBGgH/A2MB3wT/AdkBqgE3Af8BvgGYATgB/wHAAZgBNgH/AdwBogEUAf8BzwGUAQAB/wHeAcwB
@ -688,7 +681,7 @@
wAL/AeoB4AL/AZ0BVwL/AX4BEQL/AXgBAAL/AXgBAAH/AfABcQEAAf8BywFkAQkB/wFjAWEBXQHfBP8B wAL/AeoB4AL/AZ0BVwL/AX4BEQL/AXgBAAL/AXgBAAH/AfABcQEAAf8BywFkAQkB/wFjAWEBXQHfBP8B
hgGDAX4B/wOBAf8DgQH/AYYBgwF7Af8BzwGUAQAB/wHeAcwBnwH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D hgGDAX4B/wOBAf8DgQH/AYYBgwF7Af8BzwGUAQAB/wHeAcwBnwH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D
gQH/A4EB/wOBAf8DkwH/A2IB7gHvAbQBIQH/AfcB3AGXCf8DkQH/A4gB/wOHAf8DhwH/A4EB/wNXAf8D gQH/A4EB/wOBAf8DkwH/A2IB7gHvAbQBIQH/AfcB3AGXCf8DkQH/A4gB/wOHAf8DhwH/A4EB/wNXAf8D
5gH/A6MB/wG2AZEBNgH/AXUBagFBAfkEAANXAbIDZQHnA4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB 5gH/A6MB/wG2AZEBNgH/AW8BagFBAfkEAANXAbIDZQHnA4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB
/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNVAa8B/wHMAZ8C/wGsAWMC/wGTATMC/wGBAREC/wF5AQIC /wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNVAa8B/wHMAZ8C/wGsAWMC/wGTATMC/wGBAREC/wF5AQIC
/wGCARYC/wGaAUsC/wGuAXgC/wGlAVcC/wGBARcC/wF5AQQC/wF4AQAC/wF4AQAB/wHwAXEBAAH/AdUB /wGCARYC/wGaAUsC/wGuAXgC/wGlAVcC/wGBARcC/wF5AQQC/wF4AQAC/wF4AQAB/wHwAXEBAAH/AdUB
cQEXAf8CYwFdAd8E/wGLAYYBeQH/A4EB/wOBAf8BjgGGAXEB/wHPAZQBAAH/Ad4BzAGfAf8DoQH/A6EB cQEXAf8CYwFdAd8E/wGLAYYBeQH/A4EB/wOBAf8BjgGGAXEB/wHPAZQBAAH/Ad4BzAGfAf8DoQH/A6EB
@ -699,7 +692,7 @@
pwGUAWcB/wGDAYIBfwH/AYUBgwF+Af8BsAGUAU4B/wHTAZcBAgH/AeABzgGfAf8D5wH/A+cB/wPnAf8D pwGUAWcB/wGDAYIBfwH/AYUBgwF+Af8BsAGUAU4B/wHTAZcBAgH/AeABzgGfAf8D5wH/A+cB/wPnAf8D
5wH/A+cB/wPnAf8D5wH/A+cB/wPAAf8DBwEJA2IB7gHxAbwBOwH/AfoB6gHCAf8D3AH/A3cB/wNoAf8D 5wH/A+cB/wPnAf8D5wH/A+cB/wPAAf8DBwEJA2IB7gHxAbwBOwH/AfoB6gHCAf8D3AH/A3cB/wNoAf8D
aAH/A2gB/wMyCf8B8gHdAakB/wHqAakBCAH/Az4BagQAA2QB2wNoAfQDgQH/A4EB/wOBAf8DgQH/A4EB aAH/A2gB/wMyCf8B8gHdAakB/wHqAakBCAH/Az4BagQAA2QB2wNoAfQDgQH/A4EB/wOBAf8DgQH/A4EB
/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A1UBrwNeAdIBiAGBAXEB+QH/AbsBfQL/AaMB /wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A1UBrwNeAdIBhQF9AWsB+QH/AbsBfQL/AaMB
UgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0BCQL/AYABDwL/AX8BDQH/AfgB UgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0BCQL/AYABDwL/AX8BDQH/AfgB
hgEgAf8DaAH0A1gBuAT/AdcBsQFSAf8BmgGPAXQB/wGgAZIBbQH/AeABrwE3Af8B5wGpARAB/wHrAdUB hgEgAf8DaAH0A1gBuAT/AdcBsQFSAf8BmgGPAXQB/wGgAZIBbQH/AeABrwE3Af8B5wGpARAB/wHrAdUB
oAH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/BAADMwFRA2gB8AHzAcYBWAH/AfoB oAH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/BAADMwFRA2gB8AHzAcYBWAH/AfoB
@ -707,17 +700,16 @@
gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wN9AfoDVQGqAzwBZgNjAdUDfAH4Af8BvgGFAv8B gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wN9AfoDVQGqAzwBZgNjAdUDfAH4Af8BvgGFAv8B
qgFfAv8BmQE+Av8BjQEnAv8BhgEaAv8BgwEVAv8BhQEZAv8BigEiAv8BjQEoAv8BkwEzAf8CbgFoAfUD qgFfAv8BmQE+Av8BjQEnAv8BhgEaAv8BgwEVAv8BhQEZAv8BigEiAv8BjQEoAv8BkwEzAf8CbgFoAfUD
XQHFAzYBWQT/AfQBzQFsAf8B9AHLAWYB/wH0AcsBZQH/AfQBywFlAf8B8QHBAUkB/wH5AeMBrAH/A4kB XQHFAzYBWQT/AfQBzQFsAf8B9AHLAWYB/wH0AcsBZQH/AfQBywFlAf8B8QHBAUkB/wH5AeMBrAH/A4kB
/wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DmgH/CAADIgExA18ByQGDAX0BZwH6AfMBygFlAf8B /wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DmgH/CAADIgExA18ByQJ9AWcB+gHzAcoBZQH/AfkB
+QHhAaYB/wH7Ae0BzAH/AfsB7AHIAf8B+AHdAZsB/wGwAYIBcgH+AmUBXgHiAz0BaAQBCAADBgEIAzEB 4QGmAf8B+wHtAcwB/wH7AewByAH/AfgB3QGbAf8BqgGAAXUB/gJlAV4B4gM9AWgEAQgAAwYBCAMxAUwD
TANQAZsDZQHsA30B+gOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DfQH6A2oB7QNQAZsDLwFJBAAD UAGbA2UB7AN9AfoDgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A30B+gNqAe0DUAGbAy8BSQQAA0IB
QgFyA2MB1QGIAYMBewH5Af8ByQGZAv8BvAF/Av8BrgFmAv8BpAFTAv8BnwFKAv8BnwFLAv8BowFRAv8B cgNjAdUBhQGAAXUB+QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacB
pwFYAf8DfAH4A10BxwM7AWIEAED/EAADDwETA0cBggNkAdsBmAF+AW8B/ANnAeoDVAGoAygBOxwAAwUB WAH/A3wB+ANdAccDOwFiBABA/xAAAw8BEwNHAYIDZAHbAY8BfgFvAfwDZwHqA1QBqAMoATscAAMFAQYD
BgMSARcDOgFgA1EBnwNfAdMDZwHvA2MB9gNiAe4DXgHSA1EBngM5AV8DEQEWAwUBBgwAAzwBZQNeAdIB EgEXAzoBYANRAZ8DXwHTA2cB7wNjAfYDYgHuA14B0gNRAZ4DOQFfAxEBFgMFAQYMAAM8AWUDXgHSAf8B
/wHvAeAC/wHcAbwC/wHNAZ8C/wHBAYoC/wG7AX8C/wG/AYYC/wHNAaEC/wHpAdYB/wNcAcQDNQFVCAAB 7wHgAv8B3AG8Av8BzQGfAv8BwQGKAv8BuwF/Av8BvwGGAv8BzQGhAv8B6QHWAf8DXAHEAzUBVQgAAUIB
QgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wEAAcABAwYAAYABAWYAAYABAQYAAcAB TQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAHAAQMGAAGAAQFmAAGAAQEGAAHAAQMI
AwgAAf8B/AIAAcABAwIAAf8B/AIAAYABAQIAAf8B+QYAAf8B+QYAAfABEwYAAcABAwYAAYABAQL/BAAB AAH/AfwCAAHAAQMCAAH/AfwCAAGAAQECAAH/AfkGAAH/AfkGAAHwARMGAAHAAQMGAAGAAQEC/wQAAYAB
gAEBAcABAQUAAQEBgAYAAQEHAAEBBwABAQcAAQEGAAGAAQEGAAHAAQMCAAGAAQECAAHwAR8BwAEBAcAB AQHAAQEFAAEBAYAGAAEBBwABAQcAAQEHAAEBBgABgAEBBgABwAEDAgABgAEBAgAB8AEfAcABAQHAAQML
Aws=
</value> </value>
</data> </data>
</root> </root>

View File

@ -0,0 +1,135 @@
namespace qtcnet_client.Forms.Games
{
partial class GuessTheNumber
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
lblHeader = new Label();
nudNumberGuess = new NumericUpDown();
btnGuess = new Button();
lblPrizeInfo = new Label();
lblResult = new Label();
btnClaimPrize = new Button();
((System.ComponentModel.ISupportInitialize)nudNumberGuess).BeginInit();
SuspendLayout();
//
// lblHeader
//
lblHeader.Font = new Font("Segoe UI", 15F, FontStyle.Bold);
lblHeader.Location = new Point(12, 9);
lblHeader.Name = "lblHeader";
lblHeader.Size = new Size(486, 62);
lblHeader.TabIndex = 0;
lblHeader.Text = "Please Wait, Getting Number...";
lblHeader.TextAlign = ContentAlignment.MiddleCenter;
//
// nudNumberGuess
//
nudNumberGuess.Location = new Point(190, 127);
nudNumberGuess.Maximum = new decimal(new int[] { 500, 0, 0, 0 });
nudNumberGuess.Name = "nudNumberGuess";
nudNumberGuess.Size = new Size(120, 23);
nudNumberGuess.TabIndex = 1;
//
// btnGuess
//
btnGuess.ForeColor = Color.Black;
btnGuess.Location = new Point(225, 156);
btnGuess.Name = "btnGuess";
btnGuess.Size = new Size(46, 23);
btnGuess.TabIndex = 2;
btnGuess.Text = "Guess";
btnGuess.UseVisualStyleBackColor = true;
btnGuess.Click += btnGuess_Click;
//
// lblPrizeInfo
//
lblPrizeInfo.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
lblPrizeInfo.ForeColor = Color.Black;
lblPrizeInfo.Location = new Point(142, 180);
lblPrizeInfo.Name = "lblPrizeInfo";
lblPrizeInfo.Size = new Size(212, 63);
lblPrizeInfo.TabIndex = 3;
lblPrizeInfo.Text = "Prize Possibilities:\r\nGuess Is Higher By 10 - Jackpot Spin\r\nGuess Is Lower By 10 - 200 Q's\r\nGuess Is Equal - Jackpot";
lblPrizeInfo.TextAlign = ContentAlignment.TopCenter;
//
// lblResult
//
lblResult.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
lblResult.Location = new Point(12, 81);
lblResult.Name = "lblResult";
lblResult.Size = new Size(477, 15);
lblResult.TabIndex = 4;
lblResult.Text = "lblResult";
lblResult.TextAlign = ContentAlignment.MiddleCenter;
lblResult.Visible = false;
//
// btnClaimPrize
//
btnClaimPrize.ForeColor = Color.Black;
btnClaimPrize.Location = new Point(200, 100);
btnClaimPrize.Name = "btnClaimPrize";
btnClaimPrize.Size = new Size(99, 23);
btnClaimPrize.TabIndex = 5;
btnClaimPrize.Text = "PRIZE_CLAIM";
btnClaimPrize.UseVisualStyleBackColor = true;
btnClaimPrize.Visible = false;
//
// GuessTheNumber
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = Color.DodgerBlue;
ClientSize = new Size(511, 253);
Controls.Add(btnClaimPrize);
Controls.Add(lblResult);
Controls.Add(lblPrizeInfo);
Controls.Add(btnGuess);
Controls.Add(nudNumberGuess);
Controls.Add(lblHeader);
ForeColor = Color.White;
FormBorderStyle = FormBorderStyle.FixedDialog;
MaximizeBox = false;
MinimizeBox = false;
Name = "GuessTheNumber";
StartPosition = FormStartPosition.CenterScreen;
Text = "QtC.NET qGame - Guess The Number";
Load += GuessTheNumber_Load;
((System.ComponentModel.ISupportInitialize)nudNumberGuess).EndInit();
ResumeLayout(false);
}
#endregion
private Label lblHeader;
private NumericUpDown nudNumberGuess;
private Button btnGuess;
private Label lblPrizeInfo;
private Label lblResult;
private Button btnClaimPrize;
}
}

View File

@ -0,0 +1,132 @@
using qtcnet_client.Services;
using QtCNETAPI.Services.ApiService;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace qtcnet_client.Forms.Games
{
public partial class GuessTheNumber : Form
{
private IApiService _apiService;
private AudioService _audioService;
private int _number;
private int _guesses;
public GuessTheNumber(IApiService apiService, AudioService audioService)
{
_apiService = apiService;
_audioService = audioService;
InitializeComponent();
}
private async void GuessTheNumber_Load(object sender, EventArgs e) => await InitializeGTNGame();
private async void btnGuess_Click(object sender, EventArgs e)
{
if(nudNumberGuess.Value > 0)
{
btnGuess.Enabled = false;
int guess = int.Parse(nudNumberGuess.Value.ToString());
var result = await _apiService.GuessRandomNumber(_number, guess);
if(result != null && result.Success)
{
switch(result.Data)
{
case QtCNETAPI.Enums.NumberGuessResult.Higher:
lblResult.Text = "Your Guess Was Higher By 10! You've Earned A Jackpot Spin!";
btnClaimPrize.Text = "Spin";
btnClaimPrize.Click += BtnClaimPrize_Click_JackpotSpin;
lblResult.Visible = true;
btnClaimPrize.Visible = true;
break;
case QtCNETAPI.Enums.NumberGuessResult.Lower:
lblResult.Text = "Your Guess Was Lower By 10! You've Earned 200 Q's!";
btnClaimPrize.Text = "Claim";
btnClaimPrize.Click += BtnClaimPrize_Click_QClaim;
lblResult.Visible = true;
btnClaimPrize.Visible = true;
break;
case QtCNETAPI.Enums.NumberGuessResult.Correct:
lblResult.Text = "Your Correct! You've Earned The Jackpot!";
btnClaimPrize.Text = "Claim";
btnClaimPrize.Click += BtnClaimPrize_Click_QClaimJackpot;
lblResult.Visible = true;
btnClaimPrize.Visible = true;
break;
case QtCNETAPI.Enums.NumberGuessResult.Incorrect:
if (_guesses >= 2)
{
lblResult.Text = "Unfortunately you've used up all your guesses for this round.";
lblResult.Visible = true;
btnGuess.Visible = false;
break;
}
else _guesses++;
lblResult.Text = $"Incorrect. You Get Three Chances. You Guessed {_guesses} Time(s)";
lblResult.Visible = true;
btnGuess.Enabled = true;
break;
}
}
}
}
private void BtnClaimPrize_Click_QClaimJackpot(object? sender, EventArgs e)
{
throw new NotImplementedException("need to figure out how to do this, sorry :)");
}
private async void BtnClaimPrize_Click_QClaim(object? sender, EventArgs e)
{
var result = await _apiService.AddCurrencyToCurrentUser(200, false);
if (result != null && result.Success) Close();
else
{
MessageBox.Show("We Weren't Able To Claim Your Prize. You Can Try Again.", "Uh Oh...", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private async void BtnClaimPrize_Click_JackpotSpin(object? sender, EventArgs e)
{
Random rnd = new();
JackpotSpinForm tokenJackpotSpinner = new(_audioService)
{
CurrencyWon = rnd.Next(0, 200)
};
var formResult = tokenJackpotSpinner.ShowDialog();
if (formResult == DialogResult.OK)
{
var result = await _apiService.AddCurrencyToCurrentUser(tokenJackpotSpinner.CurrencyWon, false);
if (result != null && result.Success) Close();
else
{
MessageBox.Show("We Weren't Able To Claim Your Prize. You Can Try Again.", "Uh Oh...", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private async Task InitializeGTNGame()
{
var result = await _apiService.GetRandomNumber();
if (result != null && result.Success)
{
_number = result.Data;
lblHeader.Text = "I've picked a number between 1 and 500.\nWhat Is It?";
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,206 @@
namespace qtcnet_client.Forms.Games
{
partial class StockMarketGame
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
pStockManagement = new Panel();
nudStockBuySellAmount = new NumericUpDown();
btnSell = new Button();
btnBuy = new Button();
lblStockCount = new Label();
pMarketStatus = new Panel();
lblCurrentStockPrice = new Label();
lblMarketStatus = new Label();
pbDollarSignRight = new PictureBox();
pbDollarSignLeft = new PictureBox();
btnRefresh = new Button();
pStockManagement.SuspendLayout();
((System.ComponentModel.ISupportInitialize)nudStockBuySellAmount).BeginInit();
pMarketStatus.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pbDollarSignRight).BeginInit();
((System.ComponentModel.ISupportInitialize)pbDollarSignLeft).BeginInit();
SuspendLayout();
//
// pStockManagement
//
pStockManagement.Controls.Add(nudStockBuySellAmount);
pStockManagement.Controls.Add(btnSell);
pStockManagement.Controls.Add(btnBuy);
pStockManagement.Controls.Add(lblStockCount);
pStockManagement.Location = new Point(230, 138);
pStockManagement.Name = "pStockManagement";
pStockManagement.Size = new Size(135, 81);
pStockManagement.TabIndex = 3;
//
// nudStockBuySellAmount
//
nudStockBuySellAmount.Enabled = false;
nudStockBuySellAmount.Location = new Point(48, 7);
nudStockBuySellAmount.Name = "nudStockBuySellAmount";
nudStockBuySellAmount.Size = new Size(42, 23);
nudStockBuySellAmount.TabIndex = 9;
//
// btnSell
//
btnSell.Enabled = false;
btnSell.ForeColor = Color.Black;
btnSell.Location = new Point(88, 52);
btnSell.Name = "btnSell";
btnSell.Size = new Size(39, 23);
btnSell.TabIndex = 8;
btnSell.Text = "Sell";
btnSell.UseVisualStyleBackColor = true;
btnSell.Click += btnSell_Click;
//
// btnBuy
//
btnBuy.Enabled = false;
btnBuy.ForeColor = Color.Black;
btnBuy.Location = new Point(9, 52);
btnBuy.Name = "btnBuy";
btnBuy.Size = new Size(39, 23);
btnBuy.TabIndex = 7;
btnBuy.Text = "Buy";
btnBuy.UseVisualStyleBackColor = true;
btnBuy.Click += btnBuy_Click;
//
// lblStockCount
//
lblStockCount.Font = new Font("Segoe UI", 7F, FontStyle.Bold);
lblStockCount.ImageAlign = ContentAlignment.MiddleRight;
lblStockCount.Location = new Point(11, 34);
lblStockCount.Name = "lblStockCount";
lblStockCount.Size = new Size(115, 12);
lblStockCount.TabIndex = 6;
lblStockCount.Text = "Your Stock Count - 999";
lblStockCount.TextAlign = ContentAlignment.MiddleCenter;
//
// pMarketStatus
//
pMarketStatus.Controls.Add(lblCurrentStockPrice);
pMarketStatus.Controls.Add(lblMarketStatus);
pMarketStatus.Controls.Add(pbDollarSignRight);
pMarketStatus.Controls.Add(pbDollarSignLeft);
pMarketStatus.Location = new Point(3, 7);
pMarketStatus.Name = "pMarketStatus";
pMarketStatus.Size = new Size(586, 100);
pMarketStatus.TabIndex = 4;
//
// lblCurrentStockPrice
//
lblCurrentStockPrice.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
lblCurrentStockPrice.ForeColor = Color.Black;
lblCurrentStockPrice.Location = new Point(194, 73);
lblCurrentStockPrice.Name = "lblCurrentStockPrice";
lblCurrentStockPrice.Size = new Size(199, 15);
lblCurrentStockPrice.TabIndex = 5;
lblCurrentStockPrice.Text = "Current Price Per Stock Is 999 Q's";
lblCurrentStockPrice.TextAlign = ContentAlignment.MiddleCenter;
//
// lblMarketStatus
//
lblMarketStatus.Font = new Font("Segoe UI", 35F, FontStyle.Bold | FontStyle.Italic);
lblMarketStatus.Location = new Point(90, 4);
lblMarketStatus.Name = "lblMarketStatus";
lblMarketStatus.Size = new Size(408, 62);
lblMarketStatus.TabIndex = 5;
lblMarketStatus.Text = "MARKET_STATUS";
lblMarketStatus.TextAlign = ContentAlignment.MiddleCenter;
//
// pbDollarSignRight
//
pbDollarSignRight.Image = Properties.Resources.dollar_money;
pbDollarSignRight.Location = new Point(500, 3);
pbDollarSignRight.Name = "pbDollarSignRight";
pbDollarSignRight.Size = new Size(83, 94);
pbDollarSignRight.SizeMode = PictureBoxSizeMode.Zoom;
pbDollarSignRight.TabIndex = 4;
pbDollarSignRight.TabStop = false;
//
// pbDollarSignLeft
//
pbDollarSignLeft.Image = Properties.Resources.dollar_money;
pbDollarSignLeft.Location = new Point(3, 3);
pbDollarSignLeft.Name = "pbDollarSignLeft";
pbDollarSignLeft.Size = new Size(83, 94);
pbDollarSignLeft.SizeMode = PictureBoxSizeMode.Zoom;
pbDollarSignLeft.TabIndex = 3;
pbDollarSignLeft.TabStop = false;
//
// btnRefresh
//
btnRefresh.Enabled = false;
btnRefresh.ForeColor = Color.Black;
btnRefresh.Location = new Point(270, 113);
btnRefresh.Name = "btnRefresh";
btnRefresh.Size = new Size(56, 23);
btnRefresh.TabIndex = 10;
btnRefresh.Text = "Refresh";
btnRefresh.UseVisualStyleBackColor = true;
btnRefresh.Click += btnRefresh_Click;
//
// StockMarketGame
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = Color.DodgerBlue;
ClientSize = new Size(595, 227);
Controls.Add(btnRefresh);
Controls.Add(pMarketStatus);
Controls.Add(pStockManagement);
ForeColor = Color.White;
FormBorderStyle = FormBorderStyle.FixedDialog;
MaximizeBox = false;
MinimizeBox = false;
Name = "StockMarketGame";
StartPosition = FormStartPosition.CenterScreen;
Text = "QtC.NET qGame - Stock Market";
Load += StockMarketGame_Load;
pStockManagement.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)nudStockBuySellAmount).EndInit();
pMarketStatus.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)pbDollarSignRight).EndInit();
((System.ComponentModel.ISupportInitialize)pbDollarSignLeft).EndInit();
ResumeLayout(false);
}
#endregion
private Panel pStockManagement;
private Button btnSell;
private Button btnBuy;
private Label lblStockCount;
private Panel pMarketStatus;
private Label lblCurrentStockPrice;
private Label lblMarketStatus;
private PictureBox pbDollarSignRight;
private PictureBox pbDollarSignLeft;
private Button btnRefresh;
private NumericUpDown nudStockBuySellAmount;
}
}

View File

@ -0,0 +1,151 @@
using QtCNETAPI.Services.ApiService;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace qtcnet_client.Forms.Games
{
public partial class StockMarketGame : Form
{
private IApiService _apiService;
private int StockPrice = 0;
public StockMarketGame(IApiService apiService)
{
_apiService = apiService;
InitializeComponent();
}
private async void StockMarketGame_Load(object sender, EventArgs e) => await InitializeStockMarketGame();
private async void btnRefresh_Click(object sender, EventArgs e) => await InitializeStockMarketGame();
private async void btnBuy_Click(object sender, EventArgs e)
{
if (nudStockBuySellAmount.Value > 0)
{
nudStockBuySellAmount.Enabled = false;
btnBuy.Enabled = false;
btnSell.Enabled = false;
btnRefresh.Enabled = false;
// buy stock
var amountToBuy = int.Parse(nudStockBuySellAmount.Value.ToString());
var result = await _apiService.BuyStock(amountToBuy);
if (result != null && result.Success && result.Data != null)
{
lblStockCount.Text = $"Your Stock Count - {result.Data.StockAmount}";
_apiService.CurrentUser?.StockAmount = result.Data.StockAmount;
_apiService.CurrentUser?.CurrencyAmount = result.Data.CurrencyAmount;
nudStockBuySellAmount.Enabled = true;
nudStockBuySellAmount.Value = 0;
btnBuy.Enabled = true;
btnSell.Enabled = true;
btnRefresh.Enabled = true;
}
else
{
MessageBox.Show("Buy Failed. Either You Don't Have Enough Q's Or A Server Side Error Occured.", "Oops.", MessageBoxButtons.OK, MessageBoxIcon.Error);
nudStockBuySellAmount.Enabled = true;
nudStockBuySellAmount.Value = 0;
btnBuy.Enabled = true;
btnSell.Enabled = true;
btnRefresh.Enabled = true;
}
}
}
private async void btnSell_Click(object sender, EventArgs e)
{
if(nudStockBuySellAmount.Value > 0)
{
nudStockBuySellAmount.Enabled = false;
btnBuy.Enabled = false;
btnSell.Enabled = false;
btnRefresh.Enabled = false;
// sell stock
var amountToSell = int.Parse(nudStockBuySellAmount.Value.ToString());
var result = await _apiService.SellStock(amountToSell);
if (result != null && result.Success && result.Data != null)
{
lblStockCount.Text = $"Your Stock Count - {result.Data.StockAmount}";
_apiService.CurrentUser?.StockAmount = result.Data.StockAmount;
_apiService.CurrentUser?.CurrencyAmount = result.Data.CurrencyAmount;
nudStockBuySellAmount.Enabled = true;
nudStockBuySellAmount.Value = 0;
btnBuy.Enabled = true;
btnSell.Enabled = true;
btnRefresh.Enabled = true;
} else
{
MessageBox.Show("Sell Failed. Either You Don't Have Enough Stock Or A Server Side Error Occured.", "Oops.", MessageBoxButtons.OK, MessageBoxIcon.Error);
nudStockBuySellAmount.Enabled = true;
nudStockBuySellAmount.Value = 0;
btnBuy.Enabled = true;
btnSell.Enabled = true;
btnRefresh.Enabled = true;
}
}
}
private async Task InitializeStockMarketGame()
{
var currentStockPriceResult = await _apiService.GetCurrentStockPrice();
if (currentStockPriceResult != null && currentStockPriceResult.Success)
{
lblCurrentStockPrice.Text = $"Current Price Per Stock Is {currentStockPriceResult.Data} Q's";
lblStockCount.Text = $"Your Stock Count - {_apiService.CurrentUser?.StockAmount}";
switch (currentStockPriceResult.Data)
{
case < 49:
lblMarketStatus.Text = "not good cheif :(";
lblMarketStatus.ForeColor = Color.Red;
break;
case < 99:
lblMarketStatus.Text = "its aight :/";
lblMarketStatus.ForeColor = Color.DarkGreen;
break;
case < 149:
lblMarketStatus.Text = "its good :)";
lblMarketStatus.ForeColor = Color.Green;
break;
case < 199:
lblMarketStatus.Text = "very good :D";
lblMarketStatus.ForeColor = Color.Blue;
break;
case > 200:
lblMarketStatus.Text = "$ AWESOME $";
lblMarketStatus.ForeColor = Color.LightGreen;
break;
default:
lblMarketStatus.Text = "Cannot Determine";
lblMarketStatus.ForeColor = Color.White;
break;
}
nudStockBuySellAmount.Enabled = true;
btnBuy.Enabled = true;
btnSell.Enabled = true;
btnRefresh.Enabled = true;
}
else
{
MessageBox.Show("The Stock Market Endpoint Could Not Be Reached. Please Check Your Internet Connection", "Uh Oh.", MessageBoxButtons.OK, MessageBoxIcon.Error);
Close();
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,457 @@
namespace qtcnet_client.Forms.Games
{
partial class TicTacToeGame
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
pBoard = new Panel();
btnSquare9 = new Button();
btnSquare1 = new Button();
btnSquare7 = new Button();
btnSquare8 = new Button();
btnSquare6 = new Button();
btnSquare4 = new Button();
btnSquare5 = new Button();
btnSquare3 = new Button();
btnSquare2 = new Button();
pbBoard = new PictureBox();
pSymbolSelection = new Panel();
btnOSelect = new Button();
btnXSelect = new Button();
label1 = new Label();
pLoading = new Panel();
btnPlayAgain = new Button();
lblPlayAgain = new Label();
lblLoadStatus = new Label();
lblPlayerOne = new Label();
lblP1Username = new Label();
lblP2Username = new Label();
lblPlayerTwo = new Label();
lvUserlist = new ListView();
rtxtChatbox = new RichTextBox();
btnSend = new Button();
rtxtChat = new RichTextBox();
lblJackpotWon = new Label();
pBoard.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pbBoard).BeginInit();
pSymbolSelection.SuspendLayout();
pLoading.SuspendLayout();
SuspendLayout();
//
// pBoard
//
pBoard.Controls.Add(btnSquare9);
pBoard.Controls.Add(btnSquare1);
pBoard.Controls.Add(btnSquare7);
pBoard.Controls.Add(btnSquare8);
pBoard.Controls.Add(btnSquare6);
pBoard.Controls.Add(btnSquare4);
pBoard.Controls.Add(btnSquare5);
pBoard.Controls.Add(btnSquare3);
pBoard.Controls.Add(btnSquare2);
pBoard.Controls.Add(pbBoard);
pBoard.Enabled = false;
pBoard.Location = new Point(30, 18);
pBoard.Name = "pBoard";
pBoard.Size = new Size(541, 474);
pBoard.TabIndex = 0;
//
// btnSquare9
//
btnSquare9.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare9.FlatAppearance.BorderSize = 0;
btnSquare9.FlatStyle = FlatStyle.Flat;
btnSquare9.Location = new Point(374, 341);
btnSquare9.Name = "btnSquare9";
btnSquare9.Size = new Size(99, 90);
btnSquare9.TabIndex = 11;
btnSquare9.UseVisualStyleBackColor = true;
btnSquare9.Click += btnSquareX_Click;
//
// btnSquare1
//
btnSquare1.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare1.FlatAppearance.BorderSize = 0;
btnSquare1.FlatStyle = FlatStyle.Flat;
btnSquare1.Location = new Point(79, 49);
btnSquare1.Name = "btnSquare1";
btnSquare1.Size = new Size(99, 90);
btnSquare1.TabIndex = 4;
btnSquare1.UseVisualStyleBackColor = true;
btnSquare1.Click += btnSquareX_Click;
//
// btnSquare7
//
btnSquare7.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare7.FlatAppearance.BorderSize = 0;
btnSquare7.FlatStyle = FlatStyle.Flat;
btnSquare7.Location = new Point(79, 341);
btnSquare7.Name = "btnSquare7";
btnSquare7.Size = new Size(99, 90);
btnSquare7.TabIndex = 10;
btnSquare7.UseVisualStyleBackColor = true;
btnSquare7.Click += btnSquareX_Click;
//
// btnSquare8
//
btnSquare8.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare8.FlatAppearance.BorderSize = 0;
btnSquare8.FlatStyle = FlatStyle.Flat;
btnSquare8.Location = new Point(229, 341);
btnSquare8.Name = "btnSquare8";
btnSquare8.Size = new Size(99, 90);
btnSquare8.TabIndex = 9;
btnSquare8.UseVisualStyleBackColor = true;
btnSquare8.Click += btnSquareX_Click;
//
// btnSquare6
//
btnSquare6.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare6.FlatAppearance.BorderSize = 0;
btnSquare6.FlatStyle = FlatStyle.Flat;
btnSquare6.Location = new Point(374, 195);
btnSquare6.Name = "btnSquare6";
btnSquare6.Size = new Size(99, 90);
btnSquare6.TabIndex = 8;
btnSquare6.UseVisualStyleBackColor = true;
btnSquare6.Click += btnSquareX_Click;
//
// btnSquare4
//
btnSquare4.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare4.FlatAppearance.BorderSize = 0;
btnSquare4.FlatStyle = FlatStyle.Flat;
btnSquare4.Location = new Point(79, 195);
btnSquare4.Name = "btnSquare4";
btnSquare4.Size = new Size(99, 90);
btnSquare4.TabIndex = 7;
btnSquare4.UseVisualStyleBackColor = true;
btnSquare4.Click += btnSquareX_Click;
//
// btnSquare5
//
btnSquare5.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare5.FlatAppearance.BorderSize = 0;
btnSquare5.FlatStyle = FlatStyle.Flat;
btnSquare5.Location = new Point(229, 195);
btnSquare5.Name = "btnSquare5";
btnSquare5.Size = new Size(99, 90);
btnSquare5.TabIndex = 6;
btnSquare5.UseVisualStyleBackColor = true;
btnSquare5.Click += btnSquareX_Click;
//
// btnSquare3
//
btnSquare3.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare3.FlatAppearance.BorderSize = 0;
btnSquare3.FlatStyle = FlatStyle.Flat;
btnSquare3.Location = new Point(374, 49);
btnSquare3.Name = "btnSquare3";
btnSquare3.Size = new Size(99, 90);
btnSquare3.TabIndex = 5;
btnSquare3.UseVisualStyleBackColor = true;
btnSquare3.Click += btnSquareX_Click;
//
// btnSquare2
//
btnSquare2.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare2.FlatAppearance.BorderSize = 0;
btnSquare2.FlatStyle = FlatStyle.Flat;
btnSquare2.Location = new Point(229, 49);
btnSquare2.Name = "btnSquare2";
btnSquare2.Size = new Size(99, 90);
btnSquare2.TabIndex = 3;
btnSquare2.UseVisualStyleBackColor = true;
btnSquare2.Click += btnSquareX_Click;
//
// pbBoard
//
pbBoard.Image = Properties.Resources.Tic_tac_toe;
pbBoard.Location = new Point(27, 15);
pbBoard.Name = "pbBoard";
pbBoard.Size = new Size(501, 444);
pbBoard.SizeMode = PictureBoxSizeMode.Zoom;
pbBoard.TabIndex = 0;
pbBoard.TabStop = false;
//
// pSymbolSelection
//
pSymbolSelection.BorderStyle = BorderStyle.FixedSingle;
pSymbolSelection.Controls.Add(btnOSelect);
pSymbolSelection.Controls.Add(btnXSelect);
pSymbolSelection.Controls.Add(label1);
pSymbolSelection.Location = new Point(161, 109);
pSymbolSelection.Name = "pSymbolSelection";
pSymbolSelection.Size = new Size(275, 255);
pSymbolSelection.TabIndex = 3;
pSymbolSelection.Visible = false;
//
// btnOSelect
//
btnOSelect.BackgroundImage = Properties.Resources.O;
btnOSelect.BackgroundImageLayout = ImageLayout.Stretch;
btnOSelect.FlatAppearance.BorderSize = 0;
btnOSelect.FlatStyle = FlatStyle.Flat;
btnOSelect.Location = new Point(157, 104);
btnOSelect.Name = "btnOSelect";
btnOSelect.Size = new Size(91, 89);
btnOSelect.TabIndex = 2;
btnOSelect.UseVisualStyleBackColor = true;
btnOSelect.Click += btnOSelect_Click;
//
// btnXSelect
//
btnXSelect.BackgroundImage = Properties.Resources.X;
btnXSelect.BackgroundImageLayout = ImageLayout.Stretch;
btnXSelect.FlatAppearance.BorderSize = 0;
btnXSelect.FlatStyle = FlatStyle.Flat;
btnXSelect.Location = new Point(34, 103);
btnXSelect.Name = "btnXSelect";
btnXSelect.Size = new Size(91, 89);
btnXSelect.TabIndex = 1;
btnXSelect.UseVisualStyleBackColor = true;
btnXSelect.Click += btnXSelect_Click;
//
// label1
//
label1.Font = new Font("Segoe UI", 15F, FontStyle.Bold, GraphicsUnit.Point, 0);
label1.ForeColor = Color.White;
label1.Location = new Point(11, 14);
label1.Name = "label1";
label1.Size = new Size(250, 49);
label1.TabIndex = 0;
label1.Text = "Please Select Symbol";
label1.TextAlign = ContentAlignment.MiddleCenter;
//
// pLoading
//
pLoading.BorderStyle = BorderStyle.FixedSingle;
pLoading.Controls.Add(btnPlayAgain);
pLoading.Controls.Add(lblPlayAgain);
pLoading.Controls.Add(lblLoadStatus);
pLoading.Location = new Point(161, 109);
pLoading.Name = "pLoading";
pLoading.Size = new Size(275, 255);
pLoading.TabIndex = 2;
pLoading.Visible = false;
//
// btnPlayAgain
//
btnPlayAgain.Location = new Point(97, 223);
btnPlayAgain.Name = "btnPlayAgain";
btnPlayAgain.Size = new Size(75, 23);
btnPlayAgain.TabIndex = 2;
btnPlayAgain.Text = "Play Again";
btnPlayAgain.UseVisualStyleBackColor = true;
btnPlayAgain.Visible = false;
btnPlayAgain.Click += btnPlayAgain_Click;
//
// lblPlayAgain
//
lblPlayAgain.ForeColor = Color.White;
lblPlayAgain.Location = new Point(28, 134);
lblPlayAgain.Name = "lblPlayAgain";
lblPlayAgain.Size = new Size(218, 86);
lblPlayAgain.TabIndex = 1;
lblPlayAgain.Text = "If you wish to play with a different user, you can close\r\nthis window and match up again. Otherwise click\r\n\"Play Again\"";
lblPlayAgain.TextAlign = ContentAlignment.MiddleCenter;
lblPlayAgain.Visible = false;
//
// lblLoadStatus
//
lblLoadStatus.Font = new Font("Segoe UI", 21.75F, FontStyle.Bold, GraphicsUnit.Point, 0);
lblLoadStatus.ForeColor = Color.White;
lblLoadStatus.Location = new Point(11, 4);
lblLoadStatus.Name = "lblLoadStatus";
lblLoadStatus.Size = new Size(250, 130);
lblLoadStatus.TabIndex = 0;
lblLoadStatus.Text = "Text";
lblLoadStatus.TextAlign = ContentAlignment.MiddleCenter;
//
// lblPlayerOne
//
lblPlayerOne.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic);
lblPlayerOne.ForeColor = Color.White;
lblPlayerOne.Location = new Point(30, 501);
lblPlayerOne.Name = "lblPlayerOne";
lblPlayerOne.Size = new Size(29, 23);
lblPlayerOne.TabIndex = 2;
lblPlayerOne.Text = "P1";
//
// lblP1Username
//
lblP1Username.AutoSize = true;
lblP1Username.Font = new Font("Segoe UI", 15F, FontStyle.Bold | FontStyle.Italic);
lblP1Username.ForeColor = Color.White;
lblP1Username.Location = new Point(26, 519);
lblP1Username.Name = "lblP1Username";
lblP1Username.Size = new Size(105, 28);
lblP1Username.TabIndex = 3;
lblP1Username.Text = "Username";
//
// lblP2Username
//
lblP2Username.AutoSize = true;
lblP2Username.Font = new Font("Segoe UI", 15F, FontStyle.Bold | FontStyle.Italic);
lblP2Username.ForeColor = Color.White;
lblP2Username.Location = new Point(466, 519);
lblP2Username.Name = "lblP2Username";
lblP2Username.Size = new Size(105, 28);
lblP2Username.TabIndex = 5;
lblP2Username.Text = "Username";
lblP2Username.TextAlign = ContentAlignment.MiddleRight;
//
// lblPlayerTwo
//
lblPlayerTwo.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic);
lblPlayerTwo.ForeColor = Color.White;
lblPlayerTwo.Location = new Point(540, 501);
lblPlayerTwo.Name = "lblPlayerTwo";
lblPlayerTwo.Size = new Size(29, 23);
lblPlayerTwo.TabIndex = 4;
lblPlayerTwo.Text = "P2";
//
// lvUserlist
//
lvUserlist.Alignment = ListViewAlignment.Left;
lvUserlist.Location = new Point(577, 48);
lvUserlist.MultiSelect = false;
lvUserlist.Name = "lvUserlist";
lvUserlist.Size = new Size(309, 211);
lvUserlist.TabIndex = 6;
lvUserlist.UseCompatibleStateImageBehavior = false;
lvUserlist.View = View.SmallIcon;
//
// rtxtChatbox
//
rtxtChatbox.Location = new Point(577, 497);
rtxtChatbox.Name = "rtxtChatbox";
rtxtChatbox.Size = new Size(230, 49);
rtxtChatbox.TabIndex = 8;
rtxtChatbox.Text = "";
rtxtChatbox.KeyDown += rtxtChatbox_KeyDown;
//
// btnSend
//
btnSend.BackgroundImage = Properties.Resources.SendIcon;
btnSend.BackgroundImageLayout = ImageLayout.Zoom;
btnSend.FlatAppearance.BorderSize = 0;
btnSend.FlatStyle = FlatStyle.Flat;
btnSend.Location = new Point(811, 497);
btnSend.Name = "btnSend";
btnSend.Size = new Size(75, 50);
btnSend.TabIndex = 9;
btnSend.UseVisualStyleBackColor = true;
btnSend.Click += btnSend_Click;
//
// rtxtChat
//
rtxtChat.Font = new Font("Segoe UI", 10F);
rtxtChat.HideSelection = false;
rtxtChat.Location = new Point(577, 265);
rtxtChat.Name = "rtxtChat";
rtxtChat.ReadOnly = true;
rtxtChat.Size = new Size(309, 227);
rtxtChat.TabIndex = 10;
rtxtChat.Text = "";
//
// lblJackpotWon
//
lblJackpotWon.AutoSize = true;
lblJackpotWon.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic);
lblJackpotWon.ForeColor = Color.Blue;
lblJackpotWon.Location = new Point(744, 18);
lblJackpotWon.Name = "lblJackpotWon";
lblJackpotWon.Size = new Size(142, 21);
lblJackpotWon.TabIndex = 11;
lblJackpotWon.Text = "3 Wins = Jackpot!";
//
// TicTacToeGame
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = Color.DodgerBlue;
ClientSize = new Size(898, 558);
Controls.Add(lblJackpotWon);
Controls.Add(rtxtChat);
Controls.Add(btnSend);
Controls.Add(rtxtChatbox);
Controls.Add(lvUserlist);
Controls.Add(lblP2Username);
Controls.Add(lblPlayerTwo);
Controls.Add(lblP1Username);
Controls.Add(lblPlayerOne);
Controls.Add(pLoading);
Controls.Add(pSymbolSelection);
Controls.Add(pBoard);
FormBorderStyle = FormBorderStyle.FixedDialog;
MaximizeBox = false;
Name = "TicTacToeGame";
StartPosition = FormStartPosition.CenterScreen;
Text = "QtC.NET qGame - qTic-Tac-Toe";
FormClosed += TicTacToeGame_FormClosed;
Load += Main_Load;
pBoard.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)pbBoard).EndInit();
pSymbolSelection.ResumeLayout(false);
pLoading.ResumeLayout(false);
ResumeLayout(false);
PerformLayout();
}
#endregion
private Panel pBoard;
private PictureBox pbBoard;
private Button btnSquare9;
private Button btnSquare7;
private Button btnSquare8;
private Button btnSquare6;
private Button btnSquare4;
private Button btnSquare5;
private Button btnSquare3;
private Button btnSquare1;
private Button btnSquare2;
private Panel pLoading;
private Label lblLoadStatus;
private Label lblPlayerOne;
private Label lblP1Username;
private Label lblP2Username;
private Label lblPlayerTwo;
private Panel pSymbolSelection;
private Button btnOSelect;
private Button btnXSelect;
private Label label1;
private ListView lvUserlist;
private RichTextBox rtxtChatbox;
private Button btnSend;
private Label lblPlayAgain;
private Button btnPlayAgain;
private RichTextBox rtxtChat;
private Label lblJackpotWon;
}
}

View File

@ -0,0 +1,523 @@
using Microsoft.AspNetCore.SignalR.Client;
using qtcnet_client.Forms;
using qtcnet_client.Services;
using QtCNETAPI.Enums;
using QtCNETAPI.Models;
using QtCNETAPI.Schema;
using QtCNETAPI.Services.ApiService;
using System.Threading.Tasks;
using qtcnet_client.Model;
namespace qtcnet_client.Forms.Games
{
public partial class TicTacToeGame : Form
{
private HubConnection? GameHubConnection { get; set; }
private GameRoom? CurrentRoom { get; set; }
private IApiService _apiService;
private ClientConfig _config;
private AudioService _audioService = new();
private int WinCount { get; set; }
private bool JackpotWon { get; set; } = false;
public TicTacToeGame(IApiService apiService, ClientConfig config)
{
_apiService = apiService;
_config = config;
InitializeComponent();
}
private async void Main_Load(object sender, EventArgs e)
{
// first, connect to the game hub
GameHubConnection = new HubConnectionBuilder()
.WithUrl($"{_config.ServerBaseUri}/tttgame", options =>
{
options.AccessTokenProvider = () => Task.FromResult(_apiService.SessionToken)!;
})
.WithAutomaticReconnect()
.Build();
pLoading.Visible = true;
lblLoadStatus.Text = "Connecting\nTo\nHub...";
GameHubConnection.On<GameRoom>("WaitingForPlayer", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (room.Player1 != null)
{
lblP1Username.Text = room.Player1.Username;
lvUserlist.Items.Add(room.Player1.Id, room.Player1.Username, room.Player1.Status);
}
lblLoadStatus.Text = "Waiting\nFor\nPlayer...";
});
});
GameHubConnection.On<GameRoom>("GameStart", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
pLoading.Visible = false;
pSymbolSelection.Visible = false;
});
});
GameHubConnection.On<GameRoom, string?>("GameEnd", (room, usernameDisconnected) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (room.Player1 == null) lblP1Username.Text = "Username";
if (room.Player2 == null) lblP2Username.Text = "Username";
ToggleBoardControl(false);
switch (room.Status)
{
case GameStatus.P1Win:
{
if (_apiService.CurrentUser?.Id == room.Player1?.Id)
{
lblLoadStatus.Text = "You Won!";
WinCount++;
if (WinCount >= 3)
{
JackpotWon = true;
lblJackpotWon.Text = "You Won A Spin!";
}
}
else lblLoadStatus.Text = "You Lost!";
lblPlayAgain.Visible = true;
btnPlayAgain.Visible = true;
break;
}
case GameStatus.P2Win:
{
if (_apiService.CurrentUser?.Id == room.Player2?.Id)
{
lblLoadStatus.Text = "You Won!";
WinCount++;
if (WinCount >= 3)
{
JackpotWon = true;
lblJackpotWon.Text = "You Won A Spin!";
}
}
else lblLoadStatus.Text = "You Lost!";
lblPlayAgain.Visible = true;
btnPlayAgain.Visible = true;
break;
}
case GameStatus.PlayerDisconnected:
{
if (!string.IsNullOrEmpty(usernameDisconnected))
lblLoadStatus.Text = $"Game Ended.\nUser {usernameDisconnected}\nDisconnected.";
lblPlayAgain.Visible = false;
btnPlayAgain.Visible = false;
break;
}
case GameStatus.NoWin:
lblLoadStatus.Text = "It's a draw!";
lblPlayAgain.Visible = true;
btnPlayAgain.Visible = true;
break;
}
pLoading.Visible = true;
});
});
GameHubConnection.On<GameRoom>("RestartGame", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (pLoading.Visible) pLoading.Visible = false;
});
ClearBoard();
ToggleBoardControl(true);
BeginInvoke(delegate ()
{
List<Button> buttons = [btnSquare1, btnSquare2, btnSquare3, btnSquare4, btnSquare5, btnSquare6, btnSquare7, btnSquare8, btnSquare9];
foreach (Button button in buttons)
{
if (button.BackgroundImage == null)
button.Enabled = true;
}
});
});
GameHubConnection.On<GameRoom>("SelectSymbol", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (room.Player1 != null)
{
lblP1Username.Text = room.Player1.Username;
if (!lvUserlist.Items.ContainsKey(room.Player1.Id)) lvUserlist.Items.Add(room.Player1.Id, room.Player1.Username, room.Player1.Status);
}
if (room.Player2 != null)
{
lblP2Username.Text = room.Player2.Username;
if (!lvUserlist.Items.ContainsKey(room.Player2.Id)) lvUserlist.Items.Add(room.Player2.Id, room.Player2.Username, room.Player2.Status);
}
if (pLoading.Visible) pLoading.Visible = false;
pSymbolSelection.Visible = true;
pBoard.Enabled = true;
ToggleAllSquareButtons(false);
});
});
GameHubConnection.On<GameRoom>("SelectingSymbol", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (pSymbolSelection.Visible) return;
if (room.Player1 != null)
{
lblP1Username.Text = room.Player1.Username;
if (!lvUserlist.Items.ContainsKey(room.Player1.Id)) lvUserlist.Items.Add(room.Player1.Id, room.Player1.Username, room.Player1.Status);
}
if (room.Player2 != null)
{
lblP2Username.Text = room.Player2.Username;
if (!lvUserlist.Items.ContainsKey(room.Player2.Id)) lvUserlist.Items.Add(room.Player2.Id, room.Player2.Username, room.Player2.Status);
}
pLoading.Visible = true;
lblLoadStatus.Text = $"Player 1\nIs Selecting\nSymbol...";
});
});
GameHubConnection.On<GameRoom, TicTacToeMove>("UpdateBoard", (room, move) =>
{
CurrentRoom = room;
UpdateBoardUI(move);
});
GameHubConnection.On<GameRoom>("StartTurn", (room) =>
{
CurrentRoom = room;
ToggleBoardControl(true);
AddChatMessage("[SERVER] Your Turn!");
});
GameHubConnection.On<GameRoom>("EndTurn", (room) =>
{
CurrentRoom = room;
ToggleBoardControl(false);
AddChatMessage("[SERVER] Other Players Turn");
});
GameHubConnection.On<string>("ReceiveMessage", (msg) =>
{
AddChatMessage(msg);
if (msg.Split('[')[1] != _apiService.CurrentUser?.Username)
_audioService.PlaySoundEffect("sndMessage");
});
try { await GameHubConnection.StartAsync(); }
catch (HttpRequestException ex)
{
MessageBox.Show($"Sorry, We Couldn't Connect To The Game Server Due To An Error. Please Try Again Later.\n\n{ex.Message}", "Oops.", MessageBoxButtons.OK, MessageBoxIcon.Error);
Environment.Exit(0);
}
lblLoadStatus.Text = "Finding\nRoom...";
await GameHubConnection.SendAsync("FindRoom");
}
private async void TicTacToeGame_FormClosed(object sender, FormClosedEventArgs e)
{
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected)
{
if(JackpotWon)
{
// start a jackpot spin
Random rnd = new();
JackpotSpinForm currencyJackpotSpinner = new(_audioService)
{
CurrencyWon = rnd.Next(0, 200)
};
var dialogResult = currencyJackpotSpinner.ShowDialog();
if (dialogResult == DialogResult.OK)
{
await _apiService.AddCurrencyToCurrentUser(currencyJackpotSpinner.CurrencyWon, false);
}
}
// stop and dispose connection
await GameHubConnection.StopAsync();
await GameHubConnection.DisposeAsync();
GameHubConnection = null;
}
}
private async void btnXSelect_Click(object sender, EventArgs e) => await SelectSymbol(TicTacToeSymbol.X);
private async void btnOSelect_Click(object sender, EventArgs e) => await SelectSymbol(TicTacToeSymbol.O);
private async void btnPlayAgain_Click(object sender, EventArgs e)
{
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null)
{
await GameHubConnection.SendAsync("RestartGame", CurrentRoom.Id);
}
}
private async void btnSquareX_Click(object sender, EventArgs e)
{
// create move
TicTacToeMove move = new TicTacToeMove
{
User = _apiService.CurrentUser!
};
if (sender is Button btn)
{
switch (btn.Name)
{
case "btnSquare1":
move.Point = 1;
break;
case "btnSquare2":
move.Point = 2;
break;
case "btnSquare3":
move.Point = 3;
break;
case "btnSquare4":
move.Point = 4;
break;
case "btnSquare5":
move.Point = 5;
break;
case "btnSquare6":
move.Point = 6;
break;
case "btnSquare7":
move.Point = 7;
break;
case "btnSquare8":
move.Point = 8;
break;
case "btnSquare9":
move.Point = 9;
break;
}
}
// send move
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null)
await GameHubConnection.SendAsync("MakeMove", CurrentRoom.Id, move);
}
private async void btnSend_Click(object sender, EventArgs e)
{
if ((GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null) &&
!string.IsNullOrWhiteSpace(rtxtChatbox.Text))
{
await GameHubConnection.SendAsync("SendRoomMessage", CurrentRoom.Id, $"[{_apiService.CurrentUser?.Username}] {rtxtChatbox.Text}");
_audioService.PlaySoundEffect("sndSendClick");
rtxtChatbox.Clear();
}
}
private void rtxtChatbox_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
btnSend_Click(sender, e);
}
private void ToggleBoardControl(bool toggle)
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
pBoard.Enabled = toggle;
});
}
}
private void ToggleAllSquareButtons(bool toggle)
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
List<Button> buttons = [btnSquare1, btnSquare2, btnSquare3, btnSquare4, btnSquare5, btnSquare6, btnSquare7, btnSquare8, btnSquare9];
foreach (Button button in buttons)
button.Enabled = toggle;
});
}
}
private async Task SelectSymbol(TicTacToeSymbol symbol)
{
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null)
{
await GameHubConnection.SendAsync("SetSymbol", CurrentRoom.Id, symbol);
ToggleAllSquareButtons(true);
}
}
private void UpdateBoardUI(TicTacToeMove move)
{
if (IsHandleCreated && !IsDisposed && CurrentRoom != null)
{
// play move made sound
_audioService.PlaySoundEffect("sndTTTMoveMade");
Invoke(delegate ()
{
switch (CurrentRoom.Board.Square1)
{
case TicTacToeSymbol.X:
btnSquare1.BackgroundImage = Properties.Resources.X;
btnSquare1.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare1.BackgroundImage = Properties.Resources.O;
btnSquare1.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square2)
{
case TicTacToeSymbol.X:
btnSquare2.BackgroundImage = Properties.Resources.X;
btnSquare2.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare2.BackgroundImage = Properties.Resources.O;
btnSquare2.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square3)
{
case TicTacToeSymbol.X:
btnSquare3.BackgroundImage = Properties.Resources.X;
btnSquare3.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare3.BackgroundImage = Properties.Resources.O;
btnSquare3.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square4)
{
case TicTacToeSymbol.X:
btnSquare4.BackgroundImage = Properties.Resources.X;
btnSquare4.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare4.BackgroundImage = Properties.Resources.O;
btnSquare4.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square5)
{
case TicTacToeSymbol.X:
btnSquare5.BackgroundImage = Properties.Resources.X;
btnSquare5.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare5.BackgroundImage = Properties.Resources.O;
btnSquare5.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square6)
{
case TicTacToeSymbol.X:
btnSquare6.BackgroundImage = Properties.Resources.X;
btnSquare6.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare6.BackgroundImage = Properties.Resources.O;
btnSquare6.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square7)
{
case TicTacToeSymbol.X:
btnSquare7.BackgroundImage = Properties.Resources.X;
btnSquare7.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare7.BackgroundImage = Properties.Resources.O;
btnSquare7.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square8)
{
case TicTacToeSymbol.X:
btnSquare8.BackgroundImage = Properties.Resources.X;
btnSquare8.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare8.BackgroundImage = Properties.Resources.O;
btnSquare8.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square9)
{
case TicTacToeSymbol.X:
btnSquare9.BackgroundImage = Properties.Resources.X;
btnSquare9.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare9.BackgroundImage = Properties.Resources.O;
btnSquare9.Enabled = false;
break;
}
});
}
}
private void AddChatMessage(string msg)
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
rtxtChat.AppendText($"{msg}\n");
});
}
}
private void ClearBoard()
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
List<Button> buttons = [btnSquare1, btnSquare2, btnSquare3, btnSquare4, btnSquare5, btnSquare6, btnSquare7, btnSquare8, btnSquare9];
foreach (Button button in buttons)
button.BackgroundImage = null;
});
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,22 +1,17 @@
using Krypton.Toolkit; using Krypton.Toolkit;
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.VisualBasic.ApplicationServices;
using qtcnet_client.Controls; using qtcnet_client.Controls;
using qtcnet_client.Factories; using qtcnet_client.Factories;
using qtcnet_client.Forms; using qtcnet_client.Forms;
using qtcnet_client.Forms.Games;
using qtcnet_client.Model; using qtcnet_client.Model;
using qtcnet_client.Properties;
using qtcnet_client.Services; using qtcnet_client.Services;
using QtCNETAPI.Dtos.User; using QtCNETAPI.Dtos.User;
using QtCNETAPI.Events; using QtCNETAPI.Events;
using QtCNETAPI.Models; using QtCNETAPI.Models;
using QtCNETAPI.Schema;
using QtCNETAPI.Services; using QtCNETAPI.Services;
using QtCNETAPI.Services.ApiService; using QtCNETAPI.Services.ApiService;
using QtCNETAPI.Services.GatewayService; using QtCNETAPI.Services.GatewayService;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
using System.Runtime.ExceptionServices;
using System.Threading.Tasks;
namespace qtcnet_client namespace qtcnet_client
{ {
@ -615,6 +610,7 @@ namespace qtcnet_client
MainTabControl.OnContactControlDoubleClicked += MainTabControl_OnContactControlDoubleClicked; MainTabControl.OnContactControlDoubleClicked += MainTabControl_OnContactControlDoubleClicked;
MainTabControl.OnUserItemDoubleClicked += MainTabControl_OnUserItemDoubleClicked; MainTabControl.OnUserItemDoubleClicked += MainTabControl_OnUserItemDoubleClicked;
MainTabControl.OnStoreItemDoubleClicked += MainTabControl_OnStoreItemDoubleClicked; MainTabControl.OnStoreItemDoubleClicked += MainTabControl_OnStoreItemDoubleClicked;
MainTabControl.OnGameItemDoubleClicked += MainTabControl_OnGameItemDoubleClicked;
// get and set contacts // get and set contacts
var _currentUserContacts = await _apiService.GetCurrentUserContacts(); var _currentUserContacts = await _apiService.GetCurrentUserContacts();
@ -663,6 +659,9 @@ namespace qtcnet_client
}; };
Controls.Add(llblAdminPanel); Controls.Add(llblAdminPanel);
// set isadmin to true for other admin stuff
IsAdmin = true;
} }
ResumeLayout(true); ResumeLayout(true);
@ -704,6 +703,30 @@ namespace qtcnet_client
} }
} }
private void MainTabControl_OnGameItemDoubleClicked(object? sender, EventArgs e)
{
if(sender is MainTabControl _ctrl)
{
string? gameSelected = (string?)_ctrl.SelectedGameItem?.Tag;
switch (gameSelected)
{
case "StockMarketGame":
StockMarketGame stockMarketGame = new(_apiService);
stockMarketGame.Show();
break;
case "GuessTheNumberGame":
GuessTheNumber guessTheNumber = new(_apiService, _audioService);
guessTheNumber.Show();
break;
case "TicTacToeGame":
TicTacToeGame ticTacToeGame = new(_apiService, _config);
ticTacToeGame.Show();
break;
}
}
}
private async void MainTabControl_OnStoreItemDoubleClicked(object? sender, EventArgs e) private async void MainTabControl_OnStoreItemDoubleClicked(object? sender, EventArgs e)
{ {
if (sender is MainTabControl _ctrl && _ctrl.SelectedStoreItem?.Tag is int _itemId) if (sender is MainTabControl _ctrl && _ctrl.SelectedStoreItem?.Tag is int _itemId)

View File

@ -149,6 +149,16 @@ namespace qtcnet_client.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap dollar_money {
get {
object obj = ResourceManager.GetObject("dollar-money", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -159,6 +169,16 @@ namespace qtcnet_client.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap O {
get {
object obj = ResourceManager.GetObject("O", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -228,5 +248,25 @@ namespace qtcnet_client.Properties {
return ((System.Drawing.Bitmap)(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Tic_tac_toe {
get {
object obj = ResourceManager.GetObject("Tic-tac-toe", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap X {
get {
object obj = ResourceManager.GetObject("X", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
} }
} }

View File

@ -169,4 +169,16 @@
<data name="AssemblyVersion" xml:space="preserve"> <data name="AssemblyVersion" xml:space="preserve">
<value>1.0.0</value> <value>1.0.0</value>
</data> </data>
<data name="Tic-tac-toe" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Tic-tac-toe.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="X" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\X.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="O" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\O.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dollar-money" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dollar-money.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -69,4 +69,8 @@
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Forms\Games\" />
</ItemGroup>
</Project> </Project>