* KR 6.1 오류 검증용
* 설정 파일 위치 추가 (P=ActConfig, S=Plugin)
* KR 오류 수정 완료 된것으로 보임 (#116)
* Config 파일 저장 위치 추가 (#117)
This commit is contained in:
ksh 2022-09-13 13:52:28 +09:00 committed by GitHub
parent 6721190daa
commit 663a52c606
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 160 additions and 102 deletions

View file

@ -39,6 +39,8 @@ LANG=日本語
41=削除
42=ネットワーク接続ステータス: {0}
43=接続なし
44=FFXIV プラグインの地役調べが失敗しました
45=FFXIV プラグインの地役: {0} ({1})
99=DutyContent プラグイン {0}

View file

@ -39,6 +39,8 @@ LANG=한국어(액토즈)
41=삭제
42=네트워크 연결 상태: {0}
43=접속하고 있지 않습니다
44=클라이언트 리전 조사가 실패했어요!
45=클라이언트 리전: {0} ({1})
99=듀티 콘텐츠 플러그인 {0}

View file

@ -39,6 +39,8 @@ LANG=한국어
41=삭제
42=네트워크 연결 상태: {0}
43=끊겨있음
44=FFXIV 플러그인 리전 조사가 실패했어요!
45=FFXIV 플러그인 리전: {0} ({1})
99=듀티 콘텐츠 플러그인 {0}

View file

@ -12,13 +12,16 @@ namespace DutyContent
{
class DcConfig
{
public static int PluginTag => 26;
public static int PluginTag => 27;
public static Version PluginVersion => System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
public static bool PluginEnable { get; set; }
public static string PluginPath { get; set; }
public static string DataPath { get; set; }
public static string ConfigPath { get; set; }
//
public static string ActConfigPath { get; set; }
public static string PluginConfigPath { get; set; }
//
public static PacketConfig Packet = new PacketConfig();
@ -35,6 +38,9 @@ namespace DutyContent
public static bool StatusBar { get; set; } = false;
public static bool DebugEnable { get; set; } = false;
//
public static int GameRegion { get; set; } = 0; // 0=SQ, 1=ACTOZ
//
public static string BuildDataFileName(string header, string context, string ext)
{
@ -63,7 +69,7 @@ namespace DutyContent
public static void SaveConfig(string filename = null)
{
if (filename == null)
filename = ConfigPath;
filename = ActConfigPath;
using (var sw = new StreamWriter(filename, false, Encoding.UTF8))
{
@ -86,10 +92,22 @@ namespace DutyContent
//
public static void LoadConfig(string filename = null)
{
if (filename == null)
filename = ConfigPath;
if (!File.Exists(filename))
if (string.IsNullOrEmpty(filename))
{
if (File.Exists(ActConfigPath))
filename = ActConfigPath;
else
{
if (File.Exists(PluginConfigPath))
filename = PluginConfigPath;
else
{
filename = ActConfigPath;
SaveConfig(filename);
}
}
}
else if (!File.Exists(filename))
SaveConfig(filename);
var db = new ThirdParty.LineDb(filename, Encoding.UTF8, false);

View file

@ -79,7 +79,10 @@ namespace DutyContent
DcConfig.PluginPath = pin?.pluginFile.DirectoryName;
DcConfig.DataPath = Path.Combine(DcConfig.PluginPath, "Data");
DcConfig.ConfigPath = Path.Combine(DcConfig.PluginPath, "DutyContent.config");
DcConfig.PluginConfigPath = Path.Combine(DcConfig.PluginPath, "DutyContent.config");
var actdata = ActGlobals.oFormActMain.AppDataFolder.FullName;
DcConfig.ActConfigPath = Path.Combine(actdata, "Config", "DutyContent.config");
}
//
@ -119,6 +122,36 @@ namespace DutyContent
Logger.I(6, System.Diagnostics.FileVersionInfo.GetVersionInfo(_ffxiv_plugin_data.pluginFile.FullName).FileVersion);
}
// begin region check - from cacbot "VersionChecker.cs"
try
{
var mach = System.Reflection.Assembly.Load("Machina.FFXIV");
var opcode_manager_type = mach.GetType("Machina.FFXIV.Headers.Opcodes.OpcodeManager");
var opcode_manager = opcode_manager_type.GetProperty("Instance").GetValue(null);
var machina_region = opcode_manager_type.GetProperty("GameRegion").GetValue(opcode_manager).ToString();
switch (machina_region)
{
//case "Chinese": // no chinese support now
case "Korean":
DcConfig.GameRegion = 1;
break;
default:
DcConfig.GameRegion = 0;
break;
}
Logger.I(45, machina_region, DcConfig.GameRegion);
}
catch (Exception ex)
{
Logger.Ex(ex, 44);
DcConfig.GameRegion = 0;
}
if (DcConfig.GameRegion != 0)
DcConfig.Duty.PacketForLocal = true;
// end region check
_save_timer = new System.Timers.Timer() { Interval = 5000 };
_save_timer.Elapsed += (sender, e) =>
{

View file

@ -242,7 +242,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>if exist "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" copy $(TargetPath) "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" /y
rem if exist "D:\FF14K\actk\Plugins\DutyContent" copy $(TargetPath) "D:\FF14K\actk\Plugins\DutyContent" /y
if exist "D:\FF14K\actk\Plugins\DutyContent" copy $(TargetPath) "D:\FF14K\actk\Plugins\DutyContent" /y
</PostBuildEvent>
</PropertyGroup>

View file

@ -1,4 +1,26 @@
2022-8-27
# final steps (169/A9)
2022-9-13 액토즈판
# undersize
[13:24:37] 758(32,12) => 01 15 00 00 40 20 02 40 00 00 01 00 A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[13:24:37] 758(32,12) => 01 15 00 74 60 24 02 40 00 00 01 01 A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[13:24:37] 792(24,4) => 02 C0 78 0D A9 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 5A 7F 00 00
[13:24:37] 346(32,20) => 03 00 00 00 60 24 02 40 00 00 00 00 00 00 00 00 01 F2 E6 03 A9 00 00 00 50 49 2A 1D 00 00 00 01
[13:24:37/인스턴스] 매칭: 니드호그 토벌전
758 => 듀티 / 12=인스턴스
346 => 매칭
[13:24:41] 245(24,8) => 04 16 00 00 01 00 00 00 A9 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00
[13:24:41] 309(32,4) => 36 09 00 00 DF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5A 7F 00 00
[13:24:42] 541(96,6) => 1F 00 2F 02 12 00 A9 00 00 00 00 00 00 00 00 00 03 00 2A 00 A8 2D 38 00 E0 00 00 00 00 80 09 41 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 19 00 58 00 00 00 00 00 00 00 00 00 00 00 0B 58 D9 3E 00 C0 15 B6 59 80 95 41 00 01 01 01 01 01 01 01 01 01 01 00 00 00 00 00
[13:24:42/인스턴스] 들감미: 니드호그 토벌전
[13:24:49] 541(96,2) => 14 00 86 00 00 00 00 00 00 00 00 00 00 00 00 00 04 07 14 00 AA 50 C3 00 44 00 00 00 00 80 09 41 00 00 80 3F 18 00 19 00 58 00 00 00 00 00 00 00 00 00 00 00 18 00 19 00 58 00 00 00 00 00 00 00 00 00 00 00 A9 53 C6 C1 EA 2C 19 42 B2 0C 16 43 00 03 01 04 01 03 01 01 01 01 01 FF 00 00 00 00
2022-8-27
# undersize 끄고
[20:43:33] 183(40,20) => 01 13 00 04 00 00 00 00 60 00 02 40 00 00 00 00 00 00 01 00 A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

View file

@ -40,6 +40,8 @@ LANG=English
41=Delete
42=Network detected: {0}
43=Closed
44=Plugin region check has failed!
45=Plugin region: {0} ({1})
99=DutyContent Plugin {0}

View file

@ -132,7 +132,6 @@ namespace DutyContent.Tab
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.lblPacketFinder = new System.Windows.Forms.Label();
this.ilTabContent = new System.Windows.Forms.ImageList(this.components);
this.chkPacketForLocal = new System.Windows.Forms.CheckBox();
this.tabContent.SuspendLayout();
this.tabPageContent.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
@ -507,7 +506,6 @@ namespace DutyContent.Tab
this.panel3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel3.Controls.Add(this.chkPacketForLocal);
this.panel3.Controls.Add(this.btnResetContentList);
this.panel3.Controls.Add(this.cboPacketset);
this.panel3.Controls.Add(this.lblPacketSet);
@ -1039,17 +1037,6 @@ namespace DutyContent.Tab
this.ilTabContent.Images.SetKeyName(2, "pix_tab_tool.png");
this.ilTabContent.Images.SetKeyName(3, "pix_tab_ping.png");
//
// chkPacketForLocal
//
this.chkPacketForLocal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkPacketForLocal.AutoSize = true;
this.chkPacketForLocal.Location = new System.Drawing.Point(718, 9);
this.chkPacketForLocal.Name = "chkPacketForLocal";
this.chkPacketForLocal.Size = new System.Drawing.Size(67, 22);
this.chkPacketForLocal.TabIndex = 15;
this.chkPacketForLocal.Text = "10027";
this.chkPacketForLocal.UseVisualStyleBackColor = true;
//
// DutyForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
@ -1158,6 +1145,5 @@ namespace DutyContent.Tab
private Libre.ContentListView lstContents;
private System.Windows.Forms.Button btnResetContentList;
private System.Windows.Forms.CheckBox chkOverlayAutoHide;
private System.Windows.Forms.CheckBox chkPacketForLocal;
}
}

View file

@ -104,9 +104,6 @@ namespace DutyContent.Tab
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
//
chkPacketForLocal.Checked = DcConfig.Duty.PacketForLocal;
//
switch (DcConfig.Duty.ActiveFate)
{
@ -190,8 +187,6 @@ namespace DutyContent.Tab
btnPacketStart.Text = Locale.Text(10007);
btnPacketApply.Text = Locale.Text(10009);
chkPacketForLocal.Text = Locale.Text(10027);
// content reset
lstContents.InitializeContentList(
Locale.Text(343), // ID
@ -287,6 +282,8 @@ namespace DutyContent.Tab
if (DcConfig.Duty.PacketForLocal)
{
// for ACTOZ/Korea
if (data[11] == 0)
{
var rcode = data[8];
if (rcode != 0)
@ -314,7 +311,10 @@ namespace DutyContent.Tab
DcContent.Missions.Clear();
}
else if (data[19] == 0) // duty packet comes twice, index 19 is 0 and 1
}
else
{
if (data[19] == 0) // duty packet comes twice, index 19 is 0 and 1
{
// for global
var rcode = data[16];
@ -345,6 +345,7 @@ namespace DutyContent.Tab
DcContent.Missions.Clear();
}
}
}
// match
else if (opcode == DcConfig.Packet.OpMatch)
@ -1351,16 +1352,6 @@ namespace DutyContent.Tab
}
}
private void ChkPacketForLocal_CheckedChanged(object sender, EventArgs e)
{
if (!DcConfig.PluginEnable)
return;
DcConfig.Duty.PacketForLocal = chkPacketForLocal.Checked;
SaveConfig();
}
private void LstPacketInfo_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstPacketInfo.SelectedIndices.Count != 1)
@ -1565,7 +1556,7 @@ namespace DutyContent.Tab
var data = message.Skip(32).ToArray();
#if TESTPK
#if false
#if true
// 파이날 스텝으로 오는거 전부 얻기
var t = IndexOfData(data, 0, new ushort[] { 169, 134, 183, 223, 637 }); // final, P1, S1, Z1, Snake
if (t > 0)
@ -1604,7 +1595,7 @@ namespace DutyContent.Tab
}
// duty & packet
if (chkPacketForLocal.Checked)
if (DcConfig.Duty.PacketForLocal)
{
// for ACTOZ/Korean service

View file

@ -133,10 +133,10 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD4
QwAAAk1TRnQBSQFMAgEBBAEAAQgBAgEIAQIBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
QwAAAk1TRnQBSQFMAgEBBAEAARABAgEQAQIBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
AwABQAMAAQEBAAEgBgABgP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AWgADNgFZA1oBxANcAeoDAAH/AwAB/wMAAf8DAAH/AwAB/wMA
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AWgADNgFZA1oBxANdAeoDAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/A14B4gNVAa4DKgE/CAADCAEKA0kBhQIAAaoB/wIAAaoB/wIAAaQB/wIAAaQB/wIAAaQB/wIA
AaQB/wIAAaQB/wIAAaQB/wIAAaMB/wIAAaIB/wIAAaIB/wIAAaIB/wIAAaIB/wIAAaIB/wIAAaIB/wIA
@ -165,7 +165,7 @@
AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8B1QGi
ASQB/wHEAZUBHAH/AYkBLgEIAf8BAwESARgB/wGUATMBBwH/AdMBoQEjAf8B1QGiASQB/wHVAaIBJAH/
AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8BwAGT
AR4B/wMIAf8DxQH/A1IB8AIAAZkB/wIAAYsB/wIAAT8B/wIAATsB/wIAATMB/wIAATMB/wIAAS4B/wIA
AR4B/wMIAf8DxQH/A1MB8AIAAZkB/wIAAYsB/wIAAT8B/wIAATsB/wIAATMB/wIAATMB/wIAAS4B/wIA
ASsB/wIAASoB/wIAAScB/wIAASMB/wIAASMB/wIAASIB/wIAAR8B/wIAARsB/wIAARsB/wIAARsB/wIA
ARsB/wIAAR8B/wIAASIB/wIAASMB/wIAASMB/wIAAScB/wIAASoB/wIAAS0B/wIAATMB/wIAATMB/wIA
ATMB/wIAATsB/wIAAT8B/wIAAYsB/wIAAZkB/0gABAIDBwEJAxkBIgM5AV4DVQGtAV4CYQHiA20B9wNl
@ -235,7 +235,7 @@
Av8BOgHqAv8BPgHuAv8BHQHAAesB/wIAAY4B/wIAATgB/wIAATcB/wIAATYB/wIAATYB/wIAAYEB/wEV
AaEB1AH/ATYB5gL/AQABLwHBAf8BNgHmAv8BAAGPAdQB/wEjAckB8QH/ASMByQHxAf8BAAGPAdUB/wEs
AdwB9QH/AQABFQGYAf8CAAEwAf8BDAGUAbQB/wEAAREBiAH/AgABQQH/HAADAgEDAwYBCAMNAREDGAEg
AyMBMgMqAUADLAFDAzEBTgNHAYIDXQHMAU0BTwFWAfoB7QP/AckD/wHDAfsC/wHDAfsC/wHNA/8B+AP/
AyMBMgMqAUADLAFDAzEBTgNHAYIDXQHMAU0BTgFVAfoB7QP/AckD/wHDAfsC/wHDAfsC/wHNA/8B+AP/
A1wB+AFdAl8BzgNJAYcDKwFCAxIBFwMFAQYEAS8AAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/
AgAC/wIAAv8nAAH/A5AB/wMAAf8BxQEzARkB/wHMATYBGwH/AcwBNgEbAf8BpAEfAQoB/wEFAQgBGAH/
AQABIgGJAf8BAAEnAY0B/wERAQEBGwH/AbwBCgE/Af8BxAEaAZwB/wHRASoBrwH/AdwBNgHBAf8B5gE/
@ -254,8 +254,8 @@
ARUBigH/AQ0BlwG2Af8CAAEvAf8CAAE4Af8CAAGPAf8CAAGXAf8CAAGXAf8CAAGPAf8CAAGPAf8CAAGP
Af8CAAGIAf8CAAE6Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE4
Af8CAAE+Af8CAAE+Af8CAAFCAf8CAAGDAf8CAAGDAf8CAAFBAf8CAAEwAf8CAAEvAf8BDQGUAbQB/wEA
AREBiAH/AgABQQH/EAAEAQMFAQYDDwEUAyQBNQNAAW8DVgGzAV8CYgHhA2UB9AJNAVQB+gNcAfgDWgH1
Ak0BUgL6A/8BzQP/AcMB+wL/AcQB/AL/AdQD/wHzAfgB/AH/A1oB9QNZAcEDQAFwAyABLgMMAQ8DBAEF
AREBiAH/AgABQQH/EAAEAQMFAQYDDwEUAyQBNQNAAW8DVgGzAWACYgHhA2UB9AJNAVMB+gNcAfgDWgH1
Ak0BUQL6A/8BzQP/AcMB+wL/AcQB/AL/AdQD/wHzAfgB/AH/A1oB9QNZAcEDQAFwAyABLgMMAQ8DBAEF
BAEbAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIA
Av8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/w8AAf8DlgH/AwAB/wHBAS0BGAH/AcgBMAEZ
Af8BxAEuARcB/wGHAQ4BAAH/AQABDQE3Af8BAAE1AZcB/wEAATABlwH/AYABAAEfAf8BxgEaAZoB/wHV
@ -275,8 +275,8 @@
Af8CAAEvAf8CAAEwAf8CAAFBAf8CAAGDAf8CAAGDAf8CAAE+Af8CAAE+Af8CAAE5Af8CAAE2Af8CAAE2
Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE6Af8CAAE+
Af8CAAE+Af8CAAGDAf8CAAGDAf8CAAFBAf8CAAEwAf8CAAEvAf8BDQGUAbQB/wEAAREBiAH/AgABQQH/
EAADAwEEAxgBIQM9AWkDWgG/AU0BTwFWAfoB8QP/Ac4D/wHEAfwC/wHDAfsC/wHDAfsC/wHDAfsC/wHD
AfsC/wHDAfsC/wHGAf4C/wHeA/8DgAH+AVICXgHwA1gBtwM7AWMDGwElAwkBDAMDAQQnAAH/AwAB/wMA
EAADAwEEAxgBIQM9AWkDWgG/AU0BTgFVAfoB8QP/Ac4D/wHEAfwC/wHDAfsC/wHDAfsC/wHDAfsC/wHD
AfsC/wHDAfsC/wHGAf4C/wHeA/8DgAH+AVMCXgHwA1gBtwM7AWMDGwElAwkBDAMDAQQnAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/wIA
Av8CAAL/AgAC/wIAAv8CAAL/AgAC/w8AAf8DnwH/AwAB/wG7ASkBFgH/AcABKgEWAf8BhgEMAQAB/wEA
AQYBHwH/AQABJQGUAf8BGQGVAbkB/wEJARABKwH/AbgBCQE9Af8BxwEeAaAB/wHZATIBuwH/Ae8BhQHa
@ -286,7 +286,7 @@
AQABEwGiAf8CAAGOAf8CAAFBAf8CAAE4Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2
Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE5Af8CAAE+Af8CAAE+Af8CAAGDAf8CAAGDAf8CAAFBAf8CAAEw
Af8CAAEvAf8BDAGUAbQB/wEAAREBiAH/AgABQQH/EAADBQEGAyMBMwNOAZUDZQH0BP8B2gP/AdkD/wHg
A/8B3QP/Ac8D/wHFAf0C/wHDAfsC/wHDAfsC/wHTA/8DgAH+AVICXgHwA1gBtwM6AWADGQEiAwkBCwMC
A/8B3QP/Ac8D/wHFAf0C/wHDAfsC/wHDAfsC/wHTA/8DgAH+AVMCXgHwA1gBtwM6AWADGQEiAwkBCwMC
AQMrAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIA
Av8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/w8AAf8DpAH/AwAB/wG5ASYBFAH/AaABGAEI
Af8BKAEEAQIB/wEAAQYBPgH/AQgBPQGiAf8BAAEuAZIB/wE2AQABBwH/AbcBCQFAAf8BwgEaAZsB/wHT
@ -296,7 +296,7 @@
Af8BNgHpAv8BLwHgAfgB/wESAbEB3wH/AQABLwG1Af8CAAGKAf8CAAE4Af8CAAE2Af8CAAE2Af8CAAE2
Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE3Af8CAAE7Af8CAAFAAf8CAAGEAf8CAAGN
Af8CAAGMAf8CAAGDAf8CAAExAf8CAAEvAf8BCgGVAbQB/wEAARMBiAH/AgABQQH/EAADBQEGAyMBMgFM
Ak0BkQNlAfEDqAH9A4AB/gOoAf0DXwH7AUEBXwFlAfwB5wHxAfgB/wHVA/8BwwH7Av8BwwH7Av8B4AP/
Ak0BkQNlAfEDqAH9A4AB/gOoAf0DXwH7AUABXwFlAfwB5wHxAfgB/wHVA/8BwwH7Av8BwwH7Av8B4AP/
A18B+wFbAl4B0wNCAXQDGwElAwYBCAQCLwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8PAAH/
A6oB/wMAAf8BqQEcAQ0B/wEwAQUBAgH/ASEBlgG1Af8BOgHBAeQB/wGUAdgB6wH/AQABFAGIAf8BAAEH
@ -307,7 +307,7 @@
AaUB/wIAAYkB/wIAAT0B/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIA
ATYB/wIAATgB/wIAAUAB/wIAAY4B/wEAATEBuAH/AQ8BmgHSAf8BBgGNAcsB/wEAARgBpQH/AgABOQH/
AgABLwH/AQ0BlwG2Af8BAAEVAYoB/wIAAUEB/xAAAwMBBAMWAR4DNgFZAVACUQGcA1oBvwNdAckBWwJd
AcoBXQJfAc4BXAJgAeMBWwJiAfYB8AP/AcMB+wL/AcMB+wL/Ad0D/wFXAWMBZwH8A1oBxwM4AVsDDwEU
AcoBXQJfAc4BXQJgAeMBXAJiAfYB8AP/AcMB+wL/AcMB+wL/Ad0D/wFXAWMBZwH8A1oBxwM4AVsDDwEU
BAFPAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JwAB/wOwAf8DAAH/Aa8BHQEQ
Af8BPwEEAQAB/wEiAQABAQH/AR0BOQGFAf8BsAHuAfcB/wGbAeMB7wH/AQABFwGRAf8BAAETASwB/wGl
AQMBLwH/AcABFgGVAf8BywEkAakB/wHWAS8BtwH/Ad4BOQHCAf8B4QE7AcYB/wHeATkBwgH/AdYBLwG3
@ -316,7 +316,7 @@
Af8BAAEPAY8B/wEbAccB6AH/ASIB0AHzAf8BIwHLAfIB/wEZAbsB5gH/AQMBjQHMAf8BAAEaAaUB/wIA
AYEB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIA
AUAB/wEAAS8BtQH/ASQB0AHxAf8BNAHpAf0B/wExAeUB+wH/AQ0BqQHcAf8CAAGEAf8CAAEvAf8BDQGb
AbgB/wEAARUBiwH/AgABQQH/EAADAgEDAwoBDQMcAScDLwFJAzwBZgNEAXoDSAGEAU4CTwGXA10BzAFX
AbgB/wEAARUBiwH/AgABQQH/EAADAgEDAwoBDQMcAScDLwFJAzwBZgNEAXoDSAGEAU4CTwGXA10BzAFY
AmUB8QT/AcMB+wL/AcMB+wL/AdcD/wOoAf0DXAHIAzcBWgMMAQ9TAAH/AwAB/wMAAf8DAAH/AwAB/w4A
Av8CAAL/AgAC/wIAAv8CAAL/JwAB/wO2Af8DAAH/AbABHAEQAf8BsgEcAQ8B/wGfARMBBwH/AUABAwEA
Af8BBwEAAQ4B/wGTAdQB6AH/AZYB3gHvAf8BAAEmAZYB/wEAAQoBIQH/AbgBBwE6Af8BvwEUAZMB/wHG
@ -373,7 +373,7 @@
AbkBzQH/ASUBuQHNAf8BJQG5Ac0B/wElAbkBzQH/ASUBuQHNAf8BJQG5Ac0B/wElAbkBzQH/ASUBuQHN
Af8BJQG5Ac0B/wEoAbkBzQH/ASgBvAHPAf8BKAG/AdIB/wEoAb8B0gH/ASgBvwHSAf8BKAG/AdIB/wEm
AbwBzwH/ASUBuQHNAf8BJAG2AcgB/wEUAZ4BwAH/AQABFQGbAf8CAAGUAf8UAAMEAQUDEgEXAyoBPwNE
AXkBVQJXAbQBXQJhAdwDYAHzAk0BVAH6Ak0BVAH6A14B7QFbAl8B0AFQAlEBnwM2AVkDGAEhAwgBCgQC
AXkBVQJXAbQBXQJhAdwDYAHzAk0BUwH6Ak0BUwH6A14B7QFbAl8B0AFQAlEBnwM2AVkDGAEhAwgBCgQC
VwAB/wMAAf8DAAH/AwAB/wMAAf9HAAH/A98B/wMAAf8BnAEKAQgB/wGhAQsBCQH/AaEBCwEJAf8BoQEL
AQkB/wGhAQsBCQH/AaEBCwEJAf8BmwEIAQYB/wEoAgAB/wGPAZYBoQH/ARYCAAH/ATACAAH/ATMCAAH/
AYECAAH/AYECAAH/AYECAAH/ATICAAH/AS0CAAH/AQoBAAENAf8BOgE+AYgB/wEyAgAB/wGgAQoBCAH/
@ -383,10 +383,10 @@
AaEB/wERATwBoQH/AREBPAGhAf8BEQE8AaEB/wEVATwBogH/ARUBPAGmAf8BGAE/AaYB/wEaAUIBpgH/
ARoBQgGnAf8BGgFCAasB/wEYAUIBqwH/ARcBQgGrAf8BFAE+Aa4B/wECAR4BnwH/AgABlAH/AgABngH/
FAAEAQMFAQYDDAEQAx0BKAMxAU0DQgF1A08BmQNVAa0DUwGpA0wBjgM9AWcDKQE+AxQBGwMHAQkDAgED
WwAB/wMAAf8DAAH/AwAB/wMAAf9EAANQAfMD3wH/AxEB/wGKAgQB/wGbAQYBBwH/AZsBBgEHAf8BmwEG
WwAB/wMAAf8DAAH/AwAB/wMAAf9EAANRAfMD3wH/AxEB/wGKAgQB/wGbAQYBBwH/AZsBBgEHAf8BmwEG
AQcB/wGbAQYBBwH/AZsBBgEHAf8BmgEFAQYB/wEtAgAB/wEnAgAB/wEvAgAB/wGZAQUBBgH/AZoBBgEH
Af8BmwEGAQcB/wGbAQYBBwH/AZsBBgEHAf8BmgEFAQYB/wGSAQIBAwH/AS4CAAH/ASQCAAH/AS8CAAH/
AZoBBgEHAf8BmwEGAQcB/wGbAQYBBwH/AZsBBgEHAf8BmwEGAQcB/wE/AQIBAwH/AxkB/wPdAf8DUgHw
AZoBBgEHAf8BmwEGAQcB/wGbAQYBBwH/AZsBBgEHAf8BmwEGAQcB/wE/AQIBAwH/AxkB/wPdAf8DUwHw
AgABpAH/AgABngH/AgABlAH/AgABjwH/AgABjAH/AgABhgH/AgABggH/AgABQQH/AgABQQH/AgABPgH/
AgABOwH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/
AgABOQH/AgABOwH/AgABPgH/AgABQQH/AgABQQH/AgABggH/AgABhgH/AgABjAH/AgABjwH/AgABlAH/
@ -411,7 +411,7 @@
AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABpAH/AgABpgH/AgABqQH/
AgABqwH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/A0kBhf8ACQADNwFa
A1kBwwMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB6gNVAa4DLQFFCAADCAEKA0kBhQIA
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B6gNVAa4DLQFFCAADCAEKA0kBhQIA
AawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAasB/wIAAaoB/wIA
AaoB/wIAAagB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAagB/wIAAaoB/wIAAaoB/wIAAasB/wIA
AawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wNJAYUDCAEK/wABAAFC