diff --git a/.gitignore b/.gitignore index 0f3f6d37..538ab794 100644 --- a/.gitignore +++ b/.gitignore @@ -524,3 +524,152 @@ SaveData_Manager/bin/Debug/SaveManager/savedata_10000000_JIMM00001_SCUS-97316/sc SaveData_Manager/bin/Debug/SaveManager/savedata_10000000_JIMM00001_SCUS-97316/sce_sys/sce_paramsfo1 SaveData_Manager/bin/Debug/SaveManager/savedata_10000000_JIMM00001_SCUS-97316/VMC0.card SaveData_Manager/bin/Debug/SaveManager/savedata_10000000_JIMM00001_SCUS-97316/VMC1.card +Tester/bin/Debug/TropyFiles/TROPCONF.SFM +Tester/bin/Debug/TropyFiles/TROP_27.SFM +Tester/bin/Debug/TropyFiles/TROP_25.SFM +Tester/bin/Debug/TropyFiles/TROP_24.SFM +Tester/bin/Debug/TropyFiles/TROP_23.SFM +Tester/bin/Debug/TropyFiles/TROP_22.SFM +Tester/bin/Debug/TropyFiles/TROP_21.SFM +Tester/bin/Debug/TropyFiles/TROP_20.SFM +Tester/bin/Debug/TropyFiles/TROP_19.SFM +Tester/bin/Debug/TropyFiles/TROP_18.SFM +Tester/bin/Debug/TropyFiles/TROP_17.SFM +Tester/bin/Debug/TropyFiles/TROP_16.SFM +Tester/bin/Debug/TropyFiles/TROP_15.SFM +Tester/bin/Debug/TropyFiles/TROP_14.SFM +Tester/bin/Debug/TropyFiles/TROP_13.SFM +Tester/bin/Debug/TropyFiles/TROP_12.SFM +Tester/bin/Debug/TropyFiles/TROP_11.SFM +Tester/bin/Debug/TropyFiles/TROP_10.SFM +Tester/bin/Debug/TropyFiles/TROP_09.SFM +Tester/bin/Debug/TropyFiles/TROP_08.SFM +Tester/bin/Debug/TropyFiles/TROP_07.SFM +Tester/bin/Debug/TropyFiles/TROP_06.SFM +Tester/bin/Debug/TropyFiles/TROP_05.SFM +Tester/bin/Debug/TropyFiles/TROP_04.SFM +Tester/bin/Debug/TropyFiles/TROP_03.SFM +Tester/bin/Debug/TropyFiles/TROP_02.SFM +Tester/bin/Debug/TropyFiles/TROP_01.SFM +Tester/bin/Debug/TropyFiles/TROP_00.SFM +Tester/bin/Debug/TropyFiles/TROP059.PNG +Tester/bin/Debug/TropyFiles/TROP058.PNG +Tester/bin/Debug/TropyFiles/TROP057.PNG +Tester/bin/Debug/TropyFiles/TROP056.PNG +Tester/bin/Debug/TropyFiles/TROP055.PNG +Tester/bin/Debug/TropyFiles/TROP054.PNG +Tester/bin/Debug/TropyFiles/TROP053.PNG +Tester/bin/Debug/TropyFiles/TROP052.PNG +Tester/bin/Debug/TropyFiles/TROP051.PNG +Tester/bin/Debug/TropyFiles/TROP050.PNG +Tester/bin/Debug/TropyFiles/TROP049.PNG +Tester/bin/Debug/TropyFiles/TROP048.PNG +Tester/bin/Debug/TropyFiles/TROP047.PNG +Tester/bin/Debug/TropyFiles/TROP046.PNG +Tester/bin/Debug/TropyFiles/TROP045.PNG +Tester/bin/Debug/TropyFiles/TROP044.PNG +Tester/bin/Debug/TropyFiles/TROP043.PNG +Tester/bin/Debug/TropyFiles/TROP042.PNG +Tester/bin/Debug/TropyFiles/TROP041.PNG +Tester/bin/Debug/TropyFiles/TROP040.PNG +Tester/bin/Debug/TropyFiles/TROP039.PNG +Tester/bin/Debug/TropyFiles/TROP038.PNG +Tester/bin/Debug/TropyFiles/TROP037.PNG +Tester/bin/Debug/TropyFiles/TROP036.PNG +Tester/bin/Debug/TropyFiles/TROP035.PNG +Tester/bin/Debug/TropyFiles/TROP034.PNG +Tester/bin/Debug/TropyFiles/TROP033.PNG +Tester/bin/Debug/TropyFiles/TROP032.PNG +Tester/bin/Debug/TropyFiles/TROP031.PNG +Tester/bin/Debug/TropyFiles/TROP030.PNG +Tester/bin/Debug/TropyFiles/TROP029.PNG +Tester/bin/Debug/TropyFiles/TROP028.PNG +Tester/bin/Debug/TropyFiles/TROP027.PNG +Tester/bin/Debug/TropyFiles/TROP026.PNG +Tester/bin/Debug/TropyFiles/TROP025.PNG +Tester/bin/Debug/TropyFiles/TROP024.PNG +Tester/bin/Debug/TropyFiles/TROP023.PNG +Tester/bin/Debug/TropyFiles/TROP022.PNG +Tester/bin/Debug/TropyFiles/TROP021.PNG +Tester/bin/Debug/TropyFiles/TROP020.PNG +Tester/bin/Debug/TropyFiles/TROP019.PNG +Tester/bin/Debug/TropyFiles/TROP018.PNG +Tester/bin/Debug/TropyFiles/TROP017.PNG +Tester/bin/Debug/TropyFiles/TROP016.PNG +Tester/bin/Debug/TropyFiles/TROP015.PNG +Tester/bin/Debug/TropyFiles/TROP014.PNG +Tester/bin/Debug/TropyFiles/TROP013.PNG +Tester/bin/Debug/TropyFiles/TROP012.PNG +Tester/bin/Debug/TropyFiles/TROP011.PNG +Tester/bin/Debug/TropyFiles/TROP010.PNG +Tester/bin/Debug/TropyFiles/TROP009.PNG +Tester/bin/Debug/TropyFiles/TROP008.PNG +Tester/bin/Debug/TropyFiles/TROP007.PNG +Tester/bin/Debug/TropyFiles/TROP006.PNG +Tester/bin/Debug/TropyFiles/TROP005.PNG +Tester/bin/Debug/TropyFiles/TROP004.PNG +Tester/bin/Debug/TropyFiles/TROP003.PNG +Tester/bin/Debug/TropyFiles/TROP002.PNG +Tester/bin/Debug/TropyFiles/TROP001.PNG +Tester/bin/Debug/TropyFiles/TROP000.PNG +Tester/bin/Debug/TropyFiles/TROP.SFM +Tester/bin/Debug/TropyFiles/ICON0.PNG +Tester/bin/Debug/TropyFiles/GR002.PNG +Tester/bin/Debug/TropyFiles/GR001.PNG +Tester/bin/Debug/TropyFiles/GR001.PNG +Tester/bin/Debug/TropyFiles/ICON0.PNG +Tester/bin/Debug/TropyFiles/TROP.SFM +Tester/bin/Debug/TropyFiles/TROP000.PNG +Tester/bin/Debug/TropyFiles/TROP001.PNG +Tester/bin/Debug/TropyFiles/TROP002.PNG +Tester/bin/Debug/TropyFiles/TROP003.PNG +Tester/bin/Debug/TropyFiles/TROP004.PNG +Tester/bin/Debug/TropyFiles/TROP005.PNG +Tester/bin/Debug/TropyFiles/TROP006.PNG +Tester/bin/Debug/TropyFiles/TROP007.PNG +Tester/bin/Debug/TropyFiles/TROP008.PNG +Tester/bin/Debug/TropyFiles/TROP009.PNG +Tester/bin/Debug/TropyFiles/TROP010.PNG +Tester/bin/Debug/TropyFiles/TROP011.PNG +Tester/bin/Debug/TropyFiles/TROP012.PNG +Tester/bin/Debug/TropyFiles/TROP013.PNG +Tester/bin/Debug/TropyFiles/TROP014.PNG +Tester/bin/Debug/TropyFiles/TROP015.PNG +Tester/bin/Debug/TropyFiles/TROP016.PNG +Tester/bin/Debug/TropyFiles/TROP017.PNG +Tester/bin/Debug/TropyFiles/TROP018.PNG +Tester/bin/Debug/TropyFiles/TROP019.PNG +Tester/bin/Debug/TropyFiles/TROP020.PNG +Tester/bin/Debug/TropyFiles/TROP021.PNG +Tester/bin/Debug/TropyFiles/TROP022.PNG +Tester/bin/Debug/TropyFiles/TROP023.PNG +Tester/bin/Debug/TropyFiles/TROP024.PNG +Tester/bin/Debug/TropyFiles/TROP025.PNG +Tester/bin/Debug/TropyFiles/TROP026.PNG +Tester/bin/Debug/TropyFiles/TROP027.PNG +Tester/bin/Debug/TropyFiles/TROP028.PNG +Tester/bin/Debug/TropyFiles/TROP029.PNG +Tester/bin/Debug/TropyFiles/TROP030.PNG +Tester/bin/Debug/TropyFiles/TROP031.PNG +Tester/bin/Debug/TropyFiles/TROP_00.SFM +Tester/bin/Debug/TropyFiles/TROP_01.SFM +Tester/bin/Debug/TropyFiles/TROP_02.SFM +Tester/bin/Debug/TropyFiles/TROP_03.SFM +Tester/bin/Debug/TropyFiles/TROP_04.SFM +Tester/bin/Debug/TropyFiles/TROP_05.SFM +Tester/bin/Debug/TropyFiles/TROP_06.SFM +Tester/bin/Debug/TropyFiles/TROP_07.SFM +Tester/bin/Debug/TropyFiles/TROP_08.SFM +Tester/bin/Debug/TropyFiles/TROP_09.SFM +Tester/bin/Debug/TropyFiles/TROP_10.SFM +Tester/bin/Debug/TropyFiles/TROP_11.SFM +Tester/bin/Debug/TropyFiles/TROP_12.SFM +Tester/bin/Debug/TropyFiles/TROP_13.SFM +Tester/bin/Debug/TropyFiles/TROP_14.SFM +Tester/bin/Debug/TropyFiles/TROP_15.SFM +Tester/bin/Debug/TropyFiles/TROP_16.SFM +Tester/bin/Debug/TropyFiles/TROP_17.SFM +Tester/bin/Debug/TropyFiles/TROP_18.SFM +Tester/bin/Debug/TropyFiles/TROP_19.SFM +Tester/bin/Debug/TropyFiles/TROP_20.SFM +Tester/bin/Debug/TropyFiles/TROPCONF.SFM diff --git a/Atrac9Player/bin/Debug/Atrac9Player.exe b/Atrac9Player/bin/Debug/Atrac9Player.exe index 8915b417..99a3e5b6 100644 Binary files a/Atrac9Player/bin/Debug/Atrac9Player.exe and b/Atrac9Player/bin/Debug/Atrac9Player.exe differ diff --git a/Atrac9Player/bin/Debug/Atrac9Player.pdb b/Atrac9Player/bin/Debug/Atrac9Player.pdb index 8819f6d3..1a6495c3 100644 Binary files a/Atrac9Player/bin/Debug/Atrac9Player.pdb and b/Atrac9Player/bin/Debug/Atrac9Player.pdb differ diff --git a/Atrac9Player/bin/Debug/PS4_Tools.dll b/Atrac9Player/bin/Debug/PS4_Tools.dll index b65d90d1..bb65dc64 100644 Binary files a/Atrac9Player/bin/Debug/PS4_Tools.dll and b/Atrac9Player/bin/Debug/PS4_Tools.dll differ diff --git a/Atrac9Player/bin/Debug/PS4_Tools.pdb b/Atrac9Player/bin/Debug/PS4_Tools.pdb index d956935d..7729504e 100644 Binary files a/Atrac9Player/bin/Debug/PS4_Tools.pdb and b/Atrac9Player/bin/Debug/PS4_Tools.pdb differ diff --git a/Atrac9Player/obj/Debug/Atrac9Player.csprojResolveAssemblyReference.cache b/Atrac9Player/obj/Debug/Atrac9Player.csprojResolveAssemblyReference.cache index 86a881df..cad434a2 100644 Binary files a/Atrac9Player/obj/Debug/Atrac9Player.csprojResolveAssemblyReference.cache and b/Atrac9Player/obj/Debug/Atrac9Player.csprojResolveAssemblyReference.cache differ diff --git a/Atrac9Player/obj/Debug/Atrac9Player.exe b/Atrac9Player/obj/Debug/Atrac9Player.exe index 8915b417..99a3e5b6 100644 Binary files a/Atrac9Player/obj/Debug/Atrac9Player.exe and b/Atrac9Player/obj/Debug/Atrac9Player.exe differ diff --git a/Atrac9Player/obj/Debug/Atrac9Player.pdb b/Atrac9Player/obj/Debug/Atrac9Player.pdb index 8819f6d3..1a6495c3 100644 Binary files a/Atrac9Player/obj/Debug/Atrac9Player.pdb and b/Atrac9Player/obj/Debug/Atrac9Player.pdb differ diff --git a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.exe b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.exe index 48e4b28f..87321f94 100644 Binary files a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.exe and b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.exe differ diff --git a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.pdb b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.pdb index f8968386..2b45719c 100644 Binary files a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.pdb and b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/ImageUtil.pdb differ diff --git a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.dll b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.dll index f7ec730d..9bc244c5 100644 Binary files a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.dll and b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.dll differ diff --git a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.pdb b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.pdb index abb0a278..186f7f86 100644 Binary files a/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.pdb and b/Example Applications/Windows/ImageUtil/ImageUtil/bin/Debug/PS4_Tools.pdb differ diff --git a/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.csprojResolveAssemblyReference.cache b/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.csprojResolveAssemblyReference.cache index 875d7796..d20934dd 100644 Binary files a/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.csprojResolveAssemblyReference.cache and b/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.csprojResolveAssemblyReference.cache differ diff --git a/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.exe b/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.exe index 48e4b28f..87321f94 100644 Binary files a/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.exe and b/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.exe differ diff --git a/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.pdb b/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.pdb index f8968386..2b45719c 100644 Binary files a/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.pdb and b/Example Applications/Windows/ImageUtil/ImageUtil/obj/Debug/ImageUtil.pdb differ diff --git a/PS Tools Online/bin/PS Tools Online.dll b/PS Tools Online/bin/PS Tools Online.dll index 3efaa7fd..1d59900f 100644 Binary files a/PS Tools Online/bin/PS Tools Online.dll and b/PS Tools Online/bin/PS Tools Online.dll differ diff --git a/PS Tools Online/bin/PS Tools Online.pdb b/PS Tools Online/bin/PS Tools Online.pdb index 09a726f8..c65b2ad8 100644 Binary files a/PS Tools Online/bin/PS Tools Online.pdb and b/PS Tools Online/bin/PS Tools Online.pdb differ diff --git a/PS Tools Online/obj/Android Mono/PS Tools Online.csproj.FileListAbsolute.txt b/PS Tools Online/obj/Android Mono/PS Tools Online.csproj.FileListAbsolute.txt index 66c80ae0..88981783 100644 --- a/PS Tools Online/obj/Android Mono/PS Tools Online.csproj.FileListAbsolute.txt +++ b/PS Tools Online/obj/Android Mono/PS Tools Online.csproj.FileListAbsolute.txt @@ -18,3 +18,23 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Onl C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\Android Mono\PS Tools Online.csprojResolveAssemblyReference.cache C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\Android Mono\PS Tools Online.dll C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\Android Mono\PS Tools Online.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\csc.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CodeAnalysis.CSharp.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CodeAnalysis.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CSharp.Core.targets +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.VisualBasic.Core.targets +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\System.Collections.Immutable.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\System.Reflection.Metadata.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\vbc.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\VBCSCompiler.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\VBCSCompiler.exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\PS Tools Online.dll.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\PS Tools Online.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\PS Tools Online.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\Android Mono\PS Tools Online.csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\Android Mono\PS Tools Online.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\Android Mono\PS Tools Online.pdb diff --git a/PS Tools Online/obj/Android Mono/PS Tools Online.csprojResolveAssemblyReference.cache b/PS Tools Online/obj/Android Mono/PS Tools Online.csprojResolveAssemblyReference.cache index 9db9e78a..52e155f3 100644 Binary files a/PS Tools Online/obj/Android Mono/PS Tools Online.csprojResolveAssemblyReference.cache and b/PS Tools Online/obj/Android Mono/PS Tools Online.csprojResolveAssemblyReference.cache differ diff --git a/PS Tools Online/obj/Android Mono/PS Tools Online.dll b/PS Tools Online/obj/Android Mono/PS Tools Online.dll index e710894d..1d59900f 100644 Binary files a/PS Tools Online/obj/Android Mono/PS Tools Online.dll and b/PS Tools Online/obj/Android Mono/PS Tools Online.dll differ diff --git a/PS Tools Online/obj/Android Mono/PS Tools Online.pdb b/PS Tools Online/obj/Android Mono/PS Tools Online.pdb index 3f25ba2b..c65b2ad8 100644 Binary files a/PS Tools Online/obj/Android Mono/PS Tools Online.pdb and b/PS Tools Online/obj/Android Mono/PS Tools Online.pdb differ diff --git a/PS Tools Online/obj/PS4 Unity/PS Tools Online.csproj.FileListAbsolute.txt b/PS Tools Online/obj/PS4 Unity/PS Tools Online.csproj.FileListAbsolute.txt index a7516dfa..ac2ed4ce 100644 --- a/PS Tools Online/obj/PS4 Unity/PS Tools Online.csproj.FileListAbsolute.txt +++ b/PS Tools Online/obj/PS4 Unity/PS Tools Online.csproj.FileListAbsolute.txt @@ -18,3 +18,23 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Onl C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\PS4 Unity\PS Tools Online.csprojResolveAssemblyReference.cache C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\PS4 Unity\PS Tools Online.dll C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\PS4 Unity\PS Tools Online.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\csc.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CodeAnalysis.CSharp.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CodeAnalysis.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.CSharp.Core.targets +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\Microsoft.VisualBasic.Core.targets +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\System.Collections.Immutable.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\System.Reflection.Metadata.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\vbc.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\VBCSCompiler.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\roslyn\VBCSCompiler.exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\PS Tools Online.dll.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\PS Tools Online.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\PS Tools Online.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\PS4 Unity\PS Tools Online.csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\PS4 Unity\PS Tools Online.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS Tools Online\obj\PS4 Unity\PS Tools Online.pdb diff --git a/PS Tools Online/obj/PS4 Unity/PS Tools Online.csprojResolveAssemblyReference.cache b/PS Tools Online/obj/PS4 Unity/PS Tools Online.csprojResolveAssemblyReference.cache index 52e155f3..9a4a4d48 100644 Binary files a/PS Tools Online/obj/PS4 Unity/PS Tools Online.csprojResolveAssemblyReference.cache and b/PS Tools Online/obj/PS4 Unity/PS Tools Online.csprojResolveAssemblyReference.cache differ diff --git a/PS Tools Online/obj/PS4 Unity/PS Tools Online.dll b/PS Tools Online/obj/PS4 Unity/PS Tools Online.dll index 17ebb7d2..5745f95d 100644 Binary files a/PS Tools Online/obj/PS4 Unity/PS Tools Online.dll and b/PS Tools Online/obj/PS4 Unity/PS Tools Online.dll differ diff --git a/PS Tools Online/obj/PS4 Unity/PS Tools Online.pdb b/PS Tools Online/obj/PS4 Unity/PS Tools Online.pdb index a2a019cc..c0776f07 100644 Binary files a/PS Tools Online/obj/PS4 Unity/PS Tools Online.pdb and b/PS Tools Online/obj/PS4 Unity/PS Tools Online.pdb differ diff --git a/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.dll b/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.dll new file mode 100644 index 00000000..64588993 Binary files /dev/null and b/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.dll differ diff --git a/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.pdb b/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.pdb new file mode 100644 index 00000000..8d76e6a8 Binary files /dev/null and b/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.pdb differ diff --git a/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.xml b/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.xml new file mode 100644 index 00000000..5dc5d7d7 --- /dev/null +++ b/PS2 DB Controler/bin/Android Mono/HtmlAgilityPack.xml @@ -0,0 +1,3183 @@ + + + + HtmlAgilityPack + + + + + A utility class to compute CRC32. + + + + + Compute a checksum for a given array of bytes. + + The array of bytes to compute the checksum for. + The computed checksum. + + + + Compute a checksum for a given string. + + The string to compute the checksum for. + The computed checksum. + + + + Represents an HTML attribute. + + + + + Gets the line number of this attribute in the document. + + + + + Gets the column number of this attribute in the document. + + + + + Gets the stream position of the value of this attribute in the document, relative to the start of the document. + + + + + Gets the length of the value. + + + + + Gets the qualified name of the attribute. + + + + + Name of attribute with original case + + + + + Gets the HTML document to which this attribute belongs. + + + + + Gets the HTML node to which this attribute belongs. + + + + + Specifies what type of quote the data should be wrapped in + + + + + Gets the stream position of this attribute in the document, relative to the start of the document. + + + + + Gets or sets the value of the attribute. + + + + + Gets the DeEntitized value of the attribute. + + + + + Gets a valid XPath string that points to this Attribute + + + + + Compares the current instance with another attribute. Comparison is based on attributes' name. + + An attribute to compare with this instance. + A 32-bit signed integer that indicates the relative order of the names comparison. + + + + Creates a duplicate of this attribute. + + The cloned attribute. + + + + Removes this attribute from it's parents collection + + + + + An Enum representing different types of Quotes used for surrounding attribute values + + + + + A single quote mark ' + + + + + A double quote mark " + + + + + Represents a combined list and collection of HTML nodes. + + + + + Gets the number of elements actually contained in the list. + + + + + Gets readonly status of colelction + + + + + Gets the attribute at the specified index. + + + + + Gets a given attribute from the list using its name. + + + + + Adds a new attribute to the collection with the given values + + + + + + + Adds supplied item to collection + + + + + Adds a range supplied items to collection. + An IEnumerable<HtmlAttribute> of items to append to this. + + + Adds a range supplied items to collection using a dictionary. + A Dictionary<string,string> of items to append to this. + + + + Explicit clear + + + + + Retreives existence of supplied item + + + + + + + Copies collection to array + + + + + + + Get Explicit enumerator + + + + + + Explicit non-generic enumerator + + + + + + Retrieves the index for the supplied item, -1 if not found + + + + + + + Inserts given item into collection at supplied index + + + + + + + Explicit collection remove + + + + + + + Removes the attribute at the specified index. + + The index of the attribute to remove. + + + + Inserts the specified attribute as the last attribute in the collection. + + The attribute to insert. May not be null. + The appended attribute. + + + + Creates and inserts a new attribute as the last attribute in the collection. + + The name of the attribute to insert. + The appended attribute. + + + + Creates and inserts a new attribute as the last attribute in the collection. + + The name of the attribute to insert. + The value of the attribute to insert. + The appended attribute. + + + + Checks for existance of attribute with given name + + + + + + + Inserts the specified attribute as the first node in the collection. + + The attribute to insert. May not be null. + The prepended attribute. + + + + Removes a given attribute from the list. + + The attribute to remove. May not be null. + + + + Removes an attribute from the list, using its name. If there are more than one attributes with this name, they will all be removed. + + The attribute's name. May not be null. + + + + Remove all attributes in the list. + + + + + Returns all attributes with specified name. Handles case insentivity + + Name of the attribute + + + + + Removes all attributes from the collection + + + + + Clears the attribute collection + + + + + Represents an HTML comment. + + + + + Gets or Sets the comment text of the node. + + + + + Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. + + + + + Gets or Sets the object and its content in HTML. + + + + + Represents a complete HTML document. + + + + True to disable, false to enable the behavior tag p. + + + Default builder to use in the HtmlDocument constructor + + + Action to execute before the Parse is executed + + + + Defines the max level we would go deep into the html document + + + + The HtmlDocument Text. Careful if you modify it. + + + True to stay backward compatible with previous version of HAP. This option does not guarantee 100% compatibility. + + + + Adds Debugging attributes to node. Default is false. + + + + + Defines if closing for non closed nodes must be done at the end or directly in the document. + Setting this to true can actually change how browsers render the page. Default is false. + + + + + Defines if non closed nodes will be checked at the end of parsing. Default is true. + + + + + Defines if a checksum must be computed for the document while parsing. Default is false. + + + + + Defines if SelectNodes method will return null or empty collection when no node matched the XPath expression. + Setting this to true will return empty collection and false will return null. Default is false. + + + + True to disable, false to enable the server side code. + + + + Defines the default stream encoding to use. Default is System.Text.Encoding.Default. + + + + + Defines if source text must be extracted while parsing errors. + If the document has a lot of errors, or cascading errors, parsing performance can be dramatically affected if set to true. + Default is false. + + + + + Defines the maximum length of source text or parse errors. Default is 100. + + + + + Defines if LI, TR, TH, TD tags must be partially fixed when nesting errors are detected. Default is false. + + + + + Defines if output must conform to XML, instead of HTML. Default is false. + + + + + If used together with and enabled, Xml namespaces in element names are preserved. Default is false. + + + + + Defines if attribute value output must be optimized (not bound with double quotes if it is possible). Default is false. + + + + + Defines if name must be output with it's original case. Useful for asp.net tags and attributes. Default is false. + + + + + Defines if name must be output in uppercase. Default is false. + + + + + Defines if declared encoding must be read from the document. + Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node. + Default is true. + + + + + Defines the name of a node that will throw the StopperNodeException when found as an end node. Default is null. + + + + + Defines if the 'id' attribute must be specifically used. Default is true. + + + + + Defines if empty nodes must be written as closed during output. Default is false. + + + + + The max number of nested child nodes. + Added to prevent stackoverflow problem when a page has tens of thousands of opening html tags with no closing tags + + + + + Creates an instance of an HTML document. + + + + Gets the parsed text. + The parsed text. + + + + Defines the max level we would go deep into the html document. If this depth level is exceeded, and exception is + thrown. + + + + + Gets the document CRC32 checksum if OptionComputeChecksum was set to true before parsing, 0 otherwise. + + + + + Gets the document's declared encoding. + Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node (pre-HTML5) or the meta charset="XXXXX" html node (HTML5). + + + + + Gets the root node of the document. + + + + + Gets the document's output encoding. + + + + + Gets a list of parse errors found in the document. + + + + + Gets the remaining text. + Will always be null if OptionStopperNodeName is null. + + + + + Gets the offset of Remainder in the original Html text. + If OptionStopperNodeName is null, this will return the length of the original Html text. + + + + + Gets the document's stream encoding. + + + + + Gets a valid XML name. + + Any text. + A string that is a valid XML name. + + + + Applies HTML encoding to a specified string. + + The input string to encode. May not be null. + The encoded string. + + + + Determines if the specified character is considered as a whitespace character. + + The character to check. + true if if the specified character is considered as a whitespace character. + + + + Creates an HTML attribute with the specified name. + + The name of the attribute. May not be null. + The new HTML attribute. + + + + Creates an HTML attribute with the specified name. + + The name of the attribute. May not be null. + The value of the attribute. + The new HTML attribute. + + + + Creates an HTML comment node. + + The new HTML comment node. + + + + Creates an HTML comment node with the specified comment text. + + The comment text. May not be null. + The new HTML comment node. + + + + Creates an HTML element node with the specified name. + + The qualified name of the element. May not be null. + The new HTML node. + + + + Creates an HTML text node. + + The new HTML text node. + + + + Creates an HTML text node with the specified text. + + The text of the node. May not be null. + The new HTML text node. + + + + Detects the encoding of an HTML stream. + + The input stream. May not be null. + The detected encoding. + + + + Detects the encoding of an HTML stream. + + The input stream. May not be null. + The html is checked. + The detected encoding. + + + + Detects the encoding of an HTML text provided on a TextReader. + + The TextReader used to feed the HTML. May not be null. + The detected encoding. + + + + Detects the encoding of an HTML text. + + The input html text. May not be null. + The detected encoding. + + + + Gets the HTML node with the specified 'id' attribute value. + + The attribute id to match. May not be null. + The HTML node with the matching id or null if not found. + + + + Loads an HTML document from a stream. + + The input stream. + + + + Loads an HTML document from a stream. + + The input stream. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Loads an HTML document from a stream. + + The input stream. + The character encoding to use. + + + + Loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + The minimum buffer size. + + + + Loads the HTML document from the specified TextReader. + + The TextReader used to feed the HTML data into the document. May not be null. + + + + Loads the HTML document from the specified string. + + String containing the HTML document to load. May not be null. + + + + Saves the HTML document to the specified stream. + + The stream to which you want to save. + + + + Saves the HTML document to the specified stream. + + The stream to which you want to save. May not be null. + The character encoding to use. May not be null. + + + + Saves the HTML document to the specified StreamWriter. + + The StreamWriter to which you want to save. + + + + Saves the HTML document to the specified TextWriter. + + The TextWriter to which you want to save. May not be null. + + + + Saves the HTML document to the specified XmlWriter. + + The XmlWriter to which you want to save. + + + + Detects the encoding of an HTML document from a file first, and then loads the file. + + The complete file path to be read. + + + + Detects the encoding of an HTML document from a file first, and then loads the file. + + The complete file path to be read. May not be null. + true to detect encoding, false otherwise. + + + + Detects the encoding of an HTML file. + + Path for the file containing the HTML document to detect. May not be null. + The detected encoding. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + The character encoding to use. May not be null. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + The character encoding to use. May not be null. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + The character encoding to use. May not be null. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. May not be null. + The character encoding to use. May not be null. + + + + Creates a new XPathNavigator object for navigating this HTML document. + + An XPathNavigator object. The XPathNavigator is positioned on the root of the document. + + + + Flags that describe the behavior of an Element node. + + + + + The node is a CDATA node. + + + + + The node is empty. META or IMG are example of such nodes. + + + + + The node will automatically be closed during parsing. + + + + + The node can overlap. + + + + + A utility class to replace special characters by entities and vice-versa. + Follows HTML 4.0 specification found at http://www.w3.org/TR/html4/sgml/entities.html + Follows Additional specification found at https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references + See also: https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references + + + + + A collection of entities indexed by name. + + + + + A collection of entities indexed by value. + + + + + Replace known entities by characters. + + The source text. + The result text. + + + + Clone and entitize an HtmlNode. This will affect attribute values and nodes' text. It will also entitize all child nodes. + + The node to entitize. + An entitized cloned node. + + + + Replace characters above 127 by entities. + + The source text. + The result text. + + + + Replace characters above 127 by entities. + + The source text. + If set to false, the function will not use known entities name. Default is true. + The result text. + + + + Replace characters above 127 by entities. + + The source text. + If set to false, the function will not use known entities name. Default is true. + If set to true, the [quote], [ampersand], [lower than] and [greather than] characters will be entitized. + The result text + + + + Represents an HTML node. + + + + + Gets the name of a comment node. It is actually defined as '#comment'. + + + + + Gets the name of the document node. It is actually defined as '#document'. + + + + + Gets the name of a text node. It is actually defined as '#text'. + + + + + Gets a collection of flags that define specific behaviors for specific element nodes. + The table contains a DictionaryEntry list with the lowercase tag name as the Key, and a combination of HtmlElementFlags as the Value. + + + + + Initialize HtmlNode. Builds a list of all tags that have special allowances + + + + + Initializes HtmlNode, providing type, owner and where it exists in a collection + + + + + + + + Gets the collection of HTML attributes for this node. May not be null. + + + + + Gets all the children of the node. + + + + + Gets a value indicating if this node has been closed or not. + + + + + Gets the collection of HTML attributes for the closing tag. May not be null. + + + + + Gets the closing tag of the node, null if the node is self-closing. + + + + + Gets the first child of the node. + + + + + Gets a value indicating whether the current node has any attributes. + + + + + Gets a value indicating whether this node has any child nodes. + + + + + Gets a value indicating whether the current node has any attributes on the closing tag. + + + + + Gets or sets the value of the 'id' HTML attribute. The document must have been parsed using the OptionUseIdAttribute set to true. + + + + + Gets or Sets the HTML between the start and end tags of the object. + + + + + Gets the text between the start and end tags of the object. + + + + Gets direct inner text. + The direct inner text. + + + + Gets the last child of the node. + + + + + Gets the line number of this node in the document. + + + + + Gets the column number of this node in the document. + + + + + Gets the stream position of the area between the opening and closing tag of the node, relative to the start of the document. + + + + + Gets the length of the area between the opening and closing tag of the node. + + + + + Gets the length of the entire node, opening and closing tag included. + + + + + Gets or sets this node's name. + + + + + Gets the HTML node immediately following this element. + + + + + Gets the type of this node. + + + + + The original unaltered name of the tag + + + + + Gets or Sets the object and its content in HTML. + + + + + Gets the to which this node belongs. + + + + + Gets the parent of this node (for nodes that can have parents). + + + + + Gets the node immediately preceding this node. + + + + + Gets the stream position of this node in the document, relative to the start of the document. + + + + + Gets a valid XPath string that points to this node + + + + + The depth of the node relative to the opening root html element. This value is used to determine if a document has to many nested html nodes which can cause stack overflows + + + + + Determines if an element node can be kept overlapped. + + The name of the element node to check. May not be null. + true if the name is the name of an element node that can be kept overlapped, false otherwise. + + + + Creates an HTML node from a string representing literal HTML. + + The HTML text. + The newly created node instance. + + + + Determines if an element node is a CDATA element node. + + The name of the element node to check. May not be null. + true if the name is the name of a CDATA element node, false otherwise. + + + + Determines if an element node is closed. + + The name of the element node to check. May not be null. + true if the name is the name of a closed element node, false otherwise. + + + + Determines if an element node is defined as empty. + + The name of the element node to check. May not be null. + true if the name is the name of an empty element node, false otherwise. + + + + Determines if a text corresponds to the closing tag of an node that can be kept overlapped. + + The text to check. May not be null. + true or false. + + + + Returns a collection of all ancestor nodes of this element. + + + + + + Get Ancestors with matching name + + + + + + + Returns a collection of all ancestor nodes of this element. + + + + + + Gets all anscestor nodes and the current node + + + + + + + Adds the specified node to the end of the list of children of this node. + + The node to add. May not be null. + The node added. + + + Sets child nodes identifier. + The chil node. + + + + Adds the specified node to the end of the list of children of this node. + + The node list to add. May not be null. + + + + Gets all Attributes with name + + + + + + + Creates a duplicate of the node + + + + + + Creates a duplicate of the node and changes its name at the same time. + + The new name of the cloned node. May not be null. + The cloned node. + + + + Creates a duplicate of the node and changes its name at the same time. + + The new name of the cloned node. May not be null. + true to recursively clone the subtree under the specified node; false to clone only the node itself. + The cloned node. + + + + Creates a duplicate of the node. + + true to recursively clone the subtree under the specified node; false to clone only the node itself. + The cloned node. + + + + Creates a duplicate of the node and the subtree under it. + + The node to duplicate. May not be null. + + + + Creates a duplicate of the node. + + The node to duplicate. May not be null. + true to recursively clone the subtree under the specified node, false to clone only the node itself. + + + + Gets all Descendant nodes for this node and each of child nodes + + The depth level of the node to parse in the html tree + the current element as an HtmlNode + + + + Returns a collection of all descendant nodes of this element, in document order + + + + + + Gets all Descendant nodes in enumerated list + + + + + + Gets all Descendant nodes in enumerated list + + + + + + Get all descendant nodes with matching name + + + + + + + Returns a collection of all descendant nodes of this element, in document order + + + + + + Gets all descendant nodes including this node + + + + + + + Gets first generation child node matching name + + + + + + + Gets matching first generation child nodes matching name + + + + + + Gets data attribute. + The key. + The data attribute. + + + Gets the data attributes in this collection. + + An enumerator that allows foreach to be used to process the data attributes in this + collection. + + + + Gets the attributes in this collection. + + An enumerator that allows foreach to be used to process the attributes in this collection. + + + + Gets the attributes in this collection. + A variable-length parameters list containing attribute names. + + An enumerator that allows foreach to be used to process the attributes in this collection. + + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, + the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Inserts the specified node immediately after the specified reference node. + + The node to insert. May not be null. + The node that is the reference node. The newNode is placed after the refNode. + The node being inserted. + + + + Inserts the specified node immediately before the specified reference node. + + The node to insert. May not be null. + The node that is the reference node. The newChild is placed before this node. + The node being inserted. + + + + Adds the specified node to the beginning of the list of children of this node. + + The node to add. May not be null. + The node added. + + + + Adds the specified node list to the beginning of the list of children of this node. + + The node list to add. May not be null. + + + + Removes node from parent collection + + + + + Removes all the children and/or attributes of the current node. + + + + + Removes all the children of the current node. + + + + Removes all id for node described by node. + The node. + + + + Removes the specified child node. + + The node being removed. May not be null. + The node removed. + + + + Removes the specified child node. + + The node being removed. May not be null. + true to keep grand children of the node, false otherwise. + The node removed. + + + + Replaces the child node oldChild with newChild node. + + The new node to put in the child list. + The node being replaced in the list. + The node replaced. + + + + Helper method to set the value of an attribute of this node. If the attribute is not found, it will be created automatically. + + The name of the attribute to set. May not be null. + The value for the attribute. + The corresponding attribute instance. + + + + Saves all the children of the node to the specified TextWriter. + + The TextWriter to which you want to save. + Identifies the level we are in starting at root with 0 + + + + Saves all the children of the node to a string. + + The saved string. + + + + Saves the current node to the specified TextWriter. + + The TextWriter to which you want to save. + identifies the level we are in starting at root with 0 + + + + Saves the current node to the specified XmlWriter. + + The XmlWriter to which you want to save. + + + + Saves the current node to a string. + + The saved string. + + + + Sets the parent Html node and properly determines the current node's depth using the parent node's depth. + + + + + Adds one or more classes to this node. + + The node list to add. May not be null. + + + + Adds one or more classes to this node. + + The node list to add. May not be null. + true to throw Error if class name exists, false otherwise. + + + + Removes the class attribute from the node. + + + + + Removes the class attribute from the node. + + true to throw Error if class name doesn't exist, false otherwise. + + + + Removes the specified class from the node. + + The class being removed. May not be null. + + + + Removes the specified class from the node. + + The class being removed. May not be null. + true to throw Error if class name doesn't exist, false otherwise. + + + + Replaces the class name oldClass with newClass name. + + The new class name. + The class being replaced. + + + + Replaces the class name oldClass with newClass name. + + The new class name. + The class being replaced. + true to throw Error if class name doesn't exist, false otherwise. + + + Gets the CSS Class from the node. + + The CSS Class from the node + + + + Check if the node class has the parameter class. + The class. + True if node class has the parameter class, false if not. + + + + Fill an object and go through it's properties and fill them too. + + Type of object to want to fill. It should have atleast one property that defined XPath. + Returns an object of type T including Encapsulated data. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + + + + Fill an object and go through it's properties and fill them too. + + Type of object to want to fill. It should have atleast one property that defined XPath. + If htmlDocument includes data , leave this parameter null. Else pass your specific htmldocument. + Returns an object of type T including Encapsulated data. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + + + + Fill an object and go through it's properties and fill them too. + + Type of object to want to fill. It should have atleast one property that defined XPath. + If htmlDocument includes data , leave this parameter null. Else pass your specific htmldocument. + Returns an object of type targetType including Encapsulated data. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + + + + Creates a new XPathNavigator object for navigating this HTML node. + + An XPathNavigator object. The XPathNavigator is positioned on the node from which the method was called. It is not positioned on the root of the document. + + + + Creates an XPathNavigator using the root of this document. + + + + + + Selects a list of nodes matching the expression. + + The XPath expression. + An containing a collection of nodes matching the query, or null if no node matched the XPath expression. + + + + Selects a list of nodes matching the expression. + + The XPath expression. + An containing a collection of nodes matching the query, or null if no node matched the XPath expression. + + + + Selects the first XmlNode that matches the XPath expression. + + The XPath expression. May not be null. + The first that matches the XPath query or a null reference if no matching node was found. + + + + Selects a list of nodes matching the expression. + + The XPath expression. + An containing a collection of nodes matching the query, or null if no node matched the XPath expression. + + + + Includes tools that GetEncapsulatedData method uses them. + + + + + Determine if a type define an attribute or not , supporting both .NetStandard and .NetFramework2.0 + + Type you want to test it. + Attribute that type must have or not. + If true , The type parameter define attributeType parameter. + + + + Retrive properties of type that defined . + + Type that you want to find it's XPath-Defined properties. + IEnumerable of property infos of a type , that defined specific attribute. + + + + Determine if a has implemented BUT is considered as NONE-IEnumerable ! + + The property info you want to test. + True if property info is IEnumerable. + + + + Returns T type(first generic type) of or . + + IEnumerable-Implemented property + List of generic types. + + + + Find and Return a mehtod that defined in a class by it's name. + + Type of class include requested method. + Name of requested method as string. + Method info of requested method. + + + + Create of given type. + + Type that you want to make a List of it. + Returns IList of given type. + + + + Returns the part of value of you want as . + + A htmlNode instance. + Attribute that includes ReturnType + String that choosen from HtmlNode as result. + + + + Returns parts of values of you want as . + + that you want to retrive each value. + A instnce incules . + Type of IList generic you want. + + + + + Simulate Func method to use in Lambada Expression. + + + + + + + + + This method works like Where method in LINQ. + + + + + + + + + Check if the type can instantiated. + + + + + + + Returns count of elements stored in IEnumerable of T + + + + + + + + Specify which part of is requested. + + + + + The text between the start and end tags of the object. + + + + + The HTML between the start and end tags of the object + + + + + The object and its content in HTML + + + + + Just mark and flag classes to show they have properties that defined . + + + + + Includes XPath and . XPath for finding html tags and for specify which part of you want to return. + + + + + XPath Expression that is used to find related html node. + + + + + Html Attribute name + + + + + The methode of output + + + + + Specify Xpath to find related Html Node. + + + + + + Specify Xpath to find related Html Node. + + + Specify you want the output include html text too. + + + + Specify Xpath and Attribute to find related Html Node and its attribute value. + + + + + + + Tagging a property with this Attribute make Encapsulator to ignore that property if it causes an error. + + + + + Exception that often occures when there is no way to bind a XPath to a Html Tag. + + + + + + + + + + + + + + + + + + + + + + + Exception that often occures when there is no way to bind a XPath to a HtmlTag Attribute. + + + + + + + + + + + + + + + + + + + + + + + Exception that often occures when there is no property that assigned with XPath Property in Class. + + + + + + + + + + + + + + + + + + + + + + + Represents a combined list and collection of HTML nodes. + + + + + Initialize the HtmlNodeCollection with the base parent node + + The base node of the collection + + + + Gets a given node from the list. + + + + + Get node with tag name + + + + + + + Gets the number of elements actually contained in the list. + + + + + Is collection read only + + + + + Gets the node at the specified index. + + + + + Add node to the collection + + + + + + Add node to the collection + + + + + + + Clears out the collection of HtmlNodes. Removes each nodes reference to parentnode, nextnode and prevnode + + + + + Gets existence of node in collection + + + + + + + Copy collection to array + + + + + + + Get Enumerator + + + + + + Get Explicit Enumerator + + + + + + Get index of node + + + + + + + Insert node at index + + + + + + + Remove node + + + + + + + Remove at index + + + + + + Get first instance of node in supplied collection + + + + + + + + Add node to the end of the collection + + + + + + Get first instance of node with name + + + + + + + Get index of node + + + + + + + Add node to the beginning of the collection + + + + + + Remove node at index + + + + + + + Replace node at index + + + + + + + Get all node descended from this collection + + + + + + Get all node descended from this collection with matching name + + + + + + Gets all first generation elements in collection + + + + + + Gets all first generation elements matching name + + + + + + + All first generation nodes in collection + + + + + + Represents an HTML navigator on an HTML document seen as a data store. + + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + The character encoding to use. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + The minimum buffer size. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a TextReader. + + The TextReader used to feed the HTML data into the document. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + The character encoding to use. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Gets the base URI for the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Gets the current HTML document. + + + + + Gets the current HTML node. + + + + + Gets a value indicating whether the current node has child nodes. + + + + + Gets a value indicating whether the current node has child nodes. + + + + + Gets a value indicating whether the current node is an empty element. + + + + + Gets the name of the current HTML node without the namespace prefix. + + + + + Gets the qualified name of the current node. + + + + + Gets the namespace URI (as defined in the W3C Namespace Specification) of the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Gets the associated with this implementation. + + + + + Gets the type of the current node. + + + + + Gets the prefix associated with the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Gets the text value of the current node. + + + + + Gets the xml:lang scope for the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Creates a new HtmlNavigator positioned at the same node as this HtmlNavigator. + + A new HtmlNavigator object positioned at the same node as the original HtmlNavigator. + + + + Gets the value of the HTML attribute with the specified LocalName and NamespaceURI. + + The local name of the HTML attribute. + The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. + The value of the specified HTML attribute. String.Empty or null if a matching attribute is not found or if the navigator is not positioned on an element node. + + + + Returns the value of the namespace node corresponding to the specified local name. + Always returns string.Empty for the HtmlNavigator implementation. + + The local name of the namespace node. + Always returns string.Empty for the HtmlNavigator implementation. + + + + Determines whether the current HtmlNavigator is at the same position as the specified HtmlNavigator. + + The HtmlNavigator that you want to compare against. + true if the two navigators have the same position, otherwise, false. + + + + Moves to the same position as the specified HtmlNavigator. + + The HtmlNavigator positioned on the node that you want to move to. + true if successful, otherwise false. If false, the position of the navigator is unchanged. + + + + Moves to the HTML attribute with matching LocalName and NamespaceURI. + + The local name of the HTML attribute. + The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. + true if the HTML attribute is found, otherwise, false. If false, the position of the navigator does not change. + + + + Moves to the first sibling of the current node. + + true if the navigator is successful moving to the first sibling node, false if there is no first sibling or if the navigator is currently positioned on an attribute node. + + + + Moves to the first HTML attribute. + + true if the navigator is successful moving to the first HTML attribute, otherwise, false. + + + + Moves to the first child of the current node. + + true if there is a first child node, otherwise false. + + + + Moves the XPathNavigator to the first namespace node of the current element. + Always returns false for the HtmlNavigator implementation. + + An XPathNamespaceScope value describing the namespace scope. + Always returns false for the HtmlNavigator implementation. + + + + Moves to the node that has an attribute of type ID whose value matches the specified string. + + A string representing the ID value of the node to which you want to move. This argument does not need to be atomized. + true if the move was successful, otherwise false. If false, the position of the navigator is unchanged. + + + + Moves the XPathNavigator to the namespace node with the specified local name. + Always returns false for the HtmlNavigator implementation. + + The local name of the namespace node. + Always returns false for the HtmlNavigator implementation. + + + + Moves to the next sibling of the current node. + + true if the navigator is successful moving to the next sibling node, false if there are no more siblings or if the navigator is currently positioned on an attribute node. If false, the position of the navigator is unchanged. + + + + Moves to the next HTML attribute. + + + + + + Moves the XPathNavigator to the next namespace node. + Always returns falsefor the HtmlNavigator implementation. + + An XPathNamespaceScope value describing the namespace scope. + Always returns false for the HtmlNavigator implementation. + + + + Moves to the parent of the current node. + + true if there is a parent node, otherwise false. + + + + Moves to the previous sibling of the current node. + + true if the navigator is successful moving to the previous sibling node, false if there is no previous sibling or if the navigator is currently positioned on an attribute node. + + + + Moves to the root node to which the current node belongs. + + + + + Represents the type of a node. + + + + + The root of a document. + + + + + An HTML element. + + + + + An HTML comment. + + + + + A text node is always the child of an element or a document node. + + + + + Represents a parsing error found during document parsing. + + + + + Gets the type of error. + + + + + Gets the line number of this error in the document. + + + + + Gets the column number of this error in the document. + + + + + Gets a description for the error. + + + + + Gets the the full text of the line containing the error. + + + + + Gets the absolute stream position of this error in the document, relative to the start of the document. + + + + + Represents the type of parsing error. + + + + + A tag was not closed. + + + + + A tag was not opened. + + + + + There is a charset mismatch between stream and declared (META) encoding. + + + + + An end tag was not required. + + + + + An end tag is invalid at this position. + + + + + Represents an HTML text node. + + + + + Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. + + + + + Gets or Sets the object and its content in HTML. + + + + + Gets or Sets the text of the node. + + + + + A utility class to get HTML document from HTTP. + + + + + Represents the method that will handle the PostResponse event. + + + + + Represents the method that will handle the PreHandleDocument event. + + + + + Represents the method that will handle the PreRequest event. + + + + + Occurs after an HTTP request has been executed. + + + + + Occurs before an HTML document is handled. + + + + + Occurs before an HTTP request is executed. + + + + + Gets or Sets a value indicating if document encoding must be automatically detected. + + + + + Gets or sets the Encoding used to override the response stream from any web request + + + + + Gets or Sets a value indicating whether to get document only from the cache. + If this is set to true and document is not found in the cache, nothing will be loaded. + + + + + Gets or Sets a value indicating whether to get document from the cache if exists, otherwise from the web + A value indicating whether to get document from the cache if exists, otherwise from the web + + + + + Gets or Sets the cache path. If null, no caching mechanism will be used. + + + + + Gets a value indicating if the last document was retrieved from the cache. + + + + + Gets the last request duration in milliseconds. + + + + + Gets the URI of the Internet resource that actually responded to the request. + + + + + Gets the last request status. + + + + + Gets or Sets the size of the buffer used for memory operations. + + + + + Gets or Sets a value indicating if cookies will be stored. + + + + Gets or sets a value indicating whether redirect should be captured instead of the current location. + True if capture redirect, false if not. + + + + Gets or Sets the User Agent HTTP 1.1 header sent on any webrequest + + + + + Gets or Sets a value indicating whether the caching mechanisms should be used or not. + + + + + Gets the MIME content type for a given path extension. + + The input path extension. + The default content type to return if any error occurs. + The path extension's MIME content type. + + + + Gets the path extension for a given MIME content type. + + The input MIME content type. + The default path extension to return if any error occurs. + The MIME content type's path extension. + + + + Creates an instance of the given type from the specified Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The requested type. + An newly created instance. + + + + Gets an HTML document from an Internet resource and saves it to the specified file. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + + + + Gets an HTML document from an Internet resource and saves it to the specified file. - Proxy aware + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + + + + + + Gets an HTML document from an Internet resource and saves it to the specified file. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + + + + Gets an HTML document from an Internet resource and saves it to the specified file. Understands Proxies + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + + + + + Gets the cache file path for a specified url. + + The url fo which to retrieve the cache path. May not be null. + The cache file path. + + + + Gets an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + A new HTML document. + + + + Gets an HTML document from an Internet resource. + + The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + A new HTML document. + + + + Gets an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + Host to use for Proxy + Port the Proxy is on + User Id for Authentication + Password for Authentication + A new HTML document. + + + + Gets an HTML document from an Internet resource. + + The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + Host to use for Proxy + Port the Proxy is on + User Id for Authentication + Password for Authentication + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested URL, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + Proxy to use with this request + Credentials to use when authenticating + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + Proxy to use with this request + Credentials to use when authenticating + A new HTML document. + + + + Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The XmlTextWriter to which you want to save to. + + + + Begins the process of downloading an internet resource + + Url to the html document + + + + Begins the process of downloading an internet resource + + Url to the html document + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + Username to use for credentials in the web request + Password to use for credentials in the web request + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + Username to use for credentials in the web request + Password to use for credentials in the web request + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + Username to use for credentials in the web request + Password to use for credentials in the web request + Domain to use for credentials in the web request + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + Username to use for credentials in the web request + Password to use for credentials in the web request + Domain to use for credentials in the web request + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Begins the process of downloading an internet resource + + Url to the html document + Username to use for credentials in the web request + Password to use for credentials in the web request + Domain to use for credentials in the web request + + + + Begins the process of downloading an internet resource + + Url to the html document + Username to use for credentials in the web request + Password to use for credentials in the web request + Domain to use for credentials in the web request + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Begins the process of downloading an internet resource + + Url to the html document + Username to use for credentials in the web request + Password to use for credentials in the web request + + + + Begins the process of downloading an internet resource + + Url to the html document + Username to use for credentials in the web request + Password to use for credentials in the web request + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Begins the process of downloading an internet resource + + Url to the html document + The credentials to use for authenticating the web request + + + + Begins the process of downloading an internet resource + + Url to the html document + The credentials to use for authenticating the web request + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + The credentials to use for authenticating the web request + + + + Begins the process of downloading an internet resource + + Url to the html document + The encoding to use while downloading the document + The credentials to use for authenticating the web request + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + Gets or sets the web browser timeout. + + + + Gets or sets the web browser delay. + + + Loads HTML using a WebBrowser and Application.DoEvents. + Thrown when an exception error condition occurs. + The requested URL, such as "http://html-agility-pack.net/". + A new HTML document. + + + Loads HTML using a WebBrowser and Application.DoEvents. + Thrown when an exception error condition occurs. + The requested URL, such as "http://html-agility-pack.net/". + (Optional) Check if the browser script has all been run and completed. + A new HTML document. + + + Loads HTML using a WebBrowser and Application.DoEvents. + Thrown when an exception error condition occurs. + The requested URL, such as "http://html-agility-pack.net/". + (Optional) Check if the browser script has all been run and completed. + A new HTML document. + + + + Creates an instance of the given type from the specified Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The URL that specifies the XSLT stylesheet to load. + An containing the namespace-qualified arguments used as input to the transform. + The requested type. + An newly created instance. + + + + Creates an instance of the given type from the specified Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The URL that specifies the XSLT stylesheet to load. + An containing the namespace-qualified arguments used as input to the transform. + The requested type. + A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. + An newly created instance. + + + + Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The URL that specifies the XSLT stylesheet to load. + An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. + The XmlTextWriter to which you want to save. + + + + Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". May not be null. + The URL that specifies the XSLT stylesheet to load. + An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. + The XmlTextWriter to which you want to save. + A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. + + + + Represents an exception thrown by the HtmlWeb utility class. + + + + + Creates an instance of the HtmlWebException. + + The exception's message. + + + + Represents a document with mixed code and text. ASP, ASPX, JSP, are good example of such documents. + + + + + Gets or sets the token representing code end. + + + + + Gets or sets the token representing code start. + + + + + Gets or sets the token representing code directive. + + + + + Gets or sets the token representing response write directive. + + + + + Creates a mixed code document instance. + + + + + Gets the code represented by the mixed code document seen as a template. + + + + + Gets the list of code fragments in the document. + + + + + Gets the list of all fragments in the document. + + + + + Gets the encoding of the stream used to read the document. + + + + + Gets the list of text fragments in the document. + + + + + Create a code fragment instances. + + The newly created code fragment instance. + + + + Create a text fragment instances. + + The newly created text fragment instance. + + + + Loads a mixed code document from a stream. + + The input stream. + + + + Loads a mixed code document from a stream. + + The input stream. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a stream. + + The input stream. + The character encoding to use. + + + + Loads a mixed code document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + The character encoding to use. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Loads the mixed code document from the specified TextReader. + + The TextReader used to feed the HTML data into the document. + + + + Loads a mixed document from a text + + The text to load. + + + + Saves the mixed document to the specified stream. + + The stream to which you want to save. + + + + Saves the mixed document to the specified stream. + + The stream to which you want to save. + The character encoding to use. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. + The character encoding to use. + + + + Saves the mixed document to the specified StreamWriter. + + The StreamWriter to which you want to save. + + + + Saves the mixed document to the specified TextWriter. + + The TextWriter to which you want to save. + + + + Represents a fragment of code in a mixed code document. + + + + + Gets the fragment code text. + + + + + Represents a base class for fragments in a mixed code document. + + + + + Gets the fragement text. + + + + + Gets the type of fragment. + + + + + Gets the line number of the fragment. + + + + + Gets the line position (column) of the fragment. + + + + + Gets the fragment position in the document's stream. + + + + + Represents a list of mixed code fragments. + + + + + Gets the Document + + + + + Gets the number of fragments contained in the list. + + + + + Gets a fragment from the list using its index. + + + + + Gets an enumerator that can iterate through the fragment list. + + + + + Appends a fragment to the list of fragments. + + The fragment to append. May not be null. + + + + Gets an enumerator that can iterate through the fragment list. + + + + + Prepends a fragment to the list of fragments. + + The fragment to append. May not be null. + + + + Remove a fragment from the list of fragments. If this fragment was not in the list, an exception will be raised. + + The fragment to remove. May not be null. + + + + Remove all fragments from the list. + + + + + Remove a fragment from the list of fragments, using its index in the list. + + The index of the fragment to remove. + + + + Represents a fragment enumerator. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + Represents the type of fragment in a mixed code document. + + + + + The fragment contains code. + + + + + The fragment contains text. + + + + + Represents a fragment of text in a mixed code document. + + + + + Gets the fragment text. + + + + diff --git a/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.exe b/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.exe index c367c81d..3da7eed2 100644 Binary files a/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.exe and b/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.exe differ diff --git a/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.pdb b/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.pdb index b7b91fb5..0c0793c0 100644 Binary files a/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.pdb and b/PS2 DB Controler/bin/Android Mono/PS2 DB Controler.pdb differ diff --git a/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.exe b/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.exe index 1d0abe05..32fc0f6f 100644 Binary files a/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.exe and b/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.exe differ diff --git a/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.pdb b/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.pdb index 4eff06e6..7ac372b8 100644 Binary files a/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.pdb and b/PS2 DB Controler/bin/PS4 Unity/PS2 DB Controler.pdb differ diff --git a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.FileListAbsolute.txt b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.FileListAbsolute.txt index 58c059d7..e78d3d60 100644 --- a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.FileListAbsolute.txt +++ b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.FileListAbsolute.txt @@ -7,3 +7,15 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Contr C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2 DB Controler.csproj.GenerateResource.Cache C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2 DB Controler.exe C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2 DB Controler.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\Android Mono\PS2 DB Controler.exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\Android Mono\PS2 DB Controler.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\Android Mono\PS2 DB Controler.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\Android Mono\HtmlAgilityPack.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\Android Mono\HtmlAgilityPack.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\Android Mono\HtmlAgilityPack.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2 DB Controler.csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2_DB_Controler.Form1.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2_DB_Controler.Properties.Resources.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2 DB Controler.csproj.GenerateResource.Cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2 DB Controler.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\Android Mono\PS2 DB Controler.pdb diff --git a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.GenerateResource.Cache b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.GenerateResource.Cache index e0d1ba90..8c78bb72 100644 Binary files a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.GenerateResource.Cache and b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csproj.GenerateResource.Cache differ diff --git a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csprojResolveAssemblyReference.cache b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csprojResolveAssemblyReference.cache index 8e190aea..f2dabf42 100644 Binary files a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csprojResolveAssemblyReference.cache and b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.csprojResolveAssemblyReference.cache differ diff --git a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.exe b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.exe index c367c81d..3da7eed2 100644 Binary files a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.exe and b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.exe differ diff --git a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.pdb b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.pdb index b7b91fb5..0c0793c0 100644 Binary files a/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.pdb and b/PS2 DB Controler/obj/Android Mono/PS2 DB Controler.pdb differ diff --git a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.FileListAbsolute.txt b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.FileListAbsolute.txt index 7b45c616..92dbf656 100644 --- a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.FileListAbsolute.txt +++ b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.FileListAbsolute.txt @@ -7,3 +7,15 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Contr C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2 DB Controler.csproj.GenerateResource.Cache C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2 DB Controler.exe C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2 DB Controler.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\PS4 Unity\PS2 DB Controler.exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\PS4 Unity\PS2 DB Controler.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\PS4 Unity\PS2 DB Controler.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\PS4 Unity\HtmlAgilityPack.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\PS4 Unity\HtmlAgilityPack.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\bin\PS4 Unity\HtmlAgilityPack.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2 DB Controler.csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2_DB_Controler.Form1.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2_DB_Controler.Properties.Resources.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2 DB Controler.csproj.GenerateResource.Cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2 DB Controler.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS2 DB Controler\obj\PS4 Unity\PS2 DB Controler.pdb diff --git a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.GenerateResource.Cache b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.GenerateResource.Cache index 55d20045..011b0c9d 100644 Binary files a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.GenerateResource.Cache and b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csproj.GenerateResource.Cache differ diff --git a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csprojResolveAssemblyReference.cache b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csprojResolveAssemblyReference.cache index f2dabf42..63524567 100644 Binary files a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csprojResolveAssemblyReference.cache and b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.csprojResolveAssemblyReference.cache differ diff --git a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.exe b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.exe index 1d0abe05..32fc0f6f 100644 Binary files a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.exe and b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.exe differ diff --git a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.pdb b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.pdb index 4eff06e6..7ac372b8 100644 Binary files a/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.pdb and b/PS2 DB Controler/obj/PS4 Unity/PS2 DB Controler.pdb differ diff --git a/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).exe b/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).exe index 2fd7fbbc..cfc56a2e 100644 Binary files a/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).exe and b/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).exe differ diff --git a/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).pdb b/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).pdb index cf93c249..5c79c3f1 100644 Binary files a/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).pdb and b/PS4_File_Explorer(WPF for unity)/bin/Android Mono/PS4_File_Explorer(WPF for unity).pdb differ diff --git a/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).exe b/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).exe index d932b711..fe90bf7f 100644 Binary files a/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).exe and b/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).exe differ diff --git a/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb b/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb index 312fc83a..e55ad9e8 100644 Binary files a/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb and b/PS4_File_Explorer(WPF for unity)/bin/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb differ diff --git a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt index 867d192f..9a003dd5 100644 --- a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt +++ b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt @@ -12,3 +12,17 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Exp C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).exe C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\bin\Android Mono\PS4_File_Explorer(WPF for unity).exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\bin\Android Mono\PS4_File_Explorer(WPF for unity).exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\bin\Android Mono\PS4_File_Explorer(WPF for unity).pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\MainWindow.g.cs +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\App.g.cs +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity)_MarkupCompile.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity)_MarkupCompile.lref +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\MainWindow.baml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).g.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer_WPF_for_unity_.Properties.Resources.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\PS4_File_Explorer(WPF for unity).pdb diff --git a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).exe b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).exe index 2fd7fbbc..cfc56a2e 100644 Binary files a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).exe and b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).exe differ diff --git a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).pdb b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).pdb index cf93c249..5c79c3f1 100644 Binary files a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).pdb and b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity).pdb differ diff --git a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.cache b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.cache index 4dc45d82..2333cd50 100644 --- a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.cache +++ b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.cache @@ -4,12 +4,12 @@ winexe C# .cs -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\ +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\Android Mono\ PS4_File_Explorer_WPF_for_unity_ none false DEBUG;TRACE -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\App.xaml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\App.xaml 11151548125 5-2017746502 diff --git a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.i.cache b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.i.cache index 6515ca5f..f5b98dc7 100644 --- a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.i.cache +++ b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.i.cache @@ -16,5 +16,5 @@ D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Exp 14-1001767708 MainWindow.xaml; -True +False diff --git a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.lref b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.lref index b64728d3..80117e0c 100644 --- a/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.lref +++ b/PS4_File_Explorer(WPF for unity)/obj/Android Mono/PS4_File_Explorer(WPF for unity)_MarkupCompile.lref @@ -1,4 +1,4 @@  -FC:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\MainWindow.xaml;; +FD:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\MainWindow.xaml;; diff --git a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt index 9afcd629..87a610e3 100644 --- a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt +++ b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.FileListAbsolute.txt @@ -12,3 +12,17 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Exp C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).exe C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\bin\PS4 Unity\PS4_File_Explorer(WPF for unity).exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\bin\PS4 Unity\PS4_File_Explorer(WPF for unity).exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\bin\PS4 Unity\PS4_File_Explorer(WPF for unity).pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\MainWindow.g.cs +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\App.g.cs +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity)_MarkupCompile.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity)_MarkupCompile.lref +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\MainWindow.baml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).g.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer_WPF_for_unity_.Properties.Resources.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_File_Explorer(WPF for unity)\obj\PS4 Unity\PS4_File_Explorer(WPF for unity).pdb diff --git a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache index 8a212d52..5507cb7c 100644 Binary files a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache and b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).csproj.GenerateResource.Cache differ diff --git a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).exe b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).exe index d932b711..fe90bf7f 100644 Binary files a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).exe and b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).exe differ diff --git a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb index 312fc83a..e55ad9e8 100644 Binary files a/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb and b/PS4_File_Explorer(WPF for unity)/obj/PS4 Unity/PS4_File_Explorer(WPF for unity).pdb differ diff --git a/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.exe b/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.exe index 4ef65a96..d435c50b 100644 Binary files a/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.exe and b/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.exe differ diff --git a/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.pdb b/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.pdb index 50a6819a..9ee578ce 100644 Binary files a/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.pdb and b/PS4_PKG_Tool/bin/Debug/PS4_PKG_Tool.pdb differ diff --git a/PS4_PKG_Tool/bin/Debug/PS4_Tools.dll b/PS4_PKG_Tool/bin/Debug/PS4_Tools.dll index 9758f728..bb65dc64 100644 Binary files a/PS4_PKG_Tool/bin/Debug/PS4_Tools.dll and b/PS4_PKG_Tool/bin/Debug/PS4_Tools.dll differ diff --git a/PS4_PKG_Tool/bin/Debug/PS4_Tools.pdb b/PS4_PKG_Tool/bin/Debug/PS4_Tools.pdb index 9ce7646c..7729504e 100644 Binary files a/PS4_PKG_Tool/bin/Debug/PS4_Tools.pdb and b/PS4_PKG_Tool/bin/Debug/PS4_Tools.pdb differ diff --git a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.Form1.resources b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.Form1.resources index 7a42aa04..74af3f32 100644 Binary files a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.Form1.resources and b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.Form1.resources differ diff --git a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.FileListAbsolute.txt b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.FileListAbsolute.txt index 73d271c0..e74041e2 100644 --- a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.FileListAbsolute.txt +++ b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.FileListAbsolute.txt @@ -34,3 +34,9 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.csprojResolveAssemblyReference.cache C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.exe C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.Form1.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.Properties.Resources.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.csproj.GenerateResource.Cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\Android Mono\PS4_PKG_Tool.pdb diff --git a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.GenerateResource.Cache b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.GenerateResource.Cache index 1d3c8831..9f3e7ddd 100644 Binary files a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.GenerateResource.Cache and b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csproj.GenerateResource.Cache differ diff --git a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csprojResolveAssemblyReference.cache b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csprojResolveAssemblyReference.cache index f0bec724..d2ce6dff 100644 Binary files a/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csprojResolveAssemblyReference.cache and b/PS4_PKG_Tool/obj/Android Mono/PS4_PKG_Tool.csprojResolveAssemblyReference.cache differ diff --git a/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.csprojResolveAssemblyReference.cache b/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.csprojResolveAssemblyReference.cache index d4cc82d4..2e5ddeb3 100644 Binary files a/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.csprojResolveAssemblyReference.cache and b/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.csprojResolveAssemblyReference.cache differ diff --git a/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.exe b/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.exe index 4ef65a96..d435c50b 100644 Binary files a/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.exe and b/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.exe differ diff --git a/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.pdb b/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.pdb index 50a6819a..9ee578ce 100644 Binary files a/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.pdb and b/PS4_PKG_Tool/obj/Debug/PS4_PKG_Tool.pdb differ diff --git a/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.FileListAbsolute.txt b/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.FileListAbsolute.txt index 95e97480..08a99d09 100644 --- a/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.FileListAbsolute.txt +++ b/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.FileListAbsolute.txt @@ -20,3 +20,7 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\bin\PS4 Unity\Newtonsoft.Json.xml C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\PS4 Unity\PS4_PKG_Tool.exe C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\PS4 Unity\PS4_PKG_Tool.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\PS4 Unity\PS4_PKG_Tool.csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\PS4 Unity\PS4_PKG_Tool.Form1.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\PS4 Unity\PS4_PKG_Tool.Properties.Resources.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\PS4_PKG_Tool\obj\PS4 Unity\PS4_PKG_Tool.csproj.GenerateResource.Cache diff --git a/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.GenerateResource.Cache b/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.GenerateResource.Cache index b4ad41d8..6629cd0a 100644 Binary files a/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.GenerateResource.Cache and b/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csproj.GenerateResource.Cache differ diff --git a/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csprojResolveAssemblyReference.cache b/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csprojResolveAssemblyReference.cache index f2d3efe7..7438b5b6 100644 Binary files a/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csprojResolveAssemblyReference.cache and b/PS4_PKG_Tool/obj/PS4 Unity/PS4_PKG_Tool.csprojResolveAssemblyReference.cache differ diff --git a/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.exe b/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.exe index cec43e58..b1768b15 100644 Binary files a/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.exe and b/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.exe differ diff --git a/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.pdb b/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.pdb index 47407ef3..a60b575b 100644 Binary files a/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.pdb and b/PS4_PKG_Viewer/bin/Debug/PS4_PKG_Viewer.pdb differ diff --git a/PS4_PKG_Viewer/bin/Debug/PS4_Tools.dll b/PS4_PKG_Viewer/bin/Debug/PS4_Tools.dll index 0d8f24bf..bb65dc64 100644 Binary files a/PS4_PKG_Viewer/bin/Debug/PS4_Tools.dll and b/PS4_PKG_Viewer/bin/Debug/PS4_Tools.dll differ diff --git a/PS4_PKG_Viewer/bin/Debug/PS4_Tools.pdb b/PS4_PKG_Viewer/bin/Debug/PS4_Tools.pdb index 5f478133..7729504e 100644 Binary files a/PS4_PKG_Viewer/bin/Debug/PS4_Tools.pdb and b/PS4_PKG_Viewer/bin/Debug/PS4_Tools.pdb differ diff --git a/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.csprojResolveAssemblyReference.cache b/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.csprojResolveAssemblyReference.cache index 6504a17b..806b34d4 100644 Binary files a/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.csprojResolveAssemblyReference.cache and b/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.csprojResolveAssemblyReference.cache differ diff --git a/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.exe b/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.exe index cec43e58..b1768b15 100644 Binary files a/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.exe and b/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.exe differ diff --git a/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.pdb b/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.pdb index 47407ef3..a60b575b 100644 Binary files a/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.pdb and b/PS4_PKG_Viewer/obj/Debug/PS4_PKG_Viewer.pdb differ diff --git a/PS4_Tools/Main.cs b/PS4_Tools/Main.cs index 3e87072e..01477a0e 100644 --- a/PS4_Tools/Main.cs +++ b/PS4_Tools/Main.cs @@ -2930,7 +2930,1160 @@ public static void DumpRco(string File) } } + private static string fileExtensionFromType(string type) + { + if (type == "texture/jpg") + { + return "jpg"; + } + if (type == "texture/tif") + { + return "tif"; + } + if (type == "texture/gif") + { + return "gif"; + } + if (type == "texture/gxt") + { + return "gxt"; + } + if (type == "texture/gim") + { + return "gim"; + } + if (type == "texture/png") + { + return "png"; + } + // Some PS4 RCOs have just png and not texture/png + if (type == "png") + { + return "png"; + } + if (type == "texture/dds") + { + return "dds"; + } + if (type == "sound/vag") + { + return "vag"; + } + if (type == "sound/wav") + { + return "wav"; + } + if (type == "sound/mp3") + { + return "mp3"; + } + if (type == "sound/at3") + { + return "at3"; + } + if (type == "sound/aac") + { + return "aac"; + } + return "bin"; + } + + private static string typeToString(ATTRIBUTE_TYPE type) + { + switch (type) + { + case ATTRIBUTE_TYPE.Char: + return "CHAR"; + case ATTRIBUTE_TYPE.DATA: + return "DATA"; + case ATTRIBUTE_TYPE.Float: + return "FLOAT"; + case ATTRIBUTE_TYPE.FLOAT_ARRAY: + return "FLOAT_ARRAY"; + case ATTRIBUTE_TYPE.ID_INT: + return "ID_INT"; + case ATTRIBUTE_TYPE.ID_INT_LPB: + return "ID_INT_LPB"; + case ATTRIBUTE_TYPE.ID_STR_LPB: + return "ID_STR_LPB"; + case ATTRIBUTE_TYPE.ID_STR: + return "ID_STR"; + case ATTRIBUTE_TYPE.INTEGER: + return "INTEGER"; + case ATTRIBUTE_TYPE.INTEGER_ARRAY: + return "INTEGER_ARRAY"; + case ATTRIBUTE_TYPE.NONE: + return "NONE"; + case ATTRIBUTE_TYPE.STRING: + return "STRING"; + case ATTRIBUTE_TYPE.STYLE_ID: + return "STYLE_ID"; + } + + return "NO KNOWN TYPE"; + } + + private static string getStringTableString(ref string s, RCOFileHeader rcohead, BinaryReader br, uint offset, uint len) + { + byte[] buf = new byte[len * 2]; + //memset(buf, 0, len + 1); + //memcpy(buf, mBuffer + mHeader.strings_start_off + offset, sizeof(char) * len); + br.BaseStream.Position = (int)(rcohead.String_Table_Offset + offset); + br.Read(buf, 0, (int)(sizeof(char) * len)); + string result = System.Text.Encoding.UTF8.GetString(buf); + result = result.Split('\0')[0]; + s = result; + return s; + //return NO_ERROR; + } + + + + private static void getEntireStringTableString(RCOFileHeader rcohead, BinaryReader br) + { + byte[] buffer = new byte[256]; + br.BaseStream.Position = (int)(rcohead.String_Table_Offset); + br.Read(buffer, 0, 256);//read the whole table + string result = System.Text.Encoding.UTF8.GetString(buffer); + result = result.Split('\0')[0]; + //s = result; + } + + private static bool getStringTableString(ref string s, RCOFileHeader rcohead, BinaryReader br, uint offset) + { + byte[] buffer = new byte[256]; + //C++ TO C# CONVERTER TODO TASK: The memory management function 'memset' has no equivalent in C#: + //memset(buf, 0, 256); + + //C++ TO C# CONVERTER TODO TASK: The memory management function 'memcpy' has no equivalent in C#: + // memcpy(buf, mBuffer + mHeader.strings_start_off + offset, 255 * sizeof(ATTRIBUTE_TYPE)); + br.BaseStream.Position = (int)(rcohead.String_Table_Offset + offset); + //string result = br.ReadString(); + var chars = br.ReadChars(256); + var tmp = new string(chars); + br.BaseStream.Position = (int)(rcohead.String_Table_Offset + offset); + br.Read(buffer, 0, 256);//read the whole table + string result = System.Text.Encoding.UTF8.GetString(buffer); + result = result.Split('\0')[0]; + s = result; + return true; + } + + private static void getCharTableChar(ref string s, uint offset, uint len, RCOFileHeader rcohead, BinaryReader br) + { + byte[] buf = new byte[len + 2]; + + //memcpy(buf, mBuffer + mHeader.char_start_off + (offset * 2), len); + + + br.BaseStream.Position = (long)(rcohead.Char_Table_Offset + (offset * 2)); + br.ReadBytes((int)len); + string result = System.Text.Encoding.UTF8.GetString(buf); + s = result; + + + } + + private static void getIdStringString(ref string s, uint offset, RCOFileHeader rcohead, BinaryReader br, bool loopback = false) + { + + byte[] buffer = new byte[256]; + uint loopback_val; + + + //memcpy(&loopback_val, mBuffer + mHeader.id_str_start_off + offset, sizeof(uint32_t)); + + //memset(buf, 0, 256); + + //memcpy(buf, mBuffer + mHeader.id_str_start_off + offset + sizeof(uint32_t), 255 * sizeof(char)); + + + br.BaseStream.Position = (int)(rcohead.ID_String_Table_Offset + offset); + loopback_val = br.ReadUInt32();//check looback ? + + br.BaseStream.Position = (int)(rcohead.ID_String_Table_Offset + offset + sizeof(uint)); + br.Read(buffer, 0, 256);//read the whole table + string result = System.Text.Encoding.UTF8.GetString(buffer); + result = result.Split('\0')[0]; + s = result; + + //s = buf.ToString(); + + + + return; + } + + private static void getStyleId(ref string s, uint offset, RCOFileHeader rcohead, BinaryReader br) + { + uint styleid; + + //memcpy(&styleid, mBuffer + mHeader.styles_off + offset * sizeof(uint32_t), sizeof(uint32_t)); + br.BaseStream.Position = (long)(rcohead.Styles_ID_Intiger_Table_Offset + offset + sizeof(uint)); + styleid = br.ReadUInt32(); + //char buf[256]; + //snprintf(buf, 256, "%x", styleid); + + s = styleid.ToString("X"); + //s = buf; + + + } + + private static void getIntArray(ref List ints, uint offset, uint len, RCOFileHeader rcohead, BinaryReader br) + { + for (int i = 0; i < len; i++) + { + uint val; + + //memcpy(&val, mBuffer + mHeader.ints_arr_off + (offset * sizeof(uint32_t)) + i * sizeof(uint32_t), sizeof(uint32_t)); + br.BaseStream.Position = (long)((long)rcohead.Intiger_Array_Table_Offset + (offset * sizeof(uint)) + i * sizeof(uint)); + val = br.ReadUInt32(); + ints.Add(val); + } + + + } + + private static void getFloatArray(ref List floats, uint offset, uint len, RCOFileHeader rcohead, BinaryReader br) + { + for (int i = 0; i < len; i++) + { + float val; + + //memcpy(&val, mBuffer + mHeader.float_arr_off + (offset * sizeof(float)) + i * sizeof(float), sizeof(float)); + br.BaseStream.Position = (long)((long)rcohead.Float_Array_Table_Offset + (offset * sizeof(float)) + i * sizeof(float)); + val = br.ReadSingle(); + floats.Add(val); + } + + } + + private static void getIdIntInt(ref uint i, uint offset, RCOFileHeader rcohead, BinaryReader br) + { + uint loopback; + + //memcpy(&loopback, mBuffer + mHeader.id_int_start_off + offset, sizeof(uint32_t)); + br.BaseStream.Position = (long)rcohead.ID_Integer_Table_Offset + offset; + br.ReadUInt32(); + + // memcpy(&i, mBuffer + mHeader.id_int_start_off + offset + sizeof(uint32_t), sizeof(uint32_t)); + br.BaseStream.Position = (long)rcohead.ID_Integer_Table_Offset + offset + sizeof(uint);//you dont need to do this but for the sake of keeping things as close as possible i did + i = br.ReadUInt32(); + } + + private static void getFileData(byte[] filedata, ref uint outlen, uint offset, uint size, bool isCompressed, uint originalSize, RCOFileHeader rcohead, BinaryReader br) + { + filedata = new byte[size]; + + byte[] fdata = filedata; + outlen = size; + + //memcpy(fdata, mBuffer + mHeader.file_table_off + offset, size * sizeof(uint8_t)); + + br.BaseStream.Position = (long)rcohead.File_Table_Offset + offset; + fdata = br.ReadBytes((int)size * sizeof(byte)); + + + if (isCompressed) + { + if (originalSize <= 0) + return; + + Console.WriteLine("Found a compressed file ZLIB still needs to be intoduced here"); + //byte[] deflated = new byte[originalSize]; + + //uint destlen = originalSize;//1024 * 1024 * 10; + + //uncompress(deflated, &destlen, fdata, size); + + //uint8_t* deflated_final = new uint8_t[destlen]; + //memcpy(deflated_final, deflated, destlen); + + //*filedata = deflated_final; + //outlen = destlen; + + //delete[] deflated; + //delete[] fdata; + } + + return; + + } + + public class string_data_raw + { + public int offset = new int(); + public int len = new int(); + } + public class char_data_raw + { + public int offset = new int(); + public int len = new int(); + } + public class int_array_data_raw + { + public int offset = new int(); + public int num = new int(); + } + public class float_array_data_raw + { + public int offset = new int(); + public int num = new int(); + } + public class file_data_raw + { + public int offset = new int(); + public int size = new int(); + } + public class id_string_table_data_raw + { + public int offset = new int(); + public bool loopback = new bool(); // still not sure what this means + } + public class id_int_table_data_raw + { + public int offset = new int(); + public bool loopback = new bool(); + } + + public class LayoutFile + { + public enum ProgressBarType + { + BarNormal, + BarAnimation, + BarRigid + } + + public enum ScrollBarVisibility + { + Visible, + ScrollableVisible, + ScrollingVisible, + Invisible + } + + public enum GridListScrollOrientation + { + GridHorizontal, + GridVertical + } + + public enum ImageScaleType + { + ScaleCenter = 0, + ScaleStretch, + ScaleAspectInside, + ScaleAspectOutside, + ScaleNinePatch + } + + public enum Type + { + SceneType, + DialogType, + PanelType, + ListPanelItemType, + Unknown + } + + public enum Anchor + { + AnchorNone = 0, + AnchorTop = 1, + AnchorBottom = 2, + AnchorHeight = 4, + AnchorLeft = 16, + AnchorRight = 32, + AnchorWidth = 64 + } + + public enum HorizontalAlignment + { + HAlignLeft = 0, + HAlignCenter, + HAlignRight, + } + + public enum VerticalAlignment + { + VAlignTop = 0, + VAlignBottom, + VAlignCenter + } + + public enum TextTrimming + { + TrimNone = 0, + TrimCharacter, + TrimWord, + TrimEllipsisCharacter, + TrimEllipsisWord, + TrimMarquee, + TrimRoundMarquee + } + + public enum LineBreak + { + BreakCharacter = 0, + BreakWord, + BreakBreakableSymbol, + BreakAtCode + } + + public class Transform + { + public ATTRIBUTE_TYPE transX; + public ATTRIBUTE_TYPE transY; + public ATTRIBUTE_TYPE transZ; + public ATTRIBUTE_TYPE scaleX; + public ATTRIBUTE_TYPE scaleY; + public ATTRIBUTE_TYPE scaleZ; + public ATTRIBUTE_TYPE angleX; + public ATTRIBUTE_TYPE angleY; + public ATTRIBUTE_TYPE angleZ; + + + //public static int read(byte[] buf, Transform @out) + //{ + // buf += Util.readFloat32(new uint8_t(buf), ref @out.transX); + // buf += Util.readFloat32(new uint8_t(buf), ref @out.transY); + // buf += Util.readFloat32(new uint8_t(buf), ref @out.transZ); + + // buf += Util.readFloat32(new uint8_t(buf), ref @out.scaleX); + // buf += Util.readFloat32(new uint8_t(buf), ref @out.scaleY); + // buf += Util.readFloat32(new uint8_t(buf), ref @out.scaleZ); + + // buf += Util.readFloat32(new uint8_t(buf), ref @out.angleX); + // buf += Util.readFloat32(new uint8_t(buf), ref @out.angleY); + // buf += Util.readFloat32(new uint8_t(buf), ref @out.angleZ); + + // return sizeof(float) * 9; + //} + + //public string writeXmlAttribute() + //{ + // std::stringstream str = new std::stringstream(); + + // str << transX << ","; + // str << transY << ","; + // str << transZ << ","; + + // str << scaleX << ","; + // str << scaleY << ","; + // str << scaleZ << ","; + + // str << angleX << ","; + // str << angleY << ","; + // str << angleZ; + + // return str.str(); + //} + } + + } + + public class rco_tree_table_element_attribute_raw + { + public uint string_offset = new uint(); + public uint type = new uint(); + public uint i = new uint(); + public float f = new float(); + public string_data_raw s = new string_data_raw(); + public char_data_raw c = new char_data_raw(); + public int_array_data_raw ia = new int_array_data_raw(); + public float_array_data_raw fa = new float_array_data_raw(); + public file_data_raw file = new file_data_raw(); + public id_string_table_data_raw id = new id_string_table_data_raw(); + public id_int_table_data_raw idref = new id_int_table_data_raw(); + } + public static decimal ToDecimal(byte[] bytes) + { + int[] bits = new int[4]; + bits[0] = ((bytes[0] | (bytes[1] << 8)) | (bytes[2] << 0x10)) | (bytes[3] << 0x18); //lo + bits[1] = ((bytes[4] | (bytes[5] << 8)) | (bytes[6] << 0x10)) | (bytes[7] << 0x18); //mid + bits[2] = ((bytes[8] | (bytes[9] << 8)) | (bytes[10] << 0x10)) | (bytes[11] << 0x18); //hi + bits[3] = ((bytes[12] | (bytes[13] << 8)) | (bytes[14] << 0x10)) | (bytes[15] << 0x18); //flags + + return new decimal(bits); + } + private static bool loadAttributes(RCOElement el, uint offset, uint count, RCOFileHeader header, BinaryReader br, bool mainloader = false) + { + List attributes = el.attributes; + + rco_tree_table_element_attribute_raw[] raw_attr = new rco_tree_table_element_attribute_raw[count]; + //memcpy(raw_attr, mBuffer + offset, sizeof(rco_tree_table_element_attribute_raw) * count); + //br.Read() + br.BaseStream.Position = offset;//read from here + for (int i = 0; i < raw_attr.Length; i++) + { + raw_attr[i] = new rco_tree_table_element_attribute_raw(); + raw_attr[i].string_offset = br.ReadUInt32(); + raw_attr[i].type = br.ReadUInt32(); + + //from here we need to decide what to do about this + //we don't have a union so we need to decide how this is managed + var type = (ATTRIBUTE_TYPE)raw_attr[i].type; + switch (type) + { + case ATTRIBUTE_TYPE.Float: + raw_attr[i].f = br.ReadSingle();//should read the float + br.ReadBytes(0x04);//read an empty value + break; + case ATTRIBUTE_TYPE.INTEGER: + raw_attr[i].i = br.ReadUInt32();//should read the float + br.ReadBytes(0x04);//read an empty value + break; + case ATTRIBUTE_TYPE.STRING: + case ATTRIBUTE_TYPE.STYLE_ID: + string_data_raw s = new string_data_raw(); + s.offset = br.ReadInt32(); + s.len = br.ReadInt32(); + raw_attr[i].s = s; + break; + case ATTRIBUTE_TYPE.Char: + char_data_raw c = new char_data_raw(); + c.offset = br.ReadInt32(); + c.len = br.ReadInt32(); + raw_attr[i].c = c; + break; + case ATTRIBUTE_TYPE.INTEGER_ARRAY: + int_array_data_raw ia = new int_array_data_raw(); + ia.offset = br.ReadInt32(); + ia.num = br.ReadInt32(); + raw_attr[i].ia = ia; + break; + case ATTRIBUTE_TYPE.FLOAT_ARRAY: + float_array_data_raw fa = new float_array_data_raw(); + fa.offset = br.ReadInt32(); + fa.num = br.ReadInt32(); + raw_attr[i].fa = fa; + break; + case ATTRIBUTE_TYPE.ID_STR: + case ATTRIBUTE_TYPE.ID_STR_LPB: + id_string_table_data_raw id1 = new id_string_table_data_raw(); + id1.offset = br.ReadInt32(); + id1.loopback = br.ReadBoolean(); + raw_attr[i].id = id1; + break; + case ATTRIBUTE_TYPE.DATA: + file_data_raw file = new file_data_raw(); + file.offset = br.ReadInt32(); + file.size = br.ReadInt32(); + raw_attr[i].file = file; + break; + case ATTRIBUTE_TYPE.ID_INT: + case ATTRIBUTE_TYPE.ID_INT_LPB: + id_int_table_data_raw idref = new id_int_table_data_raw(); + idref.offset = br.ReadInt32(); + idref.loopback = br.ReadBoolean(); + raw_attr[i].idref = idref; + break; + default: + raw_attr[i].i = br.ReadUInt32(); + raw_attr[i].f = br.ReadSingle();//should read the float + break; + } + + } + + + Dictionary filedata_indexes = new Dictionary(); + + // Handle all attributes apart from files + for (int i = 0; i < raw_attr.Length; i++) + { + try + { + RCOAttribute attr = new RCOAttribute(); + + rco_tree_table_element_attribute_raw cur_attr = raw_attr[i]; + + attr.type = (ATTRIBUTE_TYPE)cur_attr.type; + + getStringTableString(ref attr.name, header, br, (cur_attr.string_offset)); + + + bool deferred = false; + try + { + switch (attr.type) + { + case ATTRIBUTE_TYPE.Char: + //getCharTableChar(ref attr.c, cur_attr.c.offset, cur_attr.c.len); + getCharTableChar(ref attr.c, (uint)cur_attr.c.offset, (uint)cur_attr.c.len, header, br); + break; + case ATTRIBUTE_TYPE.STRING: + getStringTableString(ref attr.s, header, br, (uint)cur_attr.s.offset, (uint)cur_attr.s.len); + break; + case ATTRIBUTE_TYPE.ID_STR_LPB: + getIdStringString(ref attr.idstr, (uint)cur_attr.id.offset, header, br, true); + break; + case ATTRIBUTE_TYPE.ID_STR: + getIdStringString(ref attr.idstr, (uint)cur_attr.id.offset, header, br); + break; + case ATTRIBUTE_TYPE.STYLE_ID: + getStyleId(ref attr.s, (uint)cur_attr.s.offset, header, br); + break; + case ATTRIBUTE_TYPE.Float: + attr.f = cur_attr.f; + break; + case ATTRIBUTE_TYPE.INTEGER: + attr.i = (int)cur_attr.i; + break; + case ATTRIBUTE_TYPE.INTEGER_ARRAY: + getIntArray(ref attr.ia, (uint)cur_attr.ia.offset, (uint)cur_attr.ia.num, header, br); + break; + case ATTRIBUTE_TYPE.FLOAT_ARRAY: + getFloatArray(ref attr.fa, (uint)cur_attr.fa.offset, (uint)cur_attr.fa.num, header, br); + break; + case ATTRIBUTE_TYPE.ID_INT: + case ATTRIBUTE_TYPE.ID_INT_LPB: + getIdIntInt(ref attr.idint, (uint)cur_attr.idref.offset, header, br); + break; + case ATTRIBUTE_TYPE.DATA: + filedata_indexes.Add(i, attr); + deferred = true; + break; + default: + Console.Write("unhandled type: {0:D}\n", attr.type); + break; + } + } + catch (Exception ex) + { + + } + + if (attr.name == "compress" && attr.s.ToString() == "on") + { + el.isCompressed = true; + } + else if (attr.name == "origsize") + { + el.originalSize = (uint)attr.i; + } + + if (!deferred) + { + attributes.Add(attr); + } + } + catch (Exception ex) + { + + } + } + + // Handle files afterwards (deferred) + foreach (var it in filedata_indexes) + { + int index = it.Key; + RCOAttribute attr = it.Value; + + if (attr.type == ATTRIBUTE_TYPE.DATA) + { + getFileData(attr.file, ref attr.filelen, (uint)raw_attr[index].file.offset, (uint)raw_attr[index].file.size, el.isCompressed, el.originalSize, header, br); + } + + attributes.Add(attr); + } + + string path = ""; + string ext = ""; + string id = ""; + + if (el.name == "locale") + { + path = "xmls"; + ext = "xml"; + } + else if (el.name == "texture" || el.name == "override_texture") + { + path = "textures"; + } + else if (el.name == "sounddata") + { + path = "sounds"; + } + else if (el.name == "layout") + { + path = "layouts"; + // Just a binary file but makes sense to give it a separate ext + ext = "pslayout"; + } + + foreach (RCOAttribute it in attributes) + { + if (it.name == "id") + { + if (it.idstr != null) + { + id = it.idstr.ToString(); + } + else + { + id = it.idint.ToString("X"); + } + } + if (it.name == "type") + { + ext = RCO.fileExtensionFromType(it.s.ToString()); + } + } + + foreach (RCOAttribute it in attributes) + { + if (it.name == "src") + { + string buf = ""; + buf = string.Format("{0}/{1}.{2}", path, id, ext); + it.s = buf; + } + else if (it.name == "src_4k") + { + string buf = ""; + buf = string.Format("{0}/{1}_4k.{2}", path, id, ext); + it.s = buf; + } + else if (it.name == "right") + { + string buf = ""; + buf = string.Format("{0}/{1}_right.{2}", path, id, ext); + it.s = buf; + } + else if (it.name == "left") + { + string buf = ""; + buf = string.Format("{0}/{1}_left.{2}", path, id, ext); + it.s = buf; + } + } + + raw_attr = null; + + return true; + } + + private static bool loadElement(RCOElement el, uint offset, RCOFileHeader rcohead, BinaryReader br,ref RCOFile rco) + { + bool err; + + rco_tree_table_element element = new rco_tree_table_element(); + + br.BaseStream.Position = offset; + + //now read the element + element.element_offset = br.ReadUInt32(); + element.attr_ct = br.ReadUInt32(); + element.parent = br.ReadUInt32(); + element.previous_sibling = br.ReadUInt32(); + element.next_sibling = br.ReadUInt32(); + element.first_child = br.ReadUInt32(); + element.last_child = br.ReadUInt32(); + + + uint root_attr_offset = (uint)(offset + Marshal.SizeOf(element)); + + err = getStringTableString(ref el.name, rcohead, br, element.element_offset); + if (err != true) + { + return err; + } + + err = loadAttributes(el, root_attr_offset, element.attr_ct, rcohead, br, true); + + if (err != true) + { + return err; + } + + if (element.first_child != 0xFFFFFFFF) + { + RCOElement first_child = new RCOElement(); + err = loadElement(first_child, (uint)rcohead.Tree_Table_Offset + element.first_child, rcohead, br,ref rco); + if (err != true) + { + return err; + } + el.children.Add(first_child); + } + + if (element.next_sibling != 0xFFFFFFFF) + { + RCOElement next_sibling = new RCOElement(); + err = loadElement(next_sibling, (uint)rcohead.Tree_Table_Offset + element.next_sibling, rcohead, br, ref rco); + if (err != true) + { + return err; + } + el.siblings.Add(next_sibling); + } + + return err; + } + + private static void writeIndent(TextWriter f, UInt32 depth = 0) + { + string indent = ""; + for (int i = 0; i < depth; i++) + { + indent += "\t"; + } + if (depth != 0) + { + f.Write(indent); + } + } + + private static void writeIndent(FileInfo f, UInt32 depth = 0) + { + string indent = ""; + for (int i = 0; i < depth; i++) + { + indent += "\t"; + } + if (depth != 0) + { + File.WriteAllText(f.FullName, indent); + } + } + + private static void dumpElement(TextWriter f, RCOElement el, UInt32 depth = 0, string outputDirectory = "" ) + { + writeIndent(f, depth); + f.Write("<" + el.name); + + foreach (RCOAttribute it in el.attributes) + { + //ORIGINAL LINE: RCOAttribute &attr = it; + RCOAttribute attr = it; + if (attr.type == ATTRIBUTE_TYPE.Float) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.f.ToString())); + } + if(attr.type == ATTRIBUTE_TYPE.STRING) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.INTEGER) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.i.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.ID_STR_LPB) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.ID_STR) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.DATA) + { + // Handle locale XML files + if (attr.fileext == ".xml") + { + byte[] buffercopy = new byte[attr.filelen]; + Array.Copy(attr.file, buffercopy, attr.filelen); + RCOFile tmprco = new RCOFile(buffercopy, attr.filelen); + + + + dumpElement(f, tmprco.RootElement, 0, outputDirectory); + + + + buffercopy = null; + } + else if (attr.fileext == ".pslayout") + { + byte[] buffercopy = new byte[(attr.filelen)]; + //C++ TO C# CONVERTER TODO TASK: The memory management function 'memcpy' has no equivalent in C#: + //memcpy(buffercopy, attr.file, attr.filelen); + + Array.Copy(attr.file, buffercopy, attr.filelen); + + //LayoutFile layout = new LayoutFile(buffercopy); + + + // string output_filename = outputDirectory + "/" + attr.toString() + ".xml"; + //FILE outfile = fopen(output_filename, "wb"); + + //if (outfile != null) + //{ + // layout.write(outfile); + // fclose(outfile); + //} + + + } + // Handle anything else (textures, sounds, etc) + else + { + string output_filename = outputDirectory + "/" + attr.name.ToString(); + File.WriteAllBytes(outputDirectory, attr.file); + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + } + } + } + + if (el.children.Count > 0) + { + //fprintf(f, ">\r\n"); + f.Write(">\r\n"); + dumpElement(f, el.children[0], depth + 1, outputDirectory); + writeIndent(f, depth); + //fprintf(f, "\r\n", el.name); + f.Write(string.Format("\r\n",el.name)); + } + else + { + //fprintf(f, " />\r\n"); + f.Write(" />\r\n"); + } + + if (el.siblings.Count > 0) + { + dumpElement(f, el.siblings[0], depth, outputDirectory); + } + } + + private static void dumpElement(FileInfo f, RCOElement el, UInt32 depth = 0, string outputDirectory = "") + { + writeIndent(f, depth); + string text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName,text + "\n" + "<" + el.name); + + + foreach (RCOAttribute it in el.attributes) + { + //ORIGINAL LINE: RCOAttribute &attr = it; + RCOAttribute attr = it; + if (attr.type == ATTRIBUTE_TYPE.Float) + { + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + string.Format(" {0}=\"{1}\"", attr.name, attr.f.ToString())); + //f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.f.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.STRING) + { + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + //f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.INTEGER) + { + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + //f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.i.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.ID_STR_LPB) + { + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + //f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.ID_STR) + { + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + //f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.DATA) + { + // Handle locale XML files + if (attr.fileext == ".xml") + { + byte[] buffercopy = new byte[attr.filelen]; + Array.Copy(attr.file, buffercopy, attr.filelen); + RCOFile tmprco = new RCOFile(buffercopy, attr.filelen); + + + + dumpElement(f, tmprco.RootElement, 0, outputDirectory); + + + + buffercopy = null; + } + else if (attr.fileext == ".pslayout") + { + byte[] buffercopy = new byte[(attr.filelen)]; + //C++ TO C# CONVERTER TODO TASK: The memory management function 'memcpy' has no equivalent in C#: + //memcpy(buffercopy, attr.file, attr.filelen); + + Array.Copy(attr.file, buffercopy, attr.filelen); + + //LayoutFile layout = new LayoutFile(buffercopy); + + + // string output_filename = outputDirectory + "/" + attr.toString() + ".xml"; + //FILE outfile = fopen(output_filename, "wb"); + + //if (outfile != null) + //{ + // layout.write(outfile); + // fclose(outfile); + //} + + + } + // Handle anything else (textures, sounds, etc) + else + { + string output_filename = outputDirectory + "/" + attr.name.ToString(); + File.WriteAllBytes(outputDirectory, attr.file); + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + //f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + } + } + } + + if (el.children.Count > 0) + { + //fprintf(f, ">\r\n"); + //f.Write(">\r\n"); + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + ">\r\n"); + + dumpElement(f, el.children[0], depth + 1, outputDirectory); + writeIndent(f, depth); + //fprintf(f, "\r\n", el.name); + //f.Write(string.Format("\r\n", el.name)); + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + string.Format("\r\n", el.name)); + } + else + { + //fprintf(f, " />\r\n"); + //f.Write(" />\r\n"); + text = File.ReadAllText(f.FullName); + File.WriteAllText(f.FullName, text + " />\r\n"); + } + + if (el.siblings.Count > 0) + { + dumpElement(f, el.siblings[0], depth, outputDirectory); + } + } + + private static void dumpElement(TextWriter f, RCOElement el, RCOFile rco, UInt32 depth = 0) + { + writeIndent(f, depth); + + + //fprintf(f, "<%s", el.name); + f.Write("<" + el.name); + rco.Elements.Add(rco.Elements.Count, el); + foreach (RCOAttribute it in el.attributes) + { + //C++ TO C# CONVERTER TODO TASK: C# does not have an equivalent to references to variables: + //ORIGINAL LINE: RCOAttribute &attr = it; + RCOAttribute attr = it; + if (attr.type == ATTRIBUTE_TYPE.Float) + { + //fprintf(f, " %s=\"%s\"", attr.name, attr.toString()); + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.f.ToString().Replace(',','.'))); + } + if (attr.type == ATTRIBUTE_TYPE.STRING) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.INTEGER) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.i.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.ID_STR_LPB) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.ID_STR) + { + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.idstr.ToString())); + } + if (attr.type == ATTRIBUTE_TYPE.DATA) + { + // Handle locale XML files + if (attr.fileext == ".xml") + { + byte[] buffercopy = new byte[attr.filelen]; + //C++ TO C# CONVERTER TODO TASK: The memory management function 'memcpy' has no equivalent in C#: + Array.Copy(attr.file, buffercopy, attr.filelen); + //memcpy(buffercopy, attr.file, attr.filelen); + RCOFile tmprco = new RCOFile(buffercopy, attr.filelen); + + + + dumpElement(f, tmprco.RootElement, rco, 0); + + + + buffercopy = null; + } + else if (attr.fileext == ".pslayout") + { + byte[] buffercopy = new byte[(attr.filelen)]; + //C++ TO C# CONVERTER TODO TASK: The memory management function 'memcpy' has no equivalent in C#: + //memcpy(buffercopy, attr.file, attr.filelen); + + Array.Copy(attr.file, buffercopy, attr.filelen); + + //LayoutFile layout = new LayoutFile(buffercopy); + + + // string output_filename = outputDirectory + "/" + attr.toString() + ".xml"; + //FILE outfile = fopen(output_filename, "wb"); + + //if (outfile != null) + //{ + // layout.write(outfile); + // fclose(outfile); + //} + + + } + // Handle anything else (textures, sounds, etc) + else + { + //string output_filename = outputDirectory + "/" + attr.toString(); + //FILE outfile = fopen(output_filename, "wb"); + //if (outfile != null) + //{ + // fwrite(attr.file, sizeof(uint8_t), attr.filelen, outfile); + // fclose(outfile); + //} + //else + //{ + // Console.Write("ERROR: Couldn't open file for writing: {0}\n", output_filename); + //} + f.Write(string.Format(" {0}=\"{1}\"", attr.name, attr.s.ToString())); + } + } + } + + if (el.children.Count > 0) + { + //fprintf(f, ">\r\n"); + f.Write(">\r\n"); + dumpElement(f, el.children[0], rco, depth + 1); + writeIndent(f, depth); + //fprintf(f, "\r\n", el.name); + f.Write(string.Format("\r\n", el.name)); + } + else + { + //fprintf(f, " />\r\n"); + f.Write(" />\r\n"); + } + + if (el.siblings.Count > 0) + { + dumpElement(f, el.siblings[0], rco, depth); + } + } /// /// Reads a RCO file into a RCOFile Container /// @@ -2938,22 +4091,67 @@ public static void DumpRco(string File) /// public static RCOFile ReadRco(string File) { + bool IsRCSF = false;//different type of rco file ? + + RCOFile rco = new RCOFile(); + rco.Header = new RCOFileHeader();//we want to make a new header + + rco.RootElement = new RCOElement(); + rco.Elements = new Dictionary(); + rco.Files = new Dictionary(); + rco.StringTable = new Dictionary(); rco.FileTable = new FileTable(); + try { // Reading Header byte[] magic = new byte[4]; byte[] Tree_Table_Offset = new byte[4]; - string outFile = "notDefined"; + string outFile = "notDefined";//this was for the old stuff cfwProphet did using (BinaryReader br = new BinaryReader(new FileStream(File, FileMode.Open, FileAccess.Read))) { //Read the header with all needed offsets rco.Header = ReadHeader(br); //Tree Table + + //lets read the tree table + + //Array reversed //Start Offset + //load element + + loadElement(rco.RootElement, (uint)rco.Header.Tree_Table_Offset, rco.Header, br, ref rco); + + + //read the rco root element + if(!string.IsNullOrEmpty(rco.RootElement.name)) + { + //do the XML BUILDER + string XMLDOC = "\r\n"; + + using (var ms = new MemoryStream()) + { + TextWriter tw = new StreamWriter(ms); + tw.Write(XMLDOC); + //dumpElement(tw, rco.RootElement,0,""); + dumpElement(tw, rco.RootElement, rco, 0); + tw.Flush(); + ms.Position = 0; + var bytes = ms.ToArray(); + //or save to disk using FileStream (fs) + //ms.WriteTo(new FileStream("C://temp/index.xml",FileMode.OpenOrCreate,FileAccess.ReadWrite)); + //System.IO.File.WriteAllBytes("C://temp/index.xml", bytes); + } + + + //we also want to get the route item and create a folder view + } + + return rco; + //old method from CFWPROPHET BELOW br.BaseStream.Position = (long)rco.Header.Tree_Table_Offset;//go to start of table var treetable = br.ReadBytes((int)rco.Header.Tree_Table_Size);//read size @@ -2983,6 +4181,49 @@ public static RCOFile ReadRco(string File) br.BaseStream.Seek(count, SeekOrigin.Begin); br.Read(zlib, 0, 2); + //we want to go to the start of the tree table + br.BaseStream.Position = (long)rco.Header.Tree_Table_Offset;//go to start of table + //now we need to read the tree table + + Tree_Table _treetable = new Tree_Table(); + _treetable.Root_Element = br.ReadUInt32(); + _treetable.Attribute_Counter = br.ReadUInt32(); + _treetable.Parent = br.ReadUInt32(); + _treetable.Previous_Brother = br.ReadUInt32(); + _treetable.Next_Brother = br.ReadUInt32(); + _treetable.First_Child = br.ReadUInt32(); + _treetable.Last_Child = br.ReadUInt32(); + _treetable.String_Pointer = br.ReadUInt32(); + _treetable.Type = br.ReadUInt32(); + _treetable.Float_value = br.ReadUInt32(); + _treetable.empty_value = br.ReadBytes(0x04); + + rco.RCO_Tree_Table = new RCO_Tree_Table(); + rco.RCO_Tree_Table.Root_Element = _treetable.Root_Element; + + string rootelementname = ""; + getStringTableString(ref rootelementname, rco.Header, br, rco.RCO_Tree_Table.Root_Element); + + rco.RCO_Tree_Table.Attribute_Counter = _treetable.Attribute_Counter; + rco.RCO_Tree_Table.Parent = _treetable.Parent; + rco.RCO_Tree_Table.Previous_Brother = _treetable.Previous_Brother; + rco.RCO_Tree_Table.Next_Brother = _treetable.Next_Brother; + rco.RCO_Tree_Table.First_Child = _treetable.First_Child; + rco.RCO_Tree_Table.Last_Child = _treetable.Last_Child; + rco.RCO_Tree_Table.String_Pointer = _treetable.String_Pointer; + + + + rco.RCO_Tree_Table.Type = (ATTRIBUTE_TYPE)(_treetable.Type); + rco.RCO_Tree_Table.Float_value = (uint)_treetable.Float_value; + //string temp123 = System.Text.Encoding.UTF8.GetString(_treetable.Float_value); + rco.RCO_Tree_Table.empty_value = _treetable.empty_value; + + string stringvalue = ""; + getStringTableString(ref stringvalue, rco.Header, br, rco.RCO_Tree_Table.String_Pointer); + + + //now get the value from the system ////somehow we need to get the name of the file //BinaryReader br2 = br; @@ -3142,6 +4383,8 @@ public static RCOFile ReadRco(string File) { //Console.Write("Found a PNG File will start to extract..."); outFile = baseDir + countPNG + ".png"; + //get the png name from the string Table + //System.IO.File.Create(outFile).Close(); byte[] toWrite = new byte[16]; @@ -3362,6 +4605,7 @@ public static RCOFile ReadRco(string File) CXML cxml = new CXML(); cxml.CXMLFile = outFile; cxml.FileBytes = memset.ToArray(); + rco.FileTable.CXMLFiles.Add(cxml); bw.Close(); memset.Close(); } @@ -3687,7 +4931,7 @@ public static RCOFile ReadRco(string File) #endregion wavExtract else { - //Console.WriteLine("\nFound a new File which i don't know what to do with !\nPlease contact the Developer @ www.playstationhax.it"); + Console.WriteLine("\nFound a new File which i don't know what to do with !\nPlease contact the Developer @ www.playstationhax.it"); break; } if (dumped == end) @@ -3857,11 +5101,19 @@ public static RCOFile ReadRco(string File) return rco; } + public static void DumpRco(RCOFile rco,string File) + { + System.IO.File.Create(File); + FileInfo f = new FileInfo(File); + dumpElement(f, rco.RootElement, 0); + + } + //stil working on the rco file archive type public struct RCOFileHeader { - public byte[] MAGIC; + public byte[] MAGIC; //header is RCOF public byte[] Version; public ulong Tree_Table_Offset; public ulong Tree_Table_Size; @@ -3871,6 +5123,8 @@ public struct RCOFileHeader public ulong ID_Intiger_Table_Size; public ulong String_Table_Offset; public ulong String_Table_Size; + public ulong Char_Table_Offset; + public ulong Char_Table_Size; public uint Overlapping; public uint empty; //??? public ulong Styles_ID_Intiger_Table_Offset; @@ -3911,39 +5165,208 @@ public List ToList() } - public struct Tree_Table + private struct Tree_Table { - public byte[] Root_Element; //size of 4 (offset within String Table in this case - public uint Attribute_Counter; - public uint Parent; - public uint Prevoius_Borhter; - public uint Next_Brother; - public uint First_Child; - public uint Last_Child; - public uint String_Pointer; + public uint Root_Element; //size of 4 (offset within String Table in this case + public uint Attribute_Counter;//size of 4 Attribute Counter + public uint Parent;//0x04 + public uint Previous_Brother;//0x04 + public uint Next_Brother;//0x04 + public uint First_Child;//0x04 + public uint Last_Child;//0x04 + public uint String_Pointer;//0x04 public uint Type; //(2 == FLOAT) - public ulong Float_value; - public byte[] empty_value; - public uint String_Pointer2; - public uint Type_descriptor1; - //public uint Offset_ + public ulong Float_value;//0x04 + public byte[] empty_value;//empty //0x04 + public uint String_Pointer2;//0x04 (in this case "type") + public uint Type_descriptor1; //0x04 Type descriptor (3 == String) + public uint Offset_StringTable; //0x04 Offset within String Table of String to read + public uint LenghtOfStringToRead;//0x04 Length of String to read (0x06 == "normal") [type="normal"] + public uint Next_Element;//0x04 Next Element (Offset within String Table, in this case it will be ) + public uint Attribute_Count;//0x04 + public uint Parent_Offset; // 0x04 Parent (Offset within XML Table, pointing to Root Element) + public uint Previous_Brother_1;//0x04 Previous Brother + public uint Next_Brother_1;//0x04 Previous Brother + public uint First_Child_1;//0x04 First Child + public uint Last_Child_1;//0x04 + public uint String_Pointer_1;//0x04 String Pointer (in this case ) + public uint Attribute_Count_1;//0x04 + public uint Parent_Offset_2; // 0x04 Parent (Offset within XML Table, pointing to Root Element) + public uint Previous_Brother_2;//0x04 Previous Brother + public uint Next_Brother_2;//0x04 Previous Brother + public uint First_Child_2;//0x04 First Child + public uint Last_Child_2;//0x04 + public uint String_Pointer_2;//0x04 String Pointer (in this case origsize="") + public uint Attribute_identifier;//0x04 Attribute identifier (in this case 1 so a integer value) + public uint HexIntSize;//0x04 Hex integer size (1040 bytes when converted so origsize="1045") + public byte[] empty_value_1;//empty //0x04 + public uint String_Pointer_3;//0x04 String Pointer (in this case src="") + public uint Attribute_identifier_1;//0x04 Attribute identifier (in this case 8 so a file) + public uint Offset_File_Table;//0x04 Offset within File Table + public uint Size_File;//0x04 Size of file to read + public uint String_Pointer_4;//0x04 String Pointer (in this case compress="") + public uint Attribute_identifier_2;//0x04 Attribute identifier (in this case 3 so a string) + public uint Offset_String_Table;//0x04 Offset of the string to read within String Table + public uint Size_String;//0x04 Size of the string to read (in this case will be 'on' so compress="on") + public uint String_Pointer_5;//0x04 String Pointer (in this case id="") + public uint Attribute_identifier_3;//0x04 Attribute identifier (in this case 9 so a ID String with Loopback offset) + public uint Offset_ID_String_Table;//0x04 Offset of the id to read within ID String Table (in this case 'ja' so id="ja" and after the loopback src="/xmls/ja.xml") + public byte[] empty_value_2;//0x04 + } + + public struct RCO_Tree_Table + { + public uint Root_Element; //size of 4 (offset within String Table in this case + public uint Attribute_Counter;//size of 4 Attribute Counter + public uint Parent;//0x04 + public uint Previous_Brother;//0x04 + public uint Next_Brother;//0x04 + public uint First_Child;//0x04 + public uint Last_Child;//0x04 + public uint String_Pointer;//0x04 + public ATTRIBUTE_TYPE Type; //(2 == FLOAT) + public ulong Float_value;//0x04 + public byte[] empty_value;//empty //0x04 + } + + public enum ATTRIBUTE_TYPE + { + NONE, + INTEGER, + Float = 2, + STRING, + Char, + STYLE_ID, + INTEGER_ARRAY, + FLOAT_ARRAY, + DATA, + ID_STR_LPB, //loopback + ID_STR, + ID_INT_LPB, //loopback + ID_INT, + } + public struct rco_tree_table_element + { + public uint element_offset; + public uint attr_ct; + public uint parent; + public uint previous_sibling; + public uint next_sibling; + public uint first_child; + public uint last_child; + } + + public class RCOFileData + { + private uint offset = new uint(); + private byte[] filedata; + private string extension; + } + + public class RCOAttribute + { + public string name; + public ATTRIBUTE_TYPE type; + public int i; + public float f; + public string s; + public string c = ""; + public List ia = new List(); + public List fa = new List(); + public byte[] file; + public uint filelen = new uint(); + public string fileext; + public string idstr; + public uint idint = new uint(); + + // public string toString() + // { + // string buf = new string(Arrays.InitializeWithDefaultInstances(256 + 1)); + + // switch (type) + // { + // case ATTRIBUTE_TYPE.char: + //return utf16_to_utf8(c); + // break; + // case ATTRIBUTE_TYPE.float: + //snprintf(buf, 256, "%.2f", f); + // break; + // case ATTRIBUTE_TYPE.INTEGER_ARRAY: + // { + // int off = 0; + // for (int i = 0; i < ia.Count - 1 && ia.Count > 0; i++) + // { + // snprintf(buf.Substring(off), 256 - off, "%d, ", ia[i]); + // off = buf.Length; + // } + // snprintf(buf.Substring(off), 256 - off, "%d", ia[ia.Count - 1]); + // } + // break; + // case ATTRIBUTE_TYPE.FLOAT_ARRAY: + // { + // int off = 0; + // for (int i = 0; i < fa.Count - 1 && fa.Count > 0; i++) + // { + // snprintf(buf.Substring(off), 256 - off, "%.2f, ", fa[i]); + // off = buf.Length; + // } + // snprintf(buf.Substring(off), 256 - off, "%.2f", fa[fa.Count - 1]); + // } + // break; + // case ATTRIBUTE_TYPE.ID_STR: + // case ATTRIBUTE_TYPE.ID_STR_LPB: + // snprintf(buf, 256, "%s", idstr); + // break; + // case ATTRIBUTE_TYPE.STRING: + // case ATTRIBUTE_TYPE.STYLE_ID: + // snprintf(buf, 256, "%s", s); + // break; + // case ATTRIBUTE_TYPE.INTEGER: + // snprintf(buf, 256, "%u", i); + // break; + // case ATTRIBUTE_TYPE.ID_INT: + // snprintf(buf, 256, "%x", idint); + // break; + // case ATTRIBUTE_TYPE.ID_INT_LPB: + // snprintf(buf, 256, "%x", idint); + // break; + // case ATTRIBUTE_TYPE.DATA: + // snprintf(buf, 256, "%s", s); + // break; + // default: + // Console.Write("UNSUPPORTED TYPE\n"); + // break; + // } + + // return buf; + // } + } + public class RCOElement + { + public string name; + public List attributes = new List(); + public List siblings = new List(); + public List children = new List(); + public bool isCompressed = false; + public uint originalSize = 0; } private static RCOFileHeader ReadHeader(BinaryReader br) { // Check Magic - //Console.Write("Checking Header...."); + Console.Write("Checking Header...."); RCOFileHeader rco = new RCOFileHeader(); byte[] magic = br.ReadBytes(4);//just want the header not the version incase sony changes this down the line - - if (!Util.Utils.CompareBytes(magic, rcoMagic)) + //added support for both normal RCO files and RCSF files + if (!Util.Utils.CompareBytes(magic, rcoMagic) && !Util.Utils.CompareBytes(System.Text.Encoding.UTF8.GetBytes("RCSF"), rcoMagic)) { - //Console.WriteLine("ERROR: That is not a valid NextGen RCO!\nExiting now..."); + Console.WriteLine("ERROR: That is not a valid NextGen RCO!\nExiting now..."); //Environment.Exit(0); throw new Exception("ERROR: That is not a valid NextGen RCO!"); } + rco.MAGIC = magic;//else we set the magic //read version information @@ -3979,8 +5402,67 @@ public struct RCOFile internal byte[] Offset;/*Offset information*/ public RCOFileHeader Header; - + public RCOElement RootElement;//create the root element + public Dictionary Elements; //we want a list of all elements + public Dictionary Files;// we want a list of all the Files + public Dictionary StringTable;//We want a list of the stringtable public FileTable FileTable; + public RCO_Tree_Table RCO_Tree_Table; + public string CreateXML() + { + if (!string.IsNullOrEmpty(RootElement.name)) + { + //do the XML BUILDER + string XMLDOC = "\r\n"; + + using (var ms = new MemoryStream()) + { + TextWriter tw = new StreamWriter(ms); + tw.Write(XMLDOC); + //dumpElement(tw, rco.RootElement,0,""); + dumpElement(tw, RootElement, this, 0); + tw.Flush(); + ms.Position = 0; + var bytes = ms.ToArray(); + //or save to disk using FileStream (fs) + //ms.WriteTo(new FileStream("C://temp/index.xml",FileMode.OpenOrCreate,FileAccess.ReadWrite)); + //System.IO.File.WriteAllBytes("C://temp/index.xml", bytes); + return System.Text.Encoding.UTF8.GetString(bytes); + } + + + //we also want to get the route item and create a folder view + } + return ""; + } + + public RCOFile(byte[] file, uint length) + { + MAGIC = new byte[4]; + Version = new byte[4]; + Offset = new byte[4]; + Header = new RCOFileHeader(); + RootElement = new RCOElement(); + Elements = new Dictionary(); + Files = new Dictionary(); + StringTable = new Dictionary(); + FileTable = new FileTable(); + RCO_Tree_Table = new RCO_Tree_Table(); + using (BinaryReader br = new BinaryReader(new MemoryStream(file,0,(int)length))) + { + Header = ReadHeader(br); + if (Header.MAGIC == null) + return; + + bool mRCOErrno = loadElement(RootElement, (uint)Header.Tree_Table_Offset,Header,br,ref this); + + if (mRCOErrno != true) + { + Console.Write("Error!\n"); + } + //printf("Error!\n"); + } + } } public class Wave @@ -4518,11 +6000,11 @@ public Trophy_File Load(byte[] bytes, string NPComId = "") XmlSerializer serializer = new XmlSerializer(typeof(Trophyconf)); using (TextReader reader = new StringReader(xml)) { - rtn.trophyItemList[i].trophyconf=(Trophyconf)serializer.Deserialize(reader); + rtn.trophyItemList[i].trophyconf = (Trophyconf)serializer.Deserialize(reader); } } - catch(Exception ex) + catch (Exception ex) { } @@ -7113,7 +8595,7 @@ public static void Create_DLC_FKPG(string Download_Url, string SaveLocation) private static byte[] pic_byte; private static byte[] trp_byte; private static byte[] snd_byte; - + private static bool m_error; private static byte[] image_byte; public enum PKGType @@ -7849,11 +9331,11 @@ This will also be used in my other project*/ { trp_byte = entry[i].file_data; } - if(entry[i].CustomName == PS4PkgUtil.EntryId.SND0_AT9.ToString()) + if (entry[i].CustomName == PS4PkgUtil.EntryId.SND0_AT9.ToString()) { snd_byte = entry[i].file_data; } - if(entry[i].CustomName == PS4PkgUtil.EntryId.PIC1_PNG.ToString()) + if (entry[i].CustomName == PS4PkgUtil.EntryId.PIC1_PNG.ToString()) { pic_byte = entry[i].file_data; } diff --git a/PS4_Tools/bin/Debug/PS4_Tools.dll b/PS4_Tools/bin/Debug/PS4_Tools.dll index 0d8f24bf..7d375109 100644 Binary files a/PS4_Tools/bin/Debug/PS4_Tools.dll and b/PS4_Tools/bin/Debug/PS4_Tools.dll differ diff --git a/PS4_Tools/bin/Debug/PS4_Tools.pdb b/PS4_Tools/bin/Debug/PS4_Tools.pdb index 5f478133..3983f212 100644 Binary files a/PS4_Tools/bin/Debug/PS4_Tools.pdb and b/PS4_Tools/bin/Debug/PS4_Tools.pdb differ diff --git a/PS4_Tools/obj/Debug/PS4_Tools.dll b/PS4_Tools/obj/Debug/PS4_Tools.dll index 0d8f24bf..7d375109 100644 Binary files a/PS4_Tools/obj/Debug/PS4_Tools.dll and b/PS4_Tools/obj/Debug/PS4_Tools.dll differ diff --git a/PS4_Tools/obj/Debug/PS4_Tools.pdb b/PS4_Tools/obj/Debug/PS4_Tools.pdb index 5f478133..3983f212 100644 Binary files a/PS4_Tools/obj/Debug/PS4_Tools.pdb and b/PS4_Tools/obj/Debug/PS4_Tools.pdb differ diff --git a/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.dll b/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.dll index ecc5c869..bb65dc64 100644 Binary files a/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.dll and b/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.dll differ diff --git a/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.pdb b/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.pdb index e4f88a26..7729504e 100644 Binary files a/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.pdb and b/PS4_Trophy_Viewer/bin/Debug/PS4_Tools.pdb differ diff --git a/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.exe b/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.exe index 4cd39b23..1e02751b 100644 Binary files a/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.exe and b/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.exe differ diff --git a/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.pdb b/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.pdb index 24eb6ac4..44b4d5b1 100644 Binary files a/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.pdb and b/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.pdb differ diff --git a/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.vshost.exe.manifest b/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.vshost.exe.manifest new file mode 100644 index 00000000..061c9ca9 --- /dev/null +++ b/PS4_Trophy_Viewer/bin/Debug/PS4_Trophy_Viewer.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.csprojResolveAssemblyReference.cache b/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.csprojResolveAssemblyReference.cache index 02bff28a..3abf36bd 100644 Binary files a/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.csprojResolveAssemblyReference.cache and b/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.csprojResolveAssemblyReference.cache differ diff --git a/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.exe b/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.exe index 4cd39b23..1e02751b 100644 Binary files a/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.exe and b/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.exe differ diff --git a/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.pdb b/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.pdb index 24eb6ac4..44b4d5b1 100644 Binary files a/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.pdb and b/PS4_Trophy_Viewer/obj/Debug/PS4_Trophy_Viewer.pdb differ diff --git a/RCOMage/Form1.Designer.cs b/RCOMage/Form1.Designer.cs index 32d536eb..09b9b348 100644 --- a/RCOMage/Form1.Designer.cs +++ b/RCOMage/Form1.Designer.cs @@ -28,6 +28,8 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.label1 = new System.Windows.Forms.Label(); this.txtRCOPath = new System.Windows.Forms.TextBox(); this.btnRCO = new System.Windows.Forms.Button(); @@ -36,6 +38,8 @@ private void InitializeComponent() this.btnResourceDir = new System.Windows.Forms.Button(); this.btnDump = new System.Windows.Forms.Button(); this.listBox1 = new System.Windows.Forms.ListBox(); + this.imageList1 = new System.Windows.Forms.ImageList(this.components); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); this.SuspendLayout(); // // label1 @@ -97,9 +101,12 @@ private void InitializeComponent() this.btnDump.TabIndex = 6; this.btnDump.Text = "DUMP"; this.btnDump.UseVisualStyleBackColor = true; + this.btnDump.Click += new System.EventHandler(this.btnDump_Click); // // listBox1 // + this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); this.listBox1.FormattingEnabled = true; this.listBox1.HorizontalScrollbar = true; this.listBox1.ItemHeight = 16; @@ -108,12 +115,32 @@ private void InitializeComponent() this.listBox1.Size = new System.Drawing.Size(211, 180); this.listBox1.TabIndex = 7; // + // imageList1 + // + this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); + this.imageList1.TransparentColor = System.Drawing.Color.Transparent; + this.imageList1.Images.SetKeyName(0, "baseline_source_black_48dp.png"); + this.imageList1.Images.SetKeyName(1, "baseline_save_alt_black_48dp.png"); + this.imageList1.Images.SetKeyName(2, "baseline_insert_drive_file_black_48dp.png"); + // + // richTextBox1 + // + this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.richTextBox1.Location = new System.Drawing.Point(245, 159); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(460, 180); + this.richTextBox1.TabIndex = 8; + this.richTextBox1.Text = ""; + // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.White; this.ClientSize = new System.Drawing.Size(722, 361); + this.Controls.Add(this.richTextBox1); this.Controls.Add(this.listBox1); this.Controls.Add(this.btnDump); this.Controls.Add(this.btnResourceDir); @@ -141,6 +168,8 @@ private void InitializeComponent() private System.Windows.Forms.Button btnResourceDir; private System.Windows.Forms.Button btnDump; private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.ImageList imageList1; + private System.Windows.Forms.RichTextBox richTextBox1; } } diff --git a/RCOMage/Form1.cs b/RCOMage/Form1.cs index 260f9706..97e8ac0d 100644 --- a/RCOMage/Form1.cs +++ b/RCOMage/Form1.cs @@ -17,6 +17,7 @@ public Form1() { InitializeComponent(); } + PS4_Tools.RCO.RCOFile rcofile = new RCO.RCOFile(); private void btnRCO_Click(object sender, EventArgs e) { @@ -43,8 +44,15 @@ private void btnRCO_Click(object sender, EventArgs e) if (openFileDialog1.ShowDialog() == DialogResult.OK) { //read RCO and Validate - PS4_Tools.RCO.RCOFile rcofile = PS4_Tools.RCO.ReadRco(openFileDialog1.FileName); + txtRCOPath.Text = openFileDialog1.FileName; + rcofile = PS4_Tools.RCO.ReadRco(openFileDialog1.FileName); listBox1.DataSource = rcofile.Header.ToList(); + + //from here we work with the elements + if (!string.IsNullOrEmpty(rcofile.RootElement.name)) + { + richTextBox1.Text = rcofile.CreateXML(); + } } } @@ -52,5 +60,14 @@ private void Form1_Load(object sender, EventArgs e) { MessageBox.Show("This is an open source version of RCOMage v2 (ps4 and psv) this tool is not yet completed"); } + + private void btnDump_Click(object sender, EventArgs e) + { + if(rcofile.Header.MAGIC.Length != 0) + { + //should be valid + PS4_Tools.RCO.DumpRco(rcofile, "C:\\temp\\index.xml"); + } + } } } diff --git a/RCOMage/Form1.resx b/RCOMage/Form1.resx index 1af7de15..0ebf9691 100644 --- a/RCOMage/Form1.resx +++ b/RCOMage/Form1.resx @@ -117,4 +117,48 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW + BwAAAk1TRnQBSQFMAgEBAwEAARABAAEQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/24AAe8gAAH3AwAB98QA + Ae8+AAHvPgAB7wEAAf8BAAFtPAAB/wMAAW2SAAEHPgABBxoAAe8jAAEHPgABB5UAAUIBTQE+BwABPgMA + ASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAb/AgAE/wHgAQMCAAHAAQEBwAEDAeABAwIAAcABAQHP + AfsB4AEDAgABwAEBAc8B+wHgAQMCAAHPAcEBzgF7AeABAwIAAcABAQHMATsB4AEDAgABwAEBAcgBGwHg + AQMCAAHPAfEB/QFfAeABAwIAAcABAQH/AX8B4AEDAgABwAEBAf8BfwHgAXMCAAHAAQMB/wF/AeABZwIA + AcAC/wF/AeABTwIAA/8BfwHgAR8CAAb/AgAG/wIACw== + + \ No newline at end of file diff --git a/RCOMage/bin/Debug/PS4_Tools.dll b/RCOMage/bin/Debug/PS4_Tools.dll index 9758f728..7d375109 100644 Binary files a/RCOMage/bin/Debug/PS4_Tools.dll and b/RCOMage/bin/Debug/PS4_Tools.dll differ diff --git a/RCOMage/bin/Debug/PS4_Tools.pdb b/RCOMage/bin/Debug/PS4_Tools.pdb index 9ce7646c..3983f212 100644 Binary files a/RCOMage/bin/Debug/PS4_Tools.pdb and b/RCOMage/bin/Debug/PS4_Tools.pdb differ diff --git a/RCOMage/bin/Debug/RCOMage.exe b/RCOMage/bin/Debug/RCOMage.exe index dd9b4294..a0e2d134 100644 Binary files a/RCOMage/bin/Debug/RCOMage.exe and b/RCOMage/bin/Debug/RCOMage.exe differ diff --git a/RCOMage/bin/Debug/RCOMage.pdb b/RCOMage/bin/Debug/RCOMage.pdb index 93f244ca..5ffc611c 100644 Binary files a/RCOMage/bin/Debug/RCOMage.pdb and b/RCOMage/bin/Debug/RCOMage.pdb differ diff --git a/RCOMage/bin/Release/PS4_Tools.dll b/RCOMage/bin/Release/PS4_Tools.dll index 3d986b57..4871af4e 100644 Binary files a/RCOMage/bin/Release/PS4_Tools.dll and b/RCOMage/bin/Release/PS4_Tools.dll differ diff --git a/RCOMage/bin/Release/PS4_Tools.pdb b/RCOMage/bin/Release/PS4_Tools.pdb index 8b4dd000..e2b8bbbc 100644 Binary files a/RCOMage/bin/Release/PS4_Tools.pdb and b/RCOMage/bin/Release/PS4_Tools.pdb differ diff --git a/RCOMage/bin/Release/RCOMage.exe b/RCOMage/bin/Release/RCOMage.exe index 4eddf873..15f4e949 100644 Binary files a/RCOMage/bin/Release/RCOMage.exe and b/RCOMage/bin/Release/RCOMage.exe differ diff --git a/RCOMage/bin/Release/RCOMage.pdb b/RCOMage/bin/Release/RCOMage.pdb index 1e0bd7be..e2334703 100644 Binary files a/RCOMage/bin/Release/RCOMage.pdb and b/RCOMage/bin/Release/RCOMage.pdb differ diff --git a/RCOMage/obj/Debug/RCOMage.Form1.resources b/RCOMage/obj/Debug/RCOMage.Form1.resources index 6c05a977..d4a69a09 100644 Binary files a/RCOMage/obj/Debug/RCOMage.Form1.resources and b/RCOMage/obj/Debug/RCOMage.Form1.resources differ diff --git a/RCOMage/obj/Debug/RCOMage.csproj.FileListAbsolute.txt b/RCOMage/obj/Debug/RCOMage.csproj.FileListAbsolute.txt index ebb72aa6..2612d5ab 100644 --- a/RCOMage/obj/Debug/RCOMage.csproj.FileListAbsolute.txt +++ b/RCOMage/obj/Debug/RCOMage.csproj.FileListAbsolute.txt @@ -1,52 +1,18 @@ -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\RCOMage.exe.config -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\RCOMage.exe -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\RCOMage.pdb -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\PS4_Tools.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\HtmlAgilityPack.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\ICSharpCode.SharpZipLib.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\PARAM.SFO.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\GameArchives.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\DotNetZip.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\DiscUtils.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\BigInteger.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Newtonsoft.Json.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\PS4_Tools.pdb -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\HtmlAgilityPack.pdb -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\HtmlAgilityPack.xml -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\PARAM.SFO.pdb -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\DotNetZip.xml -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Newtonsoft.Json.xml -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.csprojResolveAssemblyReference.cache -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.Form1.resources -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.Properties.Resources.resources -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.csproj.GenerateResource.Cache -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.exe -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.pdb -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\UnityEngine.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\UnityEditor.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.Cecil.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.SerializationLogic.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\ExCSS.Unity.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.DataContract.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.Legacy.NRefactory.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.UNetWeaver.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.CecilTools.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.Cecil.Pdb.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.Cecil.Mdb.dll -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\UnityEngine.xml -C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\UnityEditor.xml D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\RCOMage.exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.pdb D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\RCOMage.exe D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\RCOMage.pdb D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\PS4_Tools.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\HtmlAgilityPack.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\ICSharpCode.SharpZipLib.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\UnityEngine.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Newtonsoft.Json.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\PARAM.SFO.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\GameArchives.dll -D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Newtonsoft.Json.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\DotNetZip.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\DiscUtils.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\System.Data.SQLite.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\BigInteger.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\UnityEditor.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\Unity.Cecil.dll @@ -69,6 +35,3 @@ D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\ D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.Form1.resources D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.Properties.Resources.resources D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.csproj.GenerateResource.Cache -D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.exe -D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Debug\RCOMage.pdb -D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Debug\System.Data.SQLite.dll diff --git a/RCOMage/obj/Debug/RCOMage.csproj.GenerateResource.Cache b/RCOMage/obj/Debug/RCOMage.csproj.GenerateResource.Cache index de9a8488..420efdef 100644 Binary files a/RCOMage/obj/Debug/RCOMage.csproj.GenerateResource.Cache and b/RCOMage/obj/Debug/RCOMage.csproj.GenerateResource.Cache differ diff --git a/RCOMage/obj/Debug/RCOMage.csprojResolveAssemblyReference.cache b/RCOMage/obj/Debug/RCOMage.csprojResolveAssemblyReference.cache index baaeb770..348436f7 100644 Binary files a/RCOMage/obj/Debug/RCOMage.csprojResolveAssemblyReference.cache and b/RCOMage/obj/Debug/RCOMage.csprojResolveAssemblyReference.cache differ diff --git a/RCOMage/obj/Debug/RCOMage.exe b/RCOMage/obj/Debug/RCOMage.exe index dd9b4294..a0e2d134 100644 Binary files a/RCOMage/obj/Debug/RCOMage.exe and b/RCOMage/obj/Debug/RCOMage.exe differ diff --git a/RCOMage/obj/Debug/RCOMage.pdb b/RCOMage/obj/Debug/RCOMage.pdb index 93f244ca..5ffc611c 100644 Binary files a/RCOMage/obj/Debug/RCOMage.pdb and b/RCOMage/obj/Debug/RCOMage.pdb differ diff --git a/RCOMage/obj/Release/RCOMage.csproj.FileListAbsolute.txt b/RCOMage/obj/Release/RCOMage.csproj.FileListAbsolute.txt index f553cb83..8940a8ab 100644 --- a/RCOMage/obj/Release/RCOMage.csproj.FileListAbsolute.txt +++ b/RCOMage/obj/Release/RCOMage.csproj.FileListAbsolute.txt @@ -34,3 +34,40 @@ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\ C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.Cecil.Mdb.dll C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\UnityEngine.xml C:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\UnityEditor.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\RCOMage.exe.config +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\RCOMage.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\RCOMage.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\PS4_Tools.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\HtmlAgilityPack.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\ICSharpCode.SharpZipLib.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Newtonsoft.Json.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\PARAM.SFO.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\DotNetZip.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\System.Data.SQLite.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\BigInteger.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\PS4_Tools.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\HtmlAgilityPack.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\HtmlAgilityPack.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\PARAM.SFO.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\DotNetZip.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Release\RCOMage.csprojResolveAssemblyReference.cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Release\RCOMage.Form1.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Release\RCOMage.Properties.Resources.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Release\RCOMage.csproj.GenerateResource.Cache +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Release\RCOMage.exe +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\obj\Release\RCOMage.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\UnityEngine.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\GameArchives.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\UnityEditor.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.Cecil.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.SerializationLogic.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\ExCSS.Unity.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.DataContract.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.Legacy.NRefactory.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.UNetWeaver.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.CecilTools.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.Cecil.Pdb.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Unity.Cecil.Mdb.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\UnityEngine.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\Newtonsoft.Json.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\RCOMage\bin\Release\UnityEditor.xml diff --git a/RCOMage/obj/Release/RCOMage.csproj.GenerateResource.Cache b/RCOMage/obj/Release/RCOMage.csproj.GenerateResource.Cache index fe787f87..503b7173 100644 Binary files a/RCOMage/obj/Release/RCOMage.csproj.GenerateResource.Cache and b/RCOMage/obj/Release/RCOMage.csproj.GenerateResource.Cache differ diff --git a/RCOMage/obj/Release/RCOMage.csprojResolveAssemblyReference.cache b/RCOMage/obj/Release/RCOMage.csprojResolveAssemblyReference.cache index 4528f23d..2e8a72ab 100644 Binary files a/RCOMage/obj/Release/RCOMage.csprojResolveAssemblyReference.cache and b/RCOMage/obj/Release/RCOMage.csprojResolveAssemblyReference.cache differ diff --git a/RCOMage/obj/Release/RCOMage.exe b/RCOMage/obj/Release/RCOMage.exe index 4eddf873..15f4e949 100644 Binary files a/RCOMage/obj/Release/RCOMage.exe and b/RCOMage/obj/Release/RCOMage.exe differ diff --git a/RCOMage/obj/Release/RCOMage.pdb b/RCOMage/obj/Release/RCOMage.pdb index 1e0bd7be..e2334703 100644 Binary files a/RCOMage/obj/Release/RCOMage.pdb and b/RCOMage/obj/Release/RCOMage.pdb differ diff --git a/SaveData_Manager/App.config b/SaveData_Manager/App.config index 8e156463..0432bba1 100644 --- a/SaveData_Manager/App.config +++ b/SaveData_Manager/App.config @@ -1,6 +1,18 @@  + + +
+ + + + + + + + + \ No newline at end of file diff --git a/SaveData_Manager/Form1.Designer.cs b/SaveData_Manager/Form1.Designer.cs index 62564be4..3a5cb2e3 100644 --- a/SaveData_Manager/Form1.Designer.cs +++ b/SaveData_Manager/Form1.Designer.cs @@ -29,10 +29,12 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - this.btnLoadDir = new System.Windows.Forms.Button(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.btnSettings = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.textBox3 = new System.Windows.Forms.TextBox(); + this.btnLoadDir = new System.Windows.Forms.Button(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.textBox1 = new System.Windows.Forms.TextBox(); this.textBox2 = new System.Windows.Forms.TextBox(); @@ -41,8 +43,8 @@ private void InitializeComponent() this.cmstripgames = new System.Windows.Forms.ContextMenuStrip(this.components); this.saveAllGamesToLocalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveToLocalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.showLocalItemsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.showLocalItemsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copyLocalToUsbToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.cheatsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -61,16 +63,6 @@ private void InitializeComponent() this.cmstripgames.SuspendLayout(); this.SuspendLayout(); // - // btnLoadDir - // - this.btnLoadDir.Location = new System.Drawing.Point(947, 12); - this.btnLoadDir.Name = "btnLoadDir"; - this.btnLoadDir.Size = new System.Drawing.Size(75, 23); - this.btnLoadDir.TabIndex = 0; - this.btnLoadDir.Text = "..."; - this.btnLoadDir.UseVisualStyleBackColor = true; - this.btnLoadDir.Click += new System.EventHandler(this.button1_Click); - // // splitContainer1 // this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; @@ -82,6 +74,7 @@ private void InitializeComponent() // // splitContainer1.Panel1 // + this.splitContainer1.Panel1.Controls.Add(this.btnSettings); this.splitContainer1.Panel1.Controls.Add(this.label1); this.splitContainer1.Panel1.Controls.Add(this.textBox3); this.splitContainer1.Panel1.Controls.Add(this.btnLoadDir); @@ -92,10 +85,21 @@ private void InitializeComponent() this.splitContainer1.Size = new System.Drawing.Size(1034, 412); this.splitContainer1.TabIndex = 1; // + // btnSettings + // + this.btnSettings.BackgroundImage = global::SaveData_Manager.Properties.Resources.baseline_settings_black_48dp; + this.btnSettings.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.btnSettings.Location = new System.Drawing.Point(13, 12); + this.btnSettings.Name = "btnSettings"; + this.btnSettings.Size = new System.Drawing.Size(43, 35); + this.btnSettings.TabIndex = 3; + this.btnSettings.UseVisualStyleBackColor = true; + this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click); + // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(10, 16); + this.label1.Location = new System.Drawing.Point(62, 21); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(135, 17); this.label1.TabIndex = 2; @@ -103,14 +107,27 @@ private void InitializeComponent() // // textBox3 // - this.textBox3.Location = new System.Drawing.Point(151, 13); + this.textBox3.Enabled = false; + this.textBox3.Location = new System.Drawing.Point(203, 18); this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(790, 22); + this.textBox3.Size = new System.Drawing.Size(738, 22); this.textBox3.TabIndex = 1; // + // btnLoadDir + // + this.btnLoadDir.BackgroundImage = global::SaveData_Manager.Properties.Resources.baseline_source_black_48dp; + this.btnLoadDir.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.btnLoadDir.Location = new System.Drawing.Point(947, 12); + this.btnLoadDir.Name = "btnLoadDir"; + this.btnLoadDir.Size = new System.Drawing.Size(75, 36); + this.btnLoadDir.TabIndex = 0; + this.btnLoadDir.UseVisualStyleBackColor = true; + this.btnLoadDir.Click += new System.EventHandler(this.button1_Click); + // // splitContainer2 // - this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; this.splitContainer2.Location = new System.Drawing.Point(0, 0); this.splitContainer2.Name = "splitContainer2"; @@ -143,9 +160,12 @@ private void InitializeComponent() this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(313, 92); this.textBox2.TabIndex = 3; + this.textBox2.Text = "Made to be a free alternative to SaveWizard"; + this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // pictureBox1 // + this.pictureBox1.Image = global::SaveData_Manager.Properties.Resources._4792965023_57b20776_4c77_425a_b91c_10608d18cbf3; this.pictureBox1.Location = new System.Drawing.Point(16, 3); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(313, 134); @@ -184,7 +204,7 @@ private void InitializeComponent() this.toolStripSeparator2, this.cheatsToolStripMenuItem}); this.cmstripgames.Name = "cmstripgames"; - this.cmstripgames.Size = new System.Drawing.Size(240, 164); + this.cmstripgames.Size = new System.Drawing.Size(240, 136); // // saveAllGamesToLocalToolStripMenuItem // @@ -200,6 +220,11 @@ private void InitializeComponent() this.saveToLocalToolStripMenuItem.Text = "Save To Local"; this.saveToLocalToolStripMenuItem.Click += new System.EventHandler(this.saveToLocalToolStripMenuItem_Click); // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(236, 6); + // // showLocalItemsToolStripMenuItem // this.showLocalItemsToolStripMenuItem.Name = "showLocalItemsToolStripMenuItem"; @@ -207,11 +232,6 @@ private void InitializeComponent() this.showLocalItemsToolStripMenuItem.Text = "Show Local Items"; this.showLocalItemsToolStripMenuItem.Click += new System.EventHandler(this.showLocalItemsToolStripMenuItem_Click); // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(236, 6); - // // copyLocalToUsbToolStripMenuItem // this.copyLocalToUsbToolStripMenuItem.Name = "copyLocalToUsbToolStripMenuItem"; @@ -251,6 +271,7 @@ private void InitializeComponent() this.BackColor = System.Drawing.Color.White; this.ClientSize = new System.Drawing.Size(1034, 412); this.Controls.Add(this.splitContainer1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "PS4 Save manager"; @@ -293,6 +314,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem cheatsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openHexEditorToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem patchMenuToolStripMenuItem; + private System.Windows.Forms.Button btnSettings; } } diff --git a/SaveData_Manager/Form1.cs b/SaveData_Manager/Form1.cs index 02b28e32..63e4f25e 100644 --- a/SaveData_Manager/Form1.cs +++ b/SaveData_Manager/Form1.cs @@ -233,8 +233,16 @@ private void dataGridView1_SelectionChanged(object sender, EventArgs e) try { SaveDataDisplayHolder displayitem = dataGridView1.SelectedRows[0].DataBoundItem as SaveDataDisplayHolder; - textBox1.Text = displayitem.Subdetail; - textBox2.Text = displayitem.Detail; + textBox2.TextAlign = HorizontalAlignment.Left; + textBox2.Text = "Title" + Environment.NewLine; + textBox2.Text += displayitem.Title + Environment.NewLine; + //textBox2.Text += "Title ID" + Environment.NewLine; + //textBox2.Text += displayitem.TitleId + Environment.NewLine; + //textBox2.Text += "User ID" + Environment.NewLine; + //textBox2.Text += displayitem.UserId + Environment.NewLine; + textBox2.Text += "Details" + Environment.NewLine; + textBox2.Text += displayitem.Subdetail; + textBox1.Text = displayitem.Detail; pictureBox1.Image = displayitem.icon; @@ -268,14 +276,32 @@ private void saveAllGamesToLocalToolStripMenuItem_Click(object sender, EventArgs private void Form1_Load(object sender, EventArgs e) { - LocalDB = Application.StartupPath + "//SaveManager"; - - if (!System.IO.Directory.Exists(LocalDB)) + try { - System.IO.Directory.CreateDirectory(LocalDB); - } + if (string.IsNullOrEmpty(Properties.Settings.Default.BackupLocation)) + { + LocalDB = Application.StartupPath + "//SaveManager"; + if (!System.IO.Directory.Exists(LocalDB)) + { + System.IO.Directory.CreateDirectory(LocalDB); + } + } + else + { + LocalDB = Properties.Settings.Default.BackupLocation; + + if (!System.IO.Directory.Exists(LocalDB)) + { + System.IO.Directory.CreateDirectory(LocalDB); + } + } + } + catch(Exception ex) + { + MessageBox.Show("Could not load local save location resetting to default", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + } } private void saveToLocalToolStripMenuItem_Click(object sender, EventArgs e) @@ -292,6 +318,17 @@ private void showLocalItemsToolStripMenuItem_Click(object sender, EventArgs e) //Open Local Data SaveDataDisplayHolder holderitem = dataGridView1.SelectedRows[0].DataBoundItem as SaveDataDisplayHolder; //File.Open() + string path = LocalDB + @"\" + holderitem.dataholder.DirName; + if (Directory.Exists(path)) + { + System.Diagnostics.Process.Start(path); + } + } + + private void btnSettings_Click(object sender, EventArgs e) + { + frmSettings set = new frmSettings(); + set.ShowDialog(); } } } diff --git a/SaveData_Manager/Form1.resx b/SaveData_Manager/Form1.resx index 25556dd9..31b887f6 100644 --- a/SaveData_Manager/Form1.resx +++ b/SaveData_Manager/Form1.resx @@ -120,4 +120,559 @@ 17, 17 + + + + AAABAAQAQEAAAAEAIAAoQAAARgAAACAgAAABACAAKBAAAG5AAAAYGAAAAQAgACgJAACWUAAAEBAAAAEA + IAAoBAAAvlkAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfYEAItGhALLVuQVa0bEF9s2s/nbVtQbC2bUG/smtByLJr + Qci0bUG/tGtBsLNrP520a0F+uG5BVrRuQCy2bUkHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsWw7GrpuRV22bkKlsmtC3LVrQf2/c0b/wnRH/8F0 + R//Ac0b/vnJG/75yRv++ckb/vnJG/8BzRv/CdEf/wnRH/79zRv+1a0H9smxB3bZuQqW6bkVdsWw7GgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6bUJGuW9CpbZrQ+/BdEf/wXRH/7tw + Rf+2bUP/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tm1D/7tw + Rf/BdEf/wHRH/7VrQu+5b0Kltm1CRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALtvRFO6b0XFvXFF/8F0 + R/+5b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+5b0T/wnRH/71xRf+6cUPFuXBDVAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAumxBO7lu + Q77Ac0f/vnJG/7VtQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+1bUL/vnJG/8Bz + Rv+4bUS/t25APAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACzZjMKunBBjbhvRP7AdEf/tWxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+1bEL/wXRH/7hvRP67b0SOs2ZNCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC2bUQxuG9EzsR2SP+3bkP/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+3bkP/xHZI/7hvRM6ya0IyAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2bEBXu29E8sBzRv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv/Ac0b/unBE87drQ1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5b0FxvXJF/7twRP+zbEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/s2xC/7pwRP++ckX/tm1DcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1bkF5wXVH/7hu + Q/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/uG5D/8J1R/+2bEJ7AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC1bEFxwXRH/7duQ/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+3bkP/wnRH/7RqQ3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC0bEJVvnJG/7huQ/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7huQ/++ckX/tW5BVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxaUMuu25C9LtwRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/unBE/7pvQvW3aT0uAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqcTkJtWxC08BzR/+zbEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+za0L/uG9E/79zRv+9ckX/vHFF/7duQ/+7cET/t25D/75yRv+2bUP/vHBF/79y + Rv+5b0T/tW1C/7twRP+8cEX/u3BE/71xRf+6b0T/tm1D/75yRf+6b0T/unBE/75xRf+5b0T/t25D/7tw + RP+9ckX/v3NG/71xRf+/ckb/vXFF/7xxRf+4bkP/vHFF/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Ns + Qv/Ac0f/tmxC07NmMwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsmxBjsV2 + SP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/uW9E/7VsQeKxaD9lsGxBlbBpP6Wya0HusWk/sbJo + QtKrZj6Ps2s/6a9mPaKpYz5fsWlAs7NqQvaxaUCqsGlBrLJrP7WrZj2Os2tBvLVsQe6pZT2Gsms/vbNq + QMaoZj6EsmpBzLJpQtytaUCysWxBmq9pP22taD+foWA6cqdiPXqoZj6ZsmlA3qxnPZqxa0L3tm1D/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/8R2SP+0aUCPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAuGhCNrpuQ/23bkP/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/8J0R/+xa0GNrmhAeLlu + Q1+0bUM9tmtCjLFqPlK0bEG4QAAABLVsQrmuZz5esGlBkrtwReCzaz/hsWlAXL1tRza3bkNYqWU9U7Rr + QWK2bEKLqGA6NbZtQ4G3bEJVsGpCOq9qQG+0bEB7tWxEWq9pQFy0bEKEnVw8L6hlO1vDc0jJqmc+V61p + QJyyaEFTuW5D/bVtQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+3bkP/u25D/bNtQjYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALRrQcPAc0f/s2xC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+1bUL/uW1E8rRsQOyxaUFLuG1DfrBrQTeoaEBMs2tBvIdQMCC0bEGgr2c/bbFoPsC8cEb7sWtA5LFp + P1W0ZD89sGtBSrBoQISxaUJVqmc/Oa5mQGuybEJts2hCG7RtQXqxbUFLrWhBO7BnQHe3a0N5smpBqKFe + OTGrZj96w3VG9a1nP22uZUBYtWxDkMJ0R/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/8B0 + R/+yaUHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALJrQU/Ac0b/tWxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tW1D/7xxQ/y1bkNItW1Dn7NrP9G4bUFet2xCf7NrQqK9bkVRs2pBibRs + Q2O4bUM9tW1DwrNsQvOlXzcztmlAcKFiO0Gxaj+JtWxBhrhsQmiza0GNpmQ9LrRuQCy3bUOUtGtDfrVr + QGurZDyMs2w/YcF0RoSyakB4pGE9KrpuRYKvaUNctGpEKbVsQn+/ckb/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+1bEL/wXRH/7ZsQ1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1az/Jv3NG/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/8BzR/+wbEGVtW1DZ7pvQd6ybELSn2A6MLFq + QH+2bkOJtm9DjLVsQ2+sZ0Bcr2lA3sd3Sf+zbULrdjsnDbduQ6OqZz85sGs/hbVuQo6dXDYvs2lCs51Y + Oxq5cEFitWpCo7JqQHSwaT89s2lBrLJqQWq5b0PnqWY9ca1oQIDVgE7/qWU9aLBqP7mpZT1Ts2xC/7Vt + Q/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/75yRv+1bUDKAAAAAQAAAAAAAAAAAAAAAAAA + AAC2bEJCvXFF/7VsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv/BdEf/sWtBlLNr + QlGrZz1DtWtD35xaOh+0bEF9sWlAaLZtQMa1bD9hp2dANKxnPm+7cETIsmo/8SAgAAi1bELWrWg/UbBq + QHi1bUKieVEoE7RrQcOqZkA8vHBDiLRrP52xaj99n2A3JbhvQuWqZD9FsWc/RahkPlKmZD5Cw3RHnqxn + P02rZz5Ssms/XbtwRf+1bUP/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+1bEL/vXFF/7Nr + QUMAAAAAAAAAAAAAAAAAAAAAsmpBqMJ1R/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tm1D/7NrQvu1bkOcs2tAvr1yRf+yakC6sGpB17NsQceyakD4smpBzLNsP7Gya0GSsms/ybNr + Qv6zaz+xsWpC+7NqQs60aT/QtWxC57BpPriyaz/ts2tAyrVtQd6yaz/dtWpC2rRsQLq+ckX/tWxCwLVs + Qp61akDosmpBnK5qP6GzbD+5smtBmLJsQuC5b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/8J0R/+1akGoAAAAAAAAAAAAAAAArmg6FrJqP/G5b0T/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7NsQv+2bUP/w3VI/8BzRv+2bUP/v3NG/7pwRP+8cUX/tm1D/7xx + Rf+/c0b/wnRH/7pwRP+0bEL/wHNG/7VtQv++ckb/wXRH/8BzRv/Gd0n/unBE/71xRf+5b0T/uW9E/7pv + RP++ckb/s2tC/71xRf/AdEf/uW9E/8J0R//CdEf/wXRH/8R2SP+6b0T/s2tC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+5b0T/tGtC8rFkQxcAAAAAAAAAALJrP13BdEf/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7NsQPyza0D8s2xA/LJs + Qv60bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/s2xC/7duQ//BdEf/smtC/rNrP+G2bELTtWpC2rFp + P/jAdEb/uG5E/7NsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/s2xA/LJrQvuzbED8tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/8F0R/+1a0JdAAAAAAAA + AACzbEKlwXRH/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/unBF/7Rr + P+GfYDowpmY5KKZmQCi0az/VvHFF/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7hvRP+4bUL9tmxCi65n + QS+LXS4L//8AAYBVKgaqY0Aktm9DerlvQvW6cET/s2xC/7RsQv+0bEL/tGxC/7RsQv+4b0T/smo/8aFi + OzyqYjsnrGdANLVtQue5b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv/CdEf/tGxCpwAAAAC2bUkHtWw/3btwRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7twRf+0akLaAAAAAAAAAAAAAAAAtmpBy71yRf+0bEL/tGxC/7RsQv+0bEL/tGxC/7Vt + Qv+6cET+tWxBWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzbEBAuW5E9rhuQ/+0bEL/tGxC/7Rs + Qv+0bEL/uW9E/7RrQe2VVUAMAAAAAP+qqgO1bUHium9E/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/unBF/7RrQt/bbUkHuGtBK7ZsQf22bUP/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+7cEX/smlC3IBgIAgAAAAAAAAAALZoP829ckX/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+/c0b/tGpAugAAAAAAAAAAAAAAALZtSQ6/c0Q8p2hAIAAAAAAAAAAAAAAAALNq + QYnBdEf/tGxC/7RsQv+0bEL/tGxC/7lvRP+1bELuol06FgAAAADEdk4Ns2tC47pvRP+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7ZtQ/+1a0H9uGtBK7BqQFe/c0b/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/u3BF/7JpQtyAYCAIAAAAAAAA + AAC2aD/NvXJF/7RsQv+0bEL/tGxC/7RsQv+0bEL/wnRH/7VsQngAAAAAAAAAALlsRiG5bUTbwHNG/7xw + Q/Gxa0NFAAAAAAAAAACxaUMuuG5C/LZtQ/+0bEL/tGxC/7RsQv+5b0T/tWxC7qJdOhYAAAAAxHZODbNr + QuO6b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/v3NG/7Nq + QFe0bEF9wnRH/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7tw + Rf+yaULcgGAgCAAAAAAAAAAAtmg/zb1yRf+0bEL/tGxC/7RsQv+0bEL/tGxC/8BzRv+vZ0BjAAAAAAAA + AAC4a0Jwx3dJ/7VsQv/Fdkj/tW1DsAAAAAAAAAAAqmpADLRtQuvHd0n/wHRH/8B0R//AdEf/xndJ/7Zr + Qf2mZDcXAAAAAMhtSQ62a0LyxnZJ/7VsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/8J0R/+zakB/s2lCm8F0R/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+7cEX/smlC3IBgIAgAAAAAAAAAALZoP829ckX/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv/Ac0f/rWY+WgAAAAAAAAAAsmxCe8J0R/+0bEL/vnJG/7ZtQsQAAAAAAAAAAKJdLguyakHHr2lAs6pl + PrCqZT6wqmU+sK1pP7KsZD+lj2AwEAAAAADGcTkJrGVAnLBnP7mybEH6tm1D/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv/BdEf/smtBnrVqQq/Ac0b/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/u3BF/7JpQtyAYCAIAAAAAAAAAAC2aD/NvXJF/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/vnJG/69oQXasYjwirGI8IrNrQZS/c0b/tGxC/79zRv+1bUG3AAAAAAAA + AAC1akAYtGhAnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2TicNs2tB7bhv + RP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/wHNG/7RsP7GzbEHAv3JG/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7twRf+yaULcgGAgCAAA + AAAAAAAAtmg/zb1yRf+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bED8tGs/+bRrP/mzaj/9tGxC/7Ns + Qv/Edkj/tWtAgwAAAAAAAAAArms8JrNsQrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAqoBVBrNsQe24b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/75y + Rv+0bEG/smtByL5yRv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+7cEX/smlC3IBgIAgAAAAAAAAAALVqQtfGeEj/vHFF/7lvRP+1bUL/tGxC/7RsQv+0bEL/tm1D/7du + Q/+3bkP/tW1D/7NsQv+6cET/t21B9bdoQCAAAAAAAAAAALNrQlGza0DKAAAAAAAAAAC1a0Mmu3FEYbhu + Ql2zbEBXn2BACAAAAADMZjMFt21BUrZuQm2za0D0t25D/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+9ckb/sWtCyLJrQci+ckb/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/u3BF/7JpQtyAYCAIAAAAAAAAAAC0aUKnuG9EzrVsQtOzbEHpunBE/79y + Rv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+2bUP/w3VH/7NsQGgAAAAAAAAAAAAAAAC0a0GktG1C851i + Ow0AAAAAt2pDNcJ0R//HeEj/tWpB/Z9gNRgAAAAAyG1JDrRrQfHFdUj/tWxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/vXJG/7FrQsizbEHAv3JG/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7twRf+yaULcgGAgCAAAAAAAAAAAAAAAAAAA + AAAAAAABrmtDE7NrQUO2bUKxv3NG/7RsQv+0bEL/tGxC/7RsQv+1bUL/xHZI/7VtQY0AAAAAAAAAAAAA + AACwZ0MquW9C+MF1R/+1b0NMAAAAAAAAAACya0LIw3VI/7VsQu6iXToWAAAAAMR2Tg20bEDkum9E/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/75yRv+2bEG/tWpCr8Bz + Rv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+7cEX/smlC3IBg + IAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALduQqrAc0b/tGxC/7RsQv+0bEL/xHZI/7Nt + Q5sAAAAAAAAAAAAAAADMZjMFt2xDx79zRv/BdEf/tm1DoQAAAAAAAAAAsmlAd8d4Sf+1bELuol06FgAA + AADEdk4Ns2tC47pvRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv/Ac0b/tGs/sbNpQpvBdEf/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/u3BF/7JpQtyAYCAIAAAAAAAAAAC7bkQevm9BJ6pdOx4AAAAAAAAAAAAAAACsZz4ltmxB+bdt + Q/+zbEL/xHVI/7dsQ64AAAABAAAAAAAAAAAAAAAAtWw/ocN1SP+0bEL/uXBE/7RrQeu7ZjMPAAAAALFp + QSe5bUL9tGtC8qJdOhYAAAAAxHZODbNrQuO6b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/wXRH/7JrQZ60bEF9wnRH/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7twRf+yaULcgGAgCAAAAAAAAAAAtWs/ybtvRfu9b0P0t2xCfwAA + AAAAAAAAAAAAALNrP9G8cUX/wHRG/7NuQ8eqcTkJAAAAAAAAAAAAAAAAtGxCi8N1R/+1bUL/tGxC/7Rs + Qv+/ckb/tG1BUgAAAAAAAAAAsmtBzLRqQf2iXToWAAAAAMR2Tg2za0Ljum9E/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/8J0R/+ya0N+rWpAV79zRv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+7cEX/smlC3IBgIAgAAAAAAAAAALVq + P9HAdEb/v3NG/7RrQOiqcTkJAAAAAAAAAAC2bEOuxndJ/7ZvROi2bUAcAAAAAAAAAAAAAAAAtm1Cd8J1 + R/+2bUP/tGxC/7RsQv+0bEL/wXRH/7NqQagAAAAAAAAAALNrQXm3bUP/ol06FgAAAADEdk4Ns2tC47pv + RP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+/c0b/tWtBVrhr + QSu2bEH9tm1D/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/u3BF/7Jp + QtyAYCAIAAAAAAAAAAC2aD/NvXJF/7duQ/+0a0L2sm47HgAAAAAAAAAAt2xDmc17S/+1a0JdAAAAAAAA + AAAAAAAAsWtAX79zRv+3bkP/tGxC/7RsQv+0bEL/tGxC/7lvRP+zaz/ttGk8EQAAAAC2bUMqtWtC66Fe + ORsAAAAAxHZODbNrQuO6b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+2bUP/tWtB/bhrQSu2bUkHtWxB3btwRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7twRf+yaULcgGAgCAAAAAAAAAAAtmg/zb1yRf+3bkP/s2tC+7FpQScAAAAAAAAAALRr + Q52zbUHpqlVVAwAAAAAAAAAAtGpCOrlwRPq5b0T/tm1D/71xRf+9cUX/u3BF/7RsQv+0bEL/wHRH/7Jq + QlkAAAAAAAAAAbVrQ7CsZz4lAAAAAMR2Tg2za0Ljum9E/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/u3BF/7RqQd62bUkHAAAAALNsP6XBdEf/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+7cEX/smlC3IBgIAgAAAAAAAAAALZoP829ckX/t25D/7Nr + QvusZkAoAAAAAAAAAAC2bEKltGpBnAAAAAAAAAAAuXRGC7ZtP9m/c0b/tm1D/7JqP/G0aT/QtGk/0LNr + QtiybEL+tGxC/8F0R/+zbEGsAAAAAAAAAACxaUBfpmU7KwAAAADEdk4Ns2tC47pvRP+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/8J0R/+0aUKnAAAAAAAAAAC0bENcwXRH/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/u3BF/7JpQtyAYCAIAAAAAAAA + AAC2aD/NvXJF/7duQ/+1a0H5tm1CIwAAAAAAAAAAtWpCo7NrQ2sAAAAAAAAAALNoQlHBdEf/tGxC/8Bz + Rv+0a0GwAAAAAAAAAACbXjcusmtB/rduQ/+4bkT/smxB8K5oOhYAAAAAplkzFJZaLREAAAAAxHZODbNr + QuO6b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv/BdEf/smtCXQAA + AAAAAAAArmhGFrJqP/G5b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7tw + Rf+yaULcgGAgCAAAAAAAAAAAtmg/zb1yRf+4bkT/smxA8K5oOhYAAAAAAAAAALdtQqm3bUVZAAAAAAAA + AAC5bkR0wnRG/7RsQv/Bc0f/tGtCqwAAAAAAAAAAsmY9MrdtQ/+2bUP/tGxC/8FzR/+wakFeAAAAAAAA + AAAAAAAAAAAAAMR2Tg2za0Ljum9E/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+4b0T/tGtC8rFkQxcAAAAAAAAAAAAAAACzbEKnwnVH/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+7cEX/smlC3IBgIAgAAAAAAAAAALVqQtfHeEn/yHhJ/7RsQtT/gAACAAAAAAAA + AACzbEPHtGtAXwAAAAAAAAAAsmlAZMl4Sf+4b0T/ynlK/7BqQIsAAAAAAAAAALZsQkK8cUX/tW1C/7Rs + Qv/Ac0f/tWtAsgAAAAAAAAAAAAAAAAAAAADEdk4Ns2tC47pvRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/wnRH/7VqQagAAAAAAAAAAAAAAAAAAAAAuG5DQb1xRf+1bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/u3BF/7JpQtyAYCAIAAAAAAAAAACzaz+luW9E0bxw + QcO4bUNEAAAAAAAAAAC2bUkHtmtC8rRqQYIAAAAAAAAAALxvQxe4bEPBvXBF8LpvRMq1a0IfAAAAAAAA + AAC0a0JwwXRH/7RsQv+0bEL/uG9E/7NrQPSxbEUaAAAAAAAAAAAAAAAAxHZODbNrQuO6b0T/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tWxC/75yRf+3a0FDAAAAAAAAAAAAAAAAAAAAAAAA + AAG0az/Jv3NG/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7twRf+yaULcgGAgCAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsWtDRcR2SP+0a0PV/wAAAQAAAAAAAAAAAAAAALl0 + RhYAAAABAAAAAAAAAAAAAAAAtW1Ayr5yRv+0bEL/tGxC/7RsQv/BdUf/tW5CZAAAAAAAAAAAAAAAAMR2 + Tg2za0Ljum9E/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/79zRv+0az/JAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAt2xBTsBzRv+1bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+7cEX/tGpC2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmWYzCrdtQMq+ckX/wHNG/7Zu + Q5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtW1EfL9zRv+1bEL/tGxC/7RsQv+0bEL/wHNG/7Zt + Q7gAAAAAAAAAAAAAAAD/gIAEtW1B4rpvRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Vs + Qv/BdEf/tWtETwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACza0HDwHNH/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/unBE/7NrQeKbWjczl106LJlbOS2ZWzktmVs5LZdXOiyoZj0yuG5CXbZu + Q8y/ckb/tGxC/7VtQv++c0b/uG5DtLNrQUqxb0MXlVUqDKpxRxK0bkI6t29Do71yRf+2bUP/tGxC/7Rs + Qv+0bEL/tGxC/7duQ/+0akL2qmZAPJ5iPCKgXzojrmdBL7JsQ+a5b0T/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7NsQv/Ac0f/s2tBwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt28/Nbpu + Q/23bkP/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+zbEL/smk//bFpP/2yaT/9smk//bJp + P/2xaT/9tGxB/79zRv+9cUX/s2xC/7RsQv+0bEL/tGxC/79zRv+7cEX/tWtC77NrQeKzbEHpt25D/8Bz + Rv+1bUL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tm1D/7RsQPyzbEL3s2xC97JqQPiybEL+tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+3bkP/um5D/bNtQjYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACzbUGNxHZI/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7du + Q/+3bkP/t25D/7duQ/+3bkP/t25D/7ZtQ/+1bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tW1C/7hv + RP+7cET/uW9E/7ZtQ/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+3bkP/t25D/7du + Q/+3bkP/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/xXZI/7RsQo4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqnE5CbZtQtLAc0f/s2xC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+zbEL/wHNH/7Vs + QtOqcTkJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1bEQtum5C9Ltw + RP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/u3BE/7puQvS1bEQtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALRsQlW+ckb/uG5D/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/uG5D/75yRv+0bEJVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtGtCcMF0R/+3bkP/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/t25D/8J0R/+1bEFxAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACza0F5wXRH/7hu + Q/+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/uG5D/8F0R/+2bUN6AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALVsQXG+ckX/u3BE/7NsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+zbEL/u3BE/75y + Rf+5b0RxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtmxAV7tvRPK/c0b/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/wHNG/7tvRPK2bENXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxaD4xuG9EzsR2 + SP+3bkP/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+3bkP/xHZI/7hvRM6xaD4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALNmMwq4cEWNum5D/cBzRv+1bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7VsQv/Ac0b/uG9E/rhwQY2zZjMKAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALluQjq3bkO+wHNG/79yRv+1bUL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tW1C/79zRv+/c0b/t25DvrZsQTsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALhv + RFO5b0PFvXFF/8J0R/+5b0T/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+5b0T/wnRH/71yRf+6cUXFtWxEUwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALVrQ0W5bkGktm1C7sF0R//BdEf/u3BF/7ZtQ/+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+2bUP/u3BF/8F0R//BdEf/tWtC77lu + QaS5b0NFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1mPRm4bkJdtGtBpLRt + Qtu0bEL+v3NG/8J0R//BdEf/wHNG/75yRv++ckb/vnJG/75yRv/Ac0b/wXRH/8J0R/+/ckb/tG1C/rRt + Qtu0a0GkuG5CXa1mPRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACSbUkHuW5ALLVrQVa2bEJ7s21Cm7VtQ6+zbEHAsmtByLJrQcizbEHAtW1Dr7Nt + Qpu2bkJ7tWtBVrRuQCy2bUkHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA + AABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACqcTkJunJFQ7VvQoO1a0Oytmw/zbRsQtu0bELbtmw/zbVrQ7K1b0SDunJFQ6pV + OQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACxbEUau29Eg7dvQd6+ckb/w3VI/8BzRv+9cUX/u3BF/7twRf+9cUX/wHNG/8N1 + SP++ckb/t25B3rlvRIOxbEUaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAuW9EcbhvROzEdkj/u3BF/7VsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7VsQv+7cEX/xHZI/7hvROy5b0RxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAqmE9FbpwRbbFdkj/unBE/7NsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+zbEL/unBE/8V2SP+5b0S3qm09FQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1rQh+6b0LXxHZI/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/8R2SP+6b0LXtWtCHwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8a0MTuW1D2MJ0R/+za0L/tGxC/7VtQv+1bEL/tWxC/7Vs + Qv+1bUL/tWxC/7VsQv+1bUL/tWxC/7VsQv+1bEL/tWxC/7VsQv+1bUL/tW1D/7VsQv+0bEL/s2tC/8J0 + R/+4bkHZvGtDEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALRsQLrEdkj/s2tC/7RsQv+1bEL/smxC/rpw + RP+4bkP/uW9E/7JqQvuyakL7uW9E/7duQ/+5b0T/uG5D/7hvQ/+5b0T/tm1D/7VsQv+xaUH7tm1D/7Vs + Qv+0bEL/s2tC/8R2SP+0bEC6AAAAAAAAAAAAAAAAAAAAAAAAAAC1bUFuxXdI/7RsQv+0bEL/uW9E/7Vs + QeKza0J8smhBjrJoQJ+yakGYrmc9nrFpP9mza0KMsGlBgbNqQJeyakGRsmpChLJqQZyyaUCPr2hAc65n + PJCuZ0Ges2tAyrtwRP+0bEL/tGxC/8V3SP+zbENvAAAAAAAAAAAAAAAArmhGFrRrQfG6cET/tGxC/7Rs + Qv+3bkP/t25E7LRtQpa0a0Fms2tAa7RrQWKya0KIsmxC4LBoPUexaEBYsmpAY7FpPk61akNItGlAX7Jr + QHexakBssmtCiLFpQF+0bUK8vnJF/7RsQv+0bEL/unBE/7RuQfG5aEYWAAAAAAAAAAC1bUKDxXZI/7Ns + Qv+0bEL/tGxC/7xxRf+ya0LMtG1BgbJpQI+za0F1tm1BfrFqQGyxa0HPsGlAa7JrQX6yakB4s2o/Zbds + Qn+xakF2s2tBirBnP2qwaUGFr2k+ZrJpQrO+ckb/tGxC/7RsQv+zbEL/xXZI/7VtQoMAAAAAn2BACLFr + QOS7cEX/tGxC/7RsQv+0bEL/tW1C/7JsQvq0bEDssmxC97FrQOSyaz/ttGtCzLNqP+i0akL2tm1C/7Js + QvqyakL7smxA8LNqQOi0a0DosGxB07RqQd60a0DktGw/9bZtQ/+0bEL/tGxC/7RsQv+7cEX/sWtA5L9g + QAi2bEJCvnJG/7VsQv+0bEL/tGxC/7RsQv+2bUP/s2pB9rNrQZazbELAv3NG/7huQ/+7cEX/v3NG/7Zs + Q+SybEKHtW1DbrRrP6m7cEX/u3BF/7huQ//BdEf/sWtBz7RrQZi0a0H5tm1D/7RsQv+0bEL/tGxC/7Vs + Qv++ckb/s2tBQ7ZsQoTDdUf/tGxC/7RsQv+0bEL/tGxC/7pvRP+0bD/kAAAAALVtQlnDdUf/tGxC/7lv + RP+2bEPouHA9GQAAAACqVTkJAAAAALVuQ3LAc0b/tWxC/8V2SP+za0FyAAAAALRqQ+i5b0T/tGxC/7Rs + Qv+0bEL/tGxC/8N1R/+0a0GFs2xBtMBzRv+0bEL/tGxC/7RsQv+0bEL/um9E/7JsQeYAAAAAtm1CZcJ0 + R/+0bEL/wXRH/7BqQq8AAAAAtWxBlcd2Sfe2bUQ4gIAAArRsQPzEdkj/0H1M/7RqQoQAAAAAsmpB+Lpw + RP+0bEL/tGxC/7RsQv+0bEL/wHNG/7NsQ7SzakLOvXFF/7RsQv+0bEL/tGxC/7RsQv+6b0T/smxB5gAA + AAC2bUJlwnRH/7RsQv/Ac0f/smlCs7VqQBiza0DK0n5N/7RsQ2P//wABr2hAf6xnP1mya0FPqGU8JgAA + AACtZ0BUs2tB9LduQ/+0bEL/tGxC/7RsQv+9ckX/sWtBz7JpQty7cEX/tGxC/7RsQv+0bEL/tGxC/7pv + RP+ybEHmAAAAALZsQm3RfU3/wnRH/7lvRP+yakL7smpA9LVtQ/66cET/s2dFJbJsPiGybEJJAAAAAM14 + RySvcEAQAAAAALhyQS+za0HxuG9E/7RsQv+0bEL/tGxC/7twRf+0a0LbsmlC3LtwRf+0bEL/tGxC/7Rs + Qv+0bEL/um9E/7JsQea2bUkHtWtDJsB0R2W1bUGNtGtB7btwRP+5b0T/xndI/7NrQnwAAAAAtGxChLRr + QZi2bUkHu3BE/7NrQ4YAAAAAsmxC7rlvRP+0bEL/tGxC/7RsQv+0bEL/u3BF/7RrQtuzakLOvXFF/7Rs + Qv+0bEL/tGxC/7RsQv+6b0T/smxB5rl0Rgv/VVUDmTMzBQAAAAC0akI6uG5E+8Z3Sf+2bEKSAAAAALBm + Pi29cUP4s2w/5QAAAACzbD+5s2tBkQAAAAC0bUPruW9E/7RsQv+0bEL/tGxC/7RsQv+9ckX/sWtBz7Ns + QrPAc0b/tGxC/7RsQv+0bEL/tGxC/7pvRP+ybEHmAAAAALZrQWLLekv0tmxAVwAAAACza0Lrtm1DvQAA + AAC2bUAcuW1B4r9zRv+9cUX/tWw+LbNtQFSza0GNAAAAALNsQem5b0T/tGxC/7RsQv+0bEL/tGxC/8Bz + Rv+zbEO0tmxChMR1R/+0bEL/tGxC/7RsQv+0bEL/um9E/7JsQeYAAAAAtW1AZ9aAT/+0bEKOAAAAALRt + QryybD4hs4BNCrJtQtLLekv/wXRH/8R1SP+0bUCPuXRGC7RpQWaAgIACs2xB6blvRP+0bEL/tGxC/7Rs + Qv+0bEL/w3VH/7ZsQoS2bEJCvnJG/7VsQv+0bEL/tGxC/7RsQv+6b0T/smxB5gAAAAC2bUJl0X1N/7Rs + Qo4AAAAAtmxDdgAAAAC2bUOMz3xM/7VsQp6xakBztm5D/rJsQea2bUkHp2I7Gr+AQAyzbEHpuW9E/7Rs + Qv+0bEL/tGxC/7VsQv++ckb/s2tBQ59gQAixa0Dku3BF/7RsQv+0bEL/tGxC/7pvRP+ybEHmAAAAALZs + Qm3ghlL/tG5CdAAAAAC0bEJtAAAAALVsQsHag1D/t29DNQAAAACzaj/9wnRH/7FrQ0UAAAAAu3dED7Ns + Qem5b0T/tGxC/7RsQv+0bEL/u3BF/7FrQOS/YEAIAAAAALNtQoPFdkj/s2xC/7RsQv+0bEL/um9E/7Nt + P+UAAAAAtmZCI8N0R2GqgCoGrWY9GbdtQcMAAAAAuW5BM75xRHEAAAAAtG1BS79zRv/DdUj/tGpBnAAA + AADUgFUGtWtD6LlvRP+0bEL/tGxC/7NsQv/Fdkj/tW1CgwAAAAAAAAAAuWhGFrRrQfG6cET/tGxC/7Rs + Qv+5b0T/s2w/6ahkPimeYT0VQCAgCLNuPiW0a0Orx3dJ/7duQpKzZkAUAAAAALZsQTu3bEHdu3BF/7pv + RP+ybELnr2hAIKxpPCK0bULruW9E/7RsQv+0bEL/unBE/7RrQfG5aEYWAAAAAAAAAAAAAAAAsm1BbsV3 + SP+0bEL/tGxC/7RsQv+ya0L+sWtC97FrQfeyaUH2smxC/r1yRf+0bEL/v3NG/7JsQve0a0LruG5D/7tw + Rf+za0L/tGxC/7ZtQ/+0akL2smpA9LJsQv60bEL/tGxC/7RsQv/Fd0j/tWtBbgAAAAAAAAAAAAAAAAAA + AAAAAAAAtGxAusR2SP+za0L/tGxC/7RsQv+4bkP/uG5D/7huQ/+2bUP/tGxC/7RsQv+0bEL/t25D/7lv + RP+2bUP/tGxC/7RsQv+0bEL/tGxC/7huQ/+4bkP/tGxC/7RsQv+za0L/xHZI/7RsQLoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC8a0MTuG1D2MJ0R/+zbEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/s2xC/8J0R/+4bkHZvGtDEwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACta0Ifu3BC1sR2SP+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv/Edkj/um9C161r + Qh8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqYT0VunBFtsV2SP+6cET/s2xC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7NsQv+6cET/xXZI/7lv + RLeqYT0VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuHBEcLhv + ROzFdkj/u3BF/7VsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7VsQv+7cEX/xHZI/7hv + ROy3b0RxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAsWxFGrpwRYK1bkHevnJF/8N1SP/Ac0f/vXFF/7twRf+7cEX/vXFF/8BzR//DdUj/vnJF/7Vu + Qd65b0SDsWw7GgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL9gQAi6bkVDtW9Eg7ZtQrG0bD/NtGxB27RsQdu0bD/Ntm1Csblv + RIO6bkVDv2BACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL1x + Qhu8cENmt2xDp7NqQs60a0LftGtC37NqQs63bEOnvHBDZrNxQhsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqakAYuXBEkrlvQvHDdUj/wXRH/71xRf+7cET/u3BE/71x + Rf/BdEf/w3VI/7lvQvG6b0STqmpAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALJr + QEy7bkPmxXZI/7hvRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7hvRP/Fdkj/u25D5rVr + QEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs2xCYb5yRf+9cUX/s2xC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+zbEL/vXFF/75yRf+xa0FiAAAAAAAAAAAAAAAAAAAAAAAA + AACybEJJvnJG/7lvRP+1bEL/vHFF/7xxRf+8cUX/uG5D/7lvRP++ckX/vHFF/71xRf+9cUX/vHFF/7tw + Rf+6cET/tm1D/7lvRP++ckb/smxCSQAAAAAAAAAAAAAAAKptPRW3bUPrvXFF/7ZuQ/+1a0Lvs2tBnrNr + QLKxakCusWg/wbNsQceyakGcsWpArrBrQaKzaUGss2s/pbBoPZqvaD6wtGs/4bhuRP+9cUX/t21D67Zt + PRUAAAAAAAAAALNrQZTFdkj/s2xC/7hvQ/+2bUHltmxBfbFrQF+zbEFasWxCmrNsQJOtZz4+smg+VrRq + Q0GyaEFTsmpAZ69pP22vakBjs2xBwL1yRf+zbEL/xXZI/7NtQZQAAAAAtWpAGLVrQva4b0T/tGxC/7hu + Q/+0a0DktGxBv7JrP7WzakKvsGpCr7JrP8mzaz+9s2tBvLZsQbizbEG0sGpCr7FrQaSxa0KrsmlC3Llv + RP+0bEL/uG9E/7VrQva1akAYtW1DZ8N1SP+0bEL/tGxC/7VtQ/+ybEH6sms/tbNqQva+ckb/uW9E/7lv + RP+0bUOwtGxAk7JqQurCdUf/vXFF/7JqQPiya0G3tGxA/LVtQv+0bEL/tGxC/8N1SP+1bUNntGxCqsJ0 + R/+0bEL/tGxC/7pvRP+0bEDkAAAAALJrQsG+ckb/wXRH/7VuQXK/gEAIsWlDLq5oRha4bEPvznxL/7Jp + QtwAgAACtGtC77lvRP+0bEL/tGxC/8J0R/+0bEKqtGlC0L1xRf+0bEL/tGxC/7pvRP+ybEHmqlUqBrNr + QsW+ckb/vnJF/69mOiO0bEF9wnRH/9SAVQaxakCQwXNHvrBpQJSidEYLsmtBt7pwRP+0bEL/tGxC/71x + Rf+zaz/RsmxC4LtwRP+0bEL/tGxC/7pvRP+ybEHmqlUqBrVrP9HLekr/vXFF/7FpP9C7cELqtm0/5bld + RguxaEE7YEAgCK1jOh//AAABsWtDWL1xRf+1bEL/tGxC/7twRP+zaz/hsmxC4LtwRP+0bEL/tGxC/7pv + RP+0akDouV1GC7VsRC28cENbs2tC2Mh4Sf/BdEf/tGpCOq5nQS+0a0Gktm1AOLRqQtq0aUsRsmxC57lv + RP+0bEL/tGxC/7twRP+ybELgtGlC0L1xRf+0bEL/tGxC/7pvRP+ybELns2YzCrZqQmWwZz0qsGtBN8d4 + Sf+xa0BY/wAAAbZtRNu2bUP/smw+IbNrQqK2bUAcs2xB6blvRP+0bEL/tGxC/71xRf+0aULQtGxCqsJ0 + R/+0bEL/tGxC/7pvRP+ybEHmzGYzBbNsQem0bEKxrWtCH7FqQJcAAAAAtmxDwc58TP/Fdkj/tW1CWbFq + Q0GzbkUlsmxC57lvRP+0bEL/tGxC/8J0R/+0bEKqtW1DZ8N1SP+0bEL/tGxC/7pvRP+ybEHmqlUqBrNq + QuOzakC2umxFGrNuPiWzbEBvyXlK/7NsQVq3bkHetGpAwgAAAAC5dEYWs2xB6blvRP+0bEL/tGxC/8R1 + SP+1bUNntWpAGLVrQva4b0T/tGxC/7pvRP+ybEHmAAAAALVrQqK0bENctWxELbJpQDi1bUJZtWxCuQAA + AACyaz/YunBE/6pjRxIAAAAAtG1C67lvRP+0bEL/uG9E/7VrQva1akAYAAAAALNrQZTFdkj/s2xC/7lv + RP+zakLqqGU8JpReNhOtZj0ZtW1DtLduQs61a0IfuXRGC7RtQnC6cET/wnVH/7VrQXKuaEYWsms/7blv + RP+zbEL/xXZI/7NtQZQAAAAAAAAAALNzQBS3bUPrvXFF/7RsQv+ybEL+smlB9rNrQfKya0H6u3BF/7xx + Rf+0az/5s2xA7LxxRf+2bUP/tWxC/7JsQv60a0LysmxC/rRsQv+9cUX/t21D66ptPRUAAAAAAAAAAAAA + AACyaUJJvnJG/7lvRP+0bEL/uG5D/7huQ/+3bkP/tGxC/7RsQv+3bkP/uW9E/7VsQv+0bEL/tGxC/7Zt + Q/+4bkT/tGxC/7lvRP++ckb/smxCSQAAAAAAAAAAAAAAAAAAAAAAAAAAs2xCYb5yRf+9cUX/s2xC/7Rs + Qv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+0bEL/tGxC/7RsQv+zbEL/vXFF/75yRv+zbEJhAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALJrQEy7bkPmxXZI/7hvRP+0bEL/tGxC/7RsQv+0bEL/tGxC/7Rs + Qv+0bEL/tGxC/7hvRP/Fdkj/um5D5rJrQ0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACxZEMXuXBEkrlvQvHDdUj/wXRH/71xRf+7cET/u3BE/71xRf/BdEf/w3VI/7lvQvG5cESSqmpAGAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALNxQhu5bkNmt2xDp7Zt + Q820a0LftGtC37ZtQ823bEOnuXBDZrNxQhsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABAA + AAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1bEQtu29Eirhs + RMi1bUHitW1B4rhsRMi7b0SKtWxELQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1b0OKum9C/MV2 + SP++ckb/unBE/7pwRP++ckb/xXZI/7pvQvy5b0OKAAAAAQAAAAAAAAAAAAAAAICAAAK1bUOvyXhJ/79z + Rv+7cEX/uW9E/7xxRf+8cUX/vHFF/7xxRf+/c0b/yXlK/7ZtQ6//gIACAAAAAAAAAACza0GKynlK/7Ns + Qve0aULEs2pAxrNqQde0aULEsmtCwbJrQsGza0C+sWlBw7RrQvLKeUr/s2tBigAAAAC5bEAouG9D/7tw + RP+za0HttGtCiLFrP2myakGcsWpBfbJpQHCzbEJosWlBcrFpQXW0akLavnJG/7hvRP+0aj4ps21BjcV2 + SP+2bUP/s2tC8rNrQcO0akLvt25B8bNrQr2yakKjtW1B9bZrQ++ybEG/tGtC8rZtQ//Fdkj/tW1BjbRr + Qsy+ckb/uW9E/7JpQtyzakJGwnRH/7NtQdmvakAwtWtDTLRsQprJeEr/s2tCUbNrQtu5b0T/vnJG/7Rr + Qsy0bEDkunBE/7lvRP+yaULctWs/RcBzR/+0bD/lvXFGxrRrQqutZEAcum9FTrZtQByzbEKewHNG/7pw + RP+zbD/ltGxA5LpwRP+5b0T/smxD5rVrQh+ybEJJtGs/1btuRPK2bUMqtGtCjLRsQWq0a0NfsmxC1rpv + RP+6cET/s2w/5bRrQsy+ckb/uW9E/7JsP92za0JRtGxAk7RrQ1ixakBIs2xCpcd4Sf+zbEFatWtCPrVs + QeK5b0T/vnJG/7RrQsyzbUGNxXZI/7lvRP+za0Lbs2pDVLRsQ7ivcEAQt2tDX7NrQr25b0Ojs2xAlwAA + AACyakLquW9E/8V2SP+zbUGNuWxAKLhvQ/+8cUX/s2s/6axnQDSza0M5t25DlLRsQ1yya0IytGxAxrNs + P+W2bUIjsmtC6rxxRf+4b0T/tGpEKQAAAACxa0GKyHhJ/7RsQv+xa0Husms/7b5yRv+ybEL3tG1C67pw + RP+1bUL/tGw/9bRqQf3IeEn/sWtBigAAAAAAAAAAgICAArVtQq/IeEn/u3BF/7duQ/+0bEL/t25D/7hu + Q/+0bEL/tGxC/7twRf/IeEn/tm1Dr4CAgAIAAAAAAAAAAAAAAAAAAAABtW9DirpwQvzFdkj/vnJG/7pw + RP+6cET/vnJG/8V2SP+6cEL8tW9DigAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5bkYsu29Eirhs + RMi1bUHitW1B4rhsRMi7b0SKuW5GLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + \ No newline at end of file diff --git a/SaveData_Manager/Properties/Resources.Designer.cs b/SaveData_Manager/Properties/Resources.Designer.cs index 479bc960..1c4b5e31 100644 --- a/SaveData_Manager/Properties/Resources.Designer.cs +++ b/SaveData_Manager/Properties/Resources.Designer.cs @@ -8,10 +8,10 @@ // //------------------------------------------------------------------------------ -namespace SaveData_Manager.Properties -{ - - +namespace SaveData_Manager.Properties { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -22,50 +22,132 @@ namespace SaveData_Manager.Properties [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SaveData_Manager.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap _4792957342_d427358e_b292_4c43_888e_52f944dc057c { + get { + object obj = ResourceManager.GetObject("_4792957342_d427358e_b292_4c43_888e_52f944dc057c", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap _4792964578_646eb82c_dd39_4c30_ac99_d15bbb6b3b3d { + get { + object obj = ResourceManager.GetObject("_4792964578_646eb82c_dd39_4c30_ac99_d15bbb6b3b3d", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap _4792964579_47acf5f4_4ab5_4869_9bb7_2b5561b24193 { + get { + object obj = ResourceManager.GetObject("_4792964579_47acf5f4_4ab5_4869_9bb7_2b5561b24193", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap _4792965023_57b20776_4c77_425a_b91c_10608d18cbf3 { + get { + object obj = ResourceManager.GetObject("_4792965023_57b20776_4c77_425a_b91c_10608d18cbf3", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_save_alt_black_48dp { + get { + object obj = ResourceManager.GetObject("baseline_save_alt_black_48dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_settings_black_48dp { + get { + object obj = ResourceManager.GetObject("baseline_settings_black_48dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_source_black_48dp { + get { + object obj = ResourceManager.GetObject("baseline_source_black_48dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon favicon { + get { + object obj = ResourceManager.GetObject("favicon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon favicon__1_ { + get { + object obj = ResourceManager.GetObject("favicon__1_", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } } } diff --git a/SaveData_Manager/Properties/Resources.resx b/SaveData_Manager/Properties/Resources.resx index af7dbebb..84b6d4e8 100644 --- a/SaveData_Manager/Properties/Resources.resx +++ b/SaveData_Manager/Properties/Resources.resx @@ -46,7 +46,7 @@ mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with - : System.Serialization.Formatters.Binary.BinaryFormatter + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 @@ -60,6 +60,7 @@ : and then encoded with base64 encoding. --> + @@ -68,9 +69,10 @@ - + + @@ -85,9 +87,10 @@ - + + @@ -109,9 +112,37 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\baseline_save_alt_black_48dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\baseline_settings_black_48dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\baseline_source_black_48dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\favicon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\favicon (1).ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\4792957342_d427358e-b292-4c43-888e-52f944dc057c.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\4792964578_646eb82c-dd39-4c30-ac99-d15bbb6b3b3d.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\4792964579_47acf5f4-4ab5-4869-9bb7-2b5561b24193.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\4792965023_57b20776-4c77-425a-b91c-10608d18cbf3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/SaveData_Manager/Properties/Settings.Designer.cs b/SaveData_Manager/Properties/Settings.Designer.cs index e61a3344..d5eb1d30 100644 --- a/SaveData_Manager/Properties/Settings.Designer.cs +++ b/SaveData_Manager/Properties/Settings.Designer.cs @@ -8,23 +8,31 @@ // //------------------------------------------------------------------------------ -namespace SaveData_Manager.Properties -{ - - +namespace SaveData_Manager.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string BackupLocation { + get { + return ((string)(this["BackupLocation"])); + } + set { + this["BackupLocation"] = value; + } + } } } diff --git a/SaveData_Manager/Properties/Settings.settings b/SaveData_Manager/Properties/Settings.settings index 39645652..a6e650d5 100644 --- a/SaveData_Manager/Properties/Settings.settings +++ b/SaveData_Manager/Properties/Settings.settings @@ -1,7 +1,9 @@  - - - - - - + + + + + + + + \ No newline at end of file diff --git a/SaveData_Manager/Resources/4792957342_d427358e-b292-4c43-888e-52f944dc057c.png b/SaveData_Manager/Resources/4792957342_d427358e-b292-4c43-888e-52f944dc057c.png new file mode 100644 index 00000000..7dc6251f Binary files /dev/null and b/SaveData_Manager/Resources/4792957342_d427358e-b292-4c43-888e-52f944dc057c.png differ diff --git a/SaveData_Manager/Resources/4792964578_646eb82c-dd39-4c30-ac99-d15bbb6b3b3d.png b/SaveData_Manager/Resources/4792964578_646eb82c-dd39-4c30-ac99-d15bbb6b3b3d.png new file mode 100644 index 00000000..a323ef65 Binary files /dev/null and b/SaveData_Manager/Resources/4792964578_646eb82c-dd39-4c30-ac99-d15bbb6b3b3d.png differ diff --git a/SaveData_Manager/Resources/4792964579_47acf5f4-4ab5-4869-9bb7-2b5561b24193.png b/SaveData_Manager/Resources/4792964579_47acf5f4-4ab5-4869-9bb7-2b5561b24193.png new file mode 100644 index 00000000..69e3ef43 Binary files /dev/null and b/SaveData_Manager/Resources/4792964579_47acf5f4-4ab5-4869-9bb7-2b5561b24193.png differ diff --git a/SaveData_Manager/Resources/4792965023_57b20776-4c77-425a-b91c-10608d18cbf3.png b/SaveData_Manager/Resources/4792965023_57b20776-4c77-425a-b91c-10608d18cbf3.png new file mode 100644 index 00000000..b8b48ba4 Binary files /dev/null and b/SaveData_Manager/Resources/4792965023_57b20776-4c77-425a-b91c-10608d18cbf3.png differ diff --git a/SaveData_Manager/Resources/baseline_save_alt_black_48dp.png b/SaveData_Manager/Resources/baseline_save_alt_black_48dp.png new file mode 100644 index 00000000..12721884 Binary files /dev/null and b/SaveData_Manager/Resources/baseline_save_alt_black_48dp.png differ diff --git a/SaveData_Manager/Resources/baseline_settings_black_48dp.png b/SaveData_Manager/Resources/baseline_settings_black_48dp.png new file mode 100644 index 00000000..e860fbe5 Binary files /dev/null and b/SaveData_Manager/Resources/baseline_settings_black_48dp.png differ diff --git a/SaveData_Manager/Resources/baseline_source_black_48dp.png b/SaveData_Manager/Resources/baseline_source_black_48dp.png new file mode 100644 index 00000000..2a490fa7 Binary files /dev/null and b/SaveData_Manager/Resources/baseline_source_black_48dp.png differ diff --git a/SaveData_Manager/Resources/favicon (1).ico b/SaveData_Manager/Resources/favicon (1).ico new file mode 100644 index 00000000..905e56e0 Binary files /dev/null and b/SaveData_Manager/Resources/favicon (1).ico differ diff --git a/SaveData_Manager/Resources/favicon.ico b/SaveData_Manager/Resources/favicon.ico new file mode 100644 index 00000000..b5cc5820 Binary files /dev/null and b/SaveData_Manager/Resources/favicon.ico differ diff --git a/SaveData_Manager/SaveData_Manager.csproj b/SaveData_Manager/SaveData_Manager.csproj index b4d7b991..77e003c0 100644 --- a/SaveData_Manager/SaveData_Manager.csproj +++ b/SaveData_Manager/SaveData_Manager.csproj @@ -31,6 +31,9 @@ prompt 4 + + Resources\favicon %281%29.ico + False @@ -55,11 +58,20 @@ Form1.cs + + Form + + + frmSettings.cs + Form1.cs + + frmSettings.cs + ResXFileCodeGenerator Resources.Designer.cs @@ -68,6 +80,7 @@ True Resources.resx + True SettingsSingleFileGenerator @@ -88,6 +101,33 @@ PS4_Tools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAQAQEAAAAEAIAAoQAAARgAAACAgAAABACAAKBAAAG5AAAAYGAAAAQAgACgJAACWUAAAEBAAAAEA + IAAoBAAAvlkAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAAIgAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAA + ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAA + ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAA + ACgAAAAoAAAAIgAAABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABAAAAAlAAAAMAAAADVAAAA2AAA + ANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAA + ANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAA + ANgAAADYAAAA2AAAANgAAADYAAAA1QAAAMAAAACUAAAAQQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAABfAAAAwgAA + AO4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAMIAAABhAAAABgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAcAAABAAAAAxAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAxQAAAEEAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAXAAAAkwAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAO8AAACUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAL4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAvwAAACIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAAADTAAAA/wAA + AP8AAAD/AAAA/wAAAJwAAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAA + AF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAA + AF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAACbAAAA/wAAAP8AAAD/AAAA/wAA + ANQAAAAnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAnAAAA2QAAAP8AAAD/AAAA/wAAAP8AAABVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUwAA + AP8AAAD/AAAA/wAAAP8AAADaAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAANcAAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAF0AAAD/AAAA/wAAAP8AAAD/AAAA2AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcAAADXAAAA/wAAAP8AAAD/AAAA/wAA + AGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAA/wAAAP8AAAD/AAAA/wAAANgAAAAoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAAAA1wAA + AP8AAAD/AAAA/wAAAP8AAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAP8AAAD/AAAA/wAA + AP8AAADYAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAJwAAANcAAAD/AAAA/wAAAP8AAAD/AAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AF8AAAD/AAAA/wAAAP8AAAD/AAAA2AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcAAADXAAAA/wAAAP8AAAD/AAAA/wAAAGEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AA8AAAAQAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABfAAAA/wAAAP8AAAD/AAAA/wAAANgAAAAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAAAA1wAAAP8AAAD/AAAA/wAA + AP8AAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAACcAAABwAAAAcQAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAP8AAAD/AAAA/wAAAP8AAADYAAAAKAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAA + ANcAAAD/AAAA/wAAAP8AAAD/AAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACDAAAA2wAAANwAAACEAAAAIQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAAD/AAAA/wAA + AP8AAAD/AAAA2AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAACcAAADXAAAA/wAAAP8AAAD/AAAA/wAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAB/AAAA3QAAAP8AAAD/AAAA3gAA + AIAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAABfAAAA/wAAAP8AAAD/AAAA/wAAANgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAAAA1wAAAP8AAAD/AAAA/wAAAP8AAABhAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAACAAAAA3wAA + AP8AAAD/AAAA/wAAAP8AAADgAAAAgQAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAP8AAAD/AAAA/wAAAP8AAADYAAAAKAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAANcAAAD/AAAA/wAA + AP8AAAD/AAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ACAAAAB/AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACAAAAAIAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAAD/AAAA/wAAAP8AAAD/AAAA2AAA + ACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ACcAAADXAAAA/wAAAP8AAAD/AAAA/wAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAACAAAAB/AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4QAA + AIAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAA/wAA + AP8AAAD/AAAA/wAAANgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAnAAAA1wAAAP8AAAD/AAAA/wAAAP8AAABhAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAB/AAAA3gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAADfAAAAgAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAXwAAAP8AAAD/AAAA/wAAAP8AAADYAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAANcAAAD/AAAA/wAAAP8AAAD/AAAAYQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAACAAAAA3wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOAAAACBAAAAHwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAAD/AAAA/wAAAP8AAAD/AAAA2AAAACgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcAAADXAAAA/wAA + AP8AAAD/AAAA/wAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAB/AAAA4AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4QAA + AIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAA/wAAAP8AAAD/AAAA/wAA + ANgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAnAAAA1wAAAP8AAAD/AAAA/wAAAP8AAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ACAAAAB/AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAADhAAAAgAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAA + AP8AAAD/AAAA/wAAAP8AAADYAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAAOgAAAD/AAAA/wAAAP8AAAD/AAAAaAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAB4AAAB/AAAA3gAAAP8AAAD/AAAA/wAAAP8AAAD2AAAAuwAAANkAAAD/AAAA/wAA + AP8AAAD/AAAA2QAAALsAAAD2AAAA/wAAAP8AAAD/AAAA/wAAAN8AAACAAAAAHwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAGYAAAD/AAAA/wAAAP8AAAD/AAAA6QAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAC1AAAA1wAAANcAAADXAAAA1wAA + AFIAAAAAAAAAAAAAAAAAAAAAAAAABgAAACMAAACAAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAAsgAA + AEUAAACjAAAA/wAAAP8AAAD/AAAA/wAAAKQAAABGAAAAsQAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA4AAA + AIEAAAAjAAAABgAAAAAAAAAAAAAAAAAAAAAAAABQAAAA1wAAANcAAADXAAAA1wAAALYAAAAiAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIQAA + ACcAAAAnAAAAJwAAACcAAAAPAAAAAAAAAAAAAAAAAAAAAAAAACEAAACAAAAA4gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAugAAADoAAAAGAAAAmAAAAP8AAAD/AAAA/wAAAP8AAACaAAAABwAAADkAAAC5AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAADjAAAAggAAACEAAAAAAAAAAAAAAAAAAAAAAAAADgAAACcAAAAnAAAAJwAA + ACcAAAAhAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAApgAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAtwAAAEgAAAAAAAAAAAAAAJwAAAD/AAAA/wAAAP8AAAD/AAAAngAA + AAAAAAAAAAAARwAAALYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKgAAAAsAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAGAAAAGEAAADGAAAA+wAAAP8AAAD9AAAAuwAAAEcAAAAAAAAAAAAAAAAAAACeAAAA/wAA + AP8AAAD/AAAA/wAAAKAAAAAAAAAAAAAAAAAAAABGAAAAugAAAPwAAAD/AAAA/AAAAMcAAABiAAAAGAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAWgAAAMYAAADsAAAAvgAAAEYAAAADAAAAAAAA + AAAAAAAAAAAAngAAAP8AAAD/AAAA/wAAAP8AAACgAAAAAAAAAAAAAAAAAAAAAwAAAEUAAAC8AAAA7AAA + AMcAAABbAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAABhAAAAgQAA + AEYAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAJ4AAAD/AAAA/wAAAP8AAAD/AAAAoAAAAAAAAAAAAAAAAAAA + AAAAAAAKAAAARQAAAIEAAABiAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAEgAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACeAAAA/wAAAP8AAAD/AAAA/wAA + AKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAngAA + AP8AAAD/AAAA/wAAAP8AAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAJ4AAAD/AAAA/wAAAP8AAAD/AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACeAAAA/wAAAP8AAAD/AAAA/wAAAKAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAngAAAP8AAAD/AAAA/wAA + AP8AAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AJ4AAAD/AAAA/wAAAP8AAAD/AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAACeAAAA/wAAAP8AAAD/AAAA/wAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAngAAAP8AAAD/AAAA/wAAAP8AAACgAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ4AAAD/AAAA/wAA + AP8AAAD/AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAACeAAAA/wAAAP8AAAD/AAAA/wAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAngAAAP8AAAD/AAAA/wAAAP8AAACgAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ4AAAD/AAAA/wAAAP8AAAD/AAAAoAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACeAAAA/wAA + AP8AAAD/AAAA/wAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAngAAAP8AAAD/AAAA/wAAAP8AAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ4AAAD/AAAA/wAAAP8AAAD/AAAAoAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACeAAAA/wAAAP8AAAD/AAAA/wAA + AKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAngAA + AP8AAAD/AAAA/wAAAP8AAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKoAAAD/AAAA/wAAAP8AAAD/AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFAAAA1wAAANcAAADXAAAA1wAAAIcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAACcAAAAnAAAAJwAA + ACcAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA + AABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAA + ABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACfAAAA5wAAAO0AAADtAAAA7QAAAO0AAADtAAAA7QAA + AO0AAADtAAAA7QAAAO0AAADtAAAA7QAAAO0AAADtAAAA7QAAAO0AAADtAAAA7QAAAOcAAACfAAAAGAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAogAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAACiAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAADnAAAA/wAAAOMAAACqAAAAqgAA + AKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAA + AKoAAADjAAAA/wAAAOcAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAO8AAAD/AAAApAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKQAAAD/AAAA7wAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAA7QAA + AP8AAACqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAAP8AAADtAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABIAAADtAAAA/wAAAKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqAAAA/wAAAO0AAAASAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAEgAAAO0AAAD/AAAAqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwAA + AIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAAAD/AAAA7QAAABIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAASAAAA7QAAAP8AAACqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AH8AAAD/AAAA/wAAAH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAAP8AAADtAAAAEgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAADtAAAA/wAAAKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAB/AAAA/wAAAP8AAAD/AAAA/wAAAH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqAAAA/wAA + AO0AAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAO0AAAD/AAAAqgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAfwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKoAAAD/AAAA7QAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAA8wAAAP8AAACvAAAAAAAA + AAAAAAAAAAAAAAAAAH8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAH8AAAAAAAAAAAAA + AAAAAAAAAAAArwAAAP8AAADzAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADcAAAA7QAA + AJ4AAAAAAAAAAAAAAAcAAAB/AAAA/wAAAP8AAADkAAAApgAAAP8AAAD/AAAApgAAAOQAAAD/AAAA/wAA + AH8AAAAHAAAAAAAAAAAAAACeAAAA7QAAANwAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + ABEAAAASAAAADAAAAAAAAAAAAAAAXQAAAP8AAAD/AAAA8QAAAEQAAABJAAAA/wAAAP8AAABJAAAARAAA + APEAAAD/AAAA/wAAAF0AAAAAAAAAAAAAAAwAAAASAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAwgAAAPMAAABUAAAAAAAAAFIAAAD/AAAA/wAA + AFIAAAAAAAAAVAAAAPMAAADCAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAPwAAAAAAAAAAAAAAVQAA + AP8AAAD/AAAAVQAAAAAAAAAAAAAAPwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAABVAAAA/wAAAP8AAABVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAFUAAAD/AAAA/wAAAFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAVQAAAP8AAAD/AAAAVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAA/wAAAP8AAABVAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAAD/AAAA/wAAAFUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQAAAP8AAAD/AAAAVQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAA/wAA + AP8AAABVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AFcAAAD/AAAA/wAAAFcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAATwAAAO0AAADtAAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAGAAAAEgAAABIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAgAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAA + AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgAAANMAAAD1AAAA9QAAAPUAAAD1AAAA9QAA + APUAAAD1AAAA9QAAAPUAAAD1AAAA9QAAAPUAAAD1AAAA9QAAANQAAABMAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAIAAAA2wAAAP8AAAD1AAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA9AAA + APQAAAD0AAAA9QAAAP8AAADcAAAACQAAAAAAAAAAAAAAAAAAAAAAAAASAAAA9wAAAPYAAAAhAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAIQAAAPUAAAD4AAAAEwAA + AAAAAAAAAAAAAAAAAAAAAAARAAAA9AAAAPUAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAPQAAAD1AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAARAAAA9AAA + APUAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAA + APQAAAD1AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAARAAAA9AAAAPUAAAASAAAAAAAAAAAAAAAAAAAAAAAA + ACUAAADgAAAA4QAAACcAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAPQAAAD1AAAAEgAAAAAAAAAAAAAAAAAA + AAAAAAARAAAA9AAAAPUAAAASAAAAAAAAAAAAAAAAAAAAJQAAANoAAAD/AAAA/wAAANoAAAAnAAAAAAAA + AAAAAAAAAAAAEQAAAPQAAAD1AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAARAAAA+gAAAPwAAAASAAAAAAAA + AAAAAAAlAAAA2gAAAP8AAAD/AAAA/wAAAP8AAADbAAAAJwAAAAAAAAAAAAAAEQAAAPoAAAD8AAAAEgAA + AAAAAAAAAAAAAAAAAAAAAAAQAAAA4wAAAOQAAAARAAAAAAAAAC4AAADaAAAA/wAAAMoAAADxAAAA8gAA + AMoAAAD/AAAA2wAAAC8AAAAAAAAAEAAAAOMAAADkAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAEAAA + ABAAAAABAAAAAAAAALMAAAD/AAAAtgAAAB0AAADsAAAA7gAAAB0AAAC1AAAA/wAAALUAAAAAAAAAAQAA + ABAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAACZAAAAEAAA + AAQAAAD1AAAA9gAAAAYAAAAPAAAAmAAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAD0AAAA9QAAABMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABEAAAD0AAAA9QAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAD0AAAA9QAA + ABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAD0AAAA9QAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABEAAAD0AAAA9QAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAD6AAAA/AAAABIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABAAAADjAAAA5AAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAQAAAAEAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABAA + AAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACSAAAA+QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAJIAAAACAAAAAAAAAAAAAAAPAAAA/wAA + AJkAAABcAAAAXAAAAFwAAABbAAAAWwAAAFwAAABcAAAAXAAAAJkAAAD/AAAADwAAAAAAAAAAAAAAEgAA + AP8AAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAA/wAAABIAAAAAAAAAAAAA + ABEAAAD/AAAAXAAAAAAAAAAAAAAAAAAAAIkAAACJAAAAAAAAAAAAAAAAAAAAXAAAAP8AAAARAAAAAAAA + AAAAAAARAAAA/wAAAF4AAAAAAAAAAAAAAIMAAAD/AAAA/wAAAIMAAAAAAAAAAAAAAF4AAAD/AAAAEQAA + AAAAAAAAAAAAEAAAAO4AAABVAAAABwAAAIkAAAD/AAAA7QAAAO0AAAD/AAAAiQAAAAcAAABVAAAA7gAA + ABAAAAAAAAAAAAAAAAEAAAARAAAABgAAACEAAADtAAAAXwAAAK4AAACuAAAAXwAAAO0AAAAhAAAABgAA + ABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAC6AAAAugAAAAAAAAAYAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAAAALwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAC8AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAAAAwQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAA + ALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 44780852..dc556a46 100644 Binary files a/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 8f3c9104..53f12d0e 100644 Binary files a/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/SaveData_Manager/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.Form1.resources b/SaveData_Manager/obj/Debug/SaveData_Manager.Form1.resources index 6c05a977..c4977c55 100644 Binary files a/SaveData_Manager/obj/Debug/SaveData_Manager.Form1.resources and b/SaveData_Manager/obj/Debug/SaveData_Manager.Form1.resources differ diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.Properties.Resources.resources b/SaveData_Manager/obj/Debug/SaveData_Manager.Properties.Resources.resources index 6c05a977..7cb44e09 100644 Binary files a/SaveData_Manager/obj/Debug/SaveData_Manager.Properties.Resources.resources and b/SaveData_Manager/obj/Debug/SaveData_Manager.Properties.Resources.resources differ diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.FileListAbsolute.txt b/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.FileListAbsolute.txt index 9cd82fdd..ba09dbcb 100644 --- a/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.FileListAbsolute.txt +++ b/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.FileListAbsolute.txt @@ -72,3 +72,4 @@ D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Man D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\obj\Debug\SaveData_Manager.exe D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\obj\Debug\SaveData_Manager.pdb D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Debug\System.Data.SQLite.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\obj\Debug\SaveData_Manager.frmSettings.resources diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.GenerateResource.Cache b/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.GenerateResource.Cache index c84ad397..71babbae 100644 Binary files a/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.GenerateResource.Cache and b/SaveData_Manager/obj/Debug/SaveData_Manager.csproj.GenerateResource.Cache differ diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.csprojResolveAssemblyReference.cache b/SaveData_Manager/obj/Debug/SaveData_Manager.csprojResolveAssemblyReference.cache index 05c422c8..ee45fef4 100644 Binary files a/SaveData_Manager/obj/Debug/SaveData_Manager.csprojResolveAssemblyReference.cache and b/SaveData_Manager/obj/Debug/SaveData_Manager.csprojResolveAssemblyReference.cache differ diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.exe b/SaveData_Manager/obj/Debug/SaveData_Manager.exe index 73220d4a..38d9d2f7 100644 Binary files a/SaveData_Manager/obj/Debug/SaveData_Manager.exe and b/SaveData_Manager/obj/Debug/SaveData_Manager.exe differ diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.frmSettings.resources b/SaveData_Manager/obj/Debug/SaveData_Manager.frmSettings.resources new file mode 100644 index 00000000..a4be4be9 Binary files /dev/null and b/SaveData_Manager/obj/Debug/SaveData_Manager.frmSettings.resources differ diff --git a/SaveData_Manager/obj/Debug/SaveData_Manager.pdb b/SaveData_Manager/obj/Debug/SaveData_Manager.pdb index 5474468b..4710720e 100644 Binary files a/SaveData_Manager/obj/Debug/SaveData_Manager.pdb and b/SaveData_Manager/obj/Debug/SaveData_Manager.pdb differ diff --git a/SaveData_Manager/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/SaveData_Manager/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 00000000..7df0558b Binary files /dev/null and b/SaveData_Manager/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ diff --git a/SaveData_Manager/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/SaveData_Manager/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache index e74003ed..cccb14ab 100644 Binary files a/SaveData_Manager/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache and b/SaveData_Manager/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.Form1.resources b/SaveData_Manager/obj/Release/SaveData_Manager.Form1.resources index 6c05a977..c4977c55 100644 Binary files a/SaveData_Manager/obj/Release/SaveData_Manager.Form1.resources and b/SaveData_Manager/obj/Release/SaveData_Manager.Form1.resources differ diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.Properties.Resources.resources b/SaveData_Manager/obj/Release/SaveData_Manager.Properties.Resources.resources index 6c05a977..7cb44e09 100644 Binary files a/SaveData_Manager/obj/Release/SaveData_Manager.Properties.Resources.resources and b/SaveData_Manager/obj/Release/SaveData_Manager.Properties.Resources.resources differ diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.csproj.FileListAbsolute.txt b/SaveData_Manager/obj/Release/SaveData_Manager.csproj.FileListAbsolute.txt index 27260c58..50878263 100644 --- a/SaveData_Manager/obj/Release/SaveData_Manager.csproj.FileListAbsolute.txt +++ b/SaveData_Manager/obj/Release/SaveData_Manager.csproj.FileListAbsolute.txt @@ -5,9 +5,9 @@ D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Man D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\PS4_Tools.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\HtmlAgilityPack.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\ICSharpCode.SharpZipLib.dll -D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\System.Data.SQLite.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Newtonsoft.Json.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\DotNetZip.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\System.Data.SQLite.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\BigInteger.dll D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\PS4_Tools.pdb D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\PARAM.SFO.pdb @@ -20,3 +20,19 @@ D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Man D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\obj\Release\SaveData_Manager.csproj.GenerateResource.Cache D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\obj\Release\SaveData_Manager.exe D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\obj\Release\SaveData_Manager.pdb +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\obj\Release\SaveData_Manager.frmSettings.resources +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\UnityEngine.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\GameArchives.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\UnityEditor.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.Cecil.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.SerializationLogic.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\ExCSS.Unity.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.DataContract.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.Legacy.NRefactory.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.UNetWeaver.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.CecilTools.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.Cecil.Pdb.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Unity.Cecil.Mdb.dll +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\UnityEngine.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\Newtonsoft.Json.xml +D:\Users\3deEchelon\Documents\Visual Studio 2015\Projects\PS4_Tools\SaveData_Manager\bin\Release\UnityEditor.xml diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.csproj.GenerateResource.Cache b/SaveData_Manager/obj/Release/SaveData_Manager.csproj.GenerateResource.Cache index c1cda8f8..c75b062b 100644 Binary files a/SaveData_Manager/obj/Release/SaveData_Manager.csproj.GenerateResource.Cache and b/SaveData_Manager/obj/Release/SaveData_Manager.csproj.GenerateResource.Cache differ diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.csprojResolveAssemblyReference.cache b/SaveData_Manager/obj/Release/SaveData_Manager.csprojResolveAssemblyReference.cache index 5f480d45..ee0b3516 100644 Binary files a/SaveData_Manager/obj/Release/SaveData_Manager.csprojResolveAssemblyReference.cache and b/SaveData_Manager/obj/Release/SaveData_Manager.csprojResolveAssemblyReference.cache differ diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.exe b/SaveData_Manager/obj/Release/SaveData_Manager.exe index 46e5e60f..d3e326b5 100644 Binary files a/SaveData_Manager/obj/Release/SaveData_Manager.exe and b/SaveData_Manager/obj/Release/SaveData_Manager.exe differ diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.frmSettings.resources b/SaveData_Manager/obj/Release/SaveData_Manager.frmSettings.resources new file mode 100644 index 00000000..a4be4be9 Binary files /dev/null and b/SaveData_Manager/obj/Release/SaveData_Manager.frmSettings.resources differ diff --git a/SaveData_Manager/obj/Release/SaveData_Manager.pdb b/SaveData_Manager/obj/Release/SaveData_Manager.pdb index cc931c8c..802407c8 100644 Binary files a/SaveData_Manager/obj/Release/SaveData_Manager.pdb and b/SaveData_Manager/obj/Release/SaveData_Manager.pdb differ diff --git a/Tester/bin/Debug/ImageUtil.exe b/Tester/bin/Debug/ImageUtil.exe index 48e4b28f..87321f94 100644 Binary files a/Tester/bin/Debug/ImageUtil.exe and b/Tester/bin/Debug/ImageUtil.exe differ diff --git a/Tester/bin/Debug/ImageUtil.pdb b/Tester/bin/Debug/ImageUtil.pdb index f8968386..2b45719c 100644 Binary files a/Tester/bin/Debug/ImageUtil.pdb and b/Tester/bin/Debug/ImageUtil.pdb differ diff --git a/Tester/bin/Debug/PS4_PKG_Viewer.exe b/Tester/bin/Debug/PS4_PKG_Viewer.exe index 8a06ca89..21255df8 100644 Binary files a/Tester/bin/Debug/PS4_PKG_Viewer.exe and b/Tester/bin/Debug/PS4_PKG_Viewer.exe differ diff --git a/Tester/bin/Debug/PS4_PKG_Viewer.pdb b/Tester/bin/Debug/PS4_PKG_Viewer.pdb index 332aace2..7b93505d 100644 Binary files a/Tester/bin/Debug/PS4_PKG_Viewer.pdb and b/Tester/bin/Debug/PS4_PKG_Viewer.pdb differ diff --git a/Tester/bin/Debug/PS4_Tools.dll b/Tester/bin/Debug/PS4_Tools.dll index f7ec730d..bb65dc64 100644 Binary files a/Tester/bin/Debug/PS4_Tools.dll and b/Tester/bin/Debug/PS4_Tools.dll differ diff --git a/Tester/bin/Debug/PS4_Tools.pdb b/Tester/bin/Debug/PS4_Tools.pdb index abb0a278..7729504e 100644 Binary files a/Tester/bin/Debug/PS4_Tools.pdb and b/Tester/bin/Debug/PS4_Tools.pdb differ diff --git a/Tester/bin/Debug/Tester.exe b/Tester/bin/Debug/Tester.exe index a770ebd6..97e1d064 100644 Binary files a/Tester/bin/Debug/Tester.exe and b/Tester/bin/Debug/Tester.exe differ diff --git a/Tester/bin/Debug/Tester.pdb b/Tester/bin/Debug/Tester.pdb index 816a006e..08b33e31 100644 Binary files a/Tester/bin/Debug/Tester.pdb and b/Tester/bin/Debug/Tester.pdb differ diff --git a/Tester/obj/Debug/Tester.csprojResolveAssemblyReference.cache b/Tester/obj/Debug/Tester.csprojResolveAssemblyReference.cache index 88bcdb21..ab3df2f6 100644 Binary files a/Tester/obj/Debug/Tester.csprojResolveAssemblyReference.cache and b/Tester/obj/Debug/Tester.csprojResolveAssemblyReference.cache differ diff --git a/Tester/obj/Debug/Tester.exe b/Tester/obj/Debug/Tester.exe index a770ebd6..97e1d064 100644 Binary files a/Tester/obj/Debug/Tester.exe and b/Tester/obj/Debug/Tester.exe differ diff --git a/Tester/obj/Debug/Tester.pdb b/Tester/obj/Debug/Tester.pdb index 816a006e..08b33e31 100644 Binary files a/Tester/obj/Debug/Tester.pdb and b/Tester/obj/Debug/Tester.pdb differ diff --git a/TrophyUnlocker/bin/Debug/PS4_Tools.dll b/TrophyUnlocker/bin/Debug/PS4_Tools.dll index 4eec7d9e..bb65dc64 100644 Binary files a/TrophyUnlocker/bin/Debug/PS4_Tools.dll and b/TrophyUnlocker/bin/Debug/PS4_Tools.dll differ diff --git a/TrophyUnlocker/bin/Debug/PS4_Tools.pdb b/TrophyUnlocker/bin/Debug/PS4_Tools.pdb index 6f24269c..7729504e 100644 Binary files a/TrophyUnlocker/bin/Debug/PS4_Tools.pdb and b/TrophyUnlocker/bin/Debug/PS4_Tools.pdb differ diff --git a/TrophyUnlocker/bin/Debug/TrophyUnlocker.exe b/TrophyUnlocker/bin/Debug/TrophyUnlocker.exe index c558dd31..f3fdab84 100644 Binary files a/TrophyUnlocker/bin/Debug/TrophyUnlocker.exe and b/TrophyUnlocker/bin/Debug/TrophyUnlocker.exe differ diff --git a/TrophyUnlocker/bin/Debug/TrophyUnlocker.pdb b/TrophyUnlocker/bin/Debug/TrophyUnlocker.pdb index 81903c70..c4ae738c 100644 Binary files a/TrophyUnlocker/bin/Debug/TrophyUnlocker.pdb and b/TrophyUnlocker/bin/Debug/TrophyUnlocker.pdb differ diff --git a/TrophyUnlocker/obj/Debug/TrophyUnlocker.csprojResolveAssemblyReference.cache b/TrophyUnlocker/obj/Debug/TrophyUnlocker.csprojResolveAssemblyReference.cache index 9ceb9ddf..c1887055 100644 Binary files a/TrophyUnlocker/obj/Debug/TrophyUnlocker.csprojResolveAssemblyReference.cache and b/TrophyUnlocker/obj/Debug/TrophyUnlocker.csprojResolveAssemblyReference.cache differ diff --git a/TrophyUnlocker/obj/Debug/TrophyUnlocker.exe b/TrophyUnlocker/obj/Debug/TrophyUnlocker.exe index c558dd31..f3fdab84 100644 Binary files a/TrophyUnlocker/obj/Debug/TrophyUnlocker.exe and b/TrophyUnlocker/obj/Debug/TrophyUnlocker.exe differ diff --git a/TrophyUnlocker/obj/Debug/TrophyUnlocker.pdb b/TrophyUnlocker/obj/Debug/TrophyUnlocker.pdb index 81903c70..c4ae738c 100644 Binary files a/TrophyUnlocker/obj/Debug/TrophyUnlocker.pdb and b/TrophyUnlocker/obj/Debug/TrophyUnlocker.pdb differ