-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from shugaoye/main
Build 2.0.1-rc1
- Loading branch information
Showing
71 changed files
with
11,499 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
[submodule "PureOtp"] | ||
path = PureOtp | ||
url = https://github.com/shugaoye/PureOtp.git | ||
branch = passxyz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
## Change log | ||
|
||
### 2.0.1-rc.1 | ||
- Upgraded to .NET MAUI RC1 | ||
- PassXYZLib moved to a separate project | ||
|
||
--- | ||
Version `1.x.x` is built for Xamarin.Forms | ||
### Release 1.3.8 | ||
|
||
### Release 1.3.7 | ||
**KPCLib** | ||
- Added `GetOtpUrl()` | ||
|
||
### Release 1.3.6 | ||
**PassXYZLib** | ||
- Added LogFilePath | ||
- Added `ChangeMasterPassword()` | ||
- Improved `SearchEntries()` | ||
|
||
### Release 1.3.5 | ||
**KPCLib** | ||
- Added `Exists()` in `ProtectedBinaryDictionary` | ||
|
||
**PassXYZLib** | ||
- Added `SearchEntries()` | ||
|
||
### Release 1.3.4 | ||
- Bug fixes | ||
|
||
### Release 1.3.3 | ||
- Improved property `IsUserExist` and Added `Delete` method in `User` | ||
- Support KeePass key file | ||
- Removed dependency on PureOtp | ||
|
||
### Release 1.3.2 | ||
- Removed dependencies | ||
|
||
### Release 1.2.2 | ||
- Bug fixes | ||
|
||
### Release 1.2.1 | ||
- Support Markdown in Notes field | ||
- Support PassXYZ data format | ||
|
||
### Release 1.2.0 | ||
- Added PassXYZLib | ||
- Support KPCLibPy | ||
|
||
### Release 1.1.9 | ||
- Removed dependency of Xamarin.Forms so it can be built with any .Netstandard apps | ||
- Using SkiaSharp to handle Bitmap which is supported by .Netstandard and .Net Core | ||
- Removed UWP test app and added .Net Core test app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/html": "<table><thead><tr><th>Major</th><th>Minor</th><th>Build</th><th>Revision</th><th>MajorRevision</th><th>MinorRevision</th></tr></thead><tbody><tr><td><div class=\"dni-plaintext\">0</div></td><td><div class=\"dni-plaintext\">0</div></td><td><div class=\"dni-plaintext\">0</div></td><td><div class=\"dni-plaintext\">0</div></td><td><div class=\"dni-plaintext\">0</div></td><td><div class=\"dni-plaintext\">0</div></td></tr></tbody></table>" | ||
}, | ||
"output_type": "unknown" | ||
} | ||
], | ||
"source": [ | ||
"using System;\r\n", | ||
"using System.Reflection;\r\n", | ||
"\r\n", | ||
"Assembly.GetExecutingAssembly().FullName" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"metadata": { | ||
"dotnet_interactive": { | ||
"language": "csharp" | ||
} | ||
}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/plain": "There are 4 items.\r\n" | ||
}, | ||
"output_type": "unknown" | ||
}, | ||
{ | ||
"data": { | ||
"text/plain": "item = home\r\n" | ||
}, | ||
"output_type": "unknown" | ||
}, | ||
{ | ||
"data": { | ||
"text/plain": "item = data\r\n" | ||
}, | ||
"output_type": "unknown" | ||
}, | ||
{ | ||
"data": { | ||
"text/plain": "last = src\r\n" | ||
}, | ||
"output_type": "unknown" | ||
}, | ||
{ | ||
"data": { | ||
"text/plain": "False, src\r\n" | ||
}, | ||
"output_type": "unknown" | ||
} | ||
], | ||
"source": [ | ||
"using System;\r\n", | ||
"using System.Diagnostics;\r\n", | ||
"\r\n", | ||
"string testPath = \"/home/data/test/src\";\r\n", | ||
"\r\n", | ||
"\r\n", | ||
"string FindLastOne(string path = \"/\") \r\n", | ||
"{\r\n", | ||
" if (path == null) { return null; }\r\n", | ||
" string[] paths = path.Split('/');\r\n", | ||
" if(paths.Length > 0) \r\n", | ||
" {\r\n", | ||
" var i = 0;\r\n", | ||
" var item = \"\";\r\n", | ||
" Console.WriteLine($\"There are {paths.Length - 1} items.\");\r\n", | ||
" for (i = 0; i < paths.Length - 1; i++) \r\n", | ||
" { \r\n", | ||
" item = paths[i];\r\n", | ||
" if(!String.IsNullOrEmpty(item))\r\n", | ||
" {\r\n", | ||
" Console.WriteLine($\"item = {item}\");\r\n", | ||
" }\r\n", | ||
" }\r\n", | ||
" Console.WriteLine($\"last = {paths[paths.Length - 1]}\");\r\n", | ||
" }\r\n", | ||
" return paths[paths.Count() - 1];\r\n", | ||
"}\r\n", | ||
"\r\n", | ||
"var last = FindLastOne(testPath);\r\n", | ||
"// string path = \"/home/data/test/src\";\r\n", | ||
"\r\n", | ||
"/*\r\n", | ||
"foreach (var sub in subs)\r\n", | ||
"{\r\n", | ||
" Console.WriteLine($\"Substring: {sub}\");\r\n", | ||
"}*/\r\n", | ||
"\r\n", | ||
"Console.WriteLine($\"{testPath.EndsWith(\"/\")}, {last}\");" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/plain": "Key=1\r\n" | ||
}, | ||
"output_type": "unknown" | ||
} | ||
], | ||
"source": [ | ||
"public class NamedContainer<T>\r\n", | ||
"{\r\n", | ||
" public NamedContainer(T item, string name)\r\n", | ||
" {\r\n", | ||
" Item = item;\r\n", | ||
" Name = name;\r\n", | ||
" }\r\n", | ||
"\r\n", | ||
" public T Item { get; }\r\n", | ||
" public string Name { get; }\r\n", | ||
"}\r\n", | ||
"\r\n", | ||
"var nc = new NamedContainer<int>(1, \"Key\");\r\n", | ||
"Console.WriteLine($\"Key={nc.Item}\");" | ||
] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": ".NET (C#)", | ||
"language": "C#", | ||
"metadata": { | ||
"interpreter": { | ||
"hash": "82a4497aa44a440fbfb1d441f8bbfbe94f1ccaaf7adaa9528d6a47a3b7658ad3" | ||
} | ||
}, | ||
"name": ".net-csharp" | ||
}, | ||
"language_info": { | ||
"name": "dotnet-interactive.csharp", | ||
"version": "3.8.5-final" | ||
}, | ||
"orig_nbformat": 2 | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 2 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> | ||
<metadata> | ||
<id>PassXYZLib</id> | ||
<version>2.0.1-rc.1</version> | ||
<authors>Roger Ye</authors> | ||
<owners>Roger Ye</owners> | ||
<requireLicenseAcceptance>false</requireLicenseAcceptance> | ||
<license type="expression">LGPL-3.0-or-later</license> | ||
<projectUrl>https://passxyz.github.io/KPCLib/</projectUrl> | ||
<description>This is an extension of KPCLib.</description> | ||
<releaseNotes> | ||
- Fixed dependency issue | ||
</releaseNotes> | ||
<copyright>Roger Ye</copyright> | ||
<repository url="https://github.com/passxyz/KPCLib" /> | ||
<dependencies> | ||
<group targetFramework="net6.0"> | ||
<dependency id="HtmlAgilityPack" version="1.11.42" exclude="Build,Analyzers" /> | ||
<dependency id="Markdig" version="0.23.0" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Dependencies" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Extensions" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Newtonsoft.Json" version="13.0.1" exclude="Build,Analyzers" /> | ||
<dependency id="PassXYZ" version="2.1.5.22" exclude="Build,Analyzers" /> | ||
</group> | ||
<group targetFramework="net6.0-android31.0"> | ||
<dependency id="HtmlAgilityPack" version="1.11.42" exclude="Build,Analyzers" /> | ||
<dependency id="Markdig" version="0.23.0" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Dependencies" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Extensions" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Newtonsoft.Json" version="13.0.1" exclude="Build,Analyzers" /> | ||
<dependency id="PassXYZ" version="2.1.5.22" exclude="Build,Analyzers" /> | ||
</group> | ||
<group targetFramework="net6.0-ios15.2"> | ||
<dependency id="HtmlAgilityPack" version="1.11.42" exclude="Build,Analyzers" /> | ||
<dependency id="Markdig" version="0.23.0" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Dependencies" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Extensions" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Newtonsoft.Json" version="13.0.1" exclude="Build,Analyzers" /> | ||
<dependency id="PassXYZ" version="2.1.5.22" exclude="Build,Analyzers" /> | ||
</group> | ||
<group targetFramework="net6.0-maccatalyst15.2"> | ||
<dependency id="HtmlAgilityPack" version="1.11.42" exclude="Build,Analyzers" /> | ||
<dependency id="Markdig" version="0.23.0" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Dependencies" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Extensions" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Newtonsoft.Json" version="13.0.1" exclude="Build,Analyzers" /> | ||
<dependency id="PassXYZ" version="2.1.5.22" exclude="Build,Analyzers" /> | ||
</group> | ||
<group targetFramework="net6.0-windows10.0.19041"> | ||
<dependency id="HtmlAgilityPack" version="1.11.42" exclude="Build,Analyzers" /> | ||
<dependency id="Markdig" version="0.23.0" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Dependencies" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Microsoft.Maui.Extensions" version="6.0.200-preview.14.5099" exclude="Build,Analyzers" /> | ||
<dependency id="Newtonsoft.Json" version="13.0.1" exclude="Build,Analyzers" /> | ||
<dependency id="PassXYZ" version="2.1.5.22" exclude="Build,Analyzers" /> | ||
</group> | ||
</dependencies> | ||
<summary>PassXYZLib added additional features for .NET MAUI.</summary> | ||
</metadata> | ||
<files> | ||
<file src="PassXYZLib/bin/Release/net6.0/PassXYZLib.dll" target="lib/net6.0/PassXYZLib.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0/PureOtp.dll" target="lib/net6.0/PureOtp.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-android/PassXYZLib.dll" target="lib/net6.0-android31.0/PassXYZLib.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-android/PassXYZLib.aar" target="lib/net6.0-android31.0/PassXYZLib.aar" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-android/PassXYZLib.xml" target="lib/net6.0-android31.0/PassXYZLib.xml" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-android/PureOtp.dll" target="lib/net6.0-android31.0/PureOtp.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-ios/PassXYZLib.dll" target="lib/net6.0-ios15.2/PassXYZLib.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-ios/PureOtp.dll" target="lib/net6.0-ios15.2/PureOtp.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-maccatalyst/PassXYZLib.dll" target="lib/net6.0-maccatalyst15.2/PassXYZLib.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-maccatalyst/PureOtp.dll" target="lib/net6.0-maccatalyst15.2/PureOtp.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-windows10.0.19041/PassXYZLib.dll" target="lib/net6.0-windows10.0.19041/PassXYZLib.dll" /> | ||
<file src="PassXYZLib/bin/Release/net6.0-windows10.0.19041/PureOtp.dll" target="lib/net6.0-windows10.0.19041/PureOtp.dll" /> | ||
</files> | ||
</package> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio Version 17 | ||
VisualStudioVersion = 17.1.32113.165 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PassXYZLib", "PassXYZLib\PassXYZLib.csproj", "{E6F6B65A-6474-4978-9F9C-F22194688240}" | ||
EndProject | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B5CFEC4A-7D25-4D24-B4F7-A568E1DF4750}" | ||
ProjectSection(SolutionItems) = preProject | ||
appveyor.yml = appveyor.yml | ||
CHANGELOG.md = CHANGELOG.md | ||
PassXYZLib.nuspec = PassXYZLib.nuspec | ||
README.md = README.md | ||
EndProjectSection | ||
EndProject | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PureOtp", "PureOtp\PureOtp\PureOtp.csproj", "{6361E2B1-FAC9-4D2E-9876-90A37E516598}" | ||
EndProject | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PassXYZLib.xunit", "PassXYZLib.xunit\PassXYZLib.xunit.csproj", "{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Debug|ARM = Debug|ARM | ||
Debug|x64 = Debug|x64 | ||
Debug|x86 = Debug|x86 | ||
Release|Any CPU = Release|Any CPU | ||
Release|ARM = Release|ARM | ||
Release|x64 = Release|x64 | ||
Release|x86 = Release|x86 | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|ARM.ActiveCfg = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|ARM.Build.0 = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|x64.Build.0 = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Debug|x86.Build.0 = Debug|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|ARM.ActiveCfg = Release|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|ARM.Build.0 = Release|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|x64.ActiveCfg = Release|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|x64.Build.0 = Release|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|x86.ActiveCfg = Release|Any CPU | ||
{E6F6B65A-6474-4978-9F9C-F22194688240}.Release|x86.Build.0 = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|ARM.ActiveCfg = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|ARM.Build.0 = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|x64.Build.0 = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Debug|x86.Build.0 = Debug|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|ARM.ActiveCfg = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|ARM.Build.0 = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|x64.ActiveCfg = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|x64.Build.0 = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|x86.ActiveCfg = Release|Any CPU | ||
{6361E2B1-FAC9-4D2E-9876-90A37E516598}.Release|x86.Build.0 = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|ARM.ActiveCfg = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|ARM.Build.0 = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|x64.Build.0 = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Debug|x86.Build.0 = Debug|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|ARM.ActiveCfg = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|ARM.Build.0 = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|x64.ActiveCfg = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|x64.Build.0 = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|x86.ActiveCfg = Release|Any CPU | ||
{9FE01E8A-B87F-4B86-806A-C79C05B2CF18}.Release|x86.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(ExtensibilityGlobals) = postSolution | ||
SolutionGuid = {CCF3A192-9A1C-4C52-87E1-10BD46C1DEA6} | ||
EndGlobalSection | ||
EndGlobal |
Oops, something went wrong.