diff --git a/.editorconfig b/.editorconfig index 185909952..c2ce6db1d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -271,6 +271,7 @@ dotnet_naming_style.常量.required_suffix = dotnet_naming_style.常量.word_separator = dotnet_naming_style.常量.capitalization = pascal_case csharp_prefer_static_anonymous_function = true:suggestion + [*.{cs,vb}] end_of_line = crlf dotnet_style_qualification_for_field = true:suggestion @@ -280,4 +281,12 @@ dotnet_style_qualification_for_event = true:suggestion dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent tab_width = 4 indent_size = 4 -dotnet_style_operator_placement_when_wrapping = beginning_of_line \ No newline at end of file +dotnet_style_operator_placement_when_wrapping = beginning_of_line +spelling_languages = en-us,zh-cn +spelling_checkable_types = identifiers,comments +spelling_exclusion_path = exclusion.dic +spelling_use_default_exclusion_dictionary = false + +[*.cs] +# Add file header +file_header_template =------------------------------------------------------------------------------\n此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有\n源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权\nCSDN博客:https://blog.csdn.net/qq_40374647\n哔哩哔哩视频:https://space.bilibili.com/94253567\nGitee源代码仓库:https://gitee.com/RRQM_Home\nGithub源代码仓库:https://github.com/RRQM\nAPI首页:https://touchsocket.net/\n交流QQ群:234762506\n感谢您的下载和使用\n------------------------------------------------------------------------------ diff --git a/exclusion.dic b/exclusion.dic new file mode 100644 index 000000000..9564f5a1a --- /dev/null +++ b/exclusion.dic @@ -0,0 +1 @@ +args diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 94ff1ad33..f7cf257e3 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@  - 3.0.19 + 3.0.20 false true latest @@ -51,34 +51,34 @@ - ValueTask;Unsafe;SystemNetHttp;SystemMemory + ValueTask;Unsafe;SystemNetHttp;SystemMemory;AsyncLocal ValueTask;Unsafe;SystemMemory - ValueTask;Unsafe;SystemMemory + ValueTask;Unsafe;SystemMemory;AsyncLocal - ValueTask;Unsafe;SystemMemory + ValueTask;Unsafe;SystemMemory;AsyncLocal - ValueTask;Unsafe;SystemMemory + ValueTask;Unsafe;SystemMemory;AsyncLocal - ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable + ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;AsyncLocal - ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DefaultInterfaceMethods + ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DefaultInterfaceMethods;AsyncLocal - ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DisposeAsync;DefaultInterfaceMethods + ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DisposeAsync;DefaultInterfaceMethods;AsyncLocal - ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DisposeAsync;DefaultInterfaceMethods + ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DisposeAsync;DefaultInterfaceMethods;AsyncLocal - ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DisposeAsync;DefaultInterfaceMethods + ValueTask;Unsafe;SystemNetHttp;SystemMemory;SystemTextJson;AsyncEnumerable;DisposeAsync;DefaultInterfaceMethods;AsyncLocal diff --git a/src/TouchSocket.Core/Core/TouchSocketCoreUtility.cs b/src/TouchSocket.Core/Core/TouchSocketCoreUtility.cs index 824c90c36..69e5e8d97 100644 --- a/src/TouchSocket.Core/Core/TouchSocketCoreUtility.cs +++ b/src/TouchSocket.Core/Core/TouchSocketCoreUtility.cs @@ -23,26 +23,26 @@ namespace TouchSocket.Core; public class TouchSocketCoreUtility { #pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释 - public static readonly Type stringType = typeof(string); - public static readonly Type byteType = typeof(byte); - public static readonly Type sbyteType = typeof(sbyte); - public static readonly Type shortType = typeof(short); - public static readonly Type objType = typeof(object); - public static readonly Type ushortType = typeof(ushort); - public static readonly Type intType = typeof(int); - public static readonly Type uintType = typeof(uint); - public static readonly Type boolType = typeof(bool); - public static readonly Type charType = typeof(char); - public static readonly Type longType = typeof(long); - public static readonly Type ulongType = typeof(ulong); - public static readonly Type floatType = typeof(float); - public static readonly Type doubleType = typeof(double); - public static readonly Type decimalType = typeof(decimal); - public static readonly Type dateTimeType = typeof(DateTime); - public static readonly Type bytesType = typeof(byte[]); - public static readonly Type dicType = typeof(IDictionary); - public static readonly Type arrayType = typeof(Array); - public static readonly Type nullableType = typeof(Nullable<>); + public static readonly Type StringType = typeof(string); + public static readonly Type ByteType = typeof(byte); + public static readonly Type SbyteType = typeof(sbyte); + public static readonly Type ShortType = typeof(short); + public static readonly Type ObjType = typeof(object); + public static readonly Type UshortType = typeof(ushort); + public static readonly Type IntType = typeof(int); + public static readonly Type UintType = typeof(uint); + public static readonly Type BoolType = typeof(bool); + public static readonly Type CharType = typeof(char); + public static readonly Type LongType = typeof(long); + public static readonly Type UlongType = typeof(ulong); + public static readonly Type FloatType = typeof(float); + public static readonly Type DoubleType = typeof(double); + public static readonly Type DecimalType = typeof(decimal); + public static readonly Type DateTimeType = typeof(DateTime); + public static readonly Type BytesType = typeof(byte[]); + public static readonly Type DicType = typeof(IDictionary); + public static readonly Type ArrayType = typeof(Array); + public static readonly Type NullableType = typeof(Nullable<>); #pragma warning restore CS1591 // 缺少对公共可见类型或成员的 XML 注释 /// @@ -82,7 +82,7 @@ public class TouchSocketCoreUtility /// /// /// - public static bool IsURL(string input) + public static bool IsUrl(string input) { var pattern = @"^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$?"; var regex = new Regex(pattern); @@ -98,15 +98,15 @@ public class TouchSocketCoreUtility { try { - var IPs = input.Split('.'); + var iPs = input.Split('.'); var regex = new Regex(@"^\d+$"); - for (var i = 0; i < IPs.Length; i++) + for (var i = 0; i < iPs.Length; i++) { - if (!regex.IsMatch(IPs[i])) + if (!regex.IsMatch(iPs[i])) { return false; } - if (Convert.ToUInt16(IPs[i]) > 255) + if (Convert.ToUInt16(iPs[i]) > 255) { return false; } @@ -124,7 +124,7 @@ public class TouchSocketCoreUtility /// /// /// - public static bool IsIPV6(string input) + public static bool IsIpv6(string input) { var temp = input; var strs = temp.Split(':'); @@ -132,7 +132,7 @@ public class TouchSocketCoreUtility { return false; } - var count = StringExtension.HitStringCount(input, "::"); + var count = input.HitStringCount("::"); string pattern; if (count > 1) { diff --git a/src/TouchSocket.Core/Extensions/ReflectionExtension.cs b/src/TouchSocket.Core/Extensions/ReflectionExtension.cs index 0a28e1c32..acef6c498 100644 --- a/src/TouchSocket.Core/Extensions/ReflectionExtension.cs +++ b/src/TouchSocket.Core/Extensions/ReflectionExtension.cs @@ -84,7 +84,7 @@ public static class ReflectionExtension var att = propertyInfo.CustomAttributes.FirstOrDefault(a => a.AttributeType.FullName == "System.Runtime.CompilerServices.NullableAttribute"); return att != null || propertyInfo.PropertyType.IsGenericType && propertyInfo.PropertyType. GetGenericTypeDefinition().Equals - (TouchSocketCoreUtility.nullableType); + (TouchSocketCoreUtility.NullableType); } #endregion ParameterInfo @@ -116,7 +116,7 @@ public static class ReflectionExtension { var att = fieldInfo.CustomAttributes.FirstOrDefault(a => a.AttributeType.FullName == "System.Runtime.CompilerServices.NullableAttribute"); return att != null || fieldInfo.FieldType.IsGenericType && fieldInfo.FieldType.GetGenericTypeDefinition().Equals - (TouchSocketCoreUtility.nullableType); + (TouchSocketCoreUtility.NullableType); } /// diff --git a/src/TouchSocket.Core/Extensions/StringExtension.cs b/src/TouchSocket.Core/Extensions/StringExtension.cs index 9ae28500c..b83b0323f 100644 --- a/src/TouchSocket.Core/Extensions/StringExtension.cs +++ b/src/TouchSocket.Core/Extensions/StringExtension.cs @@ -26,6 +26,95 @@ namespace TouchSocket.Core; /// public static class StringExtension { + /// + /// 默认的空格字符串。 + /// + public const string DefaultSpaceString = " "; + + /// + /// 默认的空格字符串的UTF-8表示。 + /// + public static ReadOnlySpan DefaultSpaceUtf8Span => " "u8; + + /// + /// 从Base64转到数组。 + /// + /// + /// + public static byte[] ByBase64ToBytes(this string value) + { + return Convert.FromBase64String(value); + } + + /// + /// 将16进制的字符转换为数组。 + /// + /// + /// + /// + public static byte[] ByHexStringToBytes(this string hexString, string split = default) + { + if (!string.IsNullOrEmpty(split)) + { + hexString = hexString.Replace(split, string.Empty); + } + + if ((hexString.Length % 2) != 0) + { + hexString += StringExtension.DefaultSpaceString; + } + var returnBytes = new byte[hexString.Length / 2]; + for (var i = 0; i < returnBytes.Length; i++) + { + returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); + } + return returnBytes; + } + + /// + /// 将16进制的字符转换为int32。 + /// + /// + /// + public static int ByHexStringToInt32(this string hexString) + { + return string.IsNullOrEmpty(hexString) ? default : int.Parse(hexString, System.Globalization.NumberStyles.HexNumber); + } + + /// + /// 格式化字符串。 + /// + /// 要格式化的字符串。 + /// 格式化参数。 + /// 格式化后的字符串。 + public static string Format(this string str, params object[] ps) + { + return string.Format(str, ps); + } + + /// + /// 检查字符串是否具有有效值。 + /// + /// 要检查的字符串。 + /// 如果字符串不是null且非空格或制表符等,则返回true;否则返回false。 + public static bool HasValue([NotNullWhen(true)] this string str) + { + // 使用string.IsNullOrWhiteSpace方法检查字符串是否为null或包含仅空格或制表符等 + // 返回相反的结果以确定字符串是否具有有效值 + return !string.IsNullOrWhiteSpace(str); + } + + /// + /// 判断字符串compare 在 input字符串中出现的次数 + /// + /// 源字符串 + /// 用于比较的字符串 + /// 字符串compare 在 input字符串中出现的次数 + public static int HitStringCount(this string input, string compare) + { + var index = input.IndexOf(compare); + return index != -1 ? 1 + HitStringCount(input.Substring(index + compare.Length), compare) : 0; + } /// /// 检查字符串是否为空或只包含空格。 @@ -37,6 +126,15 @@ public static class StringExtension return string.IsNullOrEmpty(str); } + /// + /// 检查字符串是否为 null 或仅包含空白字符。 + /// + /// 要检查的字符串。 + /// 如果字符串为 null 或仅包含空白字符,则返回 true;否则返回 false。 + public static bool IsNullOrWhiteSpace([NotNullWhen(false)] this string str) + { + return string.IsNullOrWhiteSpace(str); + } /// /// 将输入字符串转换为有效的标识符。 @@ -62,27 +160,120 @@ public static class StringExtension return result; } - /// - /// 检查字符串是否为 null 或仅包含空白字符。 + /// 将字符转换为对应的基础类型类型。 /// - /// 要检查的字符串。 - /// 如果字符串为 null 或仅包含空白字符,则返回 true;否则返回 false。 - public static bool IsNullOrWhiteSpace([NotNullWhen(false)] this string str) + /// + /// 目标类型必须为基础类型 + /// + public static object ParseToType(this string value, Type destinationType) { - return string.IsNullOrWhiteSpace(str); + if (TryParseToType(value, destinationType, out var returnValue)) + { + return returnValue; + } + ThrowHelper.ThrowNotSupportedException(TouchSocketCoreResource.StringParseToTypeFail.Format(value, destinationType)); + return default; } /// - /// 检查字符串是否具有有效值。 + /// 移除字符串末尾指定数量的字符。 /// - /// 要检查的字符串。 - /// 如果字符串不是null且非空格或制表符等,则返回true;否则返回false。 - public static bool HasValue([NotNullWhen(true)] this string str) + /// 要处理的字符串。 + /// 要移除的字符数量。 + /// 移除末尾指定数量字符后的字符串。 + public static string RemoveLastChars(this string str, int count) { - // 使用string.IsNullOrWhiteSpace方法检查字符串是否为null或包含仅空格或制表符等 - // 返回相反的结果以确定字符串是否具有有效值 - return !string.IsNullOrWhiteSpace(str); + if (string.IsNullOrEmpty(str) || count <= 0) + { + return str; + } + + // 计算需要保留的字符长度 + + var lengthToKeep = str.Length - count; + + // 如果需要保留的长度小于0,则返回空字符串 + + if (lengthToKeep < 0) + { + return string.Empty; + } + // 返回去除末尾指定数量字符后的子串 + return str.Substring(0, lengthToKeep); + } + + /// + /// 按字符串分割 + /// + /// + /// + /// + public static string[] Split(this string str, string pattern) + { + return Regex.Split(str, pattern); + } + + /// + /// 只按第一个匹配项分割 + /// + /// + /// + /// + public static string[] SplitFirst(this string str, char split) + { + var s = new List(); + var index = str.IndexOf(split); + if (index > 0) + { + s.Add(str.Substring(0, index).Trim()); + s.Add(str.Substring(index + 1, str.Length - index - 1).Trim()); + } + + return s.ToArray(); + } + + /// + /// 只按最后一个匹配项分割 + /// + /// + /// + /// + public static string[] SplitLast(this string str, char split) + { + var s = new List(); + var index = str.LastIndexOf(split); + if (index > 0) + { + s.Add(str.Substring(0, index).Trim()); + s.Add(str.Substring(index + 1, str.Length - index - 1).Trim()); + } + + return s.ToArray(); + } + + /// + /// 转换为SHA1。 + /// + /// + /// + /// + public static byte[] ToSha1(this string value, Encoding encoding) + { + using (var sha1 = SHA1.Create()) + { + return sha1.ComputeHash(encoding.GetBytes(value)); + } + } + + /// + /// 转换为UTF-8数据,效果等于 + /// + /// + /// + public static byte[] ToUtf8Bytes(this string value) + { + return Encoding.UTF8.GetBytes(value); } /// @@ -210,193 +401,4 @@ public static class StringExtension return false; } } - - /// - /// 判断字符串compare 在 input字符串中出现的次数 - /// - /// 源字符串 - /// 用于比较的字符串 - /// 字符串compare 在 input字符串中出现的次数 - public static int HitStringCount(this string input, string compare) - { - var index = input.IndexOf(compare); - return index != -1 ? 1 + HitStringCount(input.Substring(index + compare.Length), compare) : 0; - } - - /// - /// 将字符转换为对应的基础类型类型。 - /// - /// - /// 目标类型必须为基础类型 - /// - public static object ParseToType(this string value, Type destinationType) - { - if (TryParseToType(value, destinationType, out var returnValue)) - { - return returnValue; - } - ThrowHelper.ThrowNotSupportedException(TouchSocketCoreResource.StringParseToTypeFail.Format(value, destinationType)); - return default; - } - - /// - /// 只按第一个匹配项分割 - /// - /// - /// - /// - public static string[] SplitFirst(this string str, char split) - { - var s = new List(); - var index = str.IndexOf(split); - if (index > 0) - { - s.Add(str.Substring(0, index).Trim()); - s.Add(str.Substring(index + 1, str.Length - index - 1).Trim()); - } - - return s.ToArray(); - } - - /// - /// 按字符串分割 - /// - /// - /// - /// - public static string[] Split(this string str, string pattern) - { - return Regex.Split(str, pattern); - } - - /// - /// 只按最后一个匹配项分割 - /// - /// - /// - /// - public static string[] SplitLast(this string str, char split) - { - var s = new List(); - var index = str.LastIndexOf(split); - if (index > 0) - { - s.Add(str.Substring(0, index).Trim()); - s.Add(str.Substring(index + 1, str.Length - index - 1).Trim()); - } - - return s.ToArray(); - } - - /// - /// 格式化字符串。 - /// - /// 要格式化的字符串。 - /// 格式化参数。 - /// 格式化后的字符串。 - public static string Format(this string str, params object[] ps) - { - - return string.Format(str, ps); - - } - - - /// - /// 移除字符串末尾指定数量的字符。 - /// - /// 要处理的字符串。 - /// 要移除的字符数量。 - /// 移除末尾指定数量字符后的字符串。 - public static string RemoveLastChars(this string str, int count) - { - if (string.IsNullOrEmpty(str) || count <= 0) - { - return str; - } - - // 计算需要保留的字符长度 - - var lengthToKeep = str.Length - count; - - // 如果需要保留的长度小于0,则返回空字符串 - - if (lengthToKeep < 0) - { - return string.Empty; - } - // 返回去除末尾指定数量字符后的子串 - return str.Substring(0, lengthToKeep); - - } - - - /// - /// 转换为SHA1。 - /// - /// - /// - /// - public static byte[] ToSha1(this string value, Encoding encoding) - { - using (var sha1 = SHA1.Create()) - { - return sha1.ComputeHash(encoding.GetBytes(value)); - } - } - - /// - /// 转换为UTF-8数据,效果等于 - /// - /// - /// - public static byte[] ToUTF8Bytes(this string value) - { - return Encoding.UTF8.GetBytes(value); - } - - /// - /// 将16进制的字符转换为数组。 - /// - /// - /// - /// - public static byte[] ByHexStringToBytes(this string hexString, string split = default) - { - if (!string.IsNullOrEmpty(split)) - { - hexString = hexString.Replace(split, string.Empty); - } - - if ((hexString.Length % 2) != 0) - { - hexString += " "; - } - var returnBytes = new byte[hexString.Length / 2]; - for (var i = 0; i < returnBytes.Length; i++) - { - returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); - } - return returnBytes; - } - - /// - /// 将16进制的字符转换为int32。 - /// - /// - /// - public static int ByHexStringToInt32(this string hexString) - { - return string.IsNullOrEmpty(hexString) ? default : int.Parse(hexString, System.Globalization.NumberStyles.HexNumber); - } - - /// - /// 从Base64转到数组。 - /// - /// - /// - public static byte[] ByBase64ToBytes(this string value) - { - return Convert.FromBase64String(value); - } } \ No newline at end of file diff --git a/src/TouchSocket.Core/Extensions/SystemExtension.cs b/src/TouchSocket.Core/Extensions/SystemExtension.cs index dd857e1e2..e1d0c662a 100644 --- a/src/TouchSocket.Core/Extensions/SystemExtension.cs +++ b/src/TouchSocket.Core/Extensions/SystemExtension.cs @@ -510,7 +510,7 @@ public static class SystemExtension /// public static bool IsDictionary(this Type type) { - return TouchSocketCoreUtility.dicType.IsAssignableFrom(type); + return TouchSocketCoreUtility.DicType.IsAssignableFrom(type); } /// @@ -573,7 +573,7 @@ public static class SystemExtension { return (type.IsGenericType && type. GetGenericTypeDefinition().Equals - (TouchSocketCoreUtility.nullableType)); + (TouchSocketCoreUtility.NullableType)); } /// diff --git a/src/TouchSocket.Core/IO/FileUtility.cs b/src/TouchSocket.Core/IO/FileUtility.cs index defa25266..21989fb8b 100644 --- a/src/TouchSocket.Core/IO/FileUtility.cs +++ b/src/TouchSocket.Core/IO/FileUtility.cs @@ -24,27 +24,15 @@ namespace TouchSocket.Core; public static partial class FileUtility { /// - /// 获取不重复文件名。 - /// 例如:New.txt已存在时,会返回New(1).txt + /// 删除路径文件 /// - /// - /// - public static string GetDuplicateFileName(string fileName) + /// + public static void Delete(string path) { - if (!File.Exists(fileName)) + if (File.Exists(path)) { - return fileName; - } - - var index = 0; - while (true) - { - index++; - var newPath = Path.Combine(Path.GetDirectoryName(fileName), $"{Path.GetFileNameWithoutExtension(fileName)}({index}){Path.GetExtension(fileName)}"); - if (!File.Exists(newPath)) - { - return newPath; - } + File.SetAttributes(path, FileAttributes.Normal); + File.Delete(path); } } @@ -74,86 +62,28 @@ public static partial class FileUtility } /// - /// 转化为文件大小的字符串,类似10B,10Kb,10Mb,10Gb。 + /// 获取不重复文件名。 + /// 例如:New.txt已存在时,会返回New(1).txt /// - /// + /// /// - public static string ToFileLengthString(long length) + public static string GetDuplicateFileName(string fileName) { - return length < 1024 - ? $"{length}B" - : length < 1024 * 1024 - ? $"{(length / 1024.0).ToString("0.00")}Kb" - : length < 1024 * 1024 * 1024 - ? $"{(length / (1024.0 * 1024)).ToString("0.00")}Mb" - : $"{(length / (1024.0 * 1024 * 1024)).ToString("0.00")}Gb"; - } - - /// - /// 获取文件MD5 - /// - /// - /// - public static string GetFileMD5(string path) - { - using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)) + if (!File.Exists(fileName)) { - return GetStreamMD5(fileStream); + return fileName; } - } - /// - /// 获取流MD5 - /// - /// - /// - public static string GetStreamMD5(Stream fileStream) - { - using (HashAlgorithm hash = System.Security.Cryptography.MD5.Create()) + var index = 0; + while (true) { - return GetStreamHash(fileStream, hash); - } - } - - /// - /// 获得文件Hash值 - /// - /// 文件路径 - /// - public static string GetFileHash256(string filePath) - { - try - { - HashAlgorithm hash = SHA256.Create(); - using (var fileStream = File.OpenRead(filePath)) + index++; + var newPath = Path.Combine(Path.GetDirectoryName(fileName), $"{Path.GetFileNameWithoutExtension(fileName)}({index}){Path.GetExtension(fileName)}"); + if (!File.Exists(newPath)) { - var HashValue = hash.ComputeHash(fileStream); - return BitConverter.ToString(HashValue).Replace("-", ""); + return newPath; } } - catch - { - return null; - } - } - - /// - /// 获得流Hash值 - /// - /// - /// - public static string GetStreamHash256(Stream stream) - { - try - { - HashAlgorithm hash = SHA256.Create(); - var HashValue = hash.ComputeHash(stream); - return BitConverter.ToString(HashValue).Replace("-", ""); - } - catch - { - return null; - } } /// @@ -168,8 +98,8 @@ public static partial class FileUtility { using (var fileStream = File.OpenRead(filePath)) { - var HashValue = hash.ComputeHash(fileStream); - return BitConverter.ToString(HashValue).Replace("-", ""); + var hashValue = hash.ComputeHash(fileStream); + return BitConverter.ToString(hashValue).Replace("-", ""); } } catch @@ -179,17 +109,20 @@ public static partial class FileUtility } /// - /// 获得流Hash值 + /// 获得文件Hash值 /// - /// - /// + /// 文件路径 /// - public static string GetStreamHash(Stream stream, HashAlgorithm hash) + public static string GetFileHash256(string filePath) { try { - var HashValue = hash.ComputeHash(stream); - return BitConverter.ToString(HashValue).Replace("-", ""); + HashAlgorithm hash = SHA256.Create(); + using (var fileStream = File.OpenRead(filePath)) + { + var hashValue = hash.ComputeHash(fileStream); + return BitConverter.ToString(hashValue).Replace("-", ""); + } } catch { @@ -197,6 +130,19 @@ public static partial class FileUtility } } + /// + /// 获取文件MD5 + /// + /// + /// + public static string GetFileMd5(string path) + { + using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)) + { + return GetStreamMd5(fileStream); + } + } + /// /// 获取仅当前文件夹中包含的文件名称,不含全路径。 /// @@ -248,31 +194,55 @@ public static partial class FileUtility } /// - /// 删除路径文件 + /// 获得流Hash值 /// - /// - public static void Delete(string path) + /// + /// + /// + public static string GetStreamHash(Stream stream, HashAlgorithm hash) { - if (File.Exists(path)) + try { - File.SetAttributes(path, FileAttributes.Normal); - File.Delete(path); + var hashValue = hash.ComputeHash(stream); + return BitConverter.ToString(hashValue).Replace("-", ""); + } + catch + { + return null; } } /// - /// 路径格式化。 + /// 获得流Hash值 /// - /// - /// 此操作会把路径中的所有反斜杠替换为正斜杠。例如:C:\\a.txt替换为C:/a.txt - /// - /// + /// /// - public static string PathFormat(string pathString) + public static string GetStreamHash256(Stream stream) { - return pathString.Replace('\\', Path.DirectorySeparatorChar); + try + { + HashAlgorithm hash = SHA256.Create(); + var hashValue = hash.ComputeHash(stream); + return BitConverter.ToString(hashValue).Replace("-", ""); + } + catch + { + return null; + } } + /// + /// 获取流MD5 + /// + /// + /// + public static string GetStreamMd5(Stream fileStream) + { + using (HashAlgorithm hash = System.Security.Cryptography.MD5.Create()) + { + return GetStreamHash(fileStream, hash); + } + } /// /// 判断该路径是否为文件夹 @@ -290,9 +260,57 @@ public static partial class FileUtility } catch (Exception) { - } return false; } + /// + /// 路径格式化。 + /// + /// + /// 此操作会把路径中的所有反斜杠替换为正斜杠。例如:C:\\a.txt替换为C:/a.txt + /// + /// + /// + public static string PathFormat(string pathString) + { + return pathString.Replace('\\', Path.AltDirectorySeparatorChar); + //return pathString.Replace('\\', Path.PathSeparator); + } + + /// + /// 转化为文件大小的字符串,类似10B,10Kb,10Mb,10Gb。 + /// + /// + /// + public static string ToFileLengthString(long length) + { + const decimal kb = 1024; + const decimal mb = 1024 * kb; + const decimal gb = 1024 * mb; + const decimal tb = 1024 * gb; + const decimal pb = 1024 * tb; + + if (length < kb) + { + return $"{length}B"; + } + if (length < mb) + { + return $"{(length / kb):F2}Kb"; + } + if (length < gb) + { + return $"{(length / mb):F2}Mb"; + } + if (length < tb) + { + return $"{(length / gb):F2}Gb"; + } + if (length < pb) + { + return $"{(length / tb):F2}Tb"; + } + return $"{(length / pb):F2}Pb"; + } } \ No newline at end of file diff --git a/src/TouchSocket.Core/Mapper/Mapper.cs b/src/TouchSocket.Core/Mapper/Mapper.cs index 3c53d6c4a..72ab57322 100644 --- a/src/TouchSocket.Core/Mapper/Mapper.cs +++ b/src/TouchSocket.Core/Mapper/Mapper.cs @@ -99,7 +99,7 @@ public static partial class Mapper return default; } var sourceType = source.GetType(); - if (sourceType.IsPrimitive || sourceType.IsEnum || sourceType == TouchSocketCoreUtility.stringType) + if (sourceType.IsPrimitive || sourceType.IsEnum || sourceType == TouchSocketCoreUtility.StringType) { return source; } diff --git a/src/TouchSocket.Core/Resources/TouchSocketCoreResource.Designer.cs b/src/TouchSocket.Core/Resources/TouchSocketCoreResource.Designer.cs index b861fd5ba..1cd1ae9a7 100644 --- a/src/TouchSocket.Core/Resources/TouchSocketCoreResource.Designer.cs +++ b/src/TouchSocket.Core/Resources/TouchSocketCoreResource.Designer.cs @@ -1,13 +1,11 @@ -//------------------------------------------------------------------------------ -// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 -// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 -// CSDN博客:https://blog.csdn.net/qq_40374647 -// 哔哩哔哩视频:https://space.bilibili.com/94253567 -// Gitee源代码仓库:https://gitee.com/RRQM_Home -// Github源代码仓库:https://github.com/RRQM -// API首页:https://touchsocket.net/ -// 交流QQ群:234762506 -// 感谢您的下载和使用 +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// //------------------------------------------------------------------------------ namespace TouchSocket.Resources { @@ -63,7 +61,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 此适配器已被其他终端使用,请重新创建对象。 的本地化字符串。 + /// 查找类似 This adapter is already in use by another terminal, please create a new object. 的本地化字符串。 /// public static string AdapterAlreadyUsed { get { @@ -72,7 +70,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 参数‘{0}’为空。 的本地化字符串。 + /// 查找类似 The parameter '{0}' is empty. 的本地化字符串。 /// public static string ArgumentIsNull { get { @@ -81,7 +79,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 当前读取器不允许读取。 的本地化字符串。 + /// 查找类似 The current byteBlock does not allow reading. 的本地化字符串。 /// public static string BlockReaderNotAllowReading { get { @@ -90,7 +88,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 配置文件为空。 的本地化字符串。 + /// 查找类似 The config is empty. 的本地化字符串。 /// public static string ConfigIsNull { get { @@ -99,7 +97,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 默认情况。 的本地化字符串。 + /// 查找类似 Default situation. 的本地化字符串。 /// public static string Default { get { @@ -108,7 +106,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 发生异常,信息:‘{0}’。 的本地化字符串。 + /// 查找类似 An exception occurred with the message '{0}'. 的本地化字符串。 /// public static string ExceptionOccurred { get { @@ -117,7 +115,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 文件‘{0}’不存在。 的本地化字符串。 + /// 查找类似 The file '{0}' does not exist. 的本地化字符串。 /// public static string FileNotExists { get { @@ -126,7 +124,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 该路径’{0}‘的文件已经被加载为仅写入模式。 的本地化字符串。 + /// 查找类似 The file at path '{0}' has been loaded in write only mode. 的本地化字符串。 /// public static string FileOnlyWrittenTo { get { @@ -135,7 +133,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 该路径’{0}‘的文件已经被加载为仅读取模式。 的本地化字符串。 + /// 查找类似 The file at path '{0}' has been loaded in read only mode. 的本地化字符串。 /// public static string FileReadOnly { get { @@ -144,7 +142,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 对于枚举类型:‘{0}’,设置了无效的枚举值‘{1}’。 的本地化字符串。 + /// 查找类似 For enumeration type: '{0}', an invalid enumeration value '{1}' was set. 的本地化字符串。 /// public static string InvalidEnum { get { @@ -153,7 +151,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 参数‘{0}’的值是无效参数。 的本地化字符串。 + /// 查找类似 The value of parameter '{0}' is an invalid parameter. 的本地化字符串。 /// public static string InvalidParameter { get { @@ -162,7 +160,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 应为由数组支持的缓冲区。 的本地化字符串。 + /// 查找类似 Buffer backed by array was expected. 的本地化字符串。 /// public static string MemoryGetArrayFail { get { @@ -171,7 +169,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 Token消息为‘{0}’的未注册。 的本地化字符串。 + /// 查找类似 The token message with '{0}' is not registered. 的本地化字符串。 /// public static string MessageNotFound { get { @@ -180,7 +178,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 没有找到类型‘{0}’的公共构造函数。 的本地化字符串。 + /// 查找类似 No public constructor found for type '{0}'. 的本地化字符串。 /// public static string NotFindPublicConstructor { get { @@ -189,7 +187,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 类型为’{0}‘,HashCode为’{1}‘的对象实例已被释放。 的本地化字符串。 + /// 查找类似 The object instance with type '{0}' and HashCode '{1}' has been released. 的本地化字符串。 /// public static string ObjectDisposed { get { @@ -198,7 +196,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 操作已被取消。 的本地化字符串。 + /// 查找类似 The operation has been canceled. 的本地化字符串。 /// public static string OperationCanceled { get { @@ -207,7 +205,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 操作超时。 的本地化字符串。 + /// 查找类似 Operation timed out. 的本地化字符串。 /// public static string OperationOvertime { get { @@ -216,7 +214,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 操作成功。 的本地化字符串。 + /// 查找类似 Operation successful. 的本地化字符串。 /// public static string OperationSuccessful { get { @@ -225,7 +223,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 插件‘{0}’为null,它可能在容器中缺少注册信息。 的本地化字符串。 + /// 查找类似 Plugin '{0}' is null, it may be missing registration information in the container. 的本地化字符串。 /// public static string PluginIsNull { get { @@ -234,7 +232,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 类型:{0},信息:{1} 的本地化字符串。 + /// 查找类似 Type: {0}, Information: {1} 的本地化字符串。 /// public static string ResultToString { get { @@ -243,7 +241,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 没有找到路径‘{0}’对应的流文件。 的本地化字符串。 + /// 查找类似 No stream file corresponding to path '{0}' was found. 的本地化字符串。 /// public static string StreamNotFind { get { @@ -252,7 +250,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 路径‘{0}’对应的流文件,仍然被‘{1}’对象应用。 的本地化字符串。 + /// 查找类似 The stream file corresponding to path '{0}' is still being applied by the '{1}' object. 的本地化字符串。 /// public static string StreamReferencing { get { @@ -261,7 +259,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 无法将字符串’{0}‘转为类型’{1}‘。 的本地化字符串。 + /// 查找类似 Unable to convert string '{0}' to type '{1}'. 的本地化字符串。 /// public static string StringParseToTypeFail { get { @@ -270,7 +268,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 Token消息为‘{0}’的已注册。 的本地化字符串。 + /// 查找类似 The token message with '{0}' has been registered. 的本地化字符串。 /// public static string TokenExisted { get { @@ -279,7 +277,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 未知错误。 的本地化字符串。 + /// 查找类似 Unknown error. 的本地化字符串。 /// public static string UnknownError { get { @@ -288,7 +286,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 无法创建未被注册的类型‘{0}’的实例。 的本地化字符串。 + /// 查找类似 Unable to create an instance of unregistered type '{0}'. 的本地化字符串。 /// public static string UnregisteredType { get { @@ -297,7 +295,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 参数‘{0}’的值为’{1}‘,超出‘{2}’到‘{3}’的范围。 的本地化字符串。 + /// 查找类似 The value of parameter '{0}' is' {1} ', which is outside the range of' {2} 'to' {3} '. 的本地化字符串。 /// public static string ValueBetweenAnd { get { @@ -306,7 +304,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 参数‘{0}’的值为’{1}‘,小于‘{2}’。 的本地化字符串。 + /// 查找类似 The value of parameter '{0}' is' {1} ', which is less than' {2} '. 的本地化字符串。 /// public static string ValueLessThan { get { @@ -315,7 +313,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 参数‘{0}’的值为’{1}‘,大于‘{2}’。 的本地化字符串。 + /// 查找类似 The value of parameter '{0}' is' {1} ', which is greater than' {2} '. 的本地化字符串。 /// public static string ValueMoreThan { get { @@ -323,4 +321,4 @@ namespace TouchSocket.Resources { } } } -} \ No newline at end of file +} diff --git a/src/TouchSocket.Core/Resources/TouchSocketCoreResource.en-US.resx b/src/TouchSocket.Core/Resources/TouchSocketCoreResource.en-US.resx deleted file mode 100644 index 83f44759d..000000000 --- a/src/TouchSocket.Core/Resources/TouchSocketCoreResource.en-US.resx +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Unknown error. - - - Operation successful. - - - Operation timed out. - - - The operation has been canceled. - - - An exception occurred with the message '{0}'. - - - The token message with '{0}' has been registered. - - - The token message with '{0}' is not registered. - - - Unable to create an instance of unregistered type '{0}'. - - - No public constructor found for type '{0}'. - - - The stream file corresponding to path '{0}' is still being applied by the '{1}' object. - - - No stream file corresponding to path '{0}' was found. - - - The file '{0}' does not exist. - - - Default situation. - - - Type: {0}, Information: {1} - - - The parameter '{0}' is empty. - - - Buffer backed by array was expected. - - - The config is empty. - - - The value of parameter '{0}' is an invalid parameter. - - - The value of parameter '{0}' is' {1} ', which is less than' {2} '. - - - The value of parameter '{0}' is' {1} ', which is outside the range of' {2} 'to' {3} '. - - - This adapter is already in use by another terminal, please create a new object. - - - Unable to convert string '{0}' to type '{1}'. - - - The file at path '{0}' has been loaded in write only mode. - - - The file at path '{0}' has been loaded in read only mode. - - - The object instance with type '{0}' and HashCode '{1}' has been released. - - - The current byteBlock does not allow reading. - - - The value of parameter '{0}' is' {1} ', which is greater than' {2} '. - - - For enumeration type: '{0}', an invalid enumeration value '{1}' was set. - - - Plugin '{0}' is null, it may be missing registration information in the container. - - \ No newline at end of file diff --git a/src/TouchSocket.Core/Resources/TouchSocketCoreResource.resx b/src/TouchSocket.Core/Resources/TouchSocketCoreResource.resx index 4e9f7cfd0..83f44759d 100644 --- a/src/TouchSocket.Core/Resources/TouchSocketCoreResource.resx +++ b/src/TouchSocket.Core/Resources/TouchSocketCoreResource.resx @@ -1,96 +1,76 @@  + Version 1.3 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + text/microsoft-resx + 1.3 + System.Resources.ResXResourceReader, System.Windows.Forms, ... + System.Resources.ResXResourceWriter, System.Windows.Forms, ... + this is my long string + Blue + + [base64 mime encoded serialized .NET Framework object] + + + [base64 mime encoded string representing a byte array form of the .NET Framework object] + + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the byteBlock can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> - - - - - - - - - - - - - - - - - - - + - @@ -109,128 +89,99 @@ text/microsoft-resx - 2.0 + 1.3 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 未知错误。 - 未知错误。 + Unknown error. - 操作成功。 - 操作成功。 + Operation successful. - 操作超时。 - 操作超时。 + Operation timed out. - 操作已被取消。 - 操作已被取消。 + The operation has been canceled. - 发生异常,信息:‘{0}’。 - 发生异常,信息:‘{0}’。 + An exception occurred with the message '{0}'. - Token消息为‘{0}’的已注册。 - Token消息为‘{0}’的已注册。 + The token message with '{0}' has been registered. - Token消息为‘{0}’的未注册。 - Token消息为‘{0}’的未注册。 + The token message with '{0}' is not registered. - 无法创建未被注册的类型‘{0}’的实例。 - 无法创建未被注册的类型‘{0}’的实例。 + Unable to create an instance of unregistered type '{0}'. - 没有找到类型‘{0}’的公共构造函数。 - 没有找到类型‘{0}’的公共构造函数。 + No public constructor found for type '{0}'. - 路径‘{0}’对应的流文件,仍然被‘{1}’对象应用。 - 路径‘{0}’对应的流文件,仍然被‘{1}’对象应用。 + The stream file corresponding to path '{0}' is still being applied by the '{1}' object. - 没有找到路径‘{0}’对应的流文件。 - 没有找到路径‘{0}’对应的流文件。 + No stream file corresponding to path '{0}' was found. - 文件‘{0}’不存在。 - 文件‘{0}’不存在。 + The file '{0}' does not exist. - 默认情况。 - 默认情况。 + Default situation. - 类型:{0},信息:{1} - Result结果ToString + Type: {0}, Information: {1} - 参数‘{0}’为空。 - 参数‘{0}’为空。 - - - 配置文件为空。 - 配置文件为空。 - - - 参数‘{0}’的值是无效参数。 - 参数‘{0}’的值是无效参数。 - - - 参数‘{0}’的值为’{1}‘,小于‘{2}’。 - 参数‘{0}’的值为’{1}‘,小于‘{2}’。 - - - 参数‘{0}’的值为’{1}‘,超出‘{2}’到‘{3}’的范围。 - 参数‘{0}’的值为’{1}‘,超出‘{2}’到‘{3}’的范围。 - - - 参数‘{0}’的值为’{1}‘,大于‘{2}’。 - 参数‘{0}’的值为’{1}‘,大于‘{2}’。 - - - 此适配器已被其他终端使用,请重新创建对象。 - 此适配器已被其他终端使用,请重新创建对象。 - - - 无法将字符串’{0}‘转为类型’{1}‘。 - 无法将字符串’{0}‘转为类型’{1}‘。 + The parameter '{0}' is empty. - 应为由数组支持的缓冲区。 - 应为由数组支持的缓冲区。 + Buffer backed by array was expected. + + + The config is empty. + + + The value of parameter '{0}' is an invalid parameter. + + + The value of parameter '{0}' is' {1} ', which is less than' {2} '. + + + The value of parameter '{0}' is' {1} ', which is outside the range of' {2} 'to' {3} '. + + + This adapter is already in use by another terminal, please create a new object. + + + Unable to convert string '{0}' to type '{1}'. - 该路径’{0}‘的文件已经被加载为仅写入模式。 - 该路径’{0}‘的文件已经被加载为仅写入模式。 + The file at path '{0}' has been loaded in write only mode. - 该路径’{0}‘的文件已经被加载为仅读取模式。 - 该路径’{0}‘的文件已经被加载为仅读取模式。 + The file at path '{0}' has been loaded in read only mode. - 类型为’{0}‘,HashCode为’{1}‘的对象实例已被释放。 - 类型为’{0}‘,HashCode为’{1}‘的对象实例已被释放。 + The object instance with type '{0}' and HashCode '{1}' has been released. - 当前读取器不允许读取。 - 当前读取器不允许读取。 + The current byteBlock does not allow reading. + + + The value of parameter '{0}' is' {1} ', which is greater than' {2} '. - 对于枚举类型:‘{0}’,设置了无效的枚举值‘{1}’。 - 对于枚举类型:‘{0}’,设置了无效的枚举值‘{1}’。 + For enumeration type: '{0}', an invalid enumeration value '{1}' was set. - 插件‘{0}’为null,它可能在容器中缺少注册信息。 - 插件‘{0}’为null,它可能在容器中缺少注册信息。 + Plugin '{0}' is null, it may be missing registration information in the container. \ No newline at end of file diff --git a/src/TouchSocket.Core/Resources/TouchSocketCoreResource.zh-CN.resx b/src/TouchSocket.Core/Resources/TouchSocketCoreResource.zh-CN.resx new file mode 100644 index 000000000..4e9f7cfd0 --- /dev/null +++ b/src/TouchSocket.Core/Resources/TouchSocketCoreResource.zh-CN.resx @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 未知错误。 + 未知错误。 + + + 操作成功。 + 操作成功。 + + + 操作超时。 + 操作超时。 + + + 操作已被取消。 + 操作已被取消。 + + + 发生异常,信息:‘{0}’。 + 发生异常,信息:‘{0}’。 + + + Token消息为‘{0}’的已注册。 + Token消息为‘{0}’的已注册。 + + + Token消息为‘{0}’的未注册。 + Token消息为‘{0}’的未注册。 + + + 无法创建未被注册的类型‘{0}’的实例。 + 无法创建未被注册的类型‘{0}’的实例。 + + + 没有找到类型‘{0}’的公共构造函数。 + 没有找到类型‘{0}’的公共构造函数。 + + + 路径‘{0}’对应的流文件,仍然被‘{1}’对象应用。 + 路径‘{0}’对应的流文件,仍然被‘{1}’对象应用。 + + + 没有找到路径‘{0}’对应的流文件。 + 没有找到路径‘{0}’对应的流文件。 + + + 文件‘{0}’不存在。 + 文件‘{0}’不存在。 + + + 默认情况。 + 默认情况。 + + + 类型:{0},信息:{1} + Result结果ToString + + + 参数‘{0}’为空。 + 参数‘{0}’为空。 + + + 配置文件为空。 + 配置文件为空。 + + + 参数‘{0}’的值是无效参数。 + 参数‘{0}’的值是无效参数。 + + + 参数‘{0}’的值为’{1}‘,小于‘{2}’。 + 参数‘{0}’的值为’{1}‘,小于‘{2}’。 + + + 参数‘{0}’的值为’{1}‘,超出‘{2}’到‘{3}’的范围。 + 参数‘{0}’的值为’{1}‘,超出‘{2}’到‘{3}’的范围。 + + + 参数‘{0}’的值为’{1}‘,大于‘{2}’。 + 参数‘{0}’的值为’{1}‘,大于‘{2}’。 + + + 此适配器已被其他终端使用,请重新创建对象。 + 此适配器已被其他终端使用,请重新创建对象。 + + + 无法将字符串’{0}‘转为类型’{1}‘。 + 无法将字符串’{0}‘转为类型’{1}‘。 + + + 应为由数组支持的缓冲区。 + 应为由数组支持的缓冲区。 + + + 该路径’{0}‘的文件已经被加载为仅写入模式。 + 该路径’{0}‘的文件已经被加载为仅写入模式。 + + + 该路径’{0}‘的文件已经被加载为仅读取模式。 + 该路径’{0}‘的文件已经被加载为仅读取模式。 + + + 类型为’{0}‘,HashCode为’{1}‘的对象实例已被释放。 + 类型为’{0}‘,HashCode为’{1}‘的对象实例已被释放。 + + + 当前读取器不允许读取。 + 当前读取器不允许读取。 + + + 对于枚举类型:‘{0}’,设置了无效的枚举值‘{1}’。 + 对于枚举类型:‘{0}’,设置了无效的枚举值‘{1}’。 + + + 插件‘{0}’为null,它可能在容器中缺少注册信息。 + 插件‘{0}’为null,它可能在容器中缺少注册信息。 + + \ No newline at end of file diff --git a/src/TouchSocket.Core/Serialization/FastBinary/SerializObject.cs b/src/TouchSocket.Core/Serialization/FastBinary/SerializObject.cs index 1ef3cec50..92b6c5403 100644 --- a/src/TouchSocket.Core/Serialization/FastBinary/SerializObject.cs +++ b/src/TouchSocket.Core/Serialization/FastBinary/SerializObject.cs @@ -74,7 +74,7 @@ public sealed class SerializObject break; } genericType = genericType.BaseType; - if (genericType == TouchSocketCoreUtility.objType) + if (genericType == TouchSocketCoreUtility.ObjType) { break; } @@ -93,7 +93,7 @@ public sealed class SerializObject break; } genericType = genericType.BaseType; - if (genericType == TouchSocketCoreUtility.objType) + if (genericType == TouchSocketCoreUtility.ObjType) { break; } diff --git a/src/TouchSocket.Core/Serialization/SerializeConvert.cs b/src/TouchSocket.Core/Serialization/SerializeConvert.cs index 88ac0445e..94cac1550 100644 --- a/src/TouchSocket.Core/Serialization/SerializeConvert.cs +++ b/src/TouchSocket.Core/Serialization/SerializeConvert.cs @@ -442,7 +442,7 @@ public static partial class SerializeConvert /// public static byte[] JsonSerializeToBytes(object obj) { - return ToJsonString(obj).ToUTF8Bytes(); + return ToJsonString(obj).ToUtf8Bytes(); } /// diff --git a/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonBytesToClassSerializerFormatter.cs b/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonBytesToClassSerializerFormatter.cs index ab3b99e1e..17dfb0947 100644 --- a/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonBytesToClassSerializerFormatter.cs +++ b/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonBytesToClassSerializerFormatter.cs @@ -54,7 +54,7 @@ public class JsonBytesToClassSerializerFormatter : ISerializerFormatter< { try { - source = JsonConvert.SerializeObject(target, this.JsonSettings).ToUTF8Bytes(); + source = JsonConvert.SerializeObject(target, this.JsonSettings).ToUtf8Bytes(); return true; } catch (Exception) diff --git a/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonMemoryToClassSerializerFormatter.cs b/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonMemoryToClassSerializerFormatter.cs index 6368d6d20..ee2c23569 100644 --- a/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonMemoryToClassSerializerFormatter.cs +++ b/src/TouchSocket.Core/Serialization/SerializerFormatter/JsonMemoryToClassSerializerFormatter.cs @@ -51,7 +51,7 @@ public class JsonMemoryToClassSerializerFormatter : ISerializerFormatter { try { - source = JsonConvert.SerializeObject(target, this.JsonSettings).ToUTF8Bytes(); + source = JsonConvert.SerializeObject(target, this.JsonSettings).ToUtf8Bytes(); return true; } catch (Exception) diff --git a/src/TouchSocket.Core/TouchSocket.Core.csproj b/src/TouchSocket.Core/TouchSocket.Core.csproj index 5e0b45bf5..a604337ad 100644 --- a/src/TouchSocket.Core/TouchSocket.Core.csproj +++ b/src/TouchSocket.Core/TouchSocket.Core.csproj @@ -58,11 +58,11 @@ - - True - True - TouchSocketCoreResource.resx - + + True + True + TouchSocketCoreResource.resx + diff --git a/src/TouchSocket.Dmtp/Actor/DmtpActor.cs b/src/TouchSocket.Dmtp/Actor/DmtpActor.cs index c4d63c60d..7fccd4b29 100644 --- a/src/TouchSocket.Dmtp/Actor/DmtpActor.cs +++ b/src/TouchSocket.Dmtp/Actor/DmtpActor.cs @@ -764,7 +764,7 @@ public abstract class DmtpActor : DependencyObject, IDmtpActor #if SystemTextJson var bytes = System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(obj, typeof(T), TouchSokcetDmtpSourceGenerationContext.Default); #else - var bytes = JsonConvert.SerializeObject(obj).ToUTF8Bytes(); + var bytes = JsonConvert.SerializeObject(obj).ToUtf8Bytes(); #endif return this.SendAsync(protocol, bytes); diff --git a/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.Designer.cs b/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.Designer.cs index 6a8463542..98be341c8 100644 --- a/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.Designer.cs +++ b/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.Designer.cs @@ -1,13 +1,11 @@ -//------------------------------------------------------------------------------ -// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 -// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 -// CSDN博客:https://blog.csdn.net/qq_40374647 -// 哔哩哔哩视频:https://space.bilibili.com/94253567 -// Gitee源代码仓库:https://gitee.com/RRQM_Home -// Github源代码仓库:https://github.com/RRQM -// API首页:https://touchsocket.net/ -// 交流QQ群:234762506 -// 感谢您的下载和使用 +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// //------------------------------------------------------------------------------ namespace TouchSocket.Resources { @@ -63,7 +61,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 Id为{0}的通道已存在。 的本地化字符串。 + /// 查找类似 The channel with ID {0} already exists. 的本地化字符串。 /// public static string ChannelExisted { get { @@ -72,7 +70,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 从‘{0}’创建写入流失败,信息:{1}。 的本地化字符串。 + /// 查找类似 Failed to create write stream from '{0}', information: {1}. 的本地化字符串。 /// public static string CreateWriteStreamFail { get { @@ -81,7 +79,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 目录‘{0}’已存在。 的本地化字符串。 + /// 查找类似 The directory '{0}' already exists. 的本地化字符串。 /// public static string DirectoryExisted { get { @@ -90,7 +88,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 目录‘{0}’不存在。 的本地化字符串。 + /// 查找类似 The directory '{0}' does not exist. 的本地化字符串。 /// public static string DirectoryNotExists { get { @@ -99,7 +97,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 DmtpFileTransferActor为空,可能需要启用DmtpFileTransfer插件。 的本地化字符串。 + /// 查找类似 DmtpFileTransferActor is empty, it may be necessary to enable the DmtpFileTransfer plugin. 的本地化字符串。 /// public static string DmtpFileTransferActorNull { get { @@ -108,7 +106,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 DmtpRpcActor为空,可能需要启用DmtpRpc插件。 的本地化字符串。 + /// 查找类似 DmtpRpcActor is empty, it may be necessary to enable the DmtpRpc plugin. 的本地化字符串。 /// public static string DmtpRpcActorArgumentNull { get { @@ -117,7 +115,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 文件‘{0}’已存在。 的本地化字符串。 + /// 查找类似 The file '{0}' already exists. 的本地化字符串。 /// public static string FileExisted { get { @@ -126,7 +124,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 文件长度太长。 的本地化字符串。 + /// 查找类似 The file length is too long. 的本地化字符串。 /// public static string FileLengthTooLong { get { @@ -135,7 +133,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 文件‘{0}’不存在。 的本地化字符串。 + /// 查找类似 The file '{0}' does not exist. 的本地化字符串。 /// public static string FileNotExists { get { @@ -144,7 +142,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 事件操作器异常。 的本地化字符串。 + /// 查找类似 Event operator exception. 的本地化字符串。 /// public static string GetEventArgsFail { get { @@ -153,7 +151,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 还有{0}个资源没有完成。 的本地化字符串。 + /// 查找类似 There are still {0} resources that have not been completed. 的本地化字符串。 /// public static string HasUnFinished { get { @@ -162,7 +160,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 读取文件长度错误。 的本地化字符串。 + /// 查找类似 Error reading file length. 的本地化字符串。 /// public static string LengthErrorWhenRead { get { @@ -171,7 +169,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 RedisActor为空,可能需要启用RedisActor插件。 的本地化字符串。 + /// 查找类似 RedisActor is empty, it may be necessary to enable the RedisActor plugin. 的本地化字符串。 /// public static string RedisActorNull { get { @@ -180,7 +178,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 RemoteAccessActor为空,可能需要启用RemoteAccess插件。 的本地化字符串。 + /// 查找类似 The RemoteAccessActor is empty, and the RemoteAccess plugin may need to be enabled. 的本地化字符串。 /// public static string RemoteAccessActorNull { get { @@ -189,7 +187,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 远程终端拒绝该操作,反馈信息:{0}。 的本地化字符串。 + /// 查找类似 The remote terminal refused the operation and provided feedback message: {0}. 的本地化字符串。 /// public static string RemoteRefuse { get { @@ -198,7 +196,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 RemoteStreamActor为空,可能需要启用RemoteStream插件。 的本地化字符串。 + /// 查找类似 The RemoteStreamActor is empty, and the RemoteStream plugin may need to be enabled. 的本地化字符串。 /// public static string RemoteStreamActorNull { get { @@ -207,7 +205,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 资源句柄{0}对应的资源没有找到,可能操作已超时。 的本地化字符串。 + /// 查找类似 The resource corresponding to resource handle {0} could not be found, possibly the operation has timed out. 的本地化字符串。 /// public static string ResourceHandleNotFind { get { @@ -216,7 +214,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 不允许路由该包,信息:{0}。 的本地化字符串。 + /// 查找类似 Routing of this packet is not allowed, information: {0}. 的本地化字符串。 /// public static string RoutingNotAllowed { get { @@ -225,7 +223,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 函数执行异常,详细信息:{0}。 的本地化字符串。 + /// 查找类似 Function execution exception, details: {0}. 的本地化字符串。 /// public static string RpcInvokeException { get { @@ -234,7 +232,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 方法已被禁用。 的本地化字符串。 + /// 查找类似 The method has been disabled. 的本地化字符串。 /// public static string RpcMethodDisable { get { @@ -243,7 +241,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 未找到该公共方法,或该方法未标记为Rpc。 的本地化字符串。 + /// 查找类似 The public method was not found, or the method is not marked as Rpc. 的本地化字符串。 /// public static string RpcMethodNotFind { get { @@ -252,7 +250,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 通道设置失败。 的本地化字符串。 + /// 查找类似 Channel setting failed. 的本地化字符串。 /// public static string SetChannelFail { get { @@ -261,7 +259,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 流容器为空。 的本地化字符串。 + /// 查找类似 The flow container is empty. 的本地化字符串。 /// public static string StreamBucketNull { get { @@ -269,4 +267,4 @@ namespace TouchSocket.Resources { } } } -} \ No newline at end of file +} diff --git a/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.resx b/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.resx index 276f50c5b..ad45ad675 100644 --- a/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.resx +++ b/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.resx @@ -98,95 +98,72 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - DmtpRpcActor为空,可能需要启用DmtpRpc插件。 - DmtpRpcActor为空,可能需要启用DmtpRpc插件。 + DmtpRpcActor is empty, it may be necessary to enable the DmtpRpc plugin. - DmtpFileTransferActor为空,可能需要启用DmtpFileTransfer插件。 - DmtpFileTransferActor为空,可能需要启用DmtpFileTransfer插件。 + DmtpFileTransferActor is empty, it may be necessary to enable the DmtpFileTransfer plugin. - RedisActor为空,可能需要启用RedisActor插件。 - RedisActor为空,可能需要启用RedisActor插件。 + RedisActor is empty, it may be necessary to enable the RedisActor plugin. - RemoteAccessActor为空,可能需要启用RemoteAccess插件。 - RemoteAccessActor为空,可能需要启用RemoteAccess插件。 + The RemoteAccessActor is empty, and the RemoteAccess plugin may need to be enabled. - RemoteStreamActor为空,可能需要启用RemoteStream插件。 - RemoteStreamActor为空,可能需要启用RemoteStream插件。 + The RemoteStreamActor is empty, and the RemoteStream plugin may need to be enabled. - 不允许路由该包,信息:{0}。 - 不允许路由该包,信息:{0}。 + Routing of this packet is not allowed, information: {0}. - 未找到该公共方法,或该方法未标记为Rpc。 - 未找到该公共方法,或该方法未标记为Rpc。 + The public method was not found, or the method is not marked as Rpc. - 方法已被禁用。 - 方法已被禁用。 + The method has been disabled. - 函数执行异常,详细信息:{0}。 - 函数执行异常,详细信息:{0}。 + Function execution exception, details: {0}. - 事件操作器异常。 - 事件操作器异常。 + Event operator exception. - 通道设置失败。 - 通道设置失败。 + Channel setting failed. - Id为{0}的通道已存在。 - Id为{0}的通道已存在。 + The channel with ID {0} already exists. - 远程终端拒绝该操作,反馈信息:{0}。 - 远程终端拒绝该操作,反馈信息:{0}。 + The remote terminal refused the operation and provided feedback message: {0}. - 从‘{0}’创建写入流失败,信息:{1}。 - 从‘{0}’创建写入流失败,信息:{1}。 + Failed to create write stream from '{0}', information: {1}. - 流容器为空。 - 流容器为空。 + The flow container is empty. - 目录‘{0}’已存在。 - 目录‘{0}’已存在。 + The directory '{0}' already exists. - 文件‘{0}’已存在。 - 文件‘{0}’已存在。 + The file '{0}' already exists. - 文件‘{0}’不存在。 - 文件‘{0}’不存在。 + The file '{0}' does not exist. - 目录‘{0}’不存在。 - 目录‘{0}’不存在。 + The directory '{0}' does not exist. - 资源句柄{0}对应的资源没有找到,可能操作已超时。 - 资源句柄{0}对应的资源没有找到,可能操作已超时。 + The resource corresponding to resource handle {0} could not be found, possibly the operation has timed out. - 还有{0}个资源没有完成。 - 还有{0}个资源没有完成。 + There are still {0} resources that have not been completed. - 文件长度太长。 - 文件长度太长。 + The file length is too long. - 读取文件长度错误。 - 读取文件长度错误。 + Error reading file length. \ No newline at end of file diff --git a/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.en-US.resx b/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.zh-CN.resx similarity index 67% rename from src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.en-US.resx rename to src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.zh-CN.resx index ad45ad675..276f50c5b 100644 --- a/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.en-US.resx +++ b/src/TouchSocket.Dmtp/Resources/TouchSocketDmtpResource.zh-CN.resx @@ -98,72 +98,95 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - DmtpRpcActor is empty, it may be necessary to enable the DmtpRpc plugin. + DmtpRpcActor为空,可能需要启用DmtpRpc插件。 + DmtpRpcActor为空,可能需要启用DmtpRpc插件。 - DmtpFileTransferActor is empty, it may be necessary to enable the DmtpFileTransfer plugin. + DmtpFileTransferActor为空,可能需要启用DmtpFileTransfer插件。 + DmtpFileTransferActor为空,可能需要启用DmtpFileTransfer插件。 - RedisActor is empty, it may be necessary to enable the RedisActor plugin. + RedisActor为空,可能需要启用RedisActor插件。 + RedisActor为空,可能需要启用RedisActor插件。 - The RemoteAccessActor is empty, and the RemoteAccess plugin may need to be enabled. + RemoteAccessActor为空,可能需要启用RemoteAccess插件。 + RemoteAccessActor为空,可能需要启用RemoteAccess插件。 - The RemoteStreamActor is empty, and the RemoteStream plugin may need to be enabled. + RemoteStreamActor为空,可能需要启用RemoteStream插件。 + RemoteStreamActor为空,可能需要启用RemoteStream插件。 - Routing of this packet is not allowed, information: {0}. + 不允许路由该包,信息:{0}。 + 不允许路由该包,信息:{0}。 - The public method was not found, or the method is not marked as Rpc. + 未找到该公共方法,或该方法未标记为Rpc。 + 未找到该公共方法,或该方法未标记为Rpc。 - The method has been disabled. + 方法已被禁用。 + 方法已被禁用。 - Function execution exception, details: {0}. + 函数执行异常,详细信息:{0}。 + 函数执行异常,详细信息:{0}。 - Event operator exception. + 事件操作器异常。 + 事件操作器异常。 - Channel setting failed. + 通道设置失败。 + 通道设置失败。 - The channel with ID {0} already exists. + Id为{0}的通道已存在。 + Id为{0}的通道已存在。 - The remote terminal refused the operation and provided feedback message: {0}. + 远程终端拒绝该操作,反馈信息:{0}。 + 远程终端拒绝该操作,反馈信息:{0}。 - Failed to create write stream from '{0}', information: {1}. + 从‘{0}’创建写入流失败,信息:{1}。 + 从‘{0}’创建写入流失败,信息:{1}。 - The flow container is empty. + 流容器为空。 + 流容器为空。 - The directory '{0}' already exists. + 目录‘{0}’已存在。 + 目录‘{0}’已存在。 - The file '{0}' already exists. + 文件‘{0}’已存在。 + 文件‘{0}’已存在。 - The file '{0}' does not exist. + 文件‘{0}’不存在。 + 文件‘{0}’不存在。 - The directory '{0}' does not exist. + 目录‘{0}’不存在。 + 目录‘{0}’不存在。 - The resource corresponding to resource handle {0} could not be found, possibly the operation has timed out. + 资源句柄{0}对应的资源没有找到,可能操作已超时。 + 资源句柄{0}对应的资源没有找到,可能操作已超时。 - There are still {0} resources that have not been completed. + 还有{0}个资源没有完成。 + 还有{0}个资源没有完成。 - The file length is too long. + 文件长度太长。 + 文件长度太长。 - Error reading file length. + 读取文件长度错误。 + 读取文件长度错误。 \ No newline at end of file diff --git a/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.Designer.cs b/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.Designer.cs index d0c721615..327c082a5 100644 --- a/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.Designer.cs +++ b/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.Designer.cs @@ -1,13 +1,11 @@ -//------------------------------------------------------------------------------ -// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 -// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 -// CSDN博客:https://blog.csdn.net/qq_40374647 -// 哔哩哔哩视频:https://space.bilibili.com/94253567 -// Gitee源代码仓库:https://gitee.com/RRQM_Home -// Github源代码仓库:https://github.com/RRQM -// API首页:https://touchsocket.net/ -// 交流QQ群:234762506 -// 感谢您的下载和使用 +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// //------------------------------------------------------------------------------ namespace TouchSocket.Resources { @@ -63,7 +61,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 服务器已启动。 的本地化字符串。 + /// 查找类似 The server has started. 的本地化字符串。 /// public static string HostServerStarted { get { @@ -71,4 +69,4 @@ namespace TouchSocket.Resources { } } } -} \ No newline at end of file +} diff --git a/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.en-US.resx b/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.en-US.resx deleted file mode 100644 index 0f9a808bf..000000000 --- a/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.en-US.resx +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - The server has started. - - \ No newline at end of file diff --git a/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.resx b/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.resx index 30276bfe1..0f9a808bf 100644 --- a/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.resx +++ b/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.resx @@ -1,96 +1,76 @@  + Version 1.3 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + text/microsoft-resx + 1.3 + System.Resources.ResXResourceReader, System.Windows.Forms, ... + System.Resources.ResXResourceWriter, System.Windows.Forms, ... + this is my long string + Blue + + [base64 mime encoded serialized .NET Framework object] + + + [base64 mime encoded string representing a byte array form of the .NET Framework object] + + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> - - - - - - - - - - - - - - - - - - - + - @@ -109,16 +89,15 @@ text/microsoft-resx - 2.0 + 1.3 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 服务器已启动。 - 服务已启动。 + The server has started. \ No newline at end of file diff --git a/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.zh-CN.resx b/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.zh-CN.resx new file mode 100644 index 000000000..30276bfe1 --- /dev/null +++ b/src/TouchSocket.Hosting/Resources/TouchSocketHostingResource.zh-CN.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 服务器已启动。 + 服务已启动。 + + \ No newline at end of file diff --git a/src/TouchSocket.Http/Common/HttpRequest.cs b/src/TouchSocket.Http/Common/HttpRequest.cs index 43b00d798..4a1235881 100644 --- a/src/TouchSocket.Http/Common/HttpRequest.cs +++ b/src/TouchSocket.Http/Common/HttpRequest.cs @@ -387,7 +387,7 @@ public class HttpRequest : HttpBase private static void AppendSpace(ref TByteBlock byteBlock) where TByteBlock : IByteBlock { - byteBlock.Write(" "u8); + byteBlock.Write(StringExtension.DefaultSpaceUtf8Span); } private static void AppendSlash(ref TByteBlock byteBlock) where TByteBlock : IByteBlock diff --git a/src/TouchSocket.Http/Common/HttpResponse.cs b/src/TouchSocket.Http/Common/HttpResponse.cs index 39271a38f..887c4407a 100644 --- a/src/TouchSocket.Http/Common/HttpResponse.cs +++ b/src/TouchSocket.Http/Common/HttpResponse.cs @@ -347,7 +347,7 @@ public class HttpResponse : HttpBase var msg = string.Empty; for (var i = 2; i < first.Length; i++) { - msg += first[i] + " "; + msg += first[i] + StringExtension.DefaultSpaceString; } this.StatusMessage = msg; diff --git a/src/TouchSocket.Http/Common/InternalFormCollection.cs b/src/TouchSocket.Http/Common/InternalFormCollection.cs index 3b148df82..39831f400 100644 --- a/src/TouchSocket.Http/Common/InternalFormCollection.cs +++ b/src/TouchSocket.Http/Common/InternalFormCollection.cs @@ -76,6 +76,30 @@ internal class InternalFormCollection : Dictionary, IFormCollect { } + //public InternalFormCollection(ReadOnlyMemory context, Encoding encoding) + //{ + // var row = context.Span.ToString(encoding); + // if (string.IsNullOrEmpty(row)) + // { + // return; + // } + + // var kvs = row.Split('&'); + // if (kvs == null || kvs.Length == 0) + // { + // return; + // } + + // foreach (var item in kvs) + // { + // var kv = item.SplitFirst('='); + // if (kv.Length == 2) + // { + // this.AddOrUpdate(kv[0], kv[1]); + // } + // } + //} + public InternalFormCollection(ReadOnlyMemory context, Encoding encoding) { var row = context.Span.ToString(encoding); @@ -85,17 +109,23 @@ internal class InternalFormCollection : Dictionary, IFormCollect } var kvs = row.Split('&'); - if (kvs == null || kvs.Length == 0) - { - return; - } - foreach (var item in kvs) { + if (string.IsNullOrEmpty(item)) + { + continue; + } + var kv = item.SplitFirst('='); + var key = Uri.UnescapeDataString(kv[0].Replace("+", StringExtension.DefaultSpaceString)); if (kv.Length == 2) { - this.AddOrUpdate(kv[0], kv[1]); + var value = Uri.UnescapeDataString(kv[1].Replace("+", StringExtension.DefaultSpaceString)); + this.AddOrUpdate(key, value); + } + else if (kv.Length == 1) + { + this.AddOrUpdate(key, string.Empty); } } } diff --git a/src/TouchSocket.Http/Extensions/HttpExtensions.cs b/src/TouchSocket.Http/Extensions/HttpExtensions.cs index 8e57706bf..cc53852c6 100644 --- a/src/TouchSocket.Http/Extensions/HttpExtensions.cs +++ b/src/TouchSocket.Http/Extensions/HttpExtensions.cs @@ -294,13 +294,16 @@ public static partial class HttpExtensions var contentType = request.ContentType; if (CheckFormBody(contentType, out var encoding)) { - return new InternalFormCollection(await request.GetContentAsync().ConfigureAwait(EasyTask.ContinueOnCapturedContext), encoding); + return new InternalFormCollection( + await request.GetContentAsync().ConfigureAwait(EasyTask.ContinueOnCapturedContext), encoding); } + return new InternalFormCollection(); + } else { - var boundary = $"--{boundaryString}".ToUTF8Bytes(); + var boundary = $"--{boundaryString}".ToUtf8Bytes(); return new InternalFormCollection(await request.GetContentAsync().ConfigureAwait(EasyTask.ContinueOnCapturedContext), boundary); } @@ -324,31 +327,33 @@ public static partial class HttpExtensions } // 查找 charset 参数的起始位置 - int charsetIndex = contentType.IndexOf("charset=", StringComparison.OrdinalIgnoreCase); - if (charsetIndex >= 0) + var charsetIndex = contentType.IndexOf("charset=", StringComparison.OrdinalIgnoreCase); + if (charsetIndex < 0) { - // 定位到 charset 参数值的起始位置 - charsetIndex += "charset=".Length; - // 查找 charset 参数值的结束位置 - int endIndex = contentType.IndexOf(';', charsetIndex); - if (endIndex < 0) - { - // 如果没有后续的分号,说明到字符串末尾都是 charset 值 - endIndex = contentType.Length; - } - // 提取 charset 参数的值 - var charsetValue = contentType.Substring(charsetIndex, endIndex - charsetIndex).Trim(); + return true; + } - try - { - // 根据提取的 charset 值获取对应的编码 - encoding = Encoding.GetEncoding(charsetValue); - } - catch (ArgumentException) - { - // 如果提取的 charset 值无效,使用默认的 UTF-8 编码 - encoding = Encoding.UTF8; - } + // 定位到 charset 参数值的起始位置 + charsetIndex += "charset=".Length; + // 查找 charset 参数值的结束位置 + var endIndex = contentType.IndexOf(';', charsetIndex); + if (endIndex < 0) + { + // 如果没有后续的分号,说明到字符串末尾都是 charset 值 + endIndex = contentType.Length; + } + // 提取 charset 参数的值 + var charsetValue = contentType.Substring(charsetIndex, endIndex - charsetIndex).Trim(); + + try + { + // 根据提取的 charset 值获取对应的编码 + encoding = Encoding.GetEncoding(charsetValue); + } + catch (ArgumentException) + { + // 如果提取的 charset 值无效,使用默认的 UTF-8 编码 + encoding = Encoding.UTF8; } return true; @@ -397,8 +402,12 @@ public static partial class HttpExtensions public static void SetFormUrlEncodedContent(this TRequest request, IEnumerable> nameValueCollection) where TRequest : HttpRequest { - // 将键值对集合转换为查询字符串格式,并设置为请求的内容 - request.SetContent(string.Join("&", nameValueCollection.Select(a => $"{a.Key}={a.Value}"))); + var encodedPairs = nameValueCollection.Select(p => + $"{Uri.EscapeDataString(p.Key)}={Uri.EscapeDataString(p.Value ?? "")}" + .Replace("%20", "+")); // 手动处理空格为+ + + request.SetContent(string.Join("&", encodedPairs)); + // 设置请求的内容类型为application/x-www-form-urlencoded request.ContentType = "application/x-www-form-urlencoded"; } @@ -688,8 +697,21 @@ public static partial class HttpExtensions /// 设置后的HTTP响应对象 public static TResponse UrlNotFind(this TResponse response) where TResponse : HttpResponse { - response.SetContent("

404 -Not Found

"); + response.FromHtml("

404 -Not Found

"); response.SetStatus(404, "Not Found"); + return response; + } + + /// + /// 设置HTML内容。 + /// + /// 响应类型,必须继承自HttpResponse。 + /// 响应对象,用于设置HTML内容。 + /// HTML字符串,表示要设置的内容。 + /// 返回设置了HTML内容的响应对象。 + public static TResponse FromHtml(this TResponse response, string htmlString) where TResponse : HttpResponse + { + response.SetContent(htmlString, Encoding.UTF8); response.ContentType = "text/html;charset=utf-8"; return response; } diff --git a/src/TouchSocket.Http/Resources/TouchSocketHttpResource.Designer.cs b/src/TouchSocket.Http/Resources/TouchSocketHttpResource.Designer.cs index cd46fb5e7..7d9b79e72 100644 --- a/src/TouchSocket.Http/Resources/TouchSocketHttpResource.Designer.cs +++ b/src/TouchSocket.Http/Resources/TouchSocketHttpResource.Designer.cs @@ -1,13 +1,11 @@ -//------------------------------------------------------------------------------ -// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 -// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 -// CSDN博客:https://blog.csdn.net/qq_40374647 -// 哔哩哔哩视频:https://space.bilibili.com/94253567 -// Gitee源代码仓库:https://gitee.com/RRQM_Home -// Github源代码仓库:https://github.com/RRQM -// API首页:https://touchsocket.net/ -// 交流QQ群:234762506 -// 感谢您的下载和使用 +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// //------------------------------------------------------------------------------ namespace TouchSocket.Resources { @@ -63,7 +61,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 当AllowAsyncRead为false时,不支持该操作。 的本地化字符串。 + /// 查找类似 When AllowAsynchronous Read is false, this operation is not supported. 的本地化字符串。 /// public static string NotAllowAsyncRead { get { @@ -72,7 +70,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 主动拒绝WebSocket连接,信息:{0} 的本地化字符串。 + /// 查找类似 Proactively reject WebSocket connection, information: {0} 的本地化字符串。 /// public static string RefuseWebSocketConnection { get { @@ -81,7 +79,7 @@ namespace TouchSocket.Resources { } /// - /// 查找类似 WebSocket连接协议不正确,这可能并不是一个WebSocket连接。 的本地化字符串。 + /// 查找类似 The WebSocket connection protocol is incorrect, this may not be a WebSocket connection. 的本地化字符串。 /// public static string WebSocketConnectionProtocolIsIncorrect { get { @@ -89,4 +87,4 @@ namespace TouchSocket.Resources { } } } -} \ No newline at end of file +} diff --git a/src/TouchSocket.Http/Resources/TouchSocketHttpResource.resx b/src/TouchSocket.Http/Resources/TouchSocketHttpResource.resx index 8a6d6c17f..e13503bfd 100644 --- a/src/TouchSocket.Http/Resources/TouchSocketHttpResource.resx +++ b/src/TouchSocket.Http/Resources/TouchSocketHttpResource.resx @@ -98,15 +98,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 当AllowAsyncRead为false时,不支持该操作。 - 当AllowAsyncRead为false时,不支持该操作。 + When AllowAsynchronous Read is false, this operation is not supported. - 主动拒绝WebSocket连接,信息:{0} - 主动拒绝WebSocket连接,信息:{0} + Proactively reject WebSocket connection, information: {0} - WebSocket连接协议不正确,这可能并不是一个WebSocket连接。 - WebSocket连接协议不正确,这可能并不是一个WebSocket连接。 + The WebSocket connection protocol is incorrect, this may not be a WebSocket connection. \ No newline at end of file diff --git a/src/TouchSocket.Http/Resources/TouchSocketHttpResource.en-US.resx b/src/TouchSocket.Http/Resources/TouchSocketHttpResource.zh-CN.resx similarity index 90% rename from src/TouchSocket.Http/Resources/TouchSocketHttpResource.en-US.resx rename to src/TouchSocket.Http/Resources/TouchSocketHttpResource.zh-CN.resx index e13503bfd..8a6d6c17f 100644 --- a/src/TouchSocket.Http/Resources/TouchSocketHttpResource.en-US.resx +++ b/src/TouchSocket.Http/Resources/TouchSocketHttpResource.zh-CN.resx @@ -98,12 +98,15 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - When AllowAsynchronous Read is false, this operation is not supported. + 当AllowAsyncRead为false时,不支持该操作。 + 当AllowAsyncRead为false时,不支持该操作。 - Proactively reject WebSocket connection, information: {0} + 主动拒绝WebSocket连接,信息:{0} + 主动拒绝WebSocket连接,信息:{0} - The WebSocket connection protocol is incorrect, this may not be a WebSocket connection. + WebSocket连接协议不正确,这可能并不是一个WebSocket连接。 + WebSocket连接协议不正确,这可能并不是一个WebSocket连接。 \ No newline at end of file diff --git a/src/TouchSocket.Modbus/Adapter/Rtu/ModbusRtuAdapter.cs b/src/TouchSocket.Modbus/Adapter/Rtu/ModbusRtuAdapter.cs index 24b0a0dac..dab3f7328 100644 --- a/src/TouchSocket.Modbus/Adapter/Rtu/ModbusRtuAdapter.cs +++ b/src/TouchSocket.Modbus/Adapter/Rtu/ModbusRtuAdapter.cs @@ -41,10 +41,10 @@ internal class ModbusRtuAdapter : CustomDataHandlingAdapter } ModbusErrorCode errorCode; - - var bodyLength = 0; byte[] data; ushort startingAddress; + + int bodyLength; if (isError) { errorCode = (ModbusErrorCode)byteBlock.ReadByte(); diff --git a/src/TouchSocket.Modbus/Common/ModbusRequest.cs b/src/TouchSocket.Modbus/Common/ModbusRequest.cs index 036b5707b..5f9776dfb 100644 --- a/src/TouchSocket.Modbus/Common/ModbusRequest.cs +++ b/src/TouchSocket.Modbus/Common/ModbusRequest.cs @@ -96,7 +96,7 @@ public class ModbusRequest : IModbusRequest public ushort ReadQuantity { get; set; } /// - /// 设置的值为一个bool。 + /// 设置的值为一个 bool。 /// /// 要设置的布尔值。 public void SetValue(bool value) @@ -117,34 +117,34 @@ public class ModbusRequest : IModbusRequest } /// - /// 设置的值为short。 + /// 设置的值为 short。 /// /// 要设置的值 public void SetValue(short value) { - // 将传入的short类型值转换为字节数组,并根据BigEndian规则进行存储 + // 将传入的 short类型值转换为字节数组,并根据BigEndian规则进行存储 this.Data = TouchSocketBitConverter.BigEndian.GetBytes(value); } /// - /// 设置的值为ushort。 + /// 设置的值为 ushort。 /// /// 要设置的值 public void SetValue(ushort value) { - // 将传入的ushort值转换为字节数组,并根据BigEndian规则进行存储 + // 将传入的 ushort值转换为字节数组,并根据BigEndian规则进行存储 this.Data = TouchSocketBitConverter.BigEndian.GetBytes(value); } /// - /// 设置的值为bool数组,同时设置的数量(即数组长度)。 + /// 设置的值为 bool数组,同时设置的数量(即数组长度)。 /// - /// 要设置的bool数组 + /// 要设置的 bool数组 public void SetValue(bool[] values) { - // 将bool数组转换为字节,并赋值给Data属性 - this.Data = TouchSocketBitConverter.Default.GetBytes(values); - // 设置Quantity属性为数组的长度,以记录bool值的数量 + // 将 bool数组转换为字节,并赋值给Data属性 + this.Data = TouchSocketBitConverter.BigEndian.GetBytes(values); + // 设置Quantity属性为数组的长度,以记录 bool值的数量 this.Quantity = (ushort)values.Length; } } \ No newline at end of file diff --git a/src/TouchSocket.Modbus/Components/ModbusRtuMaster.cs b/src/TouchSocket.Modbus/Components/ModbusRtuMaster.cs index 03b3c1271..0320fbf1b 100644 --- a/src/TouchSocket.Modbus/Components/ModbusRtuMaster.cs +++ b/src/TouchSocket.Modbus/Components/ModbusRtuMaster.cs @@ -30,7 +30,7 @@ public class ModbusRtuMaster : SerialPortClientBase, IModbusRtuMaster { this.Protocol = TouchSocketModbusUtility.ModbusRtu; } - + private ModbusRequest m_modbusRequest; /// public async Task SendModbusRequestAsync(ModbusRequest request, int millisecondsTimeout, CancellationToken token) { @@ -38,6 +38,7 @@ public class ModbusRtuMaster : SerialPortClientBase, IModbusRtuMaster try { + this.m_modbusRequest = request; var modbusRequest = new ModbusRtuRequest(request); var byteBlock = new ValueByteBlock(modbusRequest.MaxLength); try @@ -54,13 +55,15 @@ public class ModbusRtuMaster : SerialPortClientBase, IModbusRtuMaster var waitDataStatus = await this.m_waitDataAsync.WaitAsync(millisecondsTimeout).ConfigureAwait(EasyTask.ContinueOnCapturedContext); waitDataStatus.ThrowIfNotRunning(); - var response = this.m_waitData.WaitResult; + var response = this.m_waitDataAsync.WaitResult; TouchSocketModbusThrowHelper.ThrowIfNotSuccess(response.ErrorCode); + response.Request = request; return response; } finally { + this.m_modbusRequest = default; this.m_semaphoreSlimForRequest.Release(); } } @@ -75,7 +78,6 @@ public class ModbusRtuMaster : SerialPortClientBase, IModbusRtuMaster #region 字段 private readonly SemaphoreSlim m_semaphoreSlimForRequest = new SemaphoreSlim(1, 1); - private readonly WaitData m_waitData = new WaitData(); private readonly WaitDataAsync m_waitDataAsync = new WaitDataAsync(); #endregion 字段 @@ -85,14 +87,33 @@ public class ModbusRtuMaster : SerialPortClientBase, IModbusRtuMaster { if (e.RequestInfo is ModbusRtuResponse response) { - this.SetRun(response); + var result = this.SetRun(this.m_modbusRequest, response); + if (result) + { + this.m_waitDataAsync.Set(response); + } } await base.OnSerialReceived(e).ConfigureAwait(EasyTask.ContinueOnCapturedContext); } - private void SetRun(ModbusRtuResponse response) + + /// + /// 验证Modbus请求和响应是否匹配 + /// + /// Modbus请求 + /// Modbus响应 + /// 如果请求和响应匹配则返回true,否则返回false + protected virtual bool SetRun(IModbusRequest modbusRequest, IModbusResponse response) { - this.m_waitData.Set(response); - this.m_waitDataAsync.Set(response); + if (modbusRequest.SlaveId != response.SlaveId) + { + return false; + } + + if (modbusRequest.FunctionCode != response.FunctionCode) + { + return false; + } + return true; } } \ No newline at end of file diff --git a/src/TouchSocket.Modbus/Interfaces/IModbusResponse.cs b/src/TouchSocket.Modbus/Interfaces/IModbusResponse.cs index b1d0e5660..9a2a9f300 100644 --- a/src/TouchSocket.Modbus/Interfaces/IModbusResponse.cs +++ b/src/TouchSocket.Modbus/Interfaces/IModbusResponse.cs @@ -10,6 +10,8 @@ // 感谢您的下载和使用 //------------------------------------------------------------------------------ +using TouchSocket.Core; + namespace TouchSocket.Modbus; /// @@ -17,6 +19,11 @@ namespace TouchSocket.Modbus; /// public interface IModbusResponse { + /// + /// 站点号 + /// + public byte SlaveId { get; } + /// /// 数据 /// diff --git a/src/TouchSocket.Rpc/CallContextAccessor/IRpcCallContextAccessor.cs b/src/TouchSocket.Rpc/CallContextAccessor/IRpcCallContextAccessor.cs new file mode 100644 index 000000000..b8fb3b466 --- /dev/null +++ b/src/TouchSocket.Rpc/CallContextAccessor/IRpcCallContextAccessor.cs @@ -0,0 +1,23 @@ +// ------------------------------------------------------------------------------ +// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 +// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 +// CSDN博客:https://blog.csdn.net/qq_40374647 +// 哔哩哔哩视频:https://space.bilibili.com/94253567 +// Gitee源代码仓库:https://gitee.com/RRQM_Home +// Github源代码仓库:https://github.com/RRQM +// API首页:https://touchsocket.net/ +// 交流QQ群:234762506 +// 感谢您的下载和使用 +// ------------------------------------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TouchSocket.Rpc; +public interface IRpcCallContextAccessor +{ + ICallContext CallContext { get; set; } +} diff --git a/src/TouchSocket.Rpc/CallContextAccessor/RpcCallContextAccessor.cs b/src/TouchSocket.Rpc/CallContextAccessor/RpcCallContextAccessor.cs new file mode 100644 index 000000000..cb222e51c --- /dev/null +++ b/src/TouchSocket.Rpc/CallContextAccessor/RpcCallContextAccessor.cs @@ -0,0 +1,57 @@ +// ------------------------------------------------------------------------------ +// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 +// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 +// CSDN博客:https://blog.csdn.net/qq_40374647 +// 哔哩哔哩视频:https://space.bilibili.com/94253567 +// Gitee源代码仓库:https://gitee.com/RRQM_Home +// Github源代码仓库:https://github.com/RRQM +// API首页:https://touchsocket.net/ +// 交流QQ群:234762506 +// 感谢您的下载和使用 +// ------------------------------------------------------------------------------ + +#if AsyncLocal +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace TouchSocket.Rpc; + +[DebuggerDisplay("CallContext = {CallContext}")] +internal class RpcCallContextAccessor:IRpcCallContextAccessor +{ + private static readonly AsyncLocal s_rpcCallContextCurrent = new AsyncLocal(); + + /// + public ICallContext CallContext + { + get + { + return s_rpcCallContextCurrent.Value?.Context; + } + set + { + var holder = s_rpcCallContextCurrent.Value; + if (holder != null) + { + holder.Context = null; + } + + if (value != null) + { + s_rpcCallContextCurrent.Value = new RpcCallContextHolder { Context = value }; + } + } + } + + private sealed class RpcCallContextHolder + { + public ICallContext Context; + } +} + +#endif \ No newline at end of file diff --git a/src/TouchSocket.Rpc/Common/RpcStore.cs b/src/TouchSocket.Rpc/Common/RpcStore.cs index 32d10d23a..d668e97d4 100644 --- a/src/TouchSocket.Rpc/Common/RpcStore.cs +++ b/src/TouchSocket.Rpc/Common/RpcStore.cs @@ -58,11 +58,11 @@ public sealed class RpcStore /// 本地获取代理 ///
/// - /// + /// /// - public string GetProxyCodes(string @namespace, params Type[] attrbuteTypes) + public string GetProxyCodes(string @namespace, params Type[] attributeTypes) { - var cellCodes = this.GetProxyInfo(attrbuteTypes); + var cellCodes = this.GetProxyInfo(attributeTypes); return CodeGenerator.ConvertToCode(@namespace, cellCodes); } @@ -81,17 +81,17 @@ public sealed class RpcStore /// /// 从本地获取代理 /// - /// + /// /// - public ServerCellCode[] GetProxyInfo(Type[] attrbuteType) + public ServerCellCode[] GetProxyInfo(Type[] attributeType) { var codes = new List(); - foreach (var attrbute in attrbuteType) + foreach (var attribute in attributeType) { foreach (var item in this.m_serverTypes.Keys) { - var serverCellCode = CodeGenerator.Generator(item, attrbute); + var serverCellCode = CodeGenerator.Generator(item, attribute); codes.Add(serverCellCode); } } diff --git a/src/TouchSocket.Rpc/Common/ScopedRpcServer.cs b/src/TouchSocket.Rpc/Common/ScopedRpcServer.cs index 158a496fc..4d597adbc 100644 --- a/src/TouchSocket.Rpc/Common/ScopedRpcServer.cs +++ b/src/TouchSocket.Rpc/Common/ScopedRpcServer.cs @@ -22,7 +22,7 @@ public abstract class ScopedRpcServer : RpcServer, IScopedRpcServe /// /// 调用上下文。 /// - protected TCallContext CallContext => (((IScopedRpcServer)this).CallContext is TCallContext Transient) ? Transient : default; + protected TCallContext CallContext => (((IScopedRpcServer)this).CallContext is TCallContext transient) ? transient : default; } /// diff --git a/src/TouchSocket.Rpc/Extensions/RpcContainerExtension.cs b/src/TouchSocket.Rpc/Extensions/RpcContainerExtension.cs index 80eba7536..a4f48a3ec 100644 --- a/src/TouchSocket.Rpc/Extensions/RpcContainerExtension.cs +++ b/src/TouchSocket.Rpc/Extensions/RpcContainerExtension.cs @@ -12,6 +12,7 @@ using System; using TouchSocket.Core; +using static System.Collections.Specialized.BitVector32; #if NET6_0_OR_GREATER using System.Diagnostics.CodeAnalysis; @@ -22,7 +23,7 @@ namespace TouchSocket.Rpc; /// /// ContainerExtension /// -public static class RpcContainerExtension +public static partial class RpcContainerExtension { /// /// 向容器中添加。 diff --git a/src/TouchSocket.Rpc/Extensions/RpcContainerExtension_AsyncLocal.cs b/src/TouchSocket.Rpc/Extensions/RpcContainerExtension_AsyncLocal.cs new file mode 100644 index 000000000..5e17d9a27 --- /dev/null +++ b/src/TouchSocket.Rpc/Extensions/RpcContainerExtension_AsyncLocal.cs @@ -0,0 +1,41 @@ +// ------------------------------------------------------------------------------ +// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 +// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 +// CSDN博客:https://blog.csdn.net/qq_40374647 +// 哔哩哔哩视频:https://space.bilibili.com/94253567 +// Gitee源代码仓库:https://gitee.com/RRQM_Home +// Github源代码仓库:https://github.com/RRQM +// API首页:https://touchsocket.net/ +// 交流QQ群:234762506 +// 感谢您的下载和使用 +// ------------------------------------------------------------------------------ + +#if AsyncLocal +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TouchSocket.Core; + +namespace TouchSocket.Rpc; +public static partial class RpcContainerExtension +{ + #region RpcCallContextAccessor + public static IRegistrator AddRpcCallContextAccessor(this IRegistrator registrator) + where TRpcCallContextAccessor : class, IRpcCallContextAccessor + { + registrator.RegisterSingleton(); + return registrator; + } + + public static IRegistrator AddRpcCallContextAccessor(this IRegistrator registrator) + { + return AddRpcCallContextAccessor(registrator); + } + #endregion + + +} + +#endif diff --git a/src/TouchSocket.Rpc/RpcServerProvider/InternalRpcServerProvider.cs b/src/TouchSocket.Rpc/RpcServerProvider/InternalRpcServerProvider.cs index ce1ca63e3..eb2a73ea2 100644 --- a/src/TouchSocket.Rpc/RpcServerProvider/InternalRpcServerProvider.cs +++ b/src/TouchSocket.Rpc/RpcServerProvider/InternalRpcServerProvider.cs @@ -30,6 +30,11 @@ internal sealed class InternalRpcServerProvider : IRpcServerProvider public async Task ExecuteAsync(ICallContext callContext, InvokeResult invokeResult) { + var rpcCallContextAccessor=callContext.Resolver.Resolve(); + if (rpcCallContextAccessor is not null) + { + rpcCallContextAccessor.CallContext = callContext; + } var ps = callContext.Parameters; var rpcMethod = callContext.RpcMethod; if (rpcMethod is null) @@ -103,6 +108,11 @@ internal sealed class InternalRpcServerProvider : IRpcServerProvider invokeResult = await filters[i].ExecutedAsync(callContext, ps, invokeResult, invokeResult.Exception) .ConfigureAwait(EasyTask.ContinueOnCapturedContext); } + + if (rpcCallContextAccessor is not null) + { + rpcCallContextAccessor.CallContext = default; + } } return invokeResult; diff --git a/src/TouchSocket.WebApi.Swagger/Plugins/SwaggerPlugin.cs b/src/TouchSocket.WebApi.Swagger/Plugins/SwaggerPlugin.cs index 7a1545ff2..0b70493ae 100644 --- a/src/TouchSocket.WebApi.Swagger/Plugins/SwaggerPlugin.cs +++ b/src/TouchSocket.WebApi.Swagger/Plugins/SwaggerPlugin.cs @@ -265,7 +265,7 @@ public sealed class SwaggerPlugin : PluginBase, IServerStartedPlugin, IHttpPlugi openApiRoot.Components = this.GetComponents(schemaTypeList); var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; - return JsonConvert.SerializeObject(openApiRoot, Formatting.Indented, jsonSetting).ToUTF8Bytes(); + return JsonConvert.SerializeObject(openApiRoot, Formatting.Indented, jsonSetting).ToUtf8Bytes(); } private void BuildHttpMethod(string url, HttpMethod httpMethod, RpcMethod rpcMethod, in List schemaTypeList, in Dictionary paths) diff --git a/src/TouchSocket.WebApi.Swagger/TouchSocket.WebApi.Swagger.csproj b/src/TouchSocket.WebApi.Swagger/TouchSocket.WebApi.Swagger.csproj index 4c49ff859..3bab54f00 100644 --- a/src/TouchSocket.WebApi.Swagger/TouchSocket.WebApi.Swagger.csproj +++ b/src/TouchSocket.WebApi.Swagger/TouchSocket.WebApi.Swagger.csproj @@ -9,31 +9,11 @@ TouchSocket.WebApi.Swagger - - - - - - - - - - - + - - - - - - - - - - - + diff --git a/src/TouchSocket.WebApi.Swagger/api/index.css b/src/TouchSocket.WebApi.Swagger/api/index.css new file mode 100644 index 000000000..f2376fdaa --- /dev/null +++ b/src/TouchSocket.WebApi.Swagger/api/index.css @@ -0,0 +1,16 @@ +html { + box-sizing: border-box; + overflow: -moz-scrollbars-vertical; + overflow-y: scroll; +} + +*, +*:before, +*:after { + box-sizing: inherit; +} + +body { + margin: 0; + background: #fafafa; +} diff --git a/src/TouchSocket.WebApi.Swagger/api/index.html b/src/TouchSocket.WebApi.Swagger/api/index.html index c860f43d5..84ae62d3d 100644 --- a/src/TouchSocket.WebApi.Swagger/api/index.html +++ b/src/TouchSocket.WebApi.Swagger/api/index.html @@ -1,61 +1,19 @@ - + Swagger UI - + + - - - - +
- - - - - - \ No newline at end of file + + + + + diff --git a/src/TouchSocket.WebApi.Swagger/api/oauth2-redirect.html b/src/TouchSocket.WebApi.Swagger/api/oauth2-redirect.html index a427621e7..564091718 100644 --- a/src/TouchSocket.WebApi.Swagger/api/oauth2-redirect.html +++ b/src/TouchSocket.WebApi.Swagger/api/oauth2-redirect.html @@ -4,8 +4,6 @@ Swagger UI: OAuth2 Redirect - - \ No newline at end of file + if (document.readyState !== 'loading') { + run(); + } else { + document.addEventListener('DOMContentLoaded', function () { + run(); + }); + } + + + diff --git a/src/TouchSocket.WebApi.Swagger/api/swagger-initializer.js b/src/TouchSocket.WebApi.Swagger/api/swagger-initializer.js new file mode 100644 index 000000000..daae35c61 --- /dev/null +++ b/src/TouchSocket.WebApi.Swagger/api/swagger-initializer.js @@ -0,0 +1,20 @@ +window.onload = function() { + // + + // the following lines will be replaced by docker/configurator, when it runs in a docker-container + window.ui = SwaggerUIBundle({ + url: "openapi.json", + dom_id: '#swagger-ui', + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }); + + // +}; \ No newline at end of file diff --git a/src/TouchSocket.WebApi.Swagger/api/swagger-ui-bundle.js b/src/TouchSocket.WebApi.Swagger/api/swagger-ui-bundle.js index 3896e2b98..704d2c77a 100644 --- a/src/TouchSocket.WebApi.Swagger/api/swagger-ui-bundle.js +++ b/src/TouchSocket.WebApi.Swagger/api/swagger-ui-bundle.js @@ -1,3 +1,2 @@ /*! For license information please see swagger-ui-bundle.js.LICENSE.txt */ -!function (e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t(function () { try { return require("esprima") } catch (e) { } }()) : "function" == typeof define && define.amd ? define(["esprima"], t) : "object" == typeof exports ? exports.SwaggerUIBundle = t(function () { try { return require("esprima") } catch (e) { } }()) : e.SwaggerUIBundle = t(e.esprima) }(this, (function (e) { return function (e) { var t = {}; function n(r) { if (t[r]) return t[r].exports; var o = t[r] = { i: r, l: !1, exports: {} }; return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports } return n.m = e, n.c = t, n.d = function (e, t, r) { n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r }) }, n.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, n.t = function (e, t) { if (1 & t && (e = n(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var o in e) n.d(r, o, function (t) { return e[t] }.bind(null, o)); return r }, n.n = function (e) { var t = e && e.__esModule ? function () { return e.default } : function () { return e }; return n.d(t, "a", t), t }, n.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, n.p = "/dist", n(n.s = 549) }([function (e, t, n) { "use strict"; e.exports = n(129) }, function (e, t, n) { e.exports = function () { "use strict"; var e = Array.prototype.slice; function t(e, t) { t && (e.prototype = Object.create(t.prototype)), e.prototype.constructor = e } function n(e) { return i(e) ? e : $(e) } function r(e) { return s(e) ? e : K(e) } function o(e) { return u(e) ? e : Y(e) } function a(e) { return i(e) && !c(e) ? e : G(e) } function i(e) { return !(!e || !e[p]) } function s(e) { return !(!e || !e[f]) } function u(e) { return !(!e || !e[h]) } function c(e) { return s(e) || u(e) } function l(e) { return !(!e || !e[d]) } t(r, n), t(o, n), t(a, n), n.isIterable = i, n.isKeyed = s, n.isIndexed = u, n.isAssociative = c, n.isOrdered = l, n.Keyed = r, n.Indexed = o, n.Set = a; var p = "@@__IMMUTABLE_ITERABLE__@@", f = "@@__IMMUTABLE_KEYED__@@", h = "@@__IMMUTABLE_INDEXED__@@", d = "@@__IMMUTABLE_ORDERED__@@", m = "delete", v = 5, g = 1 << v, y = g - 1, b = {}, _ = { value: !1 }, w = { value: !1 }; function x(e) { return e.value = !1, e } function E(e) { e && (e.value = !0) } function S() { } function C(e, t) { t = t || 0; for (var n = Math.max(0, e.length - t), r = new Array(n), o = 0; o < n; o++)r[o] = e[o + t]; return r } function A(e) { return void 0 === e.size && (e.size = e.__iterate(O)), e.size } function k(e, t) { if ("number" != typeof t) { var n = t >>> 0; if ("" + n !== t || 4294967295 === n) return NaN; t = n } return t < 0 ? A(e) + t : t } function O() { return !0 } function j(e, t, n) { return (0 === e || void 0 !== n && e <= -n) && (void 0 === t || void 0 !== n && t >= n) } function T(e, t) { return P(e, t, 0) } function I(e, t) { return P(e, t, t) } function P(e, t, n) { return void 0 === e ? n : e < 0 ? Math.max(0, t + e) : void 0 === t ? e : Math.min(t, e) } var N = 0, M = 1, R = 2, D = "function" == typeof Symbol && Symbol.iterator, L = "@@iterator", B = D || L; function F(e) { this.next = e } function U(e, t, n, r) { var o = 0 === e ? t : 1 === e ? n : [t, n]; return r ? r.value = o : r = { value: o, done: !1 }, r } function q() { return { value: void 0, done: !0 } } function z(e) { return !!H(e) } function V(e) { return e && "function" == typeof e.next } function W(e) { var t = H(e); return t && t.call(e) } function H(e) { var t = e && (D && e[D] || e[L]); if ("function" == typeof t) return t } function J(e) { return e && "number" == typeof e.length } function $(e) { return null == e ? ie() : i(e) ? e.toSeq() : ce(e) } function K(e) { return null == e ? ie().toKeyedSeq() : i(e) ? s(e) ? e.toSeq() : e.fromEntrySeq() : se(e) } function Y(e) { return null == e ? ie() : i(e) ? s(e) ? e.entrySeq() : e.toIndexedSeq() : ue(e) } function G(e) { return (null == e ? ie() : i(e) ? s(e) ? e.entrySeq() : e : ue(e)).toSetSeq() } F.prototype.toString = function () { return "[Iterator]" }, F.KEYS = N, F.VALUES = M, F.ENTRIES = R, F.prototype.inspect = F.prototype.toSource = function () { return this.toString() }, F.prototype[B] = function () { return this }, t($, n), $.of = function () { return $(arguments) }, $.prototype.toSeq = function () { return this }, $.prototype.toString = function () { return this.__toString("Seq {", "}") }, $.prototype.cacheResult = function () { return !this._cache && this.__iterateUncached && (this._cache = this.entrySeq().toArray(), this.size = this._cache.length), this }, $.prototype.__iterate = function (e, t) { return pe(this, e, t, !0) }, $.prototype.__iterator = function (e, t) { return fe(this, e, t, !0) }, t(K, $), K.prototype.toKeyedSeq = function () { return this }, t(Y, $), Y.of = function () { return Y(arguments) }, Y.prototype.toIndexedSeq = function () { return this }, Y.prototype.toString = function () { return this.__toString("Seq [", "]") }, Y.prototype.__iterate = function (e, t) { return pe(this, e, t, !1) }, Y.prototype.__iterator = function (e, t) { return fe(this, e, t, !1) }, t(G, $), G.of = function () { return G(arguments) }, G.prototype.toSetSeq = function () { return this }, $.isSeq = ae, $.Keyed = K, $.Set = G, $.Indexed = Y; var Z, X, Q, ee = "@@__IMMUTABLE_SEQ__@@"; function te(e) { this._array = e, this.size = e.length } function ne(e) { var t = Object.keys(e); this._object = e, this._keys = t, this.size = t.length } function re(e) { this._iterable = e, this.size = e.length || e.size } function oe(e) { this._iterator = e, this._iteratorCache = [] } function ae(e) { return !(!e || !e[ee]) } function ie() { return Z || (Z = new te([])) } function se(e) { var t = Array.isArray(e) ? new te(e).fromEntrySeq() : V(e) ? new oe(e).fromEntrySeq() : z(e) ? new re(e).fromEntrySeq() : "object" == typeof e ? new ne(e) : void 0; if (!t) throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: " + e); return t } function ue(e) { var t = le(e); if (!t) throw new TypeError("Expected Array or iterable object of values: " + e); return t } function ce(e) { var t = le(e) || "object" == typeof e && new ne(e); if (!t) throw new TypeError("Expected Array or iterable object of values, or keyed object: " + e); return t } function le(e) { return J(e) ? new te(e) : V(e) ? new oe(e) : z(e) ? new re(e) : void 0 } function pe(e, t, n, r) { var o = e._cache; if (o) { for (var a = o.length - 1, i = 0; i <= a; i++) { var s = o[n ? a - i : i]; if (!1 === t(s[1], r ? s[0] : i, e)) return i + 1 } return i } return e.__iterateUncached(t, n) } function fe(e, t, n, r) { var o = e._cache; if (o) { var a = o.length - 1, i = 0; return new F((function () { var e = o[n ? a - i : i]; return i++ > a ? q() : U(t, r ? e[0] : i - 1, e[1]) })) } return e.__iteratorUncached(t, n) } function he(e, t) { return t ? de(t, e, "", { "": e }) : me(e) } function de(e, t, n, r) { return Array.isArray(t) ? e.call(r, n, Y(t).map((function (n, r) { return de(e, n, r, t) }))) : ve(t) ? e.call(r, n, K(t).map((function (n, r) { return de(e, n, r, t) }))) : t } function me(e) { return Array.isArray(e) ? Y(e).map(me).toList() : ve(e) ? K(e).map(me).toMap() : e } function ve(e) { return e && (e.constructor === Object || void 0 === e.constructor) } function ge(e, t) { if (e === t || e != e && t != t) return !0; if (!e || !t) return !1; if ("function" == typeof e.valueOf && "function" == typeof t.valueOf) { if ((e = e.valueOf()) === (t = t.valueOf()) || e != e && t != t) return !0; if (!e || !t) return !1 } return !("function" != typeof e.equals || "function" != typeof t.equals || !e.equals(t)) } function ye(e, t) { if (e === t) return !0; if (!i(t) || void 0 !== e.size && void 0 !== t.size && e.size !== t.size || void 0 !== e.__hash && void 0 !== t.__hash && e.__hash !== t.__hash || s(e) !== s(t) || u(e) !== u(t) || l(e) !== l(t)) return !1; if (0 === e.size && 0 === t.size) return !0; var n = !c(e); if (l(e)) { var r = e.entries(); return t.every((function (e, t) { var o = r.next().value; return o && ge(o[1], e) && (n || ge(o[0], t)) })) && r.next().done } var o = !1; if (void 0 === e.size) if (void 0 === t.size) "function" == typeof e.cacheResult && e.cacheResult(); else { o = !0; var a = e; e = t, t = a } var p = !0, f = t.__iterate((function (t, r) { if (n ? !e.has(t) : o ? !ge(t, e.get(r, b)) : !ge(e.get(r, b), t)) return p = !1, !1 })); return p && e.size === f } function be(e, t) { if (!(this instanceof be)) return new be(e, t); if (this._value = e, this.size = void 0 === t ? 1 / 0 : Math.max(0, t), 0 === this.size) { if (X) return X; X = this } } function _e(e, t) { if (!e) throw new Error(t) } function we(e, t, n) { if (!(this instanceof we)) return new we(e, t, n); if (_e(0 !== n, "Cannot step a Range by 0"), e = e || 0, void 0 === t && (t = 1 / 0), n = void 0 === n ? 1 : Math.abs(n), t < e && (n = -n), this._start = e, this._end = t, this._step = n, this.size = Math.max(0, Math.ceil((t - e) / n - 1) + 1), 0 === this.size) { if (Q) return Q; Q = this } } function xe() { throw TypeError("Abstract") } function Ee() { } function Se() { } function Ce() { } $.prototype[ee] = !0, t(te, Y), te.prototype.get = function (e, t) { return this.has(e) ? this._array[k(this, e)] : t }, te.prototype.__iterate = function (e, t) { for (var n = this._array, r = n.length - 1, o = 0; o <= r; o++)if (!1 === e(n[t ? r - o : o], o, this)) return o + 1; return o }, te.prototype.__iterator = function (e, t) { var n = this._array, r = n.length - 1, o = 0; return new F((function () { return o > r ? q() : U(e, o, n[t ? r - o++ : o++]) })) }, t(ne, K), ne.prototype.get = function (e, t) { return void 0 === t || this.has(e) ? this._object[e] : t }, ne.prototype.has = function (e) { return this._object.hasOwnProperty(e) }, ne.prototype.__iterate = function (e, t) { for (var n = this._object, r = this._keys, o = r.length - 1, a = 0; a <= o; a++) { var i = r[t ? o - a : a]; if (!1 === e(n[i], i, this)) return a + 1 } return a }, ne.prototype.__iterator = function (e, t) { var n = this._object, r = this._keys, o = r.length - 1, a = 0; return new F((function () { var i = r[t ? o - a : a]; return a++ > o ? q() : U(e, i, n[i]) })) }, ne.prototype[d] = !0, t(re, Y), re.prototype.__iterateUncached = function (e, t) { if (t) return this.cacheResult().__iterate(e, t); var n = W(this._iterable), r = 0; if (V(n)) for (var o; !(o = n.next()).done && !1 !== e(o.value, r++, this);); return r }, re.prototype.__iteratorUncached = function (e, t) { if (t) return this.cacheResult().__iterator(e, t); var n = W(this._iterable); if (!V(n)) return new F(q); var r = 0; return new F((function () { var t = n.next(); return t.done ? t : U(e, r++, t.value) })) }, t(oe, Y), oe.prototype.__iterateUncached = function (e, t) { if (t) return this.cacheResult().__iterate(e, t); for (var n, r = this._iterator, o = this._iteratorCache, a = 0; a < o.length;)if (!1 === e(o[a], a++, this)) return a; for (; !(n = r.next()).done;) { var i = n.value; if (o[a] = i, !1 === e(i, a++, this)) break } return a }, oe.prototype.__iteratorUncached = function (e, t) { if (t) return this.cacheResult().__iterator(e, t); var n = this._iterator, r = this._iteratorCache, o = 0; return new F((function () { if (o >= r.length) { var t = n.next(); if (t.done) return t; r[o] = t.value } return U(e, o, r[o++]) })) }, t(be, Y), be.prototype.toString = function () { return 0 === this.size ? "Repeat []" : "Repeat [ " + this._value + " " + this.size + " times ]" }, be.prototype.get = function (e, t) { return this.has(e) ? this._value : t }, be.prototype.includes = function (e) { return ge(this._value, e) }, be.prototype.slice = function (e, t) { var n = this.size; return j(e, t, n) ? this : new be(this._value, I(t, n) - T(e, n)) }, be.prototype.reverse = function () { return this }, be.prototype.indexOf = function (e) { return ge(this._value, e) ? 0 : -1 }, be.prototype.lastIndexOf = function (e) { return ge(this._value, e) ? this.size : -1 }, be.prototype.__iterate = function (e, t) { for (var n = 0; n < this.size; n++)if (!1 === e(this._value, n, this)) return n + 1; return n }, be.prototype.__iterator = function (e, t) { var n = this, r = 0; return new F((function () { return r < n.size ? U(e, r++, n._value) : q() })) }, be.prototype.equals = function (e) { return e instanceof be ? ge(this._value, e._value) : ye(e) }, t(we, Y), we.prototype.toString = function () { return 0 === this.size ? "Range []" : "Range [ " + this._start + "..." + this._end + (1 !== this._step ? " by " + this._step : "") + " ]" }, we.prototype.get = function (e, t) { return this.has(e) ? this._start + k(this, e) * this._step : t }, we.prototype.includes = function (e) { var t = (e - this._start) / this._step; return t >= 0 && t < this.size && t === Math.floor(t) }, we.prototype.slice = function (e, t) { return j(e, t, this.size) ? this : (e = T(e, this.size), (t = I(t, this.size)) <= e ? new we(0, 0) : new we(this.get(e, this._end), this.get(t, this._end), this._step)) }, we.prototype.indexOf = function (e) { var t = e - this._start; if (t % this._step == 0) { var n = t / this._step; if (n >= 0 && n < this.size) return n } return -1 }, we.prototype.lastIndexOf = function (e) { return this.indexOf(e) }, we.prototype.__iterate = function (e, t) { for (var n = this.size - 1, r = this._step, o = t ? this._start + n * r : this._start, a = 0; a <= n; a++) { if (!1 === e(o, a, this)) return a + 1; o += t ? -r : r } return a }, we.prototype.__iterator = function (e, t) { var n = this.size - 1, r = this._step, o = t ? this._start + n * r : this._start, a = 0; return new F((function () { var i = o; return o += t ? -r : r, a > n ? q() : U(e, a++, i) })) }, we.prototype.equals = function (e) { return e instanceof we ? this._start === e._start && this._end === e._end && this._step === e._step : ye(this, e) }, t(xe, n), t(Ee, xe), t(Se, xe), t(Ce, xe), xe.Keyed = Ee, xe.Indexed = Se, xe.Set = Ce; var Ae = "function" == typeof Math.imul && -2 === Math.imul(4294967295, 2) ? Math.imul : function (e, t) { var n = 65535 & (e |= 0), r = 65535 & (t |= 0); return n * r + ((e >>> 16) * r + n * (t >>> 16) << 16 >>> 0) | 0 }; function ke(e) { return e >>> 1 & 1073741824 | 3221225471 & e } function Oe(e) { if (!1 === e || null == e) return 0; if ("function" == typeof e.valueOf && (!1 === (e = e.valueOf()) || null == e)) return 0; if (!0 === e) return 1; var t = typeof e; if ("number" === t) { if (e != e || e === 1 / 0) return 0; var n = 0 | e; for (n !== e && (n ^= 4294967295 * e); e > 4294967295;)n ^= e /= 4294967295; return ke(n) } if ("string" === t) return e.length > Fe ? je(e) : Te(e); if ("function" == typeof e.hashCode) return e.hashCode(); if ("object" === t) return Ie(e); if ("function" == typeof e.toString) return Te(e.toString()); throw new Error("Value type " + t + " cannot be hashed.") } function je(e) { var t = ze[e]; return void 0 === t && (t = Te(e), qe === Ue && (qe = 0, ze = {}), qe++, ze[e] = t), t } function Te(e) { for (var t = 0, n = 0; n < e.length; n++)t = 31 * t + e.charCodeAt(n) | 0; return ke(t) } function Ie(e) { var t; if (De && void 0 !== (t = Re.get(e))) return t; if (void 0 !== (t = e[Be])) return t; if (!Ne) { if (void 0 !== (t = e.propertyIsEnumerable && e.propertyIsEnumerable[Be])) return t; if (void 0 !== (t = Me(e))) return t } if (t = ++Le, 1073741824 & Le && (Le = 0), De) Re.set(e, t); else { if (void 0 !== Pe && !1 === Pe(e)) throw new Error("Non-extensible objects are not allowed as keys."); if (Ne) Object.defineProperty(e, Be, { enumerable: !1, configurable: !1, writable: !1, value: t }); else if (void 0 !== e.propertyIsEnumerable && e.propertyIsEnumerable === e.constructor.prototype.propertyIsEnumerable) e.propertyIsEnumerable = function () { return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments) }, e.propertyIsEnumerable[Be] = t; else { if (void 0 === e.nodeType) throw new Error("Unable to set a non-enumerable property on object."); e[Be] = t } } return t } var Pe = Object.isExtensible, Ne = function () { try { return Object.defineProperty({}, "@", {}), !0 } catch (e) { return !1 } }(); function Me(e) { if (e && e.nodeType > 0) switch (e.nodeType) { case 1: return e.uniqueID; case 9: return e.documentElement && e.documentElement.uniqueID } } var Re, De = "function" == typeof WeakMap; De && (Re = new WeakMap); var Le = 0, Be = "__immutablehash__"; "function" == typeof Symbol && (Be = Symbol(Be)); var Fe = 16, Ue = 255, qe = 0, ze = {}; function Ve(e) { _e(e !== 1 / 0, "Cannot perform this action with an infinite size.") } function We(e) { return null == e ? ot() : He(e) && !l(e) ? e : ot().withMutations((function (t) { var n = r(e); Ve(n.size), n.forEach((function (e, n) { return t.set(n, e) })) })) } function He(e) { return !(!e || !e[$e]) } t(We, Ee), We.of = function () { var t = e.call(arguments, 0); return ot().withMutations((function (e) { for (var n = 0; n < t.length; n += 2) { if (n + 1 >= t.length) throw new Error("Missing value for key: " + t[n]); e.set(t[n], t[n + 1]) } })) }, We.prototype.toString = function () { return this.__toString("Map {", "}") }, We.prototype.get = function (e, t) { return this._root ? this._root.get(0, void 0, e, t) : t }, We.prototype.set = function (e, t) { return at(this, e, t) }, We.prototype.setIn = function (e, t) { return this.updateIn(e, b, (function () { return t })) }, We.prototype.remove = function (e) { return at(this, e, b) }, We.prototype.deleteIn = function (e) { return this.updateIn(e, (function () { return b })) }, We.prototype.update = function (e, t, n) { return 1 === arguments.length ? e(this) : this.updateIn([e], t, n) }, We.prototype.updateIn = function (e, t, n) { n || (n = t, t = void 0); var r = vt(this, xn(e), t, n); return r === b ? void 0 : r }, We.prototype.clear = function () { return 0 === this.size ? this : this.__ownerID ? (this.size = 0, this._root = null, this.__hash = void 0, this.__altered = !0, this) : ot() }, We.prototype.merge = function () { return ft(this, void 0, arguments) }, We.prototype.mergeWith = function (t) { return ft(this, t, e.call(arguments, 1)) }, We.prototype.mergeIn = function (t) { var n = e.call(arguments, 1); return this.updateIn(t, ot(), (function (e) { return "function" == typeof e.merge ? e.merge.apply(e, n) : n[n.length - 1] })) }, We.prototype.mergeDeep = function () { return ft(this, ht, arguments) }, We.prototype.mergeDeepWith = function (t) { var n = e.call(arguments, 1); return ft(this, dt(t), n) }, We.prototype.mergeDeepIn = function (t) { var n = e.call(arguments, 1); return this.updateIn(t, ot(), (function (e) { return "function" == typeof e.mergeDeep ? e.mergeDeep.apply(e, n) : n[n.length - 1] })) }, We.prototype.sort = function (e) { return zt(pn(this, e)) }, We.prototype.sortBy = function (e, t) { return zt(pn(this, t, e)) }, We.prototype.withMutations = function (e) { var t = this.asMutable(); return e(t), t.wasAltered() ? t.__ensureOwner(this.__ownerID) : this }, We.prototype.asMutable = function () { return this.__ownerID ? this : this.__ensureOwner(new S) }, We.prototype.asImmutable = function () { return this.__ensureOwner() }, We.prototype.wasAltered = function () { return this.__altered }, We.prototype.__iterator = function (e, t) { return new et(this, e, t) }, We.prototype.__iterate = function (e, t) { var n = this, r = 0; return this._root && this._root.iterate((function (t) { return r++, e(t[1], t[0], n) }), t), r }, We.prototype.__ensureOwner = function (e) { return e === this.__ownerID ? this : e ? rt(this.size, this._root, e, this.__hash) : (this.__ownerID = e, this.__altered = !1, this) }, We.isMap = He; var Je, $e = "@@__IMMUTABLE_MAP__@@", Ke = We.prototype; function Ye(e, t) { this.ownerID = e, this.entries = t } function Ge(e, t, n) { this.ownerID = e, this.bitmap = t, this.nodes = n } function Ze(e, t, n) { this.ownerID = e, this.count = t, this.nodes = n } function Xe(e, t, n) { this.ownerID = e, this.keyHash = t, this.entries = n } function Qe(e, t, n) { this.ownerID = e, this.keyHash = t, this.entry = n } function et(e, t, n) { this._type = t, this._reverse = n, this._stack = e._root && nt(e._root) } function tt(e, t) { return U(e, t[0], t[1]) } function nt(e, t) { return { node: e, index: 0, __prev: t } } function rt(e, t, n, r) { var o = Object.create(Ke); return o.size = e, o._root = t, o.__ownerID = n, o.__hash = r, o.__altered = !1, o } function ot() { return Je || (Je = rt(0)) } function at(e, t, n) { var r, o; if (e._root) { var a = x(_), i = x(w); if (r = it(e._root, e.__ownerID, 0, void 0, t, n, a, i), !i.value) return e; o = e.size + (a.value ? n === b ? -1 : 1 : 0) } else { if (n === b) return e; o = 1, r = new Ye(e.__ownerID, [[t, n]]) } return e.__ownerID ? (e.size = o, e._root = r, e.__hash = void 0, e.__altered = !0, e) : r ? rt(o, r) : ot() } function it(e, t, n, r, o, a, i, s) { return e ? e.update(t, n, r, o, a, i, s) : a === b ? e : (E(s), E(i), new Qe(t, r, [o, a])) } function st(e) { return e.constructor === Qe || e.constructor === Xe } function ut(e, t, n, r, o) { if (e.keyHash === r) return new Xe(t, r, [e.entry, o]); var a, i = (0 === n ? e.keyHash : e.keyHash >>> n) & y, s = (0 === n ? r : r >>> n) & y; return new Ge(t, 1 << i | 1 << s, i === s ? [ut(e, t, n + v, r, o)] : (a = new Qe(t, r, o), i < s ? [e, a] : [a, e])) } function ct(e, t, n, r) { e || (e = new S); for (var o = new Qe(e, Oe(n), [n, r]), a = 0; a < t.length; a++) { var i = t[a]; o = o.update(e, 0, void 0, i[0], i[1]) } return o } function lt(e, t, n, r) { for (var o = 0, a = 0, i = new Array(n), s = 0, u = 1, c = t.length; s < c; s++, u <<= 1) { var l = t[s]; void 0 !== l && s !== r && (o |= u, i[a++] = l) } return new Ge(e, o, i) } function pt(e, t, n, r, o) { for (var a = 0, i = new Array(g), s = 0; 0 !== n; s++, n >>>= 1)i[s] = 1 & n ? t[a++] : void 0; return i[r] = o, new Ze(e, a + 1, i) } function ft(e, t, n) { for (var o = [], a = 0; a < n.length; a++) { var s = n[a], u = r(s); i(s) || (u = u.map((function (e) { return he(e) }))), o.push(u) } return mt(e, t, o) } function ht(e, t, n) { return e && e.mergeDeep && i(t) ? e.mergeDeep(t) : ge(e, t) ? e : t } function dt(e) { return function (t, n, r) { if (t && t.mergeDeepWith && i(n)) return t.mergeDeepWith(e, n); var o = e(t, n, r); return ge(t, o) ? t : o } } function mt(e, t, n) { return 0 === (n = n.filter((function (e) { return 0 !== e.size }))).length ? e : 0 !== e.size || e.__ownerID || 1 !== n.length ? e.withMutations((function (e) { for (var r = t ? function (n, r) { e.update(r, b, (function (e) { return e === b ? n : t(e, n, r) })) } : function (t, n) { e.set(n, t) }, o = 0; o < n.length; o++)n[o].forEach(r) })) : e.constructor(n[0]) } function vt(e, t, n, r) { var o = e === b, a = t.next(); if (a.done) { var i = o ? n : e, s = r(i); return s === i ? e : s } _e(o || e && e.set, "invalid keyPath"); var u = a.value, c = o ? b : e.get(u, b), l = vt(c, t, n, r); return l === c ? e : l === b ? e.remove(u) : (o ? ot() : e).set(u, l) } function gt(e) { return e = (e = (858993459 & (e -= e >> 1 & 1431655765)) + (e >> 2 & 858993459)) + (e >> 4) & 252645135, e += e >> 8, 127 & (e += e >> 16) } function yt(e, t, n, r) { var o = r ? e : C(e); return o[t] = n, o } function bt(e, t, n, r) { var o = e.length + 1; if (r && t + 1 === o) return e[t] = n, e; for (var a = new Array(o), i = 0, s = 0; s < o; s++)s === t ? (a[s] = n, i = -1) : a[s] = e[s + i]; return a } function _t(e, t, n) { var r = e.length - 1; if (n && t === r) return e.pop(), e; for (var o = new Array(r), a = 0, i = 0; i < r; i++)i === t && (a = 1), o[i] = e[i + a]; return o } Ke[$e] = !0, Ke[m] = Ke.remove, Ke.removeIn = Ke.deleteIn, Ye.prototype.get = function (e, t, n, r) { for (var o = this.entries, a = 0, i = o.length; a < i; a++)if (ge(n, o[a][0])) return o[a][1]; return r }, Ye.prototype.update = function (e, t, n, r, o, a, i) { for (var s = o === b, u = this.entries, c = 0, l = u.length; c < l && !ge(r, u[c][0]); c++); var p = c < l; if (p ? u[c][1] === o : s) return this; if (E(i), (s || !p) && E(a), !s || 1 !== u.length) { if (!p && !s && u.length >= wt) return ct(e, u, r, o); var f = e && e === this.ownerID, h = f ? u : C(u); return p ? s ? c === l - 1 ? h.pop() : h[c] = h.pop() : h[c] = [r, o] : h.push([r, o]), f ? (this.entries = h, this) : new Ye(e, h) } }, Ge.prototype.get = function (e, t, n, r) { void 0 === t && (t = Oe(n)); var o = 1 << ((0 === e ? t : t >>> e) & y), a = this.bitmap; return 0 == (a & o) ? r : this.nodes[gt(a & o - 1)].get(e + v, t, n, r) }, Ge.prototype.update = function (e, t, n, r, o, a, i) { void 0 === n && (n = Oe(r)); var s = (0 === t ? n : n >>> t) & y, u = 1 << s, c = this.bitmap, l = 0 != (c & u); if (!l && o === b) return this; var p = gt(c & u - 1), f = this.nodes, h = l ? f[p] : void 0, d = it(h, e, t + v, n, r, o, a, i); if (d === h) return this; if (!l && d && f.length >= xt) return pt(e, f, c, s, d); if (l && !d && 2 === f.length && st(f[1 ^ p])) return f[1 ^ p]; if (l && d && 1 === f.length && st(d)) return d; var m = e && e === this.ownerID, g = l ? d ? c : c ^ u : c | u, _ = l ? d ? yt(f, p, d, m) : _t(f, p, m) : bt(f, p, d, m); return m ? (this.bitmap = g, this.nodes = _, this) : new Ge(e, g, _) }, Ze.prototype.get = function (e, t, n, r) { void 0 === t && (t = Oe(n)); var o = (0 === e ? t : t >>> e) & y, a = this.nodes[o]; return a ? a.get(e + v, t, n, r) : r }, Ze.prototype.update = function (e, t, n, r, o, a, i) { void 0 === n && (n = Oe(r)); var s = (0 === t ? n : n >>> t) & y, u = o === b, c = this.nodes, l = c[s]; if (u && !l) return this; var p = it(l, e, t + v, n, r, o, a, i); if (p === l) return this; var f = this.count; if (l) { if (!p && --f < Et) return lt(e, c, f, s) } else f++; var h = e && e === this.ownerID, d = yt(c, s, p, h); return h ? (this.count = f, this.nodes = d, this) : new Ze(e, f, d) }, Xe.prototype.get = function (e, t, n, r) { for (var o = this.entries, a = 0, i = o.length; a < i; a++)if (ge(n, o[a][0])) return o[a][1]; return r }, Xe.prototype.update = function (e, t, n, r, o, a, i) { void 0 === n && (n = Oe(r)); var s = o === b; if (n !== this.keyHash) return s ? this : (E(i), E(a), ut(this, e, t, n, [r, o])); for (var u = this.entries, c = 0, l = u.length; c < l && !ge(r, u[c][0]); c++); var p = c < l; if (p ? u[c][1] === o : s) return this; if (E(i), (s || !p) && E(a), s && 2 === l) return new Qe(e, this.keyHash, u[1 ^ c]); var f = e && e === this.ownerID, h = f ? u : C(u); return p ? s ? c === l - 1 ? h.pop() : h[c] = h.pop() : h[c] = [r, o] : h.push([r, o]), f ? (this.entries = h, this) : new Xe(e, this.keyHash, h) }, Qe.prototype.get = function (e, t, n, r) { return ge(n, this.entry[0]) ? this.entry[1] : r }, Qe.prototype.update = function (e, t, n, r, o, a, i) { var s = o === b, u = ge(r, this.entry[0]); return (u ? o === this.entry[1] : s) ? this : (E(i), s ? void E(a) : u ? e && e === this.ownerID ? (this.entry[1] = o, this) : new Qe(e, this.keyHash, [r, o]) : (E(a), ut(this, e, t, Oe(r), [r, o]))) }, Ye.prototype.iterate = Xe.prototype.iterate = function (e, t) { for (var n = this.entries, r = 0, o = n.length - 1; r <= o; r++)if (!1 === e(n[t ? o - r : r])) return !1 }, Ge.prototype.iterate = Ze.prototype.iterate = function (e, t) { for (var n = this.nodes, r = 0, o = n.length - 1; r <= o; r++) { var a = n[t ? o - r : r]; if (a && !1 === a.iterate(e, t)) return !1 } }, Qe.prototype.iterate = function (e, t) { return e(this.entry) }, t(et, F), et.prototype.next = function () { for (var e = this._type, t = this._stack; t;) { var n, r = t.node, o = t.index++; if (r.entry) { if (0 === o) return tt(e, r.entry) } else if (r.entries) { if (o <= (n = r.entries.length - 1)) return tt(e, r.entries[this._reverse ? n - o : o]) } else if (o <= (n = r.nodes.length - 1)) { var a = r.nodes[this._reverse ? n - o : o]; if (a) { if (a.entry) return tt(e, a.entry); t = this._stack = nt(a, t) } continue } t = this._stack = this._stack.__prev } return q() }; var wt = g / 4, xt = g / 2, Et = g / 4; function St(e) { var t = Mt(); if (null == e) return t; if (Ct(e)) return e; var n = o(e), r = n.size; return 0 === r ? t : (Ve(r), r > 0 && r < g ? Nt(0, r, v, null, new Ot(n.toArray())) : t.withMutations((function (e) { e.setSize(r), n.forEach((function (t, n) { return e.set(n, t) })) }))) } function Ct(e) { return !(!e || !e[At]) } t(St, Se), St.of = function () { return this(arguments) }, St.prototype.toString = function () { return this.__toString("List [", "]") }, St.prototype.get = function (e, t) { if ((e = k(this, e)) >= 0 && e < this.size) { var n = Bt(this, e += this._origin); return n && n.array[e & y] } return t }, St.prototype.set = function (e, t) { return Rt(this, e, t) }, St.prototype.remove = function (e) { return this.has(e) ? 0 === e ? this.shift() : e === this.size - 1 ? this.pop() : this.splice(e, 1) : this }, St.prototype.insert = function (e, t) { return this.splice(e, 0, t) }, St.prototype.clear = function () { return 0 === this.size ? this : this.__ownerID ? (this.size = this._origin = this._capacity = 0, this._level = v, this._root = this._tail = null, this.__hash = void 0, this.__altered = !0, this) : Mt() }, St.prototype.push = function () { var e = arguments, t = this.size; return this.withMutations((function (n) { Ft(n, 0, t + e.length); for (var r = 0; r < e.length; r++)n.set(t + r, e[r]) })) }, St.prototype.pop = function () { return Ft(this, 0, -1) }, St.prototype.unshift = function () { var e = arguments; return this.withMutations((function (t) { Ft(t, -e.length); for (var n = 0; n < e.length; n++)t.set(n, e[n]) })) }, St.prototype.shift = function () { return Ft(this, 1) }, St.prototype.merge = function () { return Ut(this, void 0, arguments) }, St.prototype.mergeWith = function (t) { return Ut(this, t, e.call(arguments, 1)) }, St.prototype.mergeDeep = function () { return Ut(this, ht, arguments) }, St.prototype.mergeDeepWith = function (t) { var n = e.call(arguments, 1); return Ut(this, dt(t), n) }, St.prototype.setSize = function (e) { return Ft(this, 0, e) }, St.prototype.slice = function (e, t) { var n = this.size; return j(e, t, n) ? this : Ft(this, T(e, n), I(t, n)) }, St.prototype.__iterator = function (e, t) { var n = 0, r = Pt(this, t); return new F((function () { var t = r(); return t === It ? q() : U(e, n++, t) })) }, St.prototype.__iterate = function (e, t) { for (var n, r = 0, o = Pt(this, t); (n = o()) !== It && !1 !== e(n, r++, this);); return r }, St.prototype.__ensureOwner = function (e) { return e === this.__ownerID ? this : e ? Nt(this._origin, this._capacity, this._level, this._root, this._tail, e, this.__hash) : (this.__ownerID = e, this) }, St.isList = Ct; var At = "@@__IMMUTABLE_LIST__@@", kt = St.prototype; function Ot(e, t) { this.array = e, this.ownerID = t } kt[At] = !0, kt[m] = kt.remove, kt.setIn = Ke.setIn, kt.deleteIn = kt.removeIn = Ke.removeIn, kt.update = Ke.update, kt.updateIn = Ke.updateIn, kt.mergeIn = Ke.mergeIn, kt.mergeDeepIn = Ke.mergeDeepIn, kt.withMutations = Ke.withMutations, kt.asMutable = Ke.asMutable, kt.asImmutable = Ke.asImmutable, kt.wasAltered = Ke.wasAltered, Ot.prototype.removeBefore = function (e, t, n) { if (n === t ? 1 << t : 0 === this.array.length) return this; var r = n >>> t & y; if (r >= this.array.length) return new Ot([], e); var o, a = 0 === r; if (t > 0) { var i = this.array[r]; if ((o = i && i.removeBefore(e, t - v, n)) === i && a) return this } if (a && !o) return this; var s = Lt(this, e); if (!a) for (var u = 0; u < r; u++)s.array[u] = void 0; return o && (s.array[r] = o), s }, Ot.prototype.removeAfter = function (e, t, n) { if (n === (t ? 1 << t : 0) || 0 === this.array.length) return this; var r, o = n - 1 >>> t & y; if (o >= this.array.length) return this; if (t > 0) { var a = this.array[o]; if ((r = a && a.removeAfter(e, t - v, n)) === a && o === this.array.length - 1) return this } var i = Lt(this, e); return i.array.splice(o + 1), r && (i.array[o] = r), i }; var jt, Tt, It = {}; function Pt(e, t) { var n = e._origin, r = e._capacity, o = qt(r), a = e._tail; return i(e._root, e._level, 0); function i(e, t, n) { return 0 === t ? s(e, n) : u(e, t, n) } function s(e, i) { var s = i === o ? a && a.array : e && e.array, u = i > n ? 0 : n - i, c = r - i; return c > g && (c = g), function () { if (u === c) return It; var e = t ? --c : u++; return s && s[e] } } function u(e, o, a) { var s, u = e && e.array, c = a > n ? 0 : n - a >> o, l = 1 + (r - a >> o); return l > g && (l = g), function () { for (; ;) { if (s) { var e = s(); if (e !== It) return e; s = null } if (c === l) return It; var n = t ? --l : c++; s = i(u && u[n], o - v, a + (n << o)) } } } } function Nt(e, t, n, r, o, a, i) { var s = Object.create(kt); return s.size = t - e, s._origin = e, s._capacity = t, s._level = n, s._root = r, s._tail = o, s.__ownerID = a, s.__hash = i, s.__altered = !1, s } function Mt() { return jt || (jt = Nt(0, 0, v)) } function Rt(e, t, n) { if ((t = k(e, t)) != t) return e; if (t >= e.size || t < 0) return e.withMutations((function (e) { t < 0 ? Ft(e, t).set(0, n) : Ft(e, 0, t + 1).set(t, n) })); t += e._origin; var r = e._tail, o = e._root, a = x(w); return t >= qt(e._capacity) ? r = Dt(r, e.__ownerID, 0, t, n, a) : o = Dt(o, e.__ownerID, e._level, t, n, a), a.value ? e.__ownerID ? (e._root = o, e._tail = r, e.__hash = void 0, e.__altered = !0, e) : Nt(e._origin, e._capacity, e._level, o, r) : e } function Dt(e, t, n, r, o, a) { var i, s = r >>> n & y, u = e && s < e.array.length; if (!u && void 0 === o) return e; if (n > 0) { var c = e && e.array[s], l = Dt(c, t, n - v, r, o, a); return l === c ? e : ((i = Lt(e, t)).array[s] = l, i) } return u && e.array[s] === o ? e : (E(a), i = Lt(e, t), void 0 === o && s === i.array.length - 1 ? i.array.pop() : i.array[s] = o, i) } function Lt(e, t) { return t && e && t === e.ownerID ? e : new Ot(e ? e.array.slice() : [], t) } function Bt(e, t) { if (t >= qt(e._capacity)) return e._tail; if (t < 1 << e._level + v) { for (var n = e._root, r = e._level; n && r > 0;)n = n.array[t >>> r & y], r -= v; return n } } function Ft(e, t, n) { void 0 !== t && (t |= 0), void 0 !== n && (n |= 0); var r = e.__ownerID || new S, o = e._origin, a = e._capacity, i = o + t, s = void 0 === n ? a : n < 0 ? a + n : o + n; if (i === o && s === a) return e; if (i >= s) return e.clear(); for (var u = e._level, c = e._root, l = 0; i + l < 0;)c = new Ot(c && c.array.length ? [void 0, c] : [], r), l += 1 << (u += v); l && (i += l, o += l, s += l, a += l); for (var p = qt(a), f = qt(s); f >= 1 << u + v;)c = new Ot(c && c.array.length ? [c] : [], r), u += v; var h = e._tail, d = f < p ? Bt(e, s - 1) : f > p ? new Ot([], r) : h; if (h && f > p && i < a && h.array.length) { for (var m = c = Lt(c, r), g = u; g > v; g -= v) { var b = p >>> g & y; m = m.array[b] = Lt(m.array[b], r) } m.array[p >>> v & y] = h } if (s < a && (d = d && d.removeAfter(r, 0, s)), i >= f) i -= f, s -= f, u = v, c = null, d = d && d.removeBefore(r, 0, i); else if (i > o || f < p) { for (l = 0; c;) { var _ = i >>> u & y; if (_ !== f >>> u & y) break; _ && (l += (1 << u) * _), u -= v, c = c.array[_] } c && i > o && (c = c.removeBefore(r, u, i - l)), c && f < p && (c = c.removeAfter(r, u, f - l)), l && (i -= l, s -= l) } return e.__ownerID ? (e.size = s - i, e._origin = i, e._capacity = s, e._level = u, e._root = c, e._tail = d, e.__hash = void 0, e.__altered = !0, e) : Nt(i, s, u, c, d) } function Ut(e, t, n) { for (var r = [], a = 0, s = 0; s < n.length; s++) { var u = n[s], c = o(u); c.size > a && (a = c.size), i(u) || (c = c.map((function (e) { return he(e) }))), r.push(c) } return a > e.size && (e = e.setSize(a)), mt(e, t, r) } function qt(e) { return e < g ? 0 : e - 1 >>> v << v } function zt(e) { return null == e ? Ht() : Vt(e) ? e : Ht().withMutations((function (t) { var n = r(e); Ve(n.size), n.forEach((function (e, n) { return t.set(n, e) })) })) } function Vt(e) { return He(e) && l(e) } function Wt(e, t, n, r) { var o = Object.create(zt.prototype); return o.size = e ? e.size : 0, o._map = e, o._list = t, o.__ownerID = n, o.__hash = r, o } function Ht() { return Tt || (Tt = Wt(ot(), Mt())) } function Jt(e, t, n) { var r, o, a = e._map, i = e._list, s = a.get(t), u = void 0 !== s; if (n === b) { if (!u) return e; i.size >= g && i.size >= 2 * a.size ? (r = (o = i.filter((function (e, t) { return void 0 !== e && s !== t }))).toKeyedSeq().map((function (e) { return e[0] })).flip().toMap(), e.__ownerID && (r.__ownerID = o.__ownerID = e.__ownerID)) : (r = a.remove(t), o = s === i.size - 1 ? i.pop() : i.set(s, void 0)) } else if (u) { if (n === i.get(s)[1]) return e; r = a, o = i.set(s, [t, n]) } else r = a.set(t, i.size), o = i.set(i.size, [t, n]); return e.__ownerID ? (e.size = r.size, e._map = r, e._list = o, e.__hash = void 0, e) : Wt(r, o) } function $t(e, t) { this._iter = e, this._useKeys = t, this.size = e.size } function Kt(e) { this._iter = e, this.size = e.size } function Yt(e) { this._iter = e, this.size = e.size } function Gt(e) { this._iter = e, this.size = e.size } function Zt(e) { var t = bn(e); return t._iter = e, t.size = e.size, t.flip = function () { return e }, t.reverse = function () { var t = e.reverse.apply(this); return t.flip = function () { return e.reverse() }, t }, t.has = function (t) { return e.includes(t) }, t.includes = function (t) { return e.has(t) }, t.cacheResult = _n, t.__iterateUncached = function (t, n) { var r = this; return e.__iterate((function (e, n) { return !1 !== t(n, e, r) }), n) }, t.__iteratorUncached = function (t, n) { if (t === R) { var r = e.__iterator(t, n); return new F((function () { var e = r.next(); if (!e.done) { var t = e.value[0]; e.value[0] = e.value[1], e.value[1] = t } return e })) } return e.__iterator(t === M ? N : M, n) }, t } function Xt(e, t, n) { var r = bn(e); return r.size = e.size, r.has = function (t) { return e.has(t) }, r.get = function (r, o) { var a = e.get(r, b); return a === b ? o : t.call(n, a, r, e) }, r.__iterateUncached = function (r, o) { var a = this; return e.__iterate((function (e, o, i) { return !1 !== r(t.call(n, e, o, i), o, a) }), o) }, r.__iteratorUncached = function (r, o) { var a = e.__iterator(R, o); return new F((function () { var o = a.next(); if (o.done) return o; var i = o.value, s = i[0]; return U(r, s, t.call(n, i[1], s, e), o) })) }, r } function Qt(e, t) { var n = bn(e); return n._iter = e, n.size = e.size, n.reverse = function () { return e }, e.flip && (n.flip = function () { var t = Zt(e); return t.reverse = function () { return e.flip() }, t }), n.get = function (n, r) { return e.get(t ? n : -1 - n, r) }, n.has = function (n) { return e.has(t ? n : -1 - n) }, n.includes = function (t) { return e.includes(t) }, n.cacheResult = _n, n.__iterate = function (t, n) { var r = this; return e.__iterate((function (e, n) { return t(e, n, r) }), !n) }, n.__iterator = function (t, n) { return e.__iterator(t, !n) }, n } function en(e, t, n, r) { var o = bn(e); return r && (o.has = function (r) { var o = e.get(r, b); return o !== b && !!t.call(n, o, r, e) }, o.get = function (r, o) { var a = e.get(r, b); return a !== b && t.call(n, a, r, e) ? a : o }), o.__iterateUncached = function (o, a) { var i = this, s = 0; return e.__iterate((function (e, a, u) { if (t.call(n, e, a, u)) return s++, o(e, r ? a : s - 1, i) }), a), s }, o.__iteratorUncached = function (o, a) { var i = e.__iterator(R, a), s = 0; return new F((function () { for (; ;) { var a = i.next(); if (a.done) return a; var u = a.value, c = u[0], l = u[1]; if (t.call(n, l, c, e)) return U(o, r ? c : s++, l, a) } })) }, o } function tn(e, t, n) { var r = We().asMutable(); return e.__iterate((function (o, a) { r.update(t.call(n, o, a, e), 0, (function (e) { return e + 1 })) })), r.asImmutable() } function nn(e, t, n) { var r = s(e), o = (l(e) ? zt() : We()).asMutable(); e.__iterate((function (a, i) { o.update(t.call(n, a, i, e), (function (e) { return (e = e || []).push(r ? [i, a] : a), e })) })); var a = yn(e); return o.map((function (t) { return mn(e, a(t)) })) } function rn(e, t, n, r) { var o = e.size; if (void 0 !== t && (t |= 0), void 0 !== n && (n === 1 / 0 ? n = o : n |= 0), j(t, n, o)) return e; var a = T(t, o), i = I(n, o); if (a != a || i != i) return rn(e.toSeq().cacheResult(), t, n, r); var s, u = i - a; u == u && (s = u < 0 ? 0 : u); var c = bn(e); return c.size = 0 === s ? s : e.size && s || void 0, !r && ae(e) && s >= 0 && (c.get = function (t, n) { return (t = k(this, t)) >= 0 && t < s ? e.get(t + a, n) : n }), c.__iterateUncached = function (t, n) { var o = this; if (0 === s) return 0; if (n) return this.cacheResult().__iterate(t, n); var i = 0, u = !0, c = 0; return e.__iterate((function (e, n) { if (!u || !(u = i++ < a)) return c++, !1 !== t(e, r ? n : c - 1, o) && c !== s })), c }, c.__iteratorUncached = function (t, n) { if (0 !== s && n) return this.cacheResult().__iterator(t, n); var o = 0 !== s && e.__iterator(t, n), i = 0, u = 0; return new F((function () { for (; i++ < a;)o.next(); if (++u > s) return q(); var e = o.next(); return r || t === M ? e : U(t, u - 1, t === N ? void 0 : e.value[1], e) })) }, c } function on(e, t, n) { var r = bn(e); return r.__iterateUncached = function (r, o) { var a = this; if (o) return this.cacheResult().__iterate(r, o); var i = 0; return e.__iterate((function (e, o, s) { return t.call(n, e, o, s) && ++i && r(e, o, a) })), i }, r.__iteratorUncached = function (r, o) { var a = this; if (o) return this.cacheResult().__iterator(r, o); var i = e.__iterator(R, o), s = !0; return new F((function () { if (!s) return q(); var e = i.next(); if (e.done) return e; var o = e.value, u = o[0], c = o[1]; return t.call(n, c, u, a) ? r === R ? e : U(r, u, c, e) : (s = !1, q()) })) }, r } function an(e, t, n, r) { var o = bn(e); return o.__iterateUncached = function (o, a) { var i = this; if (a) return this.cacheResult().__iterate(o, a); var s = !0, u = 0; return e.__iterate((function (e, a, c) { if (!s || !(s = t.call(n, e, a, c))) return u++, o(e, r ? a : u - 1, i) })), u }, o.__iteratorUncached = function (o, a) { var i = this; if (a) return this.cacheResult().__iterator(o, a); var s = e.__iterator(R, a), u = !0, c = 0; return new F((function () { var e, a, l; do { if ((e = s.next()).done) return r || o === M ? e : U(o, c++, o === N ? void 0 : e.value[1], e); var p = e.value; a = p[0], l = p[1], u && (u = t.call(n, l, a, i)) } while (u); return o === R ? e : U(o, a, l, e) })) }, o } function sn(e, t) { var n = s(e), o = [e].concat(t).map((function (e) { return i(e) ? n && (e = r(e)) : e = n ? se(e) : ue(Array.isArray(e) ? e : [e]), e })).filter((function (e) { return 0 !== e.size })); if (0 === o.length) return e; if (1 === o.length) { var a = o[0]; if (a === e || n && s(a) || u(e) && u(a)) return a } var c = new te(o); return n ? c = c.toKeyedSeq() : u(e) || (c = c.toSetSeq()), (c = c.flatten(!0)).size = o.reduce((function (e, t) { if (void 0 !== e) { var n = t.size; if (void 0 !== n) return e + n } }), 0), c } function un(e, t, n) { var r = bn(e); return r.__iterateUncached = function (r, o) { var a = 0, s = !1; function u(e, c) { var l = this; e.__iterate((function (e, o) { return (!t || c < t) && i(e) ? u(e, c + 1) : !1 === r(e, n ? o : a++, l) && (s = !0), !s }), o) } return u(e, 0), a }, r.__iteratorUncached = function (r, o) { var a = e.__iterator(r, o), s = [], u = 0; return new F((function () { for (; a;) { var e = a.next(); if (!1 === e.done) { var c = e.value; if (r === R && (c = c[1]), t && !(s.length < t) || !i(c)) return n ? e : U(r, u++, c, e); s.push(a), a = c.__iterator(r, o) } else a = s.pop() } return q() })) }, r } function cn(e, t, n) { var r = yn(e); return e.toSeq().map((function (o, a) { return r(t.call(n, o, a, e)) })).flatten(!0) } function ln(e, t) { var n = bn(e); return n.size = e.size && 2 * e.size - 1, n.__iterateUncached = function (n, r) { var o = this, a = 0; return e.__iterate((function (e, r) { return (!a || !1 !== n(t, a++, o)) && !1 !== n(e, a++, o) }), r), a }, n.__iteratorUncached = function (n, r) { var o, a = e.__iterator(M, r), i = 0; return new F((function () { return (!o || i % 2) && (o = a.next()).done ? o : i % 2 ? U(n, i++, t) : U(n, i++, o.value, o) })) }, n } function pn(e, t, n) { t || (t = wn); var r = s(e), o = 0, a = e.toSeq().map((function (t, r) { return [r, t, o++, n ? n(t, r, e) : t] })).toArray(); return a.sort((function (e, n) { return t(e[3], n[3]) || e[2] - n[2] })).forEach(r ? function (e, t) { a[t].length = 2 } : function (e, t) { a[t] = e[1] }), r ? K(a) : u(e) ? Y(a) : G(a) } function fn(e, t, n) { if (t || (t = wn), n) { var r = e.toSeq().map((function (t, r) { return [t, n(t, r, e)] })).reduce((function (e, n) { return hn(t, e[1], n[1]) ? n : e })); return r && r[0] } return e.reduce((function (e, n) { return hn(t, e, n) ? n : e })) } function hn(e, t, n) { var r = e(n, t); return 0 === r && n !== t && (null == n || n != n) || r > 0 } function dn(e, t, r) { var o = bn(e); return o.size = new te(r).map((function (e) { return e.size })).min(), o.__iterate = function (e, t) { for (var n, r = this.__iterator(M, t), o = 0; !(n = r.next()).done && !1 !== e(n.value, o++, this);); return o }, o.__iteratorUncached = function (e, o) { var a = r.map((function (e) { return e = n(e), W(o ? e.reverse() : e) })), i = 0, s = !1; return new F((function () { var n; return s || (n = a.map((function (e) { return e.next() })), s = n.some((function (e) { return e.done }))), s ? q() : U(e, i++, t.apply(null, n.map((function (e) { return e.value })))) })) }, o } function mn(e, t) { return ae(e) ? t : e.constructor(t) } function vn(e) { if (e !== Object(e)) throw new TypeError("Expected [K, V] tuple: " + e) } function gn(e) { return Ve(e.size), A(e) } function yn(e) { return s(e) ? r : u(e) ? o : a } function bn(e) { return Object.create((s(e) ? K : u(e) ? Y : G).prototype) } function _n() { return this._iter.cacheResult ? (this._iter.cacheResult(), this.size = this._iter.size, this) : $.prototype.cacheResult.call(this) } function wn(e, t) { return e > t ? 1 : e < t ? -1 : 0 } function xn(e) { var t = W(e); if (!t) { if (!J(e)) throw new TypeError("Expected iterable or array-like: " + e); t = W(n(e)) } return t } function En(e, t) { var n, r = function (a) { if (a instanceof r) return a; if (!(this instanceof r)) return new r(a); if (!n) { n = !0; var i = Object.keys(e); kn(o, i), o.size = i.length, o._name = t, o._keys = i, o._defaultValues = e } this._map = We(a) }, o = r.prototype = Object.create(Sn); return o.constructor = r, r } t(zt, We), zt.of = function () { return this(arguments) }, zt.prototype.toString = function () { return this.__toString("OrderedMap {", "}") }, zt.prototype.get = function (e, t) { var n = this._map.get(e); return void 0 !== n ? this._list.get(n)[1] : t }, zt.prototype.clear = function () { return 0 === this.size ? this : this.__ownerID ? (this.size = 0, this._map.clear(), this._list.clear(), this) : Ht() }, zt.prototype.set = function (e, t) { return Jt(this, e, t) }, zt.prototype.remove = function (e) { return Jt(this, e, b) }, zt.prototype.wasAltered = function () { return this._map.wasAltered() || this._list.wasAltered() }, zt.prototype.__iterate = function (e, t) { var n = this; return this._list.__iterate((function (t) { return t && e(t[1], t[0], n) }), t) }, zt.prototype.__iterator = function (e, t) { return this._list.fromEntrySeq().__iterator(e, t) }, zt.prototype.__ensureOwner = function (e) { if (e === this.__ownerID) return this; var t = this._map.__ensureOwner(e), n = this._list.__ensureOwner(e); return e ? Wt(t, n, e, this.__hash) : (this.__ownerID = e, this._map = t, this._list = n, this) }, zt.isOrderedMap = Vt, zt.prototype[d] = !0, zt.prototype[m] = zt.prototype.remove, t($t, K), $t.prototype.get = function (e, t) { return this._iter.get(e, t) }, $t.prototype.has = function (e) { return this._iter.has(e) }, $t.prototype.valueSeq = function () { return this._iter.valueSeq() }, $t.prototype.reverse = function () { var e = this, t = Qt(this, !0); return this._useKeys || (t.valueSeq = function () { return e._iter.toSeq().reverse() }), t }, $t.prototype.map = function (e, t) { var n = this, r = Xt(this, e, t); return this._useKeys || (r.valueSeq = function () { return n._iter.toSeq().map(e, t) }), r }, $t.prototype.__iterate = function (e, t) { var n, r = this; return this._iter.__iterate(this._useKeys ? function (t, n) { return e(t, n, r) } : (n = t ? gn(this) : 0, function (o) { return e(o, t ? --n : n++, r) }), t) }, $t.prototype.__iterator = function (e, t) { if (this._useKeys) return this._iter.__iterator(e, t); var n = this._iter.__iterator(M, t), r = t ? gn(this) : 0; return new F((function () { var o = n.next(); return o.done ? o : U(e, t ? --r : r++, o.value, o) })) }, $t.prototype[d] = !0, t(Kt, Y), Kt.prototype.includes = function (e) { return this._iter.includes(e) }, Kt.prototype.__iterate = function (e, t) { var n = this, r = 0; return this._iter.__iterate((function (t) { return e(t, r++, n) }), t) }, Kt.prototype.__iterator = function (e, t) { var n = this._iter.__iterator(M, t), r = 0; return new F((function () { var t = n.next(); return t.done ? t : U(e, r++, t.value, t) })) }, t(Yt, G), Yt.prototype.has = function (e) { return this._iter.includes(e) }, Yt.prototype.__iterate = function (e, t) { var n = this; return this._iter.__iterate((function (t) { return e(t, t, n) }), t) }, Yt.prototype.__iterator = function (e, t) { var n = this._iter.__iterator(M, t); return new F((function () { var t = n.next(); return t.done ? t : U(e, t.value, t.value, t) })) }, t(Gt, K), Gt.prototype.entrySeq = function () { return this._iter.toSeq() }, Gt.prototype.__iterate = function (e, t) { var n = this; return this._iter.__iterate((function (t) { if (t) { vn(t); var r = i(t); return e(r ? t.get(1) : t[1], r ? t.get(0) : t[0], n) } }), t) }, Gt.prototype.__iterator = function (e, t) { var n = this._iter.__iterator(M, t); return new F((function () { for (; ;) { var t = n.next(); if (t.done) return t; var r = t.value; if (r) { vn(r); var o = i(r); return U(e, o ? r.get(0) : r[0], o ? r.get(1) : r[1], t) } } })) }, Kt.prototype.cacheResult = $t.prototype.cacheResult = Yt.prototype.cacheResult = Gt.prototype.cacheResult = _n, t(En, Ee), En.prototype.toString = function () { return this.__toString(An(this) + " {", "}") }, En.prototype.has = function (e) { return this._defaultValues.hasOwnProperty(e) }, En.prototype.get = function (e, t) { if (!this.has(e)) return t; var n = this._defaultValues[e]; return this._map ? this._map.get(e, n) : n }, En.prototype.clear = function () { if (this.__ownerID) return this._map && this._map.clear(), this; var e = this.constructor; return e._empty || (e._empty = Cn(this, ot())) }, En.prototype.set = function (e, t) { if (!this.has(e)) throw new Error('Cannot set unknown key "' + e + '" on ' + An(this)); if (this._map && !this._map.has(e) && t === this._defaultValues[e]) return this; var n = this._map && this._map.set(e, t); return this.__ownerID || n === this._map ? this : Cn(this, n) }, En.prototype.remove = function (e) { if (!this.has(e)) return this; var t = this._map && this._map.remove(e); return this.__ownerID || t === this._map ? this : Cn(this, t) }, En.prototype.wasAltered = function () { return this._map.wasAltered() }, En.prototype.__iterator = function (e, t) { var n = this; return r(this._defaultValues).map((function (e, t) { return n.get(t) })).__iterator(e, t) }, En.prototype.__iterate = function (e, t) { var n = this; return r(this._defaultValues).map((function (e, t) { return n.get(t) })).__iterate(e, t) }, En.prototype.__ensureOwner = function (e) { if (e === this.__ownerID) return this; var t = this._map && this._map.__ensureOwner(e); return e ? Cn(this, t, e) : (this.__ownerID = e, this._map = t, this) }; var Sn = En.prototype; function Cn(e, t, n) { var r = Object.create(Object.getPrototypeOf(e)); return r._map = t, r.__ownerID = n, r } function An(e) { return e._name || e.constructor.name || "Record" } function kn(e, t) { try { t.forEach(On.bind(void 0, e)) } catch (e) { } } function On(e, t) { Object.defineProperty(e, t, { get: function () { return this.get(t) }, set: function (e) { _e(this.__ownerID, "Cannot set on an immutable record."), this.set(t, e) } }) } function jn(e) { return null == e ? Dn() : Tn(e) && !l(e) ? e : Dn().withMutations((function (t) { var n = a(e); Ve(n.size), n.forEach((function (e) { return t.add(e) })) })) } function Tn(e) { return !(!e || !e[Pn]) } Sn[m] = Sn.remove, Sn.deleteIn = Sn.removeIn = Ke.removeIn, Sn.merge = Ke.merge, Sn.mergeWith = Ke.mergeWith, Sn.mergeIn = Ke.mergeIn, Sn.mergeDeep = Ke.mergeDeep, Sn.mergeDeepWith = Ke.mergeDeepWith, Sn.mergeDeepIn = Ke.mergeDeepIn, Sn.setIn = Ke.setIn, Sn.update = Ke.update, Sn.updateIn = Ke.updateIn, Sn.withMutations = Ke.withMutations, Sn.asMutable = Ke.asMutable, Sn.asImmutable = Ke.asImmutable, t(jn, Ce), jn.of = function () { return this(arguments) }, jn.fromKeys = function (e) { return this(r(e).keySeq()) }, jn.prototype.toString = function () { return this.__toString("Set {", "}") }, jn.prototype.has = function (e) { return this._map.has(e) }, jn.prototype.add = function (e) { return Mn(this, this._map.set(e, !0)) }, jn.prototype.remove = function (e) { return Mn(this, this._map.remove(e)) }, jn.prototype.clear = function () { return Mn(this, this._map.clear()) }, jn.prototype.union = function () { var t = e.call(arguments, 0); return 0 === (t = t.filter((function (e) { return 0 !== e.size }))).length ? this : 0 !== this.size || this.__ownerID || 1 !== t.length ? this.withMutations((function (e) { for (var n = 0; n < t.length; n++)a(t[n]).forEach((function (t) { return e.add(t) })) })) : this.constructor(t[0]) }, jn.prototype.intersect = function () { var t = e.call(arguments, 0); if (0 === t.length) return this; t = t.map((function (e) { return a(e) })); var n = this; return this.withMutations((function (e) { n.forEach((function (n) { t.every((function (e) { return e.includes(n) })) || e.remove(n) })) })) }, jn.prototype.subtract = function () { var t = e.call(arguments, 0); if (0 === t.length) return this; t = t.map((function (e) { return a(e) })); var n = this; return this.withMutations((function (e) { n.forEach((function (n) { t.some((function (e) { return e.includes(n) })) && e.remove(n) })) })) }, jn.prototype.merge = function () { return this.union.apply(this, arguments) }, jn.prototype.mergeWith = function (t) { var n = e.call(arguments, 1); return this.union.apply(this, n) }, jn.prototype.sort = function (e) { return Ln(pn(this, e)) }, jn.prototype.sortBy = function (e, t) { return Ln(pn(this, t, e)) }, jn.prototype.wasAltered = function () { return this._map.wasAltered() }, jn.prototype.__iterate = function (e, t) { var n = this; return this._map.__iterate((function (t, r) { return e(r, r, n) }), t) }, jn.prototype.__iterator = function (e, t) { return this._map.map((function (e, t) { return t })).__iterator(e, t) }, jn.prototype.__ensureOwner = function (e) { if (e === this.__ownerID) return this; var t = this._map.__ensureOwner(e); return e ? this.__make(t, e) : (this.__ownerID = e, this._map = t, this) }, jn.isSet = Tn; var In, Pn = "@@__IMMUTABLE_SET__@@", Nn = jn.prototype; function Mn(e, t) { return e.__ownerID ? (e.size = t.size, e._map = t, e) : t === e._map ? e : 0 === t.size ? e.__empty() : e.__make(t) } function Rn(e, t) { var n = Object.create(Nn); return n.size = e ? e.size : 0, n._map = e, n.__ownerID = t, n } function Dn() { return In || (In = Rn(ot())) } function Ln(e) { return null == e ? zn() : Bn(e) ? e : zn().withMutations((function (t) { var n = a(e); Ve(n.size), n.forEach((function (e) { return t.add(e) })) })) } function Bn(e) { return Tn(e) && l(e) } Nn[Pn] = !0, Nn[m] = Nn.remove, Nn.mergeDeep = Nn.merge, Nn.mergeDeepWith = Nn.mergeWith, Nn.withMutations = Ke.withMutations, Nn.asMutable = Ke.asMutable, Nn.asImmutable = Ke.asImmutable, Nn.__empty = Dn, Nn.__make = Rn, t(Ln, jn), Ln.of = function () { return this(arguments) }, Ln.fromKeys = function (e) { return this(r(e).keySeq()) }, Ln.prototype.toString = function () { return this.__toString("OrderedSet {", "}") }, Ln.isOrderedSet = Bn; var Fn, Un = Ln.prototype; function qn(e, t) { var n = Object.create(Un); return n.size = e ? e.size : 0, n._map = e, n.__ownerID = t, n } function zn() { return Fn || (Fn = qn(Ht())) } function Vn(e) { return null == e ? Yn() : Wn(e) ? e : Yn().unshiftAll(e) } function Wn(e) { return !(!e || !e[Jn]) } Un[d] = !0, Un.__empty = zn, Un.__make = qn, t(Vn, Se), Vn.of = function () { return this(arguments) }, Vn.prototype.toString = function () { return this.__toString("Stack [", "]") }, Vn.prototype.get = function (e, t) { var n = this._head; for (e = k(this, e); n && e--;)n = n.next; return n ? n.value : t }, Vn.prototype.peek = function () { return this._head && this._head.value }, Vn.prototype.push = function () { if (0 === arguments.length) return this; for (var e = this.size + arguments.length, t = this._head, n = arguments.length - 1; n >= 0; n--)t = { value: arguments[n], next: t }; return this.__ownerID ? (this.size = e, this._head = t, this.__hash = void 0, this.__altered = !0, this) : Kn(e, t) }, Vn.prototype.pushAll = function (e) { if (0 === (e = o(e)).size) return this; Ve(e.size); var t = this.size, n = this._head; return e.reverse().forEach((function (e) { t++, n = { value: e, next: n } })), this.__ownerID ? (this.size = t, this._head = n, this.__hash = void 0, this.__altered = !0, this) : Kn(t, n) }, Vn.prototype.pop = function () { return this.slice(1) }, Vn.prototype.unshift = function () { return this.push.apply(this, arguments) }, Vn.prototype.unshiftAll = function (e) { return this.pushAll(e) }, Vn.prototype.shift = function () { return this.pop.apply(this, arguments) }, Vn.prototype.clear = function () { return 0 === this.size ? this : this.__ownerID ? (this.size = 0, this._head = void 0, this.__hash = void 0, this.__altered = !0, this) : Yn() }, Vn.prototype.slice = function (e, t) { if (j(e, t, this.size)) return this; var n = T(e, this.size); if (I(t, this.size) !== this.size) return Se.prototype.slice.call(this, e, t); for (var r = this.size - n, o = this._head; n--;)o = o.next; return this.__ownerID ? (this.size = r, this._head = o, this.__hash = void 0, this.__altered = !0, this) : Kn(r, o) }, Vn.prototype.__ensureOwner = function (e) { return e === this.__ownerID ? this : e ? Kn(this.size, this._head, e, this.__hash) : (this.__ownerID = e, this.__altered = !1, this) }, Vn.prototype.__iterate = function (e, t) { if (t) return this.reverse().__iterate(e); for (var n = 0, r = this._head; r && !1 !== e(r.value, n++, this);)r = r.next; return n }, Vn.prototype.__iterator = function (e, t) { if (t) return this.reverse().__iterator(e); var n = 0, r = this._head; return new F((function () { if (r) { var t = r.value; return r = r.next, U(e, n++, t) } return q() })) }, Vn.isStack = Wn; var Hn, Jn = "@@__IMMUTABLE_STACK__@@", $n = Vn.prototype; function Kn(e, t, n, r) { var o = Object.create($n); return o.size = e, o._head = t, o.__ownerID = n, o.__hash = r, o.__altered = !1, o } function Yn() { return Hn || (Hn = Kn(0)) } function Gn(e, t) { var n = function (n) { e.prototype[n] = t[n] }; return Object.keys(t).forEach(n), Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(t).forEach(n), e } $n[Jn] = !0, $n.withMutations = Ke.withMutations, $n.asMutable = Ke.asMutable, $n.asImmutable = Ke.asImmutable, $n.wasAltered = Ke.wasAltered, n.Iterator = F, Gn(n, { toArray: function () { Ve(this.size); var e = new Array(this.size || 0); return this.valueSeq().__iterate((function (t, n) { e[n] = t })), e }, toIndexedSeq: function () { return new Kt(this) }, toJS: function () { return this.toSeq().map((function (e) { return e && "function" == typeof e.toJS ? e.toJS() : e })).__toJS() }, toJSON: function () { return this.toSeq().map((function (e) { return e && "function" == typeof e.toJSON ? e.toJSON() : e })).__toJS() }, toKeyedSeq: function () { return new $t(this, !0) }, toMap: function () { return We(this.toKeyedSeq()) }, toObject: function () { Ve(this.size); var e = {}; return this.__iterate((function (t, n) { e[n] = t })), e }, toOrderedMap: function () { return zt(this.toKeyedSeq()) }, toOrderedSet: function () { return Ln(s(this) ? this.valueSeq() : this) }, toSet: function () { return jn(s(this) ? this.valueSeq() : this) }, toSetSeq: function () { return new Yt(this) }, toSeq: function () { return u(this) ? this.toIndexedSeq() : s(this) ? this.toKeyedSeq() : this.toSetSeq() }, toStack: function () { return Vn(s(this) ? this.valueSeq() : this) }, toList: function () { return St(s(this) ? this.valueSeq() : this) }, toString: function () { return "[Iterable]" }, __toString: function (e, t) { return 0 === this.size ? e + t : e + " " + this.toSeq().map(this.__toStringMapper).join(", ") + " " + t }, concat: function () { return mn(this, sn(this, e.call(arguments, 0))) }, includes: function (e) { return this.some((function (t) { return ge(t, e) })) }, entries: function () { return this.__iterator(R) }, every: function (e, t) { Ve(this.size); var n = !0; return this.__iterate((function (r, o, a) { if (!e.call(t, r, o, a)) return n = !1, !1 })), n }, filter: function (e, t) { return mn(this, en(this, e, t, !0)) }, find: function (e, t, n) { var r = this.findEntry(e, t); return r ? r[1] : n }, forEach: function (e, t) { return Ve(this.size), this.__iterate(t ? e.bind(t) : e) }, join: function (e) { Ve(this.size), e = void 0 !== e ? "" + e : ","; var t = "", n = !0; return this.__iterate((function (r) { n ? n = !1 : t += e, t += null != r ? r.toString() : "" })), t }, keys: function () { return this.__iterator(N) }, map: function (e, t) { return mn(this, Xt(this, e, t)) }, reduce: function (e, t, n) { var r, o; return Ve(this.size), arguments.length < 2 ? o = !0 : r = t, this.__iterate((function (t, a, i) { o ? (o = !1, r = t) : r = e.call(n, r, t, a, i) })), r }, reduceRight: function (e, t, n) { var r = this.toKeyedSeq().reverse(); return r.reduce.apply(r, arguments) }, reverse: function () { return mn(this, Qt(this, !0)) }, slice: function (e, t) { return mn(this, rn(this, e, t, !0)) }, some: function (e, t) { return !this.every(tr(e), t) }, sort: function (e) { return mn(this, pn(this, e)) }, values: function () { return this.__iterator(M) }, butLast: function () { return this.slice(0, -1) }, isEmpty: function () { return void 0 !== this.size ? 0 === this.size : !this.some((function () { return !0 })) }, count: function (e, t) { return A(e ? this.toSeq().filter(e, t) : this) }, countBy: function (e, t) { return tn(this, e, t) }, equals: function (e) { return ye(this, e) }, entrySeq: function () { var e = this; if (e._cache) return new te(e._cache); var t = e.toSeq().map(er).toIndexedSeq(); return t.fromEntrySeq = function () { return e.toSeq() }, t }, filterNot: function (e, t) { return this.filter(tr(e), t) }, findEntry: function (e, t, n) { var r = n; return this.__iterate((function (n, o, a) { if (e.call(t, n, o, a)) return r = [o, n], !1 })), r }, findKey: function (e, t) { var n = this.findEntry(e, t); return n && n[0] }, findLast: function (e, t, n) { return this.toKeyedSeq().reverse().find(e, t, n) }, findLastEntry: function (e, t, n) { return this.toKeyedSeq().reverse().findEntry(e, t, n) }, findLastKey: function (e, t) { return this.toKeyedSeq().reverse().findKey(e, t) }, first: function () { return this.find(O) }, flatMap: function (e, t) { return mn(this, cn(this, e, t)) }, flatten: function (e) { return mn(this, un(this, e, !0)) }, fromEntrySeq: function () { return new Gt(this) }, get: function (e, t) { return this.find((function (t, n) { return ge(n, e) }), void 0, t) }, getIn: function (e, t) { for (var n, r = this, o = xn(e); !(n = o.next()).done;) { var a = n.value; if ((r = r && r.get ? r.get(a, b) : b) === b) return t } return r }, groupBy: function (e, t) { return nn(this, e, t) }, has: function (e) { return this.get(e, b) !== b }, hasIn: function (e) { return this.getIn(e, b) !== b }, isSubset: function (e) { return e = "function" == typeof e.includes ? e : n(e), this.every((function (t) { return e.includes(t) })) }, isSuperset: function (e) { return (e = "function" == typeof e.isSubset ? e : n(e)).isSubset(this) }, keyOf: function (e) { return this.findKey((function (t) { return ge(t, e) })) }, keySeq: function () { return this.toSeq().map(Qn).toIndexedSeq() }, last: function () { return this.toSeq().reverse().first() }, lastKeyOf: function (e) { return this.toKeyedSeq().reverse().keyOf(e) }, max: function (e) { return fn(this, e) }, maxBy: function (e, t) { return fn(this, t, e) }, min: function (e) { return fn(this, e ? nr(e) : ar) }, minBy: function (e, t) { return fn(this, t ? nr(t) : ar, e) }, rest: function () { return this.slice(1) }, skip: function (e) { return this.slice(Math.max(0, e)) }, skipLast: function (e) { return mn(this, this.toSeq().reverse().skip(e).reverse()) }, skipWhile: function (e, t) { return mn(this, an(this, e, t, !0)) }, skipUntil: function (e, t) { return this.skipWhile(tr(e), t) }, sortBy: function (e, t) { return mn(this, pn(this, t, e)) }, take: function (e) { return this.slice(0, Math.max(0, e)) }, takeLast: function (e) { return mn(this, this.toSeq().reverse().take(e).reverse()) }, takeWhile: function (e, t) { return mn(this, on(this, e, t)) }, takeUntil: function (e, t) { return this.takeWhile(tr(e), t) }, valueSeq: function () { return this.toIndexedSeq() }, hashCode: function () { return this.__hash || (this.__hash = ir(this)) } }); var Zn = n.prototype; Zn[p] = !0, Zn[B] = Zn.values, Zn.__toJS = Zn.toArray, Zn.__toStringMapper = rr, Zn.inspect = Zn.toSource = function () { return this.toString() }, Zn.chain = Zn.flatMap, Zn.contains = Zn.includes, Gn(r, { flip: function () { return mn(this, Zt(this)) }, mapEntries: function (e, t) { var n = this, r = 0; return mn(this, this.toSeq().map((function (o, a) { return e.call(t, [a, o], r++, n) })).fromEntrySeq()) }, mapKeys: function (e, t) { var n = this; return mn(this, this.toSeq().flip().map((function (r, o) { return e.call(t, r, o, n) })).flip()) } }); var Xn = r.prototype; function Qn(e, t) { return t } function er(e, t) { return [t, e] } function tr(e) { return function () { return !e.apply(this, arguments) } } function nr(e) { return function () { return -e.apply(this, arguments) } } function rr(e) { return "string" == typeof e ? JSON.stringify(e) : String(e) } function or() { return C(arguments) } function ar(e, t) { return e < t ? 1 : e > t ? -1 : 0 } function ir(e) { if (e.size === 1 / 0) return 0; var t = l(e), n = s(e), r = t ? 1 : 0; return sr(e.__iterate(n ? t ? function (e, t) { r = 31 * r + ur(Oe(e), Oe(t)) | 0 } : function (e, t) { r = r + ur(Oe(e), Oe(t)) | 0 } : t ? function (e) { r = 31 * r + Oe(e) | 0 } : function (e) { r = r + Oe(e) | 0 }), r) } function sr(e, t) { return t = Ae(t, 3432918353), t = Ae(t << 15 | t >>> -15, 461845907), t = Ae(t << 13 | t >>> -13, 5), t = Ae((t = (t + 3864292196 | 0) ^ e) ^ t >>> 16, 2246822507), t = ke((t = Ae(t ^ t >>> 13, 3266489909)) ^ t >>> 16) } function ur(e, t) { return e ^ t + 2654435769 + (e << 6) + (e >> 2) | 0 } return Xn[f] = !0, Xn[B] = Zn.entries, Xn.__toJS = Zn.toObject, Xn.__toStringMapper = function (e, t) { return JSON.stringify(t) + ": " + rr(e) }, Gn(o, { toKeyedSeq: function () { return new $t(this, !1) }, filter: function (e, t) { return mn(this, en(this, e, t, !1)) }, findIndex: function (e, t) { var n = this.findEntry(e, t); return n ? n[0] : -1 }, indexOf: function (e) { var t = this.keyOf(e); return void 0 === t ? -1 : t }, lastIndexOf: function (e) { var t = this.lastKeyOf(e); return void 0 === t ? -1 : t }, reverse: function () { return mn(this, Qt(this, !1)) }, slice: function (e, t) { return mn(this, rn(this, e, t, !1)) }, splice: function (e, t) { var n = arguments.length; if (t = Math.max(0 | t, 0), 0 === n || 2 === n && !t) return this; e = T(e, e < 0 ? this.count() : this.size); var r = this.slice(0, e); return mn(this, 1 === n ? r : r.concat(C(arguments, 2), this.slice(e + t))) }, findLastIndex: function (e, t) { var n = this.findLastEntry(e, t); return n ? n[0] : -1 }, first: function () { return this.get(0) }, flatten: function (e) { return mn(this, un(this, e, !1)) }, get: function (e, t) { return (e = k(this, e)) < 0 || this.size === 1 / 0 || void 0 !== this.size && e > this.size ? t : this.find((function (t, n) { return n === e }), void 0, t) }, has: function (e) { return (e = k(this, e)) >= 0 && (void 0 !== this.size ? this.size === 1 / 0 || e < this.size : -1 !== this.indexOf(e)) }, interpose: function (e) { return mn(this, ln(this, e)) }, interleave: function () { var e = [this].concat(C(arguments)), t = dn(this.toSeq(), Y.of, e), n = t.flatten(!0); return t.size && (n.size = t.size * e.length), mn(this, n) }, keySeq: function () { return we(0, this.size) }, last: function () { return this.get(-1) }, skipWhile: function (e, t) { return mn(this, an(this, e, t, !1)) }, zip: function () { return mn(this, dn(this, or, [this].concat(C(arguments)))) }, zipWith: function (e) { var t = C(arguments); return t[0] = this, mn(this, dn(this, e, t)) } }), o.prototype[h] = !0, o.prototype[d] = !0, Gn(a, { get: function (e, t) { return this.has(e) ? e : t }, includes: function (e) { return this.has(e) }, keySeq: function () { return this.valueSeq() } }), a.prototype.has = Zn.includes, a.prototype.contains = a.prototype.includes, Gn(K, r.prototype), Gn(Y, o.prototype), Gn(G, a.prototype), Gn(Ee, r.prototype), Gn(Se, o.prototype), Gn(Ce, a.prototype), { Iterable: n, Seq: $, Collection: xe, Map: We, OrderedMap: zt, List: St, Stack: Vn, Set: jn, OrderedSet: Ln, Record: En, Range: we, Repeat: be, is: ge, fromJS: he } }() }, function (e, t, n) { e.exports = n(589) }, function (e, t, n) { var r = n(244); e.exports = function (e, t, n) { return t in e ? r(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } }, function (e, t, n) { e.exports = n(594) }, function (e, t, n) { "use strict"; (function (e) { n.d(t, "t", (function () { return be })), n.d(t, "A", (function () { return _e })), n.d(t, "i", (function () { return we })), n.d(t, "w", (function () { return xe })), n.d(t, "r", (function () { return Ee })), n.d(t, "u", (function () { return Se })), n.d(t, "s", (function () { return Ce })), n.d(t, "p", (function () { return Ae })), n.d(t, "v", (function () { return ke })), n.d(t, "y", (function () { return Oe })), n.d(t, "z", (function () { return je })), n.d(t, "K", (function () { return Te })), n.d(t, "f", (function () { return Ie })), n.d(t, "n", (function () { return Pe })), n.d(t, "h", (function () { return Ne })), n.d(t, "E", (function () { return Me })), n.d(t, "L", (function () { return De })), n.d(t, "o", (function () { return ze })), n.d(t, "D", (function () { return Ve })), n.d(t, "a", (function () { return We })), n.d(t, "I", (function () { return He })), n.d(t, "b", (function () { return Je })), n.d(t, "H", (function () { return $e })), n.d(t, "G", (function () { return Ke })), n.d(t, "F", (function () { return Ye })), n.d(t, "k", (function () { return Ge })), n.d(t, "d", (function () { return Ze })), n.d(t, "g", (function () { return Xe })), n.d(t, "m", (function () { return Qe })), n.d(t, "l", (function () { return et })), n.d(t, "e", (function () { return tt })), n.d(t, "J", (function () { return nt })), n.d(t, "x", (function () { return rt })), n.d(t, "B", (function () { return ot })), n.d(t, "C", (function () { return at })), n.d(t, "j", (function () { return it })), n.d(t, "c", (function () { return st })), n.d(t, "q", (function () { return ct })); var r = n(103), o = n.n(r), a = n(173), i = n.n(a), s = n(67), u = n.n(s), c = n(14), l = n.n(c), p = n(32), f = n.n(p), h = n(15), d = n.n(h), m = (n(38), n(37)), v = n.n(m), g = n(23), y = n.n(g), b = (n(16), n(212)), _ = n.n(b), w = n(22), x = n.n(w), E = n(21), S = n.n(E), C = (n(30), n(17)), A = n.n(C), k = n(12), O = n.n(k), j = n(18), T = n.n(j), I = n(2), P = n.n(I), N = n(51), M = n.n(N), R = n(86), D = n.n(R), L = n(4), B = n.n(L), F = n(13), U = n.n(F), q = n(19), z = n.n(q), V = n(1), W = n.n(V), H = n(514), J = n(515), $ = n.n(J), K = n(286), Y = n.n(K), G = n(287), Z = n.n(G), X = n(213), Q = n.n(X), ee = n(344), te = n.n(ee), ne = n(125), re = n.n(ne), oe = n(66), ae = n.n(oe), ie = n(144), se = n(27), ue = n(517), ce = n.n(ue), le = n(146), pe = n(518), fe = n.n(pe), he = n(519), de = n.n(he), me = n(78), ve = n.n(me), ge = "default", ye = function (e) { return W.a.Iterable.isIterable(e) }; function be(e) { try { var t = JSON.parse(e); if (t && "object" === z()(t)) return t } catch (e) { } return !1 } function _e(e) { return Se(e) ? ye(e) ? e.toJS() : e : {} } function we(e) { var t, n; if (ye(e)) return e; if (e instanceof se.a.File) return e; if (!Se(e)) return e; if (U()(e)) return B()(n = W.a.Seq(e)).call(n, we).toList(); if (ae()(D()(e))) { var r, o = function (e) { if (!ae()(D()(e))) return e; var t, n = {}, r = "_**[]", o = {}, a = M()(D()(e).call(e)); try { for (a.s(); !(t = a.n()).done;) { var i = t.value; if (n[i[0]] || o[i[0]] && o[i[0]].containsMultiple) { var s, u, c, l; if (!o[i[0]]) o[i[0]] = { containsMultiple: !0, length: 1 }, n[P()(c = P()(l = "".concat(i[0])).call(l, r)).call(c, o[i[0]].length)] = n[i[0]], delete n[i[0]]; o[i[0]].length += 1, n[P()(s = P()(u = "".concat(i[0])).call(u, r)).call(s, o[i[0]].length)] = i[1] } else n[i[0]] = i[1] } } catch (e) { a.e(e) } finally { a.f() } return n }(e); return B()(r = W.a.OrderedMap(o)).call(r, we) } return B()(t = W.a.OrderedMap(e)).call(t, we) } function xe(e) { return U()(e) ? e : [e] } function Ee(e) { return "function" == typeof e } function Se(e) { return !!e && "object" === z()(e) } function Ce(e) { return "function" == typeof e } function Ae(e) { return U()(e) } var ke = Z.a; function Oe(e, t) { var n; return S()(n = A()(e)).call(n, (function (n, r) { return n[r] = t(e[r], r), n }), {}) } function je(e, t) { var n; return S()(n = A()(e)).call(n, (function (n, r) { var o = t(e[r], r); return o && "object" === z()(o) && x()(n, o), n }), {}) } function Te(e) { return function (t) { t.dispatch, t.getState; return function (t) { return function (n) { return "function" == typeof n ? n(e()) : t(n) } } } } function Ie(e) { var t, n = e.keySeq(); return n.contains(ge) ? ge : _()(t = O()(n).call(n, (function (e) { return "2" === (e + "")[0] }))).call(t).first() } function Pe(e, t) { if (!W.a.Iterable.isIterable(e)) return W.a.List(); var n = e.getIn(U()(t) ? t : [t]); return W.a.List.isList(n) ? n : W.a.List() } function Ne(e) { var t, n = [/filename\*=[^']+'\w*'"([^"]+)";?/i, /filename\*=[^']+'\w*'([^;]+);?/i, /filename="([^;]*);?"/i, /filename=([^;]*);?/i]; if (v()(n).call(n, (function (n) { return null !== (t = n.exec(e)) })), null !== t && t.length > 1) try { return decodeURIComponent(t[1]) } catch (e) { console.error(e) } return null } function Me(e) { return t = e.replace(/\.[^./]*$/, ""), Y()($()(t)); var t } function Re(e, t, n, r, o) { if (!t) return []; var a = [], i = t.get("nullable"), s = t.get("required"), u = t.get("maximum"), c = t.get("minimum"), l = t.get("type"), p = t.get("format"), f = t.get("maxLength"), h = t.get("minLength"), m = t.get("uniqueItems"), g = t.get("maxItems"), y = t.get("minItems"), b = t.get("pattern"); if (i && null === e) return []; if (l && (n || s || void 0 !== e || "array" === l)) { var _ = "string" === l && e, w = "array" === l && U()(e) && e.length, x = "array" === l && W.a.List.isList(e) && e.count(), E = [_, w, x, "array" === l && "string" == typeof e && e, "file" === l && e instanceof se.a.File, "boolean" === l && (e || !1 === e), "number" === l && (e || 0 === e), "integer" === l && (e || 0 === e), "object" === l && "object" === z()(e) && null !== e, "object" === l && "string" == typeof e && e], S = v()(E).call(E, (function (e) { return !!e })); if ((n || s) && !S && !r) return a.push("Required field is not provided"), a; if ("object" === l && (null === o || "application/json" === o)) { var C, A = e; if ("string" == typeof e) try { A = JSON.parse(e) } catch (e) { return a.push("Parameter string value must be valid JSON"), a } if (t && t.has("required") && Ce(s.isList) && s.isList() && T()(s).call(s, (function (e) { void 0 === A[e] && a.push({ propKey: e, error: "Required property not found" }) })), t && t.has("properties")) T()(C = t.get("properties")).call(C, (function (e, t) { var n = Re(A[t], e, !1, r, o); a.push.apply(a, d()(B()(n).call(n, (function (e) { return { propKey: t, error: e } })))) })) } if (b) { var k = function (e, t) { if (!new RegExp(t).test(e)) return "Value must follow pattern " + t }(e, b); k && a.push(k) } if (y && "array" === l) { var j = function (e, t) { var n; if (!e && t >= 1 || e && e.length < t) return P()(n = "Array must contain at least ".concat(t, " item")).call(n, 1 === t ? "" : "s") }(e, y); j && a.push(j) } if (g && "array" === l) { var I = function (e, t) { var n; if (e && e.length > t) return P()(n = "Array must not contain more then ".concat(t, " item")).call(n, 1 === t ? "" : "s") }(e, g); I && a.push({ needRemove: !0, error: I }) } if (m && "array" === l) { var N = function (e, t) { if (e && ("true" === t || !0 === t)) { var n = Object(V.fromJS)(e), r = n.toSet(); if (e.length > r.size) { var o = Object(V.Set)(); if (T()(n).call(n, (function (e, t) { O()(n).call(n, (function (t) { return Ce(t.equals) ? t.equals(e) : t === e })).size > 1 && (o = o.add(t)) })), 0 !== o.size) return B()(o).call(o, (function (e) { return { index: e, error: "No duplicates allowed." } })).toArray() } } }(e, m); N && a.push.apply(a, d()(N)) } if (f || 0 === f) { var M = function (e, t) { var n; if (e.length > t) return P()(n = "Value must be no longer than ".concat(t, " character")).call(n, 1 !== t ? "s" : "") }(e, f); M && a.push(M) } if (h) { var R = function (e, t) { var n; if (e.length < t) return P()(n = "Value must be at least ".concat(t, " character")).call(n, 1 !== t ? "s" : "") }(e, h); R && a.push(R) } if (u || 0 === u) { var D = function (e, t) { if (e > t) return "Value must be less than ".concat(t) }(e, u); D && a.push(D) } if (c || 0 === c) { var L = function (e, t) { if (e < t) return "Value must be greater than ".concat(t) }(e, c); L && a.push(L) } if ("string" === l) { var F; if (!(F = "date-time" === p ? function (e) { if (isNaN(Date.parse(e))) return "Value must be a DateTime" }(e) : "uuid" === p ? function (e) { if (e = e.toString().toLowerCase(), !/^[{(]?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}[)}]?$/.test(e)) return "Value must be a Guid" }(e) : function (e) { if (e && "string" != typeof e) return "Value must be a string" }(e))) return a; a.push(F) } else if ("boolean" === l) { var q = function (e) { if ("true" !== e && "false" !== e && !0 !== e && !1 !== e) return "Value must be a boolean" }(e); if (!q) return a; a.push(q) } else if ("number" === l) { var H = function (e) { if (!/^-?\d+(\.?\d+)?$/.test(e)) return "Value must be a number" }(e); if (!H) return a; a.push(H) } else if ("integer" === l) { var J = function (e) { if (!/^-?\d+$/.test(e)) return "Value must be an integer" }(e); if (!J) return a; a.push(J) } else if ("array" === l) { if (!w && !x) return a; e && T()(e).call(e, (function (e, n) { var i = Re(e, t.get("items"), !1, r, o); a.push.apply(a, d()(B()(i).call(i, (function (e) { return { index: n, error: e } })))) })) } else if ("file" === l) { var $ = function (e) { if (e && !(e instanceof se.a.File)) return "Value must be a file" }(e); if (!$) return a; a.push($) } } return a } var De = function (e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r = n.isOAS3, o = void 0 !== r && r, a = n.bypassRequiredCheck, i = void 0 !== a && a, s = e.get("required"), u = Object(le.a)(e, { isOAS3: o }), c = u.schema, l = u.parameterContentMediaType; return Re(t, c, s, i, l) }, Le = function (e, t, n) { if (e && (!e.xml || !e.xml.name)) { if (e.xml = e.xml || {}, !e.$$ref) return e.type || e.items || e.properties || e.additionalProperties ? '\n\x3c!-- XML example cannot be generated; root element name is undefined --\x3e' : null; var r = e.$$ref.match(/\S*\/(\S+)$/); e.xml.name = r[1] } return Object(ie.memoizedCreateXMLExample)(e, t, n) }, Be = [{ when: /json/, shouldStringifyTypes: ["string"] }], Fe = ["object"], Ue = function (e, t, n, r) { var o = Object(ie.memoizedSampleFromSchema)(e, t, r), a = z()(o), i = S()(Be).call(Be, (function (e, t) { var r; return t.when.test(n) ? P()(r = []).call(r, d()(e), d()(t.shouldStringifyTypes)) : e }), Fe); return te()(i, (function (e) { return e === a })) ? f()(o, null, 2) : o }, qe = function (e, t, n, r) { var o, a = Ue(e, t, n, r); try { "\n" === (o = ve.a.safeDump(ve.a.safeLoad(a), { lineWidth: -1 }))[o.length - 1] && (o = y()(o).call(o, 0, o.length - 1)) } catch (e) { return console.error(e), "error: could not generate yaml example" } return o.replace(/\t/g, " ") }, ze = function (e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : void 0; return e && Ce(e.toJS) && (e = e.toJS()), r && Ce(r.toJS) && (r = r.toJS()), /xml/.test(t) ? Le(e, n, r) : /(yaml|yml)/.test(t) ? qe(e, n, t, r) : Ue(e, n, t, r) }, Ve = function () { var e = {}, t = se.a.location.search; if (!t) return {}; if ("" != t) { var n = t.substr(1).split("&"); for (var r in n) n.hasOwnProperty(r) && (r = n[r].split("="), e[decodeURIComponent(r[0])] = r[1] && decodeURIComponent(r[1]) || "") } return e }, We = function (t) { return (t instanceof e ? t : e.from(t.toString(), "utf-8")).toString("base64") }, He = { operationsSorter: { alpha: function (e, t) { return e.get("path").localeCompare(t.get("path")) }, method: function (e, t) { return e.get("method").localeCompare(t.get("method")) } }, tagsSorter: { alpha: function (e, t) { return e.localeCompare(t) } } }, Je = function (e) { var t = []; for (var n in e) { var r = e[n]; void 0 !== r && "" !== r && t.push([n, "=", encodeURIComponent(r).replace(/%20/g, "+")].join("")) } return t.join("&") }, $e = function (e, t, n) { return !!Q()(n, (function (n) { return re()(e[n], t[n]) })) }; function Ke(e) { return "string" != typeof e || "" === e ? "" : Object(H.sanitizeUrl)(e) } function Ye(e) { return !(!e || l()(e).call(e, "localhost") >= 0 || l()(e).call(e, "127.0.0.1") >= 0 || "none" === e) } function Ge(e) { if (!W.a.OrderedMap.isOrderedMap(e)) return null; if (!e.size) return null; var t = u()(e).call(e, (function (e, t) { return i()(t).call(t, "2") && A()(e.get("content") || {}).length > 0 })), n = e.get("default") || W.a.OrderedMap(), r = (n.get("content") || W.a.OrderedMap()).keySeq().toJS().length ? n : null; return t || r } var Ze = function (e) { return "string" == typeof e || e instanceof String ? o()(e).call(e).replace(/\s/g, "%20") : "" }, Xe = function (e) { return ce()(Ze(e).replace(/%20/g, "_")) }, Qe = function (e) { return O()(e).call(e, (function (e, t) { return /^x-/.test(t) })) }, et = function (e) { return O()(e).call(e, (function (e, t) { return /^pattern|maxLength|minLength|maximum|minimum/.test(t) })) }; function tt(e, t) { var n, r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : function () { return !0 }; if ("object" !== z()(e) || U()(e) || null === e || !t) return e; var o = x()({}, e); return T()(n = A()(o)).call(n, (function (e) { e === t && r(o[e], e) ? delete o[e] : o[e] = tt(o[e], t, r) })), o } function nt(e) { if ("string" == typeof e) return e; if (e && e.toJS && (e = e.toJS()), "object" === z()(e) && null !== e) try { return f()(e, null, 2) } catch (t) { return String(e) } return null == e ? "" : e.toString() } function rt(e) { return "number" == typeof e ? e.toString() : e } function ot(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = t.returnAll, r = void 0 !== n && n, o = t.allowHashes, a = void 0 === o || o; if (!W.a.Map.isMap(e)) throw new Error("paramToIdentifier: received a non-Im.Map parameter as input"); var i, s, u, c = e.get("name"), l = e.get("in"), p = []; e && e.hashCode && l && c && a && p.push(P()(i = P()(s = "".concat(l, ".")).call(s, c, ".hash-")).call(i, e.hashCode())); l && c && p.push(P()(u = "".concat(l, ".")).call(u, c)); return p.push(c), r ? p : p[0] || "" } function at(e, t) { var n, r = ot(e, { returnAll: !0 }); return O()(n = B()(r).call(r, (function (e) { return t[e] }))).call(n, (function (e) { return void 0 !== e }))[0] } function it() { return ut(fe()(32).toString("base64")) } function st(e) { return ut(de()("sha256").update(e).digest("base64")) } function ut(e) { return e.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "") } var ct = function (e) { return !e || !(!ye(e) || !e.isEmpty()) } }).call(this, n(77).Buffer) }, function (e, t) { e.exports = function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } }, function (e, t, n) { var r = n(244); function o(e, t) { for (var n = 0; n < t.length; n++) { var o = t[n]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), r(e, o.key, o) } } e.exports = function (e, t, n) { return t && o(e.prototype, t), n && o(e, n), e } }, function (e, t, n) { var r = n(920), o = n(923); e.exports = function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); e.prototype = r(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } }), t && o(e, t) } }, function (e, t, n) { var r = n(470), o = n(210), a = n(934), i = n(935); e.exports = function (e) { var t = a(); return function () { var n, a = o(e); if (t) { var s = o(this).constructor; n = r(a, arguments, s) } else n = a.apply(this, arguments); return i(this, n) } } }, function (e, t) { e.exports = function (e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e } }, function (e, t, n) { e.exports = n(1013)() }, function (e, t, n) { e.exports = n(586) }, function (e, t, n) { e.exports = n(603) }, function (e, t, n) { e.exports = n(651) }, function (e, t, n) { var r = n(654), o = n(393), a = n(186), i = n(663); e.exports = function (e) { return r(e) || o(e) || a(e) || i() } }, function (e, t, n) { var r = n(401), o = n(674), a = n(186), i = n(404); e.exports = function (e, t) { return r(e) || o(e, t) || a(e, t) || i() } }, function (e, t, n) { e.exports = n(553) }, function (e, t, n) { e.exports = n(405) }, function (e, t, n) { var r = n(555), o = n(181); function a(t) { return e.exports = a = "function" == typeof o && "symbol" == typeof r ? function (e) { return typeof e } : function (e) { return e && "function" == typeof o && e.constructor === o && e !== o.prototype ? "symbol" : typeof e }, a(t) } e.exports = a }, function (e, t, n) { "use strict"; function r(e, t) { return e === t } function o(e, t, n) { if (null === t || null === n || t.length !== n.length) return !1; for (var r = t.length, o = 0; o < r; o++)if (!e(t[o], n[o])) return !1; return !0 } function a(e) { var t = Array.isArray(e[0]) ? e[0] : e; if (!t.every((function (e) { return "function" == typeof e }))) { var n = t.map((function (e) { return typeof e })).join(", "); throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: [" + n + "]") } return t } n.d(t, "a", (function () { return i })); var i = function (e) { for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++)n[r - 1] = arguments[r]; return function () { for (var t = arguments.length, r = Array(t), o = 0; o < t; o++)r[o] = arguments[o]; var i = 0, s = r.pop(), u = a(r), c = e.apply(void 0, [function () { return i++, s.apply(null, arguments) }].concat(n)), l = e((function () { for (var e = [], t = u.length, n = 0; n < t; n++)e.push(u[n].apply(null, arguments)); return c.apply(null, e) })); return l.resultFunc = s, l.dependencies = u, l.recomputations = function () { return i }, l.resetRecomputations = function () { return i = 0 }, l } }((function (e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : r, n = null, a = null; return function () { return o(t, n, arguments) || (a = e.apply(null, arguments)), n = arguments, a } })) }, function (e, t, n) { e.exports = n(598) }, function (e, t, n) { e.exports = n(610) }, function (e, t, n) { e.exports = n(607) }, function (e, t, n) { "use strict"; var r = n(42), o = n(107).f, a = n(358), i = n(33), s = n(109), u = n(70), c = n(52), l = function (e) { var t = function (t, n, r) { if (this instanceof e) { switch (arguments.length) { case 0: return new e; case 1: return new e(t); case 2: return new e(t, n) }return new e(t, n, r) } return e.apply(this, arguments) }; return t.prototype = e.prototype, t }; e.exports = function (e, t) { var n, p, f, h, d, m, v, g, y = e.target, b = e.global, _ = e.stat, w = e.proto, x = b ? r : _ ? r[y] : (r[y] || {}).prototype, E = b ? i : i[y] || (i[y] = {}), S = E.prototype; for (f in t) n = !a(b ? f : y + (_ ? "." : "#") + f, e.forced) && x && c(x, f), d = E[f], n && (m = e.noTargetGet ? (g = o(x, f)) && g.value : x[f]), h = n && m ? m : t[f], n && typeof d == typeof h || (v = e.bind && n ? s(h, r) : e.wrap && n ? l(h) : w && "function" == typeof h ? s(Function.call, h) : h, (e.sham || h && h.sham || d && d.sham) && u(v, "sham", !0), E[f] = v, w && (c(i, p = y + "Prototype") || u(i, p, {}), i[p][f] = h, e.real && S && !S[f] && u(S, f, h))) } }, function (e, t, n) { var r = n(244), o = n(874), a = n(878), i = n(883), s = n(450), u = n(888), c = n(451), l = n(452), p = n(3); function f(e, t) { var n = l(e); if (c) { var r = c(e); t && (r = u(r).call(r, (function (t) { return s(e, t).enumerable }))), n.push.apply(n, r) } return n } e.exports = function (e) { for (var t = 1; t < arguments.length; t++) { var n, u = null != arguments[t] ? arguments[t] : {}; if (t % 2) i(n = f(Object(u), !0)).call(n, (function (t) { p(e, t, u[t]) })); else if (a) o(e, a(u)); else { var c; i(c = f(Object(u))).call(c, (function (t) { r(e, t, s(u, t)) })) } } return e } }, function (e, t, n) { "use strict"; e.exports = function (e, t, n, r, o, a, i, s) { if (!e) { var u; if (void 0 === t) u = new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."); else { var c = [n, r, o, a, i, s], l = 0; (u = new Error(t.replace(/%s/g, (function () { return c[l++] })))).name = "Invariant Violation" } throw u.framesToPop = 1, u } } }, function (e, t, n) { "use strict"; t.a = function () { var e = { location: {}, history: {}, open: function () { }, close: function () { }, File: function () { } }; if ("undefined" == typeof window) return e; try { e = window; for (var t = 0, n = ["File", "Blob", "FormData"]; t < n.length; t++) { var r = n[t]; r in window && (e[r] = window[r]) } } catch (e) { console.error(e) } return e }() }, function (e, t, n) { "use strict"; var r, o = n(1), a = "<>", i = function () { invariant(!1, "ImmutablePropTypes type checking code is stripped in production.") }; i.isRequired = i; var s = function () { return i }; function u(e) { var t = typeof e; return Array.isArray(e) ? "array" : e instanceof RegExp ? "object" : e instanceof o.Iterable ? "Immutable." + e.toSource().split(" ")[0] : t } function c(e) { function t(t, n, r, o, i, s) { for (var u = arguments.length, c = Array(u > 6 ? u - 6 : 0), l = 6; l < u; l++)c[l - 6] = arguments[l]; if (s = s || r, o = o || a, null != n[r]) return e.apply(void 0, [n, r, o, i, s].concat(c)); var p = i; return t ? new Error("Required " + p + " `" + s + "` was not specified in `" + o + "`.") : void 0 } var n = t.bind(null, !1); return n.isRequired = t.bind(null, !0), n } function l(e, t) { return n = "Iterable." + e, r = function (e) { return o.Iterable.isIterable(e) && t(e) }, c((function (e, t, o, a, i) { var s = e[t]; if (!r(s)) { var c = u(s); return new Error("Invalid " + a + " `" + i + "` of type `" + c + "` supplied to `" + o + "`, expected `" + n + "`.") } return null })); var n, r } (r = { listOf: s, mapOf: s, orderedMapOf: s, setOf: s, orderedSetOf: s, stackOf: s, iterableOf: s, recordOf: s, shape: s, contains: s, mapContains: s, orderedMapContains: s, list: i, map: i, orderedMap: i, set: i, orderedSet: i, stack: i, seq: i, record: i, iterable: i }).iterable.indexed = l("Indexed", o.Iterable.isIndexed), r.iterable.keyed = l("Keyed", o.Iterable.isKeyed), e.exports = r }, function (e, t, n) { var r = n(918); function o() { return e.exports = o = r || function (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]) } return e }, o.apply(this, arguments) } e.exports = o }, function (e, t, n) { e.exports = n(612) }, function (e, t, n) { "use strict"; e.exports = function (e) { for (var t = arguments.length - 1, n = "Minified React error #" + e + "; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=" + e, r = 0; r < t; r++)n += "&args[]=" + encodeURIComponent(arguments[r + 1]); n += " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; var o = new Error(n); throw o.name = "Invariant Violation", o.framesToPop = 1, o } }, function (e, t, n) { e.exports = n(550) }, function (e, t) { e.exports = {} }, function (e, t, n) { "use strict"; var r = n(83); e.exports = r }, function (e, t) { e.exports = function (e) { try { return !!e() } catch (e) { return !0 } } }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "isOAS3", (function () { return c })), n.d(t, "isSwagger2", (function () { return l })), n.d(t, "OAS3ComponentWrapFactory", (function () { return p })); var r = n(29), o = n.n(r), a = n(173), i = n.n(a), s = n(0), u = n.n(s); function c(e) { var t = e.get("openapi"); return "string" == typeof t && (i()(t).call(t, "3.0.") && t.length > 4) } function l(e) { var t = e.get("swagger"); return "string" == typeof t && i()(t).call(t, "2.0") } function p(e) { return function (t, n) { return function (r) { return n && n.specSelectors && n.specSelectors.specJson ? c(n.specSelectors.specJson()) ? u.a.createElement(e, o()({}, r, n, { Ori: t })) : u.a.createElement(t, r) : (console.warn("OAS3 wrapper: couldn't get spec"), null) } } } }, function (e, t, n) { e.exports = n(670) }, function (e, t, n) { e.exports = n(664) }, function (e, t, n) { var r = n(42), o = n(233), a = n(52), i = n(179), s = n(235), u = n(362), c = o("wks"), l = r.Symbol, p = u ? l : l && l.withoutSetter || i; e.exports = function (e) { return a(c, e) || (s && a(l, e) ? c[e] = l[e] : c[e] = p("Symbol." + e)), c[e] } }, function (e, t, n) { "use strict"; var r = Object.getOwnPropertySymbols, o = Object.prototype.hasOwnProperty, a = Object.prototype.propertyIsEnumerable; function i(e) { if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined"); return Object(e) } e.exports = function () { try { if (!Object.assign) return !1; var e = new String("abc"); if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1; for (var t = {}, n = 0; n < 10; n++)t["_" + String.fromCharCode(n)] = n; if ("0123456789" !== Object.getOwnPropertyNames(t).map((function (e) { return t[e] })).join("")) return !1; var r = {}; return "abcdefghijklmnopqrst".split("").forEach((function (e) { r[e] = e })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("") } catch (e) { return !1 } }() ? Object.assign : function (e, t) { for (var n, s, u = i(e), c = 1; c < arguments.length; c++) { for (var l in n = Object(arguments[c])) o.call(n, l) && (u[l] = n[l]); if (r) { s = r(n); for (var p = 0; p < s.length; p++)a.call(n, s[p]) && (u[s[p]] = n[s[p]]) } } return u } }, function (e, t, n) { e.exports = n(898) }, function (e, t, n) { (function (t) { var n = function (e) { return e && e.Math == Math && e }; e.exports = n("object" == typeof globalThis && globalThis) || n("object" == typeof window && window) || n("object" == typeof self && self) || n("object" == typeof t && t) || function () { return this }() || Function("return this")() }).call(this, n(55)) }, function (e, t, n) { var r = n(33); e.exports = function (e) { return r[e + "Prototype"] } }, function (e, t, n) { "use strict"; var r = n(31), o = n(139), a = n(471), i = (n(26), o.ID_ATTRIBUTE_NAME), s = a, u = "__reactInternalInstance$" + Math.random().toString(36).slice(2); function c(e, t) { return 1 === e.nodeType && e.getAttribute(i) === String(t) || 8 === e.nodeType && e.nodeValue === " react-text: " + t + " " || 8 === e.nodeType && e.nodeValue === " react-empty: " + t + " " } function l(e) { for (var t; t = e._renderedComponent;)e = t; return e } function p(e, t) { var n = l(e); n._hostNode = t, t[u] = n } function f(e, t) { if (!(e._flags & s.hasCachedChildNodes)) { var n = e._renderedChildren, o = t.firstChild; e: for (var a in n) if (n.hasOwnProperty(a)) { var i = n[a], u = l(i)._domID; if (0 !== u) { for (; null !== o; o = o.nextSibling)if (c(o, u)) { p(i, o); continue e } r("32", u) } } e._flags |= s.hasCachedChildNodes } } function h(e) { if (e[u]) return e[u]; for (var t, n, r = []; !e[u];) { if (r.push(e), !e.parentNode) return null; e = e.parentNode } for (; e && (n = e[u]); e = r.pop())t = n, r.length && f(n, e); return t } var d = { getClosestInstanceFromNode: h, getInstanceFromNode: function (e) { var t = h(e); return null != t && t._hostNode === e ? t : null }, getNodeFromInstance: function (e) { if (void 0 === e._hostNode && r("33"), e._hostNode) return e._hostNode; for (var t = []; !e._hostNode;)t.push(e), e._hostParent || r("34"), e = e._hostParent; for (; t.length; e = t.pop())f(e, e._hostNode); return e._hostNode }, precacheChildNodes: f, precacheNode: p, uncacheNode: function (e) { var t = e._hostNode; t && (delete t[u], e._hostNode = null) } }; e.exports = d }, function (e, t) { e.exports = function (e) { return "object" == typeof e ? null !== e : "function" == typeof e } }, function (e, t, n) { var r = n(197); e.exports = function (e, t, n) { var o = null == e ? void 0 : r(e, t); return void 0 === o ? n : o } }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "UPDATE_SPEC", (function () { return te })), n.d(t, "UPDATE_URL", (function () { return ne })), n.d(t, "UPDATE_JSON", (function () { return re })), n.d(t, "UPDATE_PARAM", (function () { return oe })), n.d(t, "UPDATE_EMPTY_PARAM_INCLUSION", (function () { return ae })), n.d(t, "VALIDATE_PARAMS", (function () { return ie })), n.d(t, "SET_RESPONSE", (function () { return se })), n.d(t, "SET_REQUEST", (function () { return ue })), n.d(t, "SET_MUTATED_REQUEST", (function () { return ce })), n.d(t, "LOG_REQUEST", (function () { return le })), n.d(t, "CLEAR_RESPONSE", (function () { return pe })), n.d(t, "CLEAR_REQUEST", (function () { return fe })), n.d(t, "CLEAR_VALIDATE_PARAMS", (function () { return he })), n.d(t, "UPDATE_OPERATION_META_VALUE", (function () { return de })), n.d(t, "UPDATE_RESOLVED", (function () { return me })), n.d(t, "UPDATE_RESOLVED_SUBTREE", (function () { return ve })), n.d(t, "SET_SCHEME", (function () { return ge })), n.d(t, "updateSpec", (function () { return ye })), n.d(t, "updateResolved", (function () { return be })), n.d(t, "updateUrl", (function () { return _e })), n.d(t, "updateJsonSpec", (function () { return we })), n.d(t, "parseToJson", (function () { return xe })), n.d(t, "resolveSpec", (function () { return Se })), n.d(t, "requestResolvedSubtree", (function () { return ke })), n.d(t, "changeParam", (function () { return Oe })), n.d(t, "changeParamByIdentity", (function () { return je })), n.d(t, "updateResolvedSubtree", (function () { return Te })), n.d(t, "invalidateResolvedSubtreeCache", (function () { return Ie })), n.d(t, "validateParams", (function () { return Pe })), n.d(t, "updateEmptyParamInclusion", (function () { return Ne })), n.d(t, "clearValidateParams", (function () { return Me })), n.d(t, "changeConsumesValue", (function () { return Re })), n.d(t, "changeProducesValue", (function () { return De })), n.d(t, "setResponse", (function () { return Le })), n.d(t, "setRequest", (function () { return Be })), n.d(t, "setMutatedRequest", (function () { return Fe })), n.d(t, "logRequest", (function () { return Ue })), n.d(t, "executeRequest", (function () { return qe })), n.d(t, "execute", (function () { return ze })), n.d(t, "clearResponse", (function () { return Ve })), n.d(t, "clearRequest", (function () { return We })), n.d(t, "setScheme", (function () { return He })); var r = n(25), o = n.n(r), a = n(56), i = n.n(a), s = n(346), u = n.n(s), c = n(22), l = n.n(c), p = n(17), f = n.n(p), h = n(2), d = n.n(h), m = n(18), v = n.n(m), g = n(14), y = n.n(g), b = n(41), _ = n.n(b), w = n(214), x = n.n(w), E = n(12), S = n.n(E), C = n(68), A = n.n(C), k = n(104), O = n.n(k), j = n(21), T = n.n(j), I = n(79), P = n.n(I), N = n(347), M = n.n(N), R = n(4), D = n.n(R), L = n(13), B = n.n(L), F = n(19), U = n.n(F), q = n(78), z = n.n(q), V = n(1), W = n(98), H = n.n(W), J = n(143), $ = n.n(J), K = n(215), Y = n.n(K), G = n(521), Z = n.n(G), X = n(348), Q = n.n(X), ee = n(5), te = "spec_update_spec", ne = "spec_update_url", re = "spec_update_json", oe = "spec_update_param", ae = "spec_update_empty_param_inclusion", ie = "spec_validate_param", se = "spec_set_response", ue = "spec_set_request", ce = "spec_set_mutated_request", le = "spec_log_request", pe = "spec_clear_response", fe = "spec_clear_request", he = "spec_clear_validate_param", de = "spec_update_operation_meta_value", me = "spec_update_resolved", ve = "spec_update_resolved_subtree", ge = "set_scheme"; function ye(e) { var t, n = (t = e, Y()(t) ? t : "").replace(/\t/g, " "); if ("string" == typeof e) return { type: te, payload: n } } function be(e) { return { type: me, payload: e } } function _e(e) { return { type: ne, payload: e } } function we(e) { return { type: re, payload: e } } var xe = function (e) { return function (t) { var n = t.specActions, r = t.specSelectors, o = t.errActions, a = r.specStr, i = null; try { e = e || a(), o.clear({ source: "parser" }), i = z.a.safeLoad(e) } catch (e) { return console.error(e), o.newSpecErr({ source: "parser", level: "error", message: e.reason, line: e.mark && e.mark.line ? e.mark.line + 1 : void 0 }) } return i && "object" === U()(i) ? n.updateJsonSpec(i) : {} } }, Ee = !1, Se = function (e, t) { return function (n) { var r = n.specActions, o = n.specSelectors, a = n.errActions, i = n.fn, s = i.fetch, u = i.resolve, c = i.AST, l = void 0 === c ? {} : c, p = n.getConfigs; Ee || (console.warn("specActions.resolveSpec is deprecated since v3.10.0 and will be removed in v4.0.0; use requestResolvedSubtree instead!"), Ee = !0); var f = p(), h = f.modelPropertyMacro, d = f.parameterMacro, m = f.requestInterceptor, v = f.responseInterceptor; void 0 === e && (e = o.specJson()), void 0 === t && (t = o.url()); var g = l.getLineNumberForPath ? l.getLineNumberForPath : function () { }, y = o.specStr(); return u({ fetch: s, spec: e, baseDoc: t, modelPropertyMacro: h, parameterMacro: d, requestInterceptor: m, responseInterceptor: v }).then((function (e) { var t = e.spec, n = e.errors; if (a.clear({ type: "thrown" }), B()(n) && n.length > 0) { var o = D()(n).call(n, (function (e) { return console.error(e), e.line = e.fullPath ? g(y, e.fullPath) : null, e.path = e.fullPath ? e.fullPath.join(".") : null, e.level = "error", e.type = "thrown", e.source = "resolver", M()(e, "message", { enumerable: !0, value: e.message }), e })); a.newThrownErrBatch(o) } return r.updateResolved(t) })) } }, Ce = [], Ae = Z()(P()(_.a.mark((function e() { var t, n, r, o, a, i, s, u, c, l, p, f, h, d, m, v, g, y; return _.a.wrap((function (e) { for (; ;)switch (e.prev = e.next) { case 0: if (t = Ce.system) { e.next = 4; break } return console.error("debResolveSubtrees: don't have a system to operate on, aborting."), e.abrupt("return"); case 4: if (n = t.errActions, r = t.errSelectors, o = t.fn, a = o.resolveSubtree, i = o.fetch, s = o.AST, u = void 0 === s ? {} : s, c = t.specSelectors, l = t.specActions, a) { e.next = 8; break } return console.error("Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing."), e.abrupt("return"); case 8: return p = u.getLineNumberForPath ? u.getLineNumberForPath : function () { }, f = c.specStr(), h = t.getConfigs(), d = h.modelPropertyMacro, m = h.parameterMacro, v = h.requestInterceptor, g = h.responseInterceptor, e.prev = 11, e.next = 14, T()(Ce).call(Ce, function () { var e = P()(_.a.mark((function e(t, o) { var s, u, l, h, y, b, w, E, C; return _.a.wrap((function (e) { for (; ;)switch (e.prev = e.next) { case 0: return e.next = 2, t; case 2: return s = e.sent, u = s.resultMap, l = s.specWithCurrentSubtrees, e.next = 7, a(l, o, { baseDoc: c.url(), modelPropertyMacro: d, parameterMacro: m, requestInterceptor: v, responseInterceptor: g }); case 7: if (h = e.sent, y = h.errors, b = h.spec, r.allErrors().size && n.clearBy((function (e) { var t; return "thrown" !== e.get("type") || "resolver" !== e.get("source") || !O()(t = e.get("fullPath")).call(t, (function (e, t) { return e === o[t] || void 0 === o[t] })) })), B()(y) && y.length > 0 && (w = D()(y).call(y, (function (e) { return e.line = e.fullPath ? p(f, e.fullPath) : null, e.path = e.fullPath ? e.fullPath.join(".") : null, e.level = "error", e.type = "thrown", e.source = "resolver", M()(e, "message", { enumerable: !0, value: e.message }), e })), n.newThrownErrBatch(w)), !b || !c.isOAS3() || "components" !== o[0] || "securitySchemes" !== o[1]) { e.next = 15; break } return e.next = 15, A.a.all(D()(E = S()(C = x()(b)).call(C, (function (e) { return "openIdConnect" === e.type }))).call(E, function () { var e = P()(_.a.mark((function e(t) { var n, r; return _.a.wrap((function (e) { for (; ;)switch (e.prev = e.next) { case 0: return n = { url: t.openIdConnectUrl, requestInterceptor: v, responseInterceptor: g }, e.prev = 1, e.next = 4, i(n); case 4: (r = e.sent) instanceof Error || r.status >= 400 ? console.error(r.statusText + " " + n.url) : t.openIdConnectData = JSON.parse(r.text), e.next = 11; break; case 8: e.prev = 8, e.t0 = e.catch(1), console.error(e.t0); case 11: case "end": return e.stop() } }), e, null, [[1, 8]]) }))); return function (t) { return e.apply(this, arguments) } }())); case 15: return Q()(u, o, b), Q()(l, o, b), e.abrupt("return", { resultMap: u, specWithCurrentSubtrees: l }); case 18: case "end": return e.stop() } }), e) }))); return function (t, n) { return e.apply(this, arguments) } }(), A.a.resolve({ resultMap: (c.specResolvedSubtree([]) || Object(V.Map)()).toJS(), specWithCurrentSubtrees: c.specJson().toJS() })); case 14: y = e.sent, delete Ce.system, Ce = [], e.next = 22; break; case 19: e.prev = 19, e.t0 = e.catch(11), console.error(e.t0); case 22: l.updateResolvedSubtree([], y.resultMap); case 23: case "end": return e.stop() } }), e, null, [[11, 19]]) }))), 35), ke = function (e) { return function (t) { var n; y()(n = D()(Ce).call(Ce, (function (e) { return e.join("@@") }))).call(n, e.join("@@")) > -1 || (Ce.push(e), Ce.system = t, Ae()) } }; function Oe(e, t, n, r, o) { return { type: oe, payload: { path: e, value: r, paramName: t, paramIn: n, isXml: o } } } function je(e, t, n, r) { return { type: oe, payload: { path: e, param: t, value: n, isXml: r } } } var Te = function (e, t) { return { type: ve, payload: { path: e, value: t } } }, Ie = function () { return { type: ve, payload: { path: [], value: Object(V.Map)() } } }, Pe = function (e, t) { return { type: ie, payload: { pathMethod: e, isOAS3: t } } }, Ne = function (e, t, n, r) { return { type: ae, payload: { pathMethod: e, paramName: t, paramIn: n, includeEmptyValue: r } } }; function Me(e) { return { type: he, payload: { pathMethod: e } } } function Re(e, t) { return { type: de, payload: { path: e, value: t, key: "consumes_value" } } } function De(e, t) { return { type: de, payload: { path: e, value: t, key: "produces_value" } } } var Le = function (e, t, n) { return { payload: { path: e, method: t, res: n }, type: se } }, Be = function (e, t, n) { return { payload: { path: e, method: t, req: n }, type: ue } }, Fe = function (e, t, n) { return { payload: { path: e, method: t, req: n }, type: ce } }, Ue = function (e) { return { payload: e, type: le } }, qe = function (e) { return function (t) { var n, r, o = t.fn, a = t.specActions, i = t.specSelectors, s = t.getConfigs, c = t.oas3Selectors, p = e.pathName, h = e.method, m = e.operation, g = s(), y = g.requestInterceptor, b = g.responseInterceptor, w = m.toJS(); m && m.get("parameters") && v()(n = S()(r = m.get("parameters")).call(r, (function (e) { return e && !0 === e.get("allowEmptyValue") }))).call(n, (function (t) { if (i.parameterInclusionSettingFor([p, h], t.get("name"), t.get("in"))) { e.parameters = e.parameters || {}; var n = Object(ee.C)(t, e.parameters); (!n || n && 0 === n.size) && (e.parameters[t.get("name")] = "") } })); if (e.contextUrl = H()(i.url()).toString(), w && w.operationId ? e.operationId = w.operationId : w && p && h && (e.operationId = o.opId(w, p, h)), i.isOAS3()) { var x, E = d()(x = "".concat(p, ":")).call(x, h); e.server = c.selectedServer(E) || c.selectedServer(); var C = c.serverVariables({ server: e.server, namespace: E }).toJS(), A = c.serverVariables({ server: e.server }).toJS(); e.serverVariables = f()(C).length ? C : A, e.requestContentType = c.requestContentType(p, h), e.responseContentType = c.responseContentType(p, h) || "*/*"; var k = c.requestBodyValue(p, h), O = c.requestBodyInclusionSetting(p, h); if (Object(ee.t)(k)) e.requestBody = JSON.parse(k); else if (k && k.toJS) { var j; e.requestBody = S()(j = D()(k).call(k, (function (e) { return V.Map.isMap(e) ? e.get("value") : e }))).call(j, (function (e, t) { return (B()(e) ? 0 !== e.length : !Object(ee.q)(e)) || O.get(t) })).toJS() } else e.requestBody = k } var T = l()({}, e); T = o.buildRequest(T), a.setRequest(e.pathName, e.method, T); var I = function () { var t = P()(_.a.mark((function t(n) { var r, o; return _.a.wrap((function (t) { for (; ;)switch (t.prev = t.next) { case 0: return t.next = 2, y.apply(undefined, [n]); case 2: return r = t.sent, o = l()({}, r), a.setMutatedRequest(e.pathName, e.method, o), t.abrupt("return", r); case 6: case "end": return t.stop() } }), t) }))); return function (e) { return t.apply(this, arguments) } }(); e.requestInterceptor = I, e.responseInterceptor = b; var N = u()(); return o.execute(e).then((function (t) { t.duration = u()() - N, a.setResponse(e.pathName, e.method, t) })).catch((function (t) { console.error(t), a.setResponse(e.pathName, e.method, { error: !0, err: $()(t) }) })) } }, ze = function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.path, n = e.method, r = i()(e, ["path", "method"]); return function (e) { var a = e.fn.fetch, i = e.specSelectors, s = e.specActions, u = i.specJsonWithResolvedSubtrees().toJS(), c = i.operationScheme(t, n), l = i.contentTypeValues([t, n]).toJS(), p = l.requestContentType, f = l.responseContentType, h = /xml/i.test(p), d = i.parameterValues([t, n], h).toJS(); return s.executeRequest(o()(o()({}, r), {}, { fetch: a, spec: u, pathName: t, method: n, parameters: d, requestContentType: p, scheme: c, responseContentType: f })) } }; function Ve(e, t) { return { type: pe, payload: { path: e, method: t } } } function We(e, t) { return { type: fe, payload: { path: e, method: t } } } function He(e, t, n) { return { type: ge, payload: { scheme: e, path: t, method: n } } } }, function (e, t, n) { var r = n(33), o = n(52), a = n(232), i = n(71).f; e.exports = function (e) { var t = r.Symbol || (r.Symbol = {}); o(t, e) || i(t, e, { value: a.f(e) }) } }, function (e, t, n) { var r = n(35); e.exports = !r((function () { return 7 != Object.defineProperty({}, 1, { get: function () { return 7 } })[1] })) }, function (e, t, n) { "use strict"; var r = n(163), o = ["kind", "resolve", "construct", "instanceOf", "predicate", "represent", "defaultStyle", "styleAliases"], a = ["scalar", "sequence", "mapping"]; e.exports = function (e, t) { var n, i; if (t = t || {}, Object.keys(t).forEach((function (t) { if (-1 === o.indexOf(t)) throw new r('Unknown option "' + t + '" is met in definition of "' + e + '" YAML type.') })), this.tag = e, this.kind = t.kind || null, this.resolve = t.resolve || function () { return !0 }, this.construct = t.construct || function (e) { return e }, this.instanceOf = t.instanceOf || null, this.predicate = t.predicate || null, this.represent = t.represent || null, this.defaultStyle = t.defaultStyle || null, this.styleAliases = (n = t.styleAliases || null, i = {}, null !== n && Object.keys(n).forEach((function (e) { n[e].forEach((function (t) { i[String(t)] = e })) })), i), -1 === a.indexOf(this.kind)) throw new r('Unknown kind "' + this.kind + '" is specified for "' + e + '" YAML type.') } }, function (e, t, n) { var r = n(402), o = n(246), a = n(684), i = n(181), s = n(186); e.exports = function (e, t) { var n; if (void 0 === i || null == a(e)) { if (o(e) || (n = s(e)) || t && e && "number" == typeof e.length) { n && (e = n); var u = 0, c = function () { }; return { s: c, n: function () { return u >= e.length ? { done: !0 } : { done: !1, value: e[u++] } }, e: function (e) { throw e }, f: c } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } var l, p = !0, f = !1; return { s: function () { n = r(e) }, n: function () { var e = n.next(); return p = e.done, e }, e: function (e) { f = !0, l = e }, f: function () { try { p || null == n.return || n.return() } finally { if (f) throw l } } } } }, function (e, t) { var n = {}.hasOwnProperty; e.exports = function (e, t) { return n.call(e, t) } }, function (e, t, n) { var r = n(45); e.exports = function (e) { if (!r(e)) throw TypeError(String(e) + " is not an object"); return e } }, function (e, t) { var n = Array.isArray; e.exports = n }, function (e, t) { var n; n = function () { return this }(); try { n = n || new Function("return this")() } catch (e) { "object" == typeof window && (n = window) } e.exports = n }, function (e, t, n) { var r = n(453), o = n(451), a = n(894); e.exports = function (e, t) { if (null == e) return {}; var n, i, s = a(e, t); if (o) { var u = o(e); for (i = 0; i < u.length; i++)n = u[i], r(t).call(t, n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (s[n] = e[n]) } return s } }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "UPDATE_SELECTED_SERVER", (function () { return r })), n.d(t, "UPDATE_REQUEST_BODY_VALUE", (function () { return o })), n.d(t, "UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG", (function () { return a })), n.d(t, "UPDATE_REQUEST_BODY_INCLUSION", (function () { return i })), n.d(t, "UPDATE_ACTIVE_EXAMPLES_MEMBER", (function () { return s })), n.d(t, "UPDATE_REQUEST_CONTENT_TYPE", (function () { return u })), n.d(t, "UPDATE_RESPONSE_CONTENT_TYPE", (function () { return c })), n.d(t, "UPDATE_SERVER_VARIABLE_VALUE", (function () { return l })), n.d(t, "SET_REQUEST_BODY_VALIDATE_ERROR", (function () { return p })), n.d(t, "CLEAR_REQUEST_BODY_VALIDATE_ERROR", (function () { return f })), n.d(t, "CLEAR_REQUEST_BODY_VALUE", (function () { return h })), n.d(t, "setSelectedServer", (function () { return d })), n.d(t, "setRequestBodyValue", (function () { return m })), n.d(t, "setRetainRequestBodyValueFlag", (function () { return v })), n.d(t, "setRequestBodyInclusion", (function () { return g })), n.d(t, "setActiveExamplesMember", (function () { return y })), n.d(t, "setRequestContentType", (function () { return b })), n.d(t, "setResponseContentType", (function () { return _ })), n.d(t, "setServerVariableValue", (function () { return w })), n.d(t, "setRequestBodyValidateError", (function () { return x })), n.d(t, "clearRequestBodyValidateError", (function () { return E })), n.d(t, "initRequestBodyValidateError", (function () { return S })), n.d(t, "clearRequestBodyValue", (function () { return C })); var r = "oas3_set_servers", o = "oas3_set_request_body_value", a = "oas3_set_request_body_retain_flag", i = "oas3_set_request_body_inclusion", s = "oas3_set_active_examples_member", u = "oas3_set_request_content_type", c = "oas3_set_response_content_type", l = "oas3_set_server_variable_value", p = "oas3_set_request_body_validate_error", f = "oas3_clear_request_body_validate_error", h = "oas3_clear_request_body_value"; function d(e, t) { return { type: r, payload: { selectedServerUrl: e, namespace: t } } } function m(e) { var t = e.value, n = e.pathMethod; return { type: o, payload: { value: t, pathMethod: n } } } var v = function (e) { var t = e.value, n = e.pathMethod; return { type: a, payload: { value: t, pathMethod: n } } }; function g(e) { var t = e.value, n = e.pathMethod, r = e.name; return { type: i, payload: { value: t, pathMethod: n, name: r } } } function y(e) { var t = e.name, n = e.pathMethod, r = e.contextType, o = e.contextName; return { type: s, payload: { name: t, pathMethod: n, contextType: r, contextName: o } } } function b(e) { var t = e.value, n = e.pathMethod; return { type: u, payload: { value: t, pathMethod: n } } } function _(e) { var t = e.value, n = e.path, r = e.method; return { type: c, payload: { value: t, path: n, method: r } } } function w(e) { var t = e.server, n = e.namespace, r = e.key, o = e.val; return { type: l, payload: { server: t, namespace: n, key: r, val: o } } } var x = function (e) { var t = e.path, n = e.method, r = e.validationErrors; return { type: p, payload: { path: t, method: n, validationErrors: r } } }, E = function (e) { var t = e.path, n = e.method; return { type: f, payload: { path: t, method: n } } }, S = function (e) { var t = e.pathMethod; return { type: f, payload: { path: t[0], method: t[1] } } }, C = function (e) { var t = e.pathMethod; return { type: h, payload: { pathMethod: t } } } }, function (e, t, n) { "use strict"; var r = !("undefined" == typeof window || !window.document || !window.document.createElement), o = { canUseDOM: r, canUseWorkers: "undefined" != typeof Worker, canUseEventListeners: r && !(!window.addEventListener && !window.attachEvent), canUseViewport: r && !!window.screen, isInWorker: !r }; e.exports = o }, function (e, t) { e.exports = function (e) { var t = typeof e; return null != e && ("object" == t || "function" == t) } }, function (e, t, n) { "use strict"; n.d(t, "b", (function () { return b })), n.d(t, "e", (function () { return _ })), n.d(t, "c", (function () { return x })), n.d(t, "a", (function () { return E })), n.d(t, "d", (function () { return S })); var r = n(51), o = n.n(r), a = n(18), i = n.n(a), s = n(37), u = n.n(s), c = n(2), l = n.n(c), p = n(19), f = n.n(p), h = n(59), d = n.n(h), m = n(353), v = n.n(m), g = function (e) { return String.prototype.toLowerCase.call(e) }, y = function (e) { return e.replace(/[^\w]/gi, "_") }; function b(e) { var t = e.openapi; return !!t && v()(t, "3") } function _(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "", r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, o = r.v2OperationIdCompatibilityMode; if (!e || "object" !== f()(e)) return null; var a = (e.operationId || "").replace(/\s/g, ""); return a.length ? y(e.operationId) : w(t, n, { v2OperationIdCompatibilityMode: o }) } function w(e, t) { var n, r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, o = r.v2OperationIdCompatibilityMode; if (o) { var a, i, s = l()(a = "".concat(t.toLowerCase(), "_")).call(a, e).replace(/[\s!@#$%^&*()_+=[{\]};:<>|./?,\\'""-]/g, "_"); return (s = s || l()(i = "".concat(e.substring(1), "_")).call(i, t)).replace(/((_){2,})/g, "_").replace(/^(_)*/g, "").replace(/([_])*$/g, "") } return l()(n = "".concat(g(t))).call(n, y(e)) } function x(e, t) { var n; return l()(n = "".concat(g(t), "-")).call(n, e) } function E(e, t) { return e && e.paths ? function (e, t) { return function (e, t, n) { if (!e || "object" !== f()(e) || !e.paths || "object" !== f()(e.paths)) return null; var r = e.paths; for (var o in r) for (var a in r[o]) if ("PARAMETERS" !== a.toUpperCase()) { var i = r[o][a]; if (i && "object" === f()(i)) { var s = { spec: e, pathName: o, method: a.toUpperCase(), operation: i }, u = t(s); if (n && u) return s } } return }(e, t, !0) || null }(e, (function (e) { var n, r = e.pathName, o = e.method, a = e.operation; if (!a || "object" !== f()(a)) return !1; var i = a.operationId, s = _(a, r, o), c = x(r, o); return u()(n = [s, c, i]).call(n, (function (e) { return e && e === t })) })) : null } function S(e) { var t = e.spec, n = t.paths, r = {}; if (!n || t.$$normalized) return e; for (var a in n) { var s = n[a]; if (d()(s)) { var c = s.parameters, p = function (e) { var n = s[e]; if (!d()(n)) return "continue"; var p = _(n, a, e); if (p) { r[p] ? r[p].push(n) : r[p] = [n]; var f = r[p]; if (f.length > 1) i()(f).call(f, (function (e, t) { var n; e.__originalOperationId = e.__originalOperationId || e.operationId, e.operationId = l()(n = "".concat(p)).call(n, t + 1) })); else if (void 0 !== n.operationId) { var h = f[0]; h.__originalOperationId = h.__originalOperationId || n.operationId, h.operationId = p } } if ("parameters" !== e) { var m = [], v = {}; for (var g in t) "produces" !== g && "consumes" !== g && "security" !== g || (v[g] = t[g], m.push(v)); if (c && (v.parameters = c, m.push(v)), m.length) { var y, b = o()(m); try { for (b.s(); !(y = b.n()).done;) { var w = y.value; for (var x in w) if (n[x]) { if ("parameters" === x) { var E, S = o()(w[x]); try { var C = function () { var e, t = E.value; u()(e = n[x]).call(e, (function (e) { return e.name && e.name === t.name || e.$ref && e.$ref === t.$ref || e.$$ref && e.$$ref === t.$$ref || e === t })) || n[x].push(t) }; for (S.s(); !(E = S.n()).done;)C() } catch (e) { S.e(e) } finally { S.f() } } } else n[x] = w[x] } } catch (e) { b.e(e) } finally { b.f() } } } }; for (var f in s) p(f) } } return t.$$normalized = !0, e } }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "NEW_THROWN_ERR", (function () { return a })), n.d(t, "NEW_THROWN_ERR_BATCH", (function () { return i })), n.d(t, "NEW_SPEC_ERR", (function () { return s })), n.d(t, "NEW_SPEC_ERR_BATCH", (function () { return u })), n.d(t, "NEW_AUTH_ERR", (function () { return c })), n.d(t, "CLEAR", (function () { return l })), n.d(t, "CLEAR_BY", (function () { return p })), n.d(t, "newThrownErr", (function () { return f })), n.d(t, "newThrownErrBatch", (function () { return h })), n.d(t, "newSpecErr", (function () { return d })), n.d(t, "newSpecErrBatch", (function () { return m })), n.d(t, "newAuthErr", (function () { return v })), n.d(t, "clear", (function () { return g })), n.d(t, "clearBy", (function () { return y })); var r = n(143), o = n.n(r), a = "err_new_thrown_err", i = "err_new_thrown_err_batch", s = "err_new_spec_err", u = "err_new_spec_err_batch", c = "err_new_auth_err", l = "err_clear", p = "err_clear_by"; function f(e) { return { type: a, payload: o()(e) } } function h(e) { return { type: i, payload: e } } function d(e) { return { type: s, payload: e } } function m(e) { return { type: u, payload: e } } function v(e) { return { type: c, payload: e } } function g() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return { type: l, payload: e } } function y() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : function () { return !0 }; return { type: p, payload: e } } }, function (e, t, n) { var r = n(49), o = n(35), a = n(52), i = Object.defineProperty, s = {}, u = function (e) { throw e }; e.exports = function (e, t) { if (a(s, e)) return s[e]; t || (t = {}); var n = [][e], c = !!a(t, "ACCESSORS") && t.ACCESSORS, l = a(t, 0) ? t[0] : u, p = a(t, 1) ? t[1] : void 0; return s[e] = !!n && !o((function () { if (c && !r) return !0; var e = { length: -1 }; c ? i(e, 1, { enumerable: !0, get: u }) : e[1] = 1, n.call(e, l, p) })) } }, function (e, t) { "function" == typeof Object.create ? e.exports = function (e, t) { e.super_ = t, e.prototype = Object.create(t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }) } : e.exports = function (e, t) { e.super_ = t; var n = function () { }; n.prototype = t.prototype, e.prototype = new n, e.prototype.constructor = e } }, function (e, t, n) { var r = n(77), o = r.Buffer; function a(e, t) { for (var n in e) t[n] = e[n] } function i(e, t, n) { return o(e, t, n) } o.from && o.alloc && o.allocUnsafe && o.allocUnsafeSlow ? e.exports = r : (a(r, t), t.Buffer = i), a(o, i), i.from = function (e, t, n) { if ("number" == typeof e) throw new TypeError("Argument must not be a number"); return o(e, t, n) }, i.alloc = function (e, t, n) { if ("number" != typeof e) throw new TypeError("Argument must be a number"); var r = o(e); return void 0 !== t ? "string" == typeof n ? r.fill(t, n) : r.fill(t) : r.fill(0), r }, i.allocUnsafe = function (e) { if ("number" != typeof e) throw new TypeError("Argument must be a number"); return o(e) }, i.allocUnsafeSlow = function (e) { if ("number" != typeof e) throw new TypeError("Argument must be a number"); return r.SlowBuffer(e) } }, function (e, t, n) { var r; !function () { "use strict"; var n = {}.hasOwnProperty; function o() { for (var e = [], t = 0; t < arguments.length; t++) { var r = arguments[t]; if (r) { var a = typeof r; if ("string" === a || "number" === a) e.push(r); else if (Array.isArray(r) && r.length) { var i = o.apply(null, r); i && e.push(i) } else if ("object" === a) for (var s in r) n.call(r, s) && r[s] && e.push(s) } } return e.join(" ") } e.exports ? (o.default = o, e.exports = o) : void 0 === (r = function () { return o }.apply(t, [])) || (e.exports = r) }() }, function (e, t, n) { var r = n(114), o = n(59); e.exports = function (e) { if (!o(e)) return !1; var t = r(e); return "[object Function]" == t || "[object GeneratorFunction]" == t || "[object AsyncFunction]" == t || "[object Proxy]" == t } }, function (e, t, n) { e.exports = n(647) }, function (e, t, n) { e.exports = n(902) }, function (e, t, n) { var r = n(177), o = n(128); e.exports = function (e) { return r(o(e)) } }, function (e, t, n) { var r = n(49), o = n(71), a = n(108); e.exports = r ? function (e, t, n) { return o.f(e, t, a(1, n)) } : function (e, t, n) { return e[t] = n, e } }, function (e, t, n) { var r = n(49), o = n(357), a = n(53), i = n(178), s = Object.defineProperty; t.f = r ? s : function (e, t, n) { if (a(e), t = i(t, !0), a(n), o) try { return s(e, t, n) } catch (e) { } if ("get" in n || "set" in n) throw TypeError("Accessors not supported"); return "value" in n && (e[t] = n.value), e } }, function (e, t, n) { var r = n(33), o = n(42), a = function (e) { return "function" == typeof e ? e : void 0 }; e.exports = function (e, t) { return arguments.length < 2 ? a(r[e]) || a(o[e]) : r[e] && r[e][t] || o[e] && o[e][t] } }, function (e, t, n) { var r = n(128); e.exports = function (e) { return Object(r(e)) } }, function (e, t, n) { n(154); var r = n(561), o = n(42), a = n(90), i = n(70), s = n(111), u = n(39)("toStringTag"); for (var c in r) { var l = o[c], p = l && l.prototype; p && a(p) !== u && i(p, u, c), s[c] = s.Array } }, function (e, t, n) { var r = n(407), o = "object" == typeof self && self && self.Object === Object && self, a = r || o || Function("return this")(); e.exports = a }, function (e, t, n) { "use strict"; e.exports = { debugTool: null } }, function (e, t, n) { "use strict"; (function (e) { var r = n(592), o = n(593), a = n(373); function i() { return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 } function s(e, t) { if (i() < t) throw new RangeError("Invalid typed array length"); return u.TYPED_ARRAY_SUPPORT ? (e = new Uint8Array(t)).__proto__ = u.prototype : (null === e && (e = new u(t)), e.length = t), e } function u(e, t, n) { if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(e, t, n); if ("number" == typeof e) { if ("string" == typeof t) throw new Error("If encoding is specified then the first argument must be a string"); return p(this, e) } return c(this, e, t, n) } function c(e, t, n, r) { if ("number" == typeof t) throw new TypeError('"value" argument must not be a number'); return "undefined" != typeof ArrayBuffer && t instanceof ArrayBuffer ? function (e, t, n, r) { if (t.byteLength, n < 0 || t.byteLength < n) throw new RangeError("'offset' is out of bounds"); if (t.byteLength < n + (r || 0)) throw new RangeError("'length' is out of bounds"); t = void 0 === n && void 0 === r ? new Uint8Array(t) : void 0 === r ? new Uint8Array(t, n) : new Uint8Array(t, n, r); u.TYPED_ARRAY_SUPPORT ? (e = t).__proto__ = u.prototype : e = f(e, t); return e }(e, t, n, r) : "string" == typeof t ? function (e, t, n) { "string" == typeof n && "" !== n || (n = "utf8"); if (!u.isEncoding(n)) throw new TypeError('"encoding" must be a valid string encoding'); var r = 0 | d(t, n), o = (e = s(e, r)).write(t, n); o !== r && (e = e.slice(0, o)); return e }(e, t, n) : function (e, t) { if (u.isBuffer(t)) { var n = 0 | h(t.length); return 0 === (e = s(e, n)).length || t.copy(e, 0, 0, n), e } if (t) { if ("undefined" != typeof ArrayBuffer && t.buffer instanceof ArrayBuffer || "length" in t) return "number" != typeof t.length || (r = t.length) != r ? s(e, 0) : f(e, t); if ("Buffer" === t.type && a(t.data)) return f(e, t.data) } var r; throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") }(e, t) } function l(e) { if ("number" != typeof e) throw new TypeError('"size" argument must be a number'); if (e < 0) throw new RangeError('"size" argument must not be negative') } function p(e, t) { if (l(t), e = s(e, t < 0 ? 0 : 0 | h(t)), !u.TYPED_ARRAY_SUPPORT) for (var n = 0; n < t; ++n)e[n] = 0; return e } function f(e, t) { var n = t.length < 0 ? 0 : 0 | h(t.length); e = s(e, n); for (var r = 0; r < n; r += 1)e[r] = 255 & t[r]; return e } function h(e) { if (e >= i()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + i().toString(16) + " bytes"); return 0 | e } function d(e, t) { if (u.isBuffer(e)) return e.length; if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(e) || e instanceof ArrayBuffer)) return e.byteLength; "string" != typeof e && (e = "" + e); var n = e.length; if (0 === n) return 0; for (var r = !1; ;)switch (t) { case "ascii": case "latin1": case "binary": return n; case "utf8": case "utf-8": case void 0: return q(e).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return 2 * n; case "hex": return n >>> 1; case "base64": return z(e).length; default: if (r) return q(e).length; t = ("" + t).toLowerCase(), r = !0 } } function m(e, t, n) { var r = !1; if ((void 0 === t || t < 0) && (t = 0), t > this.length) return ""; if ((void 0 === n || n > this.length) && (n = this.length), n <= 0) return ""; if ((n >>>= 0) <= (t >>>= 0)) return ""; for (e || (e = "utf8"); ;)switch (e) { case "hex": return T(this, t, n); case "utf8": case "utf-8": return A(this, t, n); case "ascii": return O(this, t, n); case "latin1": case "binary": return j(this, t, n); case "base64": return C(this, t, n); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return I(this, t, n); default: if (r) throw new TypeError("Unknown encoding: " + e); e = (e + "").toLowerCase(), r = !0 } } function v(e, t, n) { var r = e[t]; e[t] = e[n], e[n] = r } function g(e, t, n, r, o) { if (0 === e.length) return -1; if ("string" == typeof n ? (r = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), n = +n, isNaN(n) && (n = o ? 0 : e.length - 1), n < 0 && (n = e.length + n), n >= e.length) { if (o) return -1; n = e.length - 1 } else if (n < 0) { if (!o) return -1; n = 0 } if ("string" == typeof t && (t = u.from(t, r)), u.isBuffer(t)) return 0 === t.length ? -1 : y(e, t, n, r, o); if ("number" == typeof t) return t &= 255, u.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? o ? Uint8Array.prototype.indexOf.call(e, t, n) : Uint8Array.prototype.lastIndexOf.call(e, t, n) : y(e, [t], n, r, o); throw new TypeError("val must be string, number or Buffer") } function y(e, t, n, r, o) { var a, i = 1, s = e.length, u = t.length; if (void 0 !== r && ("ucs2" === (r = String(r).toLowerCase()) || "ucs-2" === r || "utf16le" === r || "utf-16le" === r)) { if (e.length < 2 || t.length < 2) return -1; i = 2, s /= 2, u /= 2, n /= 2 } function c(e, t) { return 1 === i ? e[t] : e.readUInt16BE(t * i) } if (o) { var l = -1; for (a = n; a < s; a++)if (c(e, a) === c(t, -1 === l ? 0 : a - l)) { if (-1 === l && (l = a), a - l + 1 === u) return l * i } else -1 !== l && (a -= a - l), l = -1 } else for (n + u > s && (n = s - u), a = n; a >= 0; a--) { for (var p = !0, f = 0; f < u; f++)if (c(e, a + f) !== c(t, f)) { p = !1; break } if (p) return a } return -1 } function b(e, t, n, r) { n = Number(n) || 0; var o = e.length - n; r ? (r = Number(r)) > o && (r = o) : r = o; var a = t.length; if (a % 2 != 0) throw new TypeError("Invalid hex string"); r > a / 2 && (r = a / 2); for (var i = 0; i < r; ++i) { var s = parseInt(t.substr(2 * i, 2), 16); if (isNaN(s)) return i; e[n + i] = s } return i } function _(e, t, n, r) { return V(q(t, e.length - n), e, n, r) } function w(e, t, n, r) { return V(function (e) { for (var t = [], n = 0; n < e.length; ++n)t.push(255 & e.charCodeAt(n)); return t }(t), e, n, r) } function x(e, t, n, r) { return w(e, t, n, r) } function E(e, t, n, r) { return V(z(t), e, n, r) } function S(e, t, n, r) { return V(function (e, t) { for (var n, r, o, a = [], i = 0; i < e.length && !((t -= 2) < 0); ++i)r = (n = e.charCodeAt(i)) >> 8, o = n % 256, a.push(o), a.push(r); return a }(t, e.length - n), e, n, r) } function C(e, t, n) { return 0 === t && n === e.length ? r.fromByteArray(e) : r.fromByteArray(e.slice(t, n)) } function A(e, t, n) { n = Math.min(e.length, n); for (var r = [], o = t; o < n;) { var a, i, s, u, c = e[o], l = null, p = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1; if (o + p <= n) switch (p) { case 1: c < 128 && (l = c); break; case 2: 128 == (192 & (a = e[o + 1])) && (u = (31 & c) << 6 | 63 & a) > 127 && (l = u); break; case 3: a = e[o + 1], i = e[o + 2], 128 == (192 & a) && 128 == (192 & i) && (u = (15 & c) << 12 | (63 & a) << 6 | 63 & i) > 2047 && (u < 55296 || u > 57343) && (l = u); break; case 4: a = e[o + 1], i = e[o + 2], s = e[o + 3], 128 == (192 & a) && 128 == (192 & i) && 128 == (192 & s) && (u = (15 & c) << 18 | (63 & a) << 12 | (63 & i) << 6 | 63 & s) > 65535 && u < 1114112 && (l = u) }null === l ? (l = 65533, p = 1) : l > 65535 && (l -= 65536, r.push(l >>> 10 & 1023 | 55296), l = 56320 | 1023 & l), r.push(l), o += p } return function (e) { var t = e.length; if (t <= k) return String.fromCharCode.apply(String, e); var n = "", r = 0; for (; r < t;)n += String.fromCharCode.apply(String, e.slice(r, r += k)); return n }(r) } t.Buffer = u, t.SlowBuffer = function (e) { +e != e && (e = 0); return u.alloc(+e) }, t.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = void 0 !== e.TYPED_ARRAY_SUPPORT ? e.TYPED_ARRAY_SUPPORT : function () { try { var e = new Uint8Array(1); return e.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }, 42 === e.foo() && "function" == typeof e.subarray && 0 === e.subarray(1, 1).byteLength } catch (e) { return !1 } }(), t.kMaxLength = i(), u.poolSize = 8192, u._augment = function (e) { return e.__proto__ = u.prototype, e }, u.from = function (e, t, n) { return c(null, e, t, n) }, u.TYPED_ARRAY_SUPPORT && (u.prototype.__proto__ = Uint8Array.prototype, u.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && u[Symbol.species] === u && Object.defineProperty(u, Symbol.species, { value: null, configurable: !0 })), u.alloc = function (e, t, n) { return function (e, t, n, r) { return l(t), t <= 0 ? s(e, t) : void 0 !== n ? "string" == typeof r ? s(e, t).fill(n, r) : s(e, t).fill(n) : s(e, t) }(null, e, t, n) }, u.allocUnsafe = function (e) { return p(null, e) }, u.allocUnsafeSlow = function (e) { return p(null, e) }, u.isBuffer = function (e) { return !(null == e || !e._isBuffer) }, u.compare = function (e, t) { if (!u.isBuffer(e) || !u.isBuffer(t)) throw new TypeError("Arguments must be Buffers"); if (e === t) return 0; for (var n = e.length, r = t.length, o = 0, a = Math.min(n, r); o < a; ++o)if (e[o] !== t[o]) { n = e[o], r = t[o]; break } return n < r ? -1 : r < n ? 1 : 0 }, u.isEncoding = function (e) { switch (String(e).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, u.concat = function (e, t) { if (!a(e)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === e.length) return u.alloc(0); var n; if (void 0 === t) for (t = 0, n = 0; n < e.length; ++n)t += e[n].length; var r = u.allocUnsafe(t), o = 0; for (n = 0; n < e.length; ++n) { var i = e[n]; if (!u.isBuffer(i)) throw new TypeError('"list" argument must be an Array of Buffers'); i.copy(r, o), o += i.length } return r }, u.byteLength = d, u.prototype._isBuffer = !0, u.prototype.swap16 = function () { var e = this.length; if (e % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var t = 0; t < e; t += 2)v(this, t, t + 1); return this }, u.prototype.swap32 = function () { var e = this.length; if (e % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var t = 0; t < e; t += 4)v(this, t, t + 3), v(this, t + 1, t + 2); return this }, u.prototype.swap64 = function () { var e = this.length; if (e % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var t = 0; t < e; t += 8)v(this, t, t + 7), v(this, t + 1, t + 6), v(this, t + 2, t + 5), v(this, t + 3, t + 4); return this }, u.prototype.toString = function () { var e = 0 | this.length; return 0 === e ? "" : 0 === arguments.length ? A(this, 0, e) : m.apply(this, arguments) }, u.prototype.equals = function (e) { if (!u.isBuffer(e)) throw new TypeError("Argument must be a Buffer"); return this === e || 0 === u.compare(this, e) }, u.prototype.inspect = function () { var e = "", n = t.INSPECT_MAX_BYTES; return this.length > 0 && (e = this.toString("hex", 0, n).match(/.{2}/g).join(" "), this.length > n && (e += " ... ")), "" }, u.prototype.compare = function (e, t, n, r, o) { if (!u.isBuffer(e)) throw new TypeError("Argument must be a Buffer"); if (void 0 === t && (t = 0), void 0 === n && (n = e ? e.length : 0), void 0 === r && (r = 0), void 0 === o && (o = this.length), t < 0 || n > e.length || r < 0 || o > this.length) throw new RangeError("out of range index"); if (r >= o && t >= n) return 0; if (r >= o) return -1; if (t >= n) return 1; if (this === e) return 0; for (var a = (o >>>= 0) - (r >>>= 0), i = (n >>>= 0) - (t >>>= 0), s = Math.min(a, i), c = this.slice(r, o), l = e.slice(t, n), p = 0; p < s; ++p)if (c[p] !== l[p]) { a = c[p], i = l[p]; break } return a < i ? -1 : i < a ? 1 : 0 }, u.prototype.includes = function (e, t, n) { return -1 !== this.indexOf(e, t, n) }, u.prototype.indexOf = function (e, t, n) { return g(this, e, t, n, !0) }, u.prototype.lastIndexOf = function (e, t, n) { return g(this, e, t, n, !1) }, u.prototype.write = function (e, t, n, r) { if (void 0 === t) r = "utf8", n = this.length, t = 0; else if (void 0 === n && "string" == typeof t) r = t, n = this.length, t = 0; else { if (!isFinite(t)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); t |= 0, isFinite(n) ? (n |= 0, void 0 === r && (r = "utf8")) : (r = n, n = void 0) } var o = this.length - t; if ((void 0 === n || n > o) && (n = o), e.length > 0 && (n < 0 || t < 0) || t > this.length) throw new RangeError("Attempt to write outside buffer bounds"); r || (r = "utf8"); for (var a = !1; ;)switch (r) { case "hex": return b(this, e, t, n); case "utf8": case "utf-8": return _(this, e, t, n); case "ascii": return w(this, e, t, n); case "latin1": case "binary": return x(this, e, t, n); case "base64": return E(this, e, t, n); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return S(this, e, t, n); default: if (a) throw new TypeError("Unknown encoding: " + r); r = ("" + r).toLowerCase(), a = !0 } }, u.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } }; var k = 4096; function O(e, t, n) { var r = ""; n = Math.min(e.length, n); for (var o = t; o < n; ++o)r += String.fromCharCode(127 & e[o]); return r } function j(e, t, n) { var r = ""; n = Math.min(e.length, n); for (var o = t; o < n; ++o)r += String.fromCharCode(e[o]); return r } function T(e, t, n) { var r = e.length; (!t || t < 0) && (t = 0), (!n || n < 0 || n > r) && (n = r); for (var o = "", a = t; a < n; ++a)o += U(e[a]); return o } function I(e, t, n) { for (var r = e.slice(t, n), o = "", a = 0; a < r.length; a += 2)o += String.fromCharCode(r[a] + 256 * r[a + 1]); return o } function P(e, t, n) { if (e % 1 != 0 || e < 0) throw new RangeError("offset is not uint"); if (e + t > n) throw new RangeError("Trying to access beyond buffer length") } function N(e, t, n, r, o, a) { if (!u.isBuffer(e)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (t > o || t < a) throw new RangeError('"value" argument is out of bounds'); if (n + r > e.length) throw new RangeError("Index out of range") } function M(e, t, n, r) { t < 0 && (t = 65535 + t + 1); for (var o = 0, a = Math.min(e.length - n, 2); o < a; ++o)e[n + o] = (t & 255 << 8 * (r ? o : 1 - o)) >>> 8 * (r ? o : 1 - o) } function R(e, t, n, r) { t < 0 && (t = 4294967295 + t + 1); for (var o = 0, a = Math.min(e.length - n, 4); o < a; ++o)e[n + o] = t >>> 8 * (r ? o : 3 - o) & 255 } function D(e, t, n, r, o, a) { if (n + r > e.length) throw new RangeError("Index out of range"); if (n < 0) throw new RangeError("Index out of range") } function L(e, t, n, r, a) { return a || D(e, 0, n, 4), o.write(e, t, n, r, 23, 4), n + 4 } function B(e, t, n, r, a) { return a || D(e, 0, n, 8), o.write(e, t, n, r, 52, 8), n + 8 } u.prototype.slice = function (e, t) { var n, r = this.length; if ((e = ~~e) < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r), (t = void 0 === t ? r : ~~t) < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), t < e && (t = e), u.TYPED_ARRAY_SUPPORT) (n = this.subarray(e, t)).__proto__ = u.prototype; else { var o = t - e; n = new u(o, void 0); for (var a = 0; a < o; ++a)n[a] = this[a + e] } return n }, u.prototype.readUIntLE = function (e, t, n) { e |= 0, t |= 0, n || P(e, t, this.length); for (var r = this[e], o = 1, a = 0; ++a < t && (o *= 256);)r += this[e + a] * o; return r }, u.prototype.readUIntBE = function (e, t, n) { e |= 0, t |= 0, n || P(e, t, this.length); for (var r = this[e + --t], o = 1; t > 0 && (o *= 256);)r += this[e + --t] * o; return r }, u.prototype.readUInt8 = function (e, t) { return t || P(e, 1, this.length), this[e] }, u.prototype.readUInt16LE = function (e, t) { return t || P(e, 2, this.length), this[e] | this[e + 1] << 8 }, u.prototype.readUInt16BE = function (e, t) { return t || P(e, 2, this.length), this[e] << 8 | this[e + 1] }, u.prototype.readUInt32LE = function (e, t) { return t || P(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3] }, u.prototype.readUInt32BE = function (e, t) { return t || P(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]) }, u.prototype.readIntLE = function (e, t, n) { e |= 0, t |= 0, n || P(e, t, this.length); for (var r = this[e], o = 1, a = 0; ++a < t && (o *= 256);)r += this[e + a] * o; return r >= (o *= 128) && (r -= Math.pow(2, 8 * t)), r }, u.prototype.readIntBE = function (e, t, n) { e |= 0, t |= 0, n || P(e, t, this.length); for (var r = t, o = 1, a = this[e + --r]; r > 0 && (o *= 256);)a += this[e + --r] * o; return a >= (o *= 128) && (a -= Math.pow(2, 8 * t)), a }, u.prototype.readInt8 = function (e, t) { return t || P(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e] }, u.prototype.readInt16LE = function (e, t) { t || P(e, 2, this.length); var n = this[e] | this[e + 1] << 8; return 32768 & n ? 4294901760 | n : n }, u.prototype.readInt16BE = function (e, t) { t || P(e, 2, this.length); var n = this[e + 1] | this[e] << 8; return 32768 & n ? 4294901760 | n : n }, u.prototype.readInt32LE = function (e, t) { return t || P(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24 }, u.prototype.readInt32BE = function (e, t) { return t || P(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3] }, u.prototype.readFloatLE = function (e, t) { return t || P(e, 4, this.length), o.read(this, e, !0, 23, 4) }, u.prototype.readFloatBE = function (e, t) { return t || P(e, 4, this.length), o.read(this, e, !1, 23, 4) }, u.prototype.readDoubleLE = function (e, t) { return t || P(e, 8, this.length), o.read(this, e, !0, 52, 8) }, u.prototype.readDoubleBE = function (e, t) { return t || P(e, 8, this.length), o.read(this, e, !1, 52, 8) }, u.prototype.writeUIntLE = function (e, t, n, r) { (e = +e, t |= 0, n |= 0, r) || N(this, e, t, n, Math.pow(2, 8 * n) - 1, 0); var o = 1, a = 0; for (this[t] = 255 & e; ++a < n && (o *= 256);)this[t + a] = e / o & 255; return t + n }, u.prototype.writeUIntBE = function (e, t, n, r) { (e = +e, t |= 0, n |= 0, r) || N(this, e, t, n, Math.pow(2, 8 * n) - 1, 0); var o = n - 1, a = 1; for (this[t + o] = 255 & e; --o >= 0 && (a *= 256);)this[t + o] = e / a & 255; return t + n }, u.prototype.writeUInt8 = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), this[t] = 255 & e, t + 1 }, u.prototype.writeUInt16LE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : M(this, e, t, !0), t + 2 }, u.prototype.writeUInt16BE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : M(this, e, t, !1), t + 2 }, u.prototype.writeUInt32LE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[t + 3] = e >>> 24, this[t + 2] = e >>> 16, this[t + 1] = e >>> 8, this[t] = 255 & e) : R(this, e, t, !0), t + 4 }, u.prototype.writeUInt32BE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : R(this, e, t, !1), t + 4 }, u.prototype.writeIntLE = function (e, t, n, r) { if (e = +e, t |= 0, !r) { var o = Math.pow(2, 8 * n - 1); N(this, e, t, n, o - 1, -o) } var a = 0, i = 1, s = 0; for (this[t] = 255 & e; ++a < n && (i *= 256);)e < 0 && 0 === s && 0 !== this[t + a - 1] && (s = 1), this[t + a] = (e / i >> 0) - s & 255; return t + n }, u.prototype.writeIntBE = function (e, t, n, r) { if (e = +e, t |= 0, !r) { var o = Math.pow(2, 8 * n - 1); N(this, e, t, n, o - 1, -o) } var a = n - 1, i = 1, s = 0; for (this[t + a] = 255 & e; --a >= 0 && (i *= 256);)e < 0 && 0 === s && 0 !== this[t + a + 1] && (s = 1), this[t + a] = (e / i >> 0) - s & 255; return t + n }, u.prototype.writeInt8 = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 1, 127, -128), u.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), e < 0 && (e = 255 + e + 1), this[t] = 255 & e, t + 1 }, u.prototype.writeInt16LE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : M(this, e, t, !0), t + 2 }, u.prototype.writeInt16BE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : M(this, e, t, !1), t + 2 }, u.prototype.writeInt32LE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 4, 2147483647, -2147483648), u.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8, this[t + 2] = e >>> 16, this[t + 3] = e >>> 24) : R(this, e, t, !0), t + 4 }, u.prototype.writeInt32BE = function (e, t, n) { return e = +e, t |= 0, n || N(this, e, t, 4, 2147483647, -2147483648), e < 0 && (e = 4294967295 + e + 1), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : R(this, e, t, !1), t + 4 }, u.prototype.writeFloatLE = function (e, t, n) { return L(this, e, t, !0, n) }, u.prototype.writeFloatBE = function (e, t, n) { return L(this, e, t, !1, n) }, u.prototype.writeDoubleLE = function (e, t, n) { return B(this, e, t, !0, n) }, u.prototype.writeDoubleBE = function (e, t, n) { return B(this, e, t, !1, n) }, u.prototype.copy = function (e, t, n, r) { if (n || (n = 0), r || 0 === r || (r = this.length), t >= e.length && (t = e.length), t || (t = 0), r > 0 && r < n && (r = n), r === n) return 0; if (0 === e.length || 0 === this.length) return 0; if (t < 0) throw new RangeError("targetStart out of bounds"); if (n < 0 || n >= this.length) throw new RangeError("sourceStart out of bounds"); if (r < 0) throw new RangeError("sourceEnd out of bounds"); r > this.length && (r = this.length), e.length - t < r - n && (r = e.length - t + n); var o, a = r - n; if (this === e && n < t && t < r) for (o = a - 1; o >= 0; --o)e[o + t] = this[o + n]; else if (a < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (o = 0; o < a; ++o)e[o + t] = this[o + n]; else Uint8Array.prototype.set.call(e, this.subarray(n, n + a), t); return a }, u.prototype.fill = function (e, t, n, r) { if ("string" == typeof e) { if ("string" == typeof t ? (r = t, t = 0, n = this.length) : "string" == typeof n && (r = n, n = this.length), 1 === e.length) { var o = e.charCodeAt(0); o < 256 && (e = o) } if (void 0 !== r && "string" != typeof r) throw new TypeError("encoding must be a string"); if ("string" == typeof r && !u.isEncoding(r)) throw new TypeError("Unknown encoding: " + r) } else "number" == typeof e && (e &= 255); if (t < 0 || this.length < t || this.length < n) throw new RangeError("Out of range index"); if (n <= t) return this; var a; if (t >>>= 0, n = void 0 === n ? this.length : n >>> 0, e || (e = 0), "number" == typeof e) for (a = t; a < n; ++a)this[a] = e; else { var i = u.isBuffer(e) ? e : q(new u(e, r).toString()), s = i.length; for (a = 0; a < n - t; ++a)this[a + t] = i[a % s] } return this }; var F = /[^+\/0-9A-Za-z-_]/g; function U(e) { return e < 16 ? "0" + e.toString(16) : e.toString(16) } function q(e, t) { var n; t = t || 1 / 0; for (var r = e.length, o = null, a = [], i = 0; i < r; ++i) { if ((n = e.charCodeAt(i)) > 55295 && n < 57344) { if (!o) { if (n > 56319) { (t -= 3) > -1 && a.push(239, 191, 189); continue } if (i + 1 === r) { (t -= 3) > -1 && a.push(239, 191, 189); continue } o = n; continue } if (n < 56320) { (t -= 3) > -1 && a.push(239, 191, 189), o = n; continue } n = 65536 + (o - 55296 << 10 | n - 56320) } else o && (t -= 3) > -1 && a.push(239, 191, 189); if (o = null, n < 128) { if ((t -= 1) < 0) break; a.push(n) } else if (n < 2048) { if ((t -= 2) < 0) break; a.push(n >> 6 | 192, 63 & n | 128) } else if (n < 65536) { if ((t -= 3) < 0) break; a.push(n >> 12 | 224, n >> 6 & 63 | 128, 63 & n | 128) } else { if (!(n < 1114112)) throw new Error("Invalid code point"); if ((t -= 4) < 0) break; a.push(n >> 18 | 240, n >> 12 & 63 | 128, n >> 6 & 63 | 128, 63 & n | 128) } } return a } function z(e) { return r.toByteArray(function (e) { if ((e = function (e) { return e.trim ? e.trim() : e.replace(/^\s+|\s+$/g, "") }(e).replace(F, "")).length < 2) return ""; for (; e.length % 4 != 0;)e += "="; return e }(e)) } function V(e, t, n, r) { for (var o = 0; o < r && !(o + n >= t.length || o >= e.length); ++o)t[o + n] = e[o]; return o } }).call(this, n(55)) }, function (e, t, n) { "use strict"; var r = n(848); e.exports = r }, function (e, t, n) { var r = n(908); function o(e, t, n, o, a, i, s) { try { var u = e[i](s), c = u.value } catch (e) { return void n(e) } u.done ? t(c) : r.resolve(c).then(o, a) } e.exports = function (e) { return function () { var t = this, n = arguments; return new r((function (r, a) { var i = e.apply(t, n); function s(e) { o(i, r, a, s, u, "next", e) } function u(e) { o(i, r, a, s, u, "throw", e) } s(void 0) })) } } }, function (e, t) { e.exports = function (e) { if ("function" != typeof e) throw TypeError(String(e) + " is not a function"); return e } }, function (e, t, n) { var r = n(151), o = Math.min; e.exports = function (e) { return e > 0 ? o(r(e), 9007199254740991) : 0 } }, function (e, t, n) { var r, o, a, i = n(364), s = n(42), u = n(45), c = n(70), l = n(52), p = n(234), f = n(180), h = n(152), d = s.WeakMap; if (i) { var m = p.state || (p.state = new d), v = m.get, g = m.has, y = m.set; r = function (e, t) { return t.facade = e, y.call(m, e, t), t }, o = function (e) { return v.call(m, e) || {} }, a = function (e) { return g.call(m, e) } } else { var b = f("state"); h[b] = !0, r = function (e, t) { return t.facade = e, c(e, b, t), t }, o = function (e) { return l(e, b) ? e[b] : {} }, a = function (e) { return l(e, b) } } e.exports = { set: r, get: o, has: a, enforce: function (e) { return a(e) ? o(e) : r(e, {}) }, getterFor: function (e) { return function (t) { var n; if (!u(t) || (n = o(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required"); return n } } } }, function (e, t, n) { "use strict"; function r(e) { return function () { return e } } var o = function () { }; o.thatReturns = r, o.thatReturnsFalse = r(!1), o.thatReturnsTrue = r(!0), o.thatReturnsNull = r(null), o.thatReturnsThis = function () { return this }, o.thatReturnsArgument = function (e) { return e }, e.exports = o }, function (e, t, n) { "use strict"; var r = n(31), o = n(40), a = n(475), i = n(124), s = n(476), u = n(140), c = n(204), l = n(26), p = [], f = 0, h = a.getPooled(), d = !1, m = null; function v() { x.ReactReconcileTransaction && m || r("123") } var g = [{ initialize: function () { this.dirtyComponentsLength = p.length }, close: function () { this.dirtyComponentsLength !== p.length ? (p.splice(0, this.dirtyComponentsLength), w()) : p.length = 0 } }, { initialize: function () { this.callbackQueue.reset() }, close: function () { this.callbackQueue.notifyAll() } }]; function y() { this.reinitializeTransaction(), this.dirtyComponentsLength = null, this.callbackQueue = a.getPooled(), this.reconcileTransaction = x.ReactReconcileTransaction.getPooled(!0) } function b(e, t) { return e._mountOrder - t._mountOrder } function _(e) { var t = e.dirtyComponentsLength; t !== p.length && r("124", t, p.length), p.sort(b), f++; for (var n = 0; n < t; n++) { var o, a = p[n], i = a._pendingCallbacks; if (a._pendingCallbacks = null, s.logTopLevelRenders) { var c = a; a._currentElement.type.isReactTopLevelWrapper && (c = a._renderedComponent), o = "React update: " + c.getName(), console.time(o) } if (u.performUpdateIfNecessary(a, e.reconcileTransaction, f), o && console.timeEnd(o), i) for (var l = 0; l < i.length; l++)e.callbackQueue.enqueue(i[l], a.getPublicInstance()) } } o(y.prototype, c, { getTransactionWrappers: function () { return g }, destructor: function () { this.dirtyComponentsLength = null, a.release(this.callbackQueue), this.callbackQueue = null, x.ReactReconcileTransaction.release(this.reconcileTransaction), this.reconcileTransaction = null }, perform: function (e, t, n) { return c.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, e, t, n) } }), i.addPoolingTo(y); var w = function () { for (; p.length || d;) { if (p.length) { var e = y.getPooled(); e.perform(_, null, e), y.release(e) } if (d) { d = !1; var t = h; h = a.getPooled(), t.notifyAll(), a.release(t) } } }; var x = { ReactReconcileTransaction: null, batchedUpdates: function (e, t, n, r, o, a) { return v(), m.batchedUpdates(e, t, n, r, o, a) }, enqueueUpdate: function e(t) { v(), m.isBatchingUpdates ? (p.push(t), null == t._updateBatchNumber && (t._updateBatchNumber = f + 1)) : m.batchedUpdates(e, t) }, flushBatchedUpdates: w, injection: { injectReconcileTransaction: function (e) { e || r("126"), x.ReactReconcileTransaction = e }, injectBatchingStrategy: function (e) { e || r("127"), "function" != typeof e.batchedUpdates && r("128"), "boolean" != typeof e.isBatchingUpdates && r("129"), m = e } }, asap: function (e, t) { l(m.isBatchingUpdates, "ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."), h.enqueue(e, t), d = !0 } }; e.exports = x }, function (e, t, n) { "use strict"; (function (t) { function n(e) { return e instanceof t || e instanceof Date || e instanceof RegExp } function r(e) { if (e instanceof t) { var n = t.alloc ? t.alloc(e.length) : new t(e.length); return e.copy(n), n } if (e instanceof Date) return new Date(e.getTime()); if (e instanceof RegExp) return new RegExp(e); throw new Error("Unexpected situation") } function o(e) { var t = []; return e.forEach((function (e, a) { "object" == typeof e && null !== e ? Array.isArray(e) ? t[a] = o(e) : n(e) ? t[a] = r(e) : t[a] = i({}, e) : t[a] = e })), t } function a(e, t) { return "__proto__" === t ? void 0 : e[t] } var i = e.exports = function () { if (arguments.length < 1 || "object" != typeof arguments[0]) return !1; if (arguments.length < 2) return arguments[0]; var e, t, s = arguments[0], u = Array.prototype.slice.call(arguments, 1); return u.forEach((function (u) { "object" != typeof u || null === u || Array.isArray(u) || Object.keys(u).forEach((function (c) { return t = a(s, c), (e = a(u, c)) === s ? void 0 : "object" != typeof e || null === e ? void (s[c] = e) : Array.isArray(e) ? void (s[c] = o(e)) : n(e) ? void (s[c] = r(e)) : "object" != typeof t || null === t || Array.isArray(t) ? void (s[c] = i({}, e)) : void (s[c] = i(t, e)) })) })), s } }).call(this, n(77).Buffer) }, function (e, t, n) { e.exports = n(686) }, function (e, t, n) { "use strict"; var r = n(1075), o = n(1076); function a() { this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null } t.parse = b, t.resolve = function (e, t) { return b(e, !1, !0).resolve(t) }, t.resolveObject = function (e, t) { return e ? b(e, !1, !0).resolveObject(t) : t }, t.format = function (e) { o.isString(e) && (e = b(e)); return e instanceof a ? e.format() : a.prototype.format.call(e) }, t.Url = a; var i = /^([a-z0-9.+-]+:)/i, s = /:[0-9]*$/, u = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, c = ["{", "}", "|", "\\", "^", "`"].concat(["<", ">", '"', "`", " ", "\r", "\n", "\t"]), l = ["'"].concat(c), p = ["%", "/", "?", ";", "#"].concat(l), f = ["/", "?", "#"], h = /^[+a-z0-9A-Z_-]{0,63}$/, d = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, m = { javascript: !0, "javascript:": !0 }, v = { javascript: !0, "javascript:": !0 }, g = { http: !0, https: !0, ftp: !0, gopher: !0, file: !0, "http:": !0, "https:": !0, "ftp:": !0, "gopher:": !0, "file:": !0 }, y = n(1077); function b(e, t, n) { if (e && o.isObject(e) && e instanceof a) return e; var r = new a; return r.parse(e, t, n), r } a.prototype.parse = function (e, t, n) { if (!o.isString(e)) throw new TypeError("Parameter 'url' must be a string, not " + typeof e); var a = e.indexOf("?"), s = -1 !== a && a < e.indexOf("#") ? "?" : "#", c = e.split(s); c[0] = c[0].replace(/\\/g, "/"); var b = e = c.join(s); if (b = b.trim(), !n && 1 === e.split("#").length) { var _ = u.exec(b); if (_) return this.path = b, this.href = b, this.pathname = _[1], _[2] ? (this.search = _[2], this.query = t ? y.parse(this.search.substr(1)) : this.search.substr(1)) : t && (this.search = "", this.query = {}), this } var w = i.exec(b); if (w) { var x = (w = w[0]).toLowerCase(); this.protocol = x, b = b.substr(w.length) } if (n || w || b.match(/^\/\/[^@\/]+@[^@\/]+/)) { var E = "//" === b.substr(0, 2); !E || w && v[w] || (b = b.substr(2), this.slashes = !0) } if (!v[w] && (E || w && !g[w])) { for (var S, C, A = -1, k = 0; k < f.length; k++) { -1 !== (O = b.indexOf(f[k])) && (-1 === A || O < A) && (A = O) } -1 !== (C = -1 === A ? b.lastIndexOf("@") : b.lastIndexOf("@", A)) && (S = b.slice(0, C), b = b.slice(C + 1), this.auth = decodeURIComponent(S)), A = -1; for (k = 0; k < p.length; k++) { var O; -1 !== (O = b.indexOf(p[k])) && (-1 === A || O < A) && (A = O) } -1 === A && (A = b.length), this.host = b.slice(0, A), b = b.slice(A), this.parseHost(), this.hostname = this.hostname || ""; var j = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1]; if (!j) for (var T = this.hostname.split(/\./), I = (k = 0, T.length); k < I; k++) { var P = T[k]; if (P && !P.match(h)) { for (var N = "", M = 0, R = P.length; M < R; M++)P.charCodeAt(M) > 127 ? N += "x" : N += P[M]; if (!N.match(h)) { var D = T.slice(0, k), L = T.slice(k + 1), B = P.match(d); B && (D.push(B[1]), L.unshift(B[2])), L.length && (b = "/" + L.join(".") + b), this.hostname = D.join("."); break } } } this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), j || (this.hostname = r.toASCII(this.hostname)); var F = this.port ? ":" + this.port : "", U = this.hostname || ""; this.host = U + F, this.href += this.host, j && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== b[0] && (b = "/" + b)) } if (!m[x]) for (k = 0, I = l.length; k < I; k++) { var q = l[k]; if (-1 !== b.indexOf(q)) { var z = encodeURIComponent(q); z === q && (z = escape(q)), b = b.split(q).join(z) } } var V = b.indexOf("#"); -1 !== V && (this.hash = b.substr(V), b = b.slice(0, V)); var W = b.indexOf("?"); if (-1 !== W ? (this.search = b.substr(W), this.query = b.substr(W + 1), t && (this.query = y.parse(this.query)), b = b.slice(0, W)) : t && (this.search = "", this.query = {}), b && (this.pathname = b), g[x] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) { F = this.pathname || ""; var H = this.search || ""; this.path = F + H } return this.href = this.format(), this }, a.prototype.format = function () { var e = this.auth || ""; e && (e = (e = encodeURIComponent(e)).replace(/%3A/i, ":"), e += "@"); var t = this.protocol || "", n = this.pathname || "", r = this.hash || "", a = !1, i = ""; this.host ? a = e + this.host : this.hostname && (a = e + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (a += ":" + this.port)), this.query && o.isObject(this.query) && Object.keys(this.query).length && (i = y.stringify(this.query)); var s = this.search || i && "?" + i || ""; return t && ":" !== t.substr(-1) && (t += ":"), this.slashes || (!t || g[t]) && !1 !== a ? (a = "//" + (a || ""), n && "/" !== n.charAt(0) && (n = "/" + n)) : a || (a = ""), r && "#" !== r.charAt(0) && (r = "#" + r), s && "?" !== s.charAt(0) && (s = "?" + s), t + a + (n = n.replace(/[?#]/g, (function (e) { return encodeURIComponent(e) }))) + (s = s.replace("#", "%23")) + r }, a.prototype.resolve = function (e) { return this.resolveObject(b(e, !1, !0)).format() }, a.prototype.resolveObject = function (e) { if (o.isString(e)) { var t = new a; t.parse(e, !1, !0), e = t } for (var n = new a, r = Object.keys(this), i = 0; i < r.length; i++) { var s = r[i]; n[s] = this[s] } if (n.hash = e.hash, "" === e.href) return n.href = n.format(), n; if (e.slashes && !e.protocol) { for (var u = Object.keys(e), c = 0; c < u.length; c++) { var l = u[c]; "protocol" !== l && (n[l] = e[l]) } return g[n.protocol] && n.hostname && !n.pathname && (n.path = n.pathname = "/"), n.href = n.format(), n } if (e.protocol && e.protocol !== n.protocol) { if (!g[e.protocol]) { for (var p = Object.keys(e), f = 0; f < p.length; f++) { var h = p[f]; n[h] = e[h] } return n.href = n.format(), n } if (n.protocol = e.protocol, e.host || v[e.protocol]) n.pathname = e.pathname; else { for (var d = (e.pathname || "").split("/"); d.length && !(e.host = d.shift());); e.host || (e.host = ""), e.hostname || (e.hostname = ""), "" !== d[0] && d.unshift(""), d.length < 2 && d.unshift(""), n.pathname = d.join("/") } if (n.search = e.search, n.query = e.query, n.host = e.host || "", n.auth = e.auth, n.hostname = e.hostname || e.host, n.port = e.port, n.pathname || n.search) { var m = n.pathname || "", y = n.search || ""; n.path = m + y } return n.slashes = n.slashes || e.slashes, n.href = n.format(), n } var b = n.pathname && "/" === n.pathname.charAt(0), _ = e.host || e.pathname && "/" === e.pathname.charAt(0), w = _ || b || n.host && e.pathname, x = w, E = n.pathname && n.pathname.split("/") || [], S = (d = e.pathname && e.pathname.split("/") || [], n.protocol && !g[n.protocol]); if (S && (n.hostname = "", n.port = null, n.host && ("" === E[0] ? E[0] = n.host : E.unshift(n.host)), n.host = "", e.protocol && (e.hostname = null, e.port = null, e.host && ("" === d[0] ? d[0] = e.host : d.unshift(e.host)), e.host = null), w = w && ("" === d[0] || "" === E[0])), _) n.host = e.host || "" === e.host ? e.host : n.host, n.hostname = e.hostname || "" === e.hostname ? e.hostname : n.hostname, n.search = e.search, n.query = e.query, E = d; else if (d.length) E || (E = []), E.pop(), E = E.concat(d), n.search = e.search, n.query = e.query; else if (!o.isNullOrUndefined(e.search)) { if (S) n.hostname = n.host = E.shift(), (j = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@")) && (n.auth = j.shift(), n.host = n.hostname = j.shift()); return n.search = e.search, n.query = e.query, o.isNull(n.pathname) && o.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.href = n.format(), n } if (!E.length) return n.pathname = null, n.search ? n.path = "/" + n.search : n.path = null, n.href = n.format(), n; for (var C = E.slice(-1)[0], A = (n.host || e.host || E.length > 1) && ("." === C || ".." === C) || "" === C, k = 0, O = E.length; O >= 0; O--)"." === (C = E[O]) ? E.splice(O, 1) : ".." === C ? (E.splice(O, 1), k++) : k && (E.splice(O, 1), k--); if (!w && !x) for (; k--; k)E.unshift(".."); !w || "" === E[0] || E[0] && "/" === E[0].charAt(0) || E.unshift(""), A && "/" !== E.join("/").substr(-1) && E.push(""); var j, T = "" === E[0] || E[0] && "/" === E[0].charAt(0); S && (n.hostname = n.host = T ? "" : E.length ? E.shift() : "", (j = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@")) && (n.auth = j.shift(), n.host = n.hostname = j.shift())); return (w = w || n.host && E.length) && !T && E.unshift(""), E.length ? n.pathname = E.join("/") : (n.pathname = null, n.path = null), o.isNull(n.pathname) && o.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.auth = e.auth || n.auth, n.slashes = n.slashes || e.slashes, n.href = n.format(), n }, a.prototype.parseHost = function () { var e = this.host, t = s.exec(e); t && (":" !== (t = t[0]) && (this.port = t.substr(1)), e = e.substr(0, e.length - t.length)), e && (this.hostname = e) } }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "SHOW_AUTH_POPUP", (function () { return h })), n.d(t, "AUTHORIZE", (function () { return d })), n.d(t, "LOGOUT", (function () { return m })), n.d(t, "PRE_AUTHORIZE_OAUTH2", (function () { return v })), n.d(t, "AUTHORIZE_OAUTH2", (function () { return g })), n.d(t, "VALIDATE", (function () { return y })), n.d(t, "CONFIGURE_AUTH", (function () { return b })), n.d(t, "RESTORE_AUTHORIZATION", (function () { return _ })), n.d(t, "showDefinitions", (function () { return w })), n.d(t, "authorize", (function () { return x })), n.d(t, "authorizeWithPersistOption", (function () { return E })), n.d(t, "logout", (function () { return S })), n.d(t, "logoutWithPersistOption", (function () { return C })), n.d(t, "preAuthorizeImplicit", (function () { return A })), n.d(t, "authorizeOauth2", (function () { return k })), n.d(t, "authorizeOauth2WithPersistOption", (function () { return O })), n.d(t, "authorizePassword", (function () { return j })), n.d(t, "authorizeApplication", (function () { return T })), n.d(t, "authorizeAccessCodeWithFormParams", (function () { return I })), n.d(t, "authorizeAccessCodeWithBasicAuthentication", (function () { return P })), n.d(t, "authorizeRequest", (function () { return N })), n.d(t, "configureAuth", (function () { return M })), n.d(t, "restoreAuthorization", (function () { return R })), n.d(t, "persistAuthorizationIfNeeded", (function () { return D })); var r = n(19), o = n.n(r), a = n(22), i = n.n(a), s = n(32), u = n.n(s), c = n(98), l = n.n(c), p = n(27), f = n(5), h = "show_popup", d = "authorize", m = "logout", v = "pre_authorize_oauth2", g = "authorize_oauth2", y = "validate", b = "configure_auth", _ = "restore_authorization"; function w(e) { return { type: h, payload: e } } function x(e) { return { type: d, payload: e } } var E = function (e) { return function (t) { var n = t.authActions; n.authorize(e), n.persistAuthorizationIfNeeded() } }; function S(e) { return { type: m, payload: e } } var C = function (e) { return function (t) { var n = t.authActions; n.logout(e), n.persistAuthorizationIfNeeded() } }, A = function (e) { return function (t) { var n = t.authActions, r = t.errActions, o = e.auth, a = e.token, i = e.isValid, s = o.schema, c = o.name, l = s.get("flow"); delete p.a.swaggerUIRedirectOauth2, "accessCode" === l || i || r.newAuthErr({ authId: c, source: "auth", level: "warning", message: "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server" }), a.error ? r.newAuthErr({ authId: c, source: "auth", level: "error", message: u()(a) }) : n.authorizeOauth2WithPersistOption({ auth: o, token: a }) } }; function k(e) { return { type: g, payload: e } } var O = function (e) { return function (t) { var n = t.authActions; n.authorizeOauth2(e), n.persistAuthorizationIfNeeded() } }, j = function (e) { return function (t) { var n = t.authActions, r = e.schema, o = e.name, a = e.username, s = e.password, u = e.passwordType, c = e.clientId, l = e.clientSecret, p = { grant_type: "password", scope: e.scopes.join(" "), username: a, password: s }, h = {}; switch (u) { case "request-body": !function (e, t, n) { t && i()(e, { client_id: t }); n && i()(e, { client_secret: n }) }(p, c, l); break; case "basic": h.Authorization = "Basic " + Object(f.a)(c + ":" + l); break; default: console.warn("Warning: invalid passwordType ".concat(u, " was passed, not including client id and secret")) }return n.authorizeRequest({ body: Object(f.b)(p), url: r.get("tokenUrl"), name: o, headers: h, query: {}, auth: e }) } }; var T = function (e) { return function (t) { var n = t.authActions, r = e.schema, o = e.scopes, a = e.name, i = e.clientId, s = e.clientSecret, u = { Authorization: "Basic " + Object(f.a)(i + ":" + s) }, c = { grant_type: "client_credentials", scope: o.join(" ") }; return n.authorizeRequest({ body: Object(f.b)(c), name: a, url: r.get("tokenUrl"), auth: e, headers: u }) } }, I = function (e) { var t = e.auth, n = e.redirectUrl; return function (e) { var r = e.authActions, o = t.schema, a = t.name, i = t.clientId, s = t.clientSecret, u = t.codeVerifier, c = { grant_type: "authorization_code", code: t.code, client_id: i, client_secret: s, redirect_uri: n, code_verifier: u }; return r.authorizeRequest({ body: Object(f.b)(c), name: a, url: o.get("tokenUrl"), auth: t }) } }, P = function (e) { var t = e.auth, n = e.redirectUrl; return function (e) { var r = e.authActions, o = t.schema, a = t.name, i = t.clientId, s = t.clientSecret, u = { Authorization: "Basic " + Object(f.a)(i + ":" + s) }, c = { grant_type: "authorization_code", code: t.code, client_id: i, redirect_uri: n }; return r.authorizeRequest({ body: Object(f.b)(c), name: a, url: o.get("tokenUrl"), auth: t, headers: u }) } }, N = function (e) { return function (t) { var n, r = t.fn, a = t.getConfigs, s = t.authActions, c = t.errActions, p = t.oas3Selectors, f = t.specSelectors, h = t.authSelectors, d = e.body, m = e.query, v = void 0 === m ? {} : m, g = e.headers, y = void 0 === g ? {} : g, b = e.name, _ = e.url, w = e.auth, x = (h.getConfigs() || {}).additionalQueryStringParams; if (f.isOAS3()) { var E = p.serverEffectiveValue(p.selectedServer()); n = l()(_, E, !0) } else n = l()(_, f.url(), !0); "object" === o()(x) && (n.query = i()({}, n.query, x)); var S = n.toString(), C = i()({ Accept: "application/json, text/plain, */*", "Content-Type": "application/x-www-form-urlencoded", "X-Requested-With": "XMLHttpRequest" }, y); r.fetch({ url: S, method: "post", headers: C, query: v, body: d, requestInterceptor: a().requestInterceptor, responseInterceptor: a().responseInterceptor }).then((function (e) { var t = JSON.parse(e.data), n = t && (t.error || ""), r = t && (t.parseError || ""); e.ok ? n || r ? c.newAuthErr({ authId: b, level: "error", source: "auth", message: u()(t) }) : s.authorizeOauth2WithPersistOption({ auth: w, token: t }) : c.newAuthErr({ authId: b, level: "error", source: "auth", message: e.statusText }) })).catch((function (e) { var t = new Error(e).message; if (e.response && e.response.data) { var n = e.response.data; try { var r = "string" == typeof n ? JSON.parse(n) : n; r.error && (t += ", error: ".concat(r.error)), r.error_description && (t += ", description: ".concat(r.error_description)) } catch (e) { } } c.newAuthErr({ authId: b, level: "error", source: "auth", message: t }) })) } }; function M(e) { return { type: b, payload: e } } function R(e) { return { type: _, payload: e } } var D = function () { return function (e) { var t = e.authSelectors; if ((0, e.getConfigs)().persistAuthorization) { var n = t.authorized(); localStorage.setItem("authorized", u()(n.toJS())) } } } }, function (e, t, n) { var r = n(1105); e.exports = function (e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? Object(arguments[t]) : {}, o = Object.keys(n); "function" == typeof Object.getOwnPropertySymbols && (o = o.concat(Object.getOwnPropertySymbols(n).filter((function (e) { return Object.getOwnPropertyDescriptor(n, e).enumerable })))), o.forEach((function (t) { r(e, t, n[t]) })) } return e } }, function (e, t, n) { var r = n(238), o = n(149), a = n(39)("toStringTag"), i = "Arguments" == o(function () { return arguments }()); e.exports = r ? o : function (e) { var t, n, r; return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (n = function (e, t) { try { return e[t] } catch (e) { } }(t = Object(e), a)) ? n : i ? o(t) : "Object" == (r = o(t)) && "function" == typeof t.callee ? "Arguments" : r } }, function (e, t, n) { var r = n(109), o = n(177), a = n(73), i = n(81), s = n(241), u = [].push, c = function (e) { var t = 1 == e, n = 2 == e, c = 3 == e, l = 4 == e, p = 6 == e, f = 7 == e, h = 5 == e || p; return function (d, m, v, g) { for (var y, b, _ = a(d), w = o(_), x = r(m, v, 3), E = i(w.length), S = 0, C = g || s, A = t ? C(d, E) : n || f ? C(d, 0) : void 0; E > S; S++)if ((h || S in w) && (b = x(y = w[S], S, _), e)) if (t) A[S] = b; else if (b) switch (e) { case 3: return !0; case 5: return y; case 6: return S; case 2: u.call(A, y) } else switch (e) { case 4: return !1; case 7: u.call(A, y) }return p ? -1 : c || l ? l : A } }; e.exports = { forEach: c(0), map: c(1), filter: c(2), some: c(3), every: c(4), find: c(5), findIndex: c(6), filterOut: c(7) } }, function (e, t, n) { "use strict"; e.exports = { current: null } }, function (e, t) { e.exports = function (e) { return null != e && "object" == typeof e } }, function (e, t) { var n, r, o = e.exports = {}; function a() { throw new Error("setTimeout has not been defined") } function i() { throw new Error("clearTimeout has not been defined") } function s(e) { if (n === setTimeout) return setTimeout(e, 0); if ((n === a || !n) && setTimeout) return n = setTimeout, setTimeout(e, 0); try { return n(e, 0) } catch (t) { try { return n.call(null, e, 0) } catch (t) { return n.call(this, e, 0) } } } !function () { try { n = "function" == typeof setTimeout ? setTimeout : a } catch (e) { n = a } try { r = "function" == typeof clearTimeout ? clearTimeout : i } catch (e) { r = i } }(); var u, c = [], l = !1, p = -1; function f() { l && u && (l = !1, u.length ? c = u.concat(c) : p = -1, c.length && h()) } function h() { if (!l) { var e = s(f); l = !0; for (var t = c.length; t;) { for (u = c, c = []; ++p < t;)u && u[p].run(); p = -1, t = c.length } u = null, l = !1, function (e) { if (r === clearTimeout) return clearTimeout(e); if ((r === i || !r) && clearTimeout) return r = clearTimeout, clearTimeout(e); try { r(e) } catch (t) { try { return r.call(null, e) } catch (t) { return r.call(this, e) } } }(e) } } function d(e, t) { this.fun = e, this.array = t } function m() { } o.nextTick = function (e) { var t = new Array(arguments.length - 1); if (arguments.length > 1) for (var n = 1; n < arguments.length; n++)t[n - 1] = arguments[n]; c.push(new d(e, t)), 1 !== c.length || l || s(h) }, d.prototype.run = function () { this.fun.apply(null, this.array) }, o.title = "browser", o.browser = !0, o.env = {}, o.argv = [], o.version = "", o.versions = {}, o.on = m, o.addListener = m, o.once = m, o.off = m, o.removeListener = m, o.removeAllListeners = m, o.emit = m, o.prependListener = m, o.prependOnceListener = m, o.listeners = function (e) { return [] }, o.binding = function (e) { throw new Error("process.binding is not supported") }, o.cwd = function () { return "/" }, o.chdir = function (e) { throw new Error("process.chdir is not supported") }, o.umask = function () { return 0 } }, function (e, t, n) { "use strict"; var r = n(40), o = n(124), a = n(83), i = (n(34), ["dispatchConfig", "_targetInst", "nativeEvent", "isDefaultPrevented", "isPropagationStopped", "_dispatchListeners", "_dispatchInstances"]), s = { type: null, target: null, currentTarget: a.thatReturnsNull, eventPhase: null, bubbles: null, cancelable: null, timeStamp: function (e) { return e.timeStamp || Date.now() }, defaultPrevented: null, isTrusted: null }; function u(e, t, n, r) { this.dispatchConfig = e, this._targetInst = t, this.nativeEvent = n; var o = this.constructor.Interface; for (var i in o) if (o.hasOwnProperty(i)) { 0; var s = o[i]; s ? this[i] = s(n) : "target" === i ? this.target = r : this[i] = n[i] } var u = null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue; return this.isDefaultPrevented = u ? a.thatReturnsTrue : a.thatReturnsFalse, this.isPropagationStopped = a.thatReturnsFalse, this } r(u.prototype, { preventDefault: function () { this.defaultPrevented = !0; var e = this.nativeEvent; e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue && (e.returnValue = !1), this.isDefaultPrevented = a.thatReturnsTrue) }, stopPropagation: function () { var e = this.nativeEvent; e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble && (e.cancelBubble = !0), this.isPropagationStopped = a.thatReturnsTrue) }, persist: function () { this.isPersistent = a.thatReturnsTrue }, isPersistent: a.thatReturnsFalse, destructor: function () { var e = this.constructor.Interface; for (var t in e) this[t] = null; for (var n = 0; n < i.length; n++)this[i[n]] = null } }), u.Interface = s, u.augmentClass = function (e, t) { var n = this, a = function () { }; a.prototype = n.prototype; var i = new a; r(i, e.prototype), e.prototype = i, e.prototype.constructor = e, e.Interface = r({}, n.Interface, t), e.augmentClass = n.augmentClass, o.addPoolingTo(e, o.fourArgumentPooler) }, o.addPoolingTo(u, o.fourArgumentPooler), e.exports = u }, function (e, t, n) { var r = n(406); e.exports = function (e) { return null == e ? "" : r(e) } }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "lastError", (function () { return M })), n.d(t, "url", (function () { return R })), n.d(t, "specStr", (function () { return D })), n.d(t, "specSource", (function () { return L })), n.d(t, "specJson", (function () { return B })), n.d(t, "specResolved", (function () { return F })), n.d(t, "specResolvedSubtree", (function () { return U })), n.d(t, "specJsonWithResolvedSubtrees", (function () { return z })), n.d(t, "spec", (function () { return V })), n.d(t, "isOAS3", (function () { return W })), n.d(t, "info", (function () { return H })), n.d(t, "externalDocs", (function () { return J })), n.d(t, "version", (function () { return $ })), n.d(t, "semver", (function () { return K })), n.d(t, "paths", (function () { return Y })), n.d(t, "operations", (function () { return G })), n.d(t, "consumes", (function () { return Z })), n.d(t, "produces", (function () { return X })), n.d(t, "security", (function () { return Q })), n.d(t, "securityDefinitions", (function () { return ee })), n.d(t, "findDefinition", (function () { return te })), n.d(t, "definitions", (function () { return ne })), n.d(t, "basePath", (function () { return re })), n.d(t, "host", (function () { return oe })), n.d(t, "schemes", (function () { return ae })), n.d(t, "operationsWithRootInherited", (function () { return ie })), n.d(t, "tags", (function () { return se })), n.d(t, "tagDetails", (function () { return ue })), n.d(t, "operationsWithTags", (function () { return ce })), n.d(t, "taggedOperations", (function () { return le })), n.d(t, "responses", (function () { return pe })), n.d(t, "requests", (function () { return fe })), n.d(t, "mutatedRequests", (function () { return he })), n.d(t, "responseFor", (function () { return de })), n.d(t, "requestFor", (function () { return me })), n.d(t, "mutatedRequestFor", (function () { return ve })), n.d(t, "allowTryItOutFor", (function () { return ge })), n.d(t, "parameterWithMetaByIdentity", (function () { return ye })), n.d(t, "parameterInclusionSettingFor", (function () { return be })), n.d(t, "parameterWithMeta", (function () { return _e })), n.d(t, "operationWithMeta", (function () { return we })), n.d(t, "getParameter", (function () { return xe })), n.d(t, "hasHost", (function () { return Ee })), n.d(t, "parameterValues", (function () { return Se })), n.d(t, "parametersIncludeIn", (function () { return Ce })), n.d(t, "parametersIncludeType", (function () { return Ae })), n.d(t, "contentTypeValues", (function () { return ke })), n.d(t, "currentProducesFor", (function () { return Oe })), n.d(t, "producesOptionsFor", (function () { return je })), n.d(t, "consumesOptionsFor", (function () { return Te })), n.d(t, "operationScheme", (function () { return Ie })), n.d(t, "canExecuteScheme", (function () { return Pe })), n.d(t, "validateBeforeExecute", (function () { return Ne })), n.d(t, "getOAS3RequiredRequestBodyContentType", (function () { return Me })), n.d(t, "isMediaTypeSchemaPropertiesEqual", (function () { return Re })); var r = n(13), o = n.n(r), a = n(16), i = n.n(a), s = n(37), u = n.n(s), c = n(212), l = n.n(c), p = n(21), f = n.n(p), h = n(67), d = n.n(h), m = n(12), v = n.n(m), g = n(4), y = n.n(g), b = n(14), _ = n.n(b), w = n(18), x = n.n(w), E = n(23), S = n.n(E), C = n(2), A = n.n(C), k = n(15), O = n.n(k), j = n(20), T = n(5), I = n(1), P = ["get", "put", "post", "delete", "options", "head", "patch", "trace"], N = function (e) { return e || Object(I.Map)() }, M = Object(j.a)(N, (function (e) { return e.get("lastError") })), R = Object(j.a)(N, (function (e) { return e.get("url") })), D = Object(j.a)(N, (function (e) { return e.get("spec") || "" })), L = Object(j.a)(N, (function (e) { return e.get("specSource") || "not-editor" })), B = Object(j.a)(N, (function (e) { return e.get("json", Object(I.Map)()) })), F = Object(j.a)(N, (function (e) { return e.get("resolved", Object(I.Map)()) })), U = function (e, t) { var n; return e.getIn(A()(n = ["resolvedSubtrees"]).call(n, O()(t)), void 0) }, q = function e(t, n) { return I.Map.isMap(t) && I.Map.isMap(n) ? n.get("$$ref") ? n : Object(I.OrderedMap)().mergeWith(e, t, n) : n }, z = Object(j.a)(N, (function (e) { return Object(I.OrderedMap)().mergeWith(q, e.get("json"), e.get("resolvedSubtrees")) })), V = function (e) { return B(e) }, W = Object(j.a)(V, (function () { return !1 })), H = Object(j.a)(V, (function (e) { return De(e && e.get("info")) })), J = Object(j.a)(V, (function (e) { return De(e && e.get("externalDocs")) })), $ = Object(j.a)(H, (function (e) { return e && e.get("version") })), K = Object(j.a)($, (function (e) { var t; return S()(t = /v?([0-9]*)\.([0-9]*)\.([0-9]*)/i.exec(e)).call(t, 1) })), Y = Object(j.a)(z, (function (e) { return e.get("paths") })), G = Object(j.a)(Y, (function (e) { if (!e || e.size < 1) return Object(I.List)(); var t = Object(I.List)(); return e && x()(e) ? (x()(e).call(e, (function (e, n) { if (!e || !x()(e)) return {}; x()(e).call(e, (function (e, r) { var o; _()(P).call(P, r) < 0 || (t = t.push(Object(I.fromJS)({ path: n, method: r, operation: e, id: A()(o = "".concat(r, "-")).call(o, n) }))) })) })), t) : Object(I.List)() })), Z = Object(j.a)(V, (function (e) { return Object(I.Set)(e.get("consumes")) })), X = Object(j.a)(V, (function (e) { return Object(I.Set)(e.get("produces")) })), Q = Object(j.a)(V, (function (e) { return e.get("security", Object(I.List)()) })), ee = Object(j.a)(V, (function (e) { return e.get("securityDefinitions") })), te = function (e, t) { var n = e.getIn(["resolvedSubtrees", "definitions", t], null), r = e.getIn(["json", "definitions", t], null); return n || r || null }, ne = Object(j.a)(V, (function (e) { var t = e.get("definitions"); return I.Map.isMap(t) ? t : Object(I.Map)() })), re = Object(j.a)(V, (function (e) { return e.get("basePath") })), oe = Object(j.a)(V, (function (e) { return e.get("host") })), ae = Object(j.a)(V, (function (e) { return e.get("schemes", Object(I.Map)()) })), ie = Object(j.a)(G, Z, X, (function (e, t, n) { return y()(e).call(e, (function (e) { return e.update("operation", (function (e) { if (e) { if (!I.Map.isMap(e)) return; return e.withMutations((function (e) { return e.get("consumes") || e.update("consumes", (function (e) { return Object(I.Set)(e).merge(t) })), e.get("produces") || e.update("produces", (function (e) { return Object(I.Set)(e).merge(n) })), e })) } return Object(I.Map)() })) })) })), se = Object(j.a)(V, (function (e) { var t = e.get("tags", Object(I.List)()); return I.List.isList(t) ? v()(t).call(t, (function (e) { return I.Map.isMap(e) })) : Object(I.List)() })), ue = function (e, t) { var n, r = se(e) || Object(I.List)(); return d()(n = v()(r).call(r, I.Map.isMap)).call(n, (function (e) { return e.get("name") === t }), Object(I.Map)()) }, ce = Object(j.a)(ie, se, (function (e, t) { return f()(e).call(e, (function (e, t) { var n = Object(I.Set)(t.getIn(["operation", "tags"])); return n.count() < 1 ? e.update("default", Object(I.List)(), (function (e) { return e.push(t) })) : f()(n).call(n, (function (e, n) { return e.update(n, Object(I.List)(), (function (e) { return e.push(t) })) }), e) }), f()(t).call(t, (function (e, t) { return e.set(t.get("name"), Object(I.List)()) }), Object(I.OrderedMap)())) })), le = function (e) { return function (t) { var n, r = (0, t.getConfigs)(), o = r.tagsSorter, a = r.operationsSorter; return y()(n = ce(e).sortBy((function (e, t) { return t }), (function (e, t) { var n = "function" == typeof o ? o : T.I.tagsSorter[o]; return n ? n(e, t) : null }))).call(n, (function (t, n) { var r = "function" == typeof a ? a : T.I.operationsSorter[a], o = r ? l()(t).call(t, r) : t; return Object(I.Map)({ tagDetails: ue(e, n), operations: o }) })) } }, pe = Object(j.a)(N, (function (e) { return e.get("responses", Object(I.Map)()) })), fe = Object(j.a)(N, (function (e) { return e.get("requests", Object(I.Map)()) })), he = Object(j.a)(N, (function (e) { return e.get("mutatedRequests", Object(I.Map)()) })), de = function (e, t, n) { return pe(e).getIn([t, n], null) }, me = function (e, t, n) { return fe(e).getIn([t, n], null) }, ve = function (e, t, n) { return he(e).getIn([t, n], null) }, ge = function () { return !0 }, ye = function (e, t, n) { var r, o, a = z(e).getIn(A()(r = ["paths"]).call(r, O()(t), ["parameters"]), Object(I.OrderedMap)()), i = e.getIn(A()(o = ["meta", "paths"]).call(o, O()(t), ["parameters"]), Object(I.OrderedMap)()), s = y()(a).call(a, (function (e) { var t, r, o, a = i.get(A()(t = "".concat(n.get("in"), ".")).call(t, n.get("name"))), s = i.get(A()(r = A()(o = "".concat(n.get("in"), ".")).call(o, n.get("name"), ".hash-")).call(r, n.hashCode())); return Object(I.OrderedMap)().merge(e, a, s) })); return d()(s).call(s, (function (e) { return e.get("in") === n.get("in") && e.get("name") === n.get("name") }), Object(I.OrderedMap)()) }, be = function (e, t, n, r) { var o, a, i = A()(o = "".concat(r, ".")).call(o, n); return e.getIn(A()(a = ["meta", "paths"]).call(a, O()(t), ["parameter_inclusions", i]), !1) }, _e = function (e, t, n, r) { var o, a = z(e).getIn(A()(o = ["paths"]).call(o, O()(t), ["parameters"]), Object(I.OrderedMap)()), i = d()(a).call(a, (function (e) { return e.get("in") === r && e.get("name") === n }), Object(I.OrderedMap)()); return ye(e, t, i) }, we = function (e, t, n) { var r, o = z(e).getIn(["paths", t, n], Object(I.OrderedMap)()), a = e.getIn(["meta", "paths", t, n], Object(I.OrderedMap)()), i = y()(r = o.get("parameters", Object(I.List)())).call(r, (function (r) { return ye(e, [t, n], r) })); return Object(I.OrderedMap)().merge(o, a).set("parameters", i) }; function xe(e, t, n, r) { var o; t = t || []; var a = e.getIn(A()(o = ["meta", "paths"]).call(o, O()(t), ["parameters"]), Object(I.fromJS)([])); return d()(a).call(a, (function (e) { return I.Map.isMap(e) && e.get("name") === n && e.get("in") === r })) || Object(I.Map)() } var Ee = Object(j.a)(V, (function (e) { var t = e.get("host"); return "string" == typeof t && t.length > 0 && "/" !== t[0] })); function Se(e, t, n) { var r; t = t || []; var o = we.apply(void 0, A()(r = [e]).call(r, O()(t))).get("parameters", Object(I.List)()); return f()(o).call(o, (function (e, t) { var r = n && "body" === t.get("in") ? t.get("value_xml") : t.get("value"); return e.set(Object(T.B)(t, { allowHashes: !1 }), r) }), Object(I.fromJS)({})) } function Ce(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; if (I.List.isList(e)) return u()(e).call(e, (function (e) { return I.Map.isMap(e) && e.get("in") === t })) } function Ae(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; if (I.List.isList(e)) return u()(e).call(e, (function (e) { return I.Map.isMap(e) && e.get("type") === t })) } function ke(e, t) { var n, r; t = t || []; var o = z(e).getIn(A()(n = ["paths"]).call(n, O()(t)), Object(I.fromJS)({})), a = e.getIn(A()(r = ["meta", "paths"]).call(r, O()(t)), Object(I.fromJS)({})), i = Oe(e, t), s = o.get("parameters") || new I.List, u = a.get("consumes_value") ? a.get("consumes_value") : Ae(s, "file") ? "multipart/form-data" : Ae(s, "formData") ? "application/x-www-form-urlencoded" : void 0; return Object(I.fromJS)({ requestContentType: u, responseContentType: i }) } function Oe(e, t) { var n, r; t = t || []; var o = z(e).getIn(A()(n = ["paths"]).call(n, O()(t)), null); if (null !== o) { var a = e.getIn(A()(r = ["meta", "paths"]).call(r, O()(t), ["produces_value"]), null), i = o.getIn(["produces", 0], null); return a || i || "application/json" } } function je(e, t) { var n; t = t || []; var r = z(e), o = r.getIn(A()(n = ["paths"]).call(n, O()(t)), null); if (null !== o) { var a = t, s = i()(a, 1)[0], u = o.get("produces", null), c = r.getIn(["paths", s, "produces"], null), l = r.getIn(["produces"], null); return u || c || l } } function Te(e, t) { var n; t = t || []; var r = z(e), o = r.getIn(A()(n = ["paths"]).call(n, O()(t)), null); if (null !== o) { var a = t, s = i()(a, 1)[0], u = o.get("consumes", null), c = r.getIn(["paths", s, "consumes"], null), l = r.getIn(["consumes"], null); return u || c || l } } var Ie = function (e, t, n) { var r = e.get("url").match(/^([a-z][a-z0-9+\-.]*):/), a = o()(r) ? r[1] : null; return e.getIn(["scheme", t, n]) || e.getIn(["scheme", "_defaultScheme"]) || a || "" }, Pe = function (e, t, n) { var r; return _()(r = ["http", "https"]).call(r, Ie(e, t, n)) > -1 }, Ne = function (e, t) { var n; t = t || []; var r = e.getIn(A()(n = ["meta", "paths"]).call(n, O()(t), ["parameters"]), Object(I.fromJS)([])), o = !0; return x()(r).call(r, (function (e) { var t = e.get("errors"); t && t.count() && (o = !1) })), o }, Me = function (e, t) { var n, r, o = { requestBody: !1, requestContentType: {} }, a = e.getIn(A()(n = ["resolvedSubtrees", "paths"]).call(n, O()(t), ["requestBody"]), Object(I.fromJS)([])); return a.size < 1 || (a.getIn(["required"]) && (o.requestBody = a.getIn(["required"])), x()(r = a.getIn(["content"]).entrySeq()).call(r, (function (e) { var t = e[0]; if (e[1].getIn(["schema", "required"])) { var n = e[1].getIn(["schema", "required"]).toJS(); o.requestContentType[t] = n } }))), o }, Re = function (e, t, n, r) { var o; if ((n || r) && n === r) return !0; var a = e.getIn(A()(o = ["resolvedSubtrees", "paths"]).call(o, O()(t), ["requestBody", "content"]), Object(I.fromJS)([])); if (a.size < 2 || !n || !r) return !1; var i = a.getIn([n, "schema", "properties"], Object(I.fromJS)([])), s = a.getIn([r, "schema", "properties"], Object(I.fromJS)([])); return !!i.equals(s) }; function De(e) { return I.Map.isMap(e) ? e : new I.Map } }, function (e, t, n) { "use strict"; (function (t) { var r = n(915), o = n(916), a = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//, i = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i, s = new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+"); function u(e) { return (e || "").toString().replace(s, "") } var c = [["#", "hash"], ["?", "query"], function (e) { return e.replace("\\", "/") }, ["/", "pathname"], ["@", "auth", 1], [NaN, "host", void 0, 1, 1], [/:(\d+)$/, "port", void 0, 1], [NaN, "hostname", void 0, 1, 1]], l = { hash: 1, query: 1 }; function p(e) { var n, r = ("undefined" != typeof window ? window : void 0 !== t ? t : "undefined" != typeof self ? self : {}).location || {}, o = {}, i = typeof (e = e || r); if ("blob:" === e.protocol) o = new h(unescape(e.pathname), {}); else if ("string" === i) for (n in o = new h(e, {}), l) delete o[n]; else if ("object" === i) { for (n in e) n in l || (o[n] = e[n]); void 0 === o.slashes && (o.slashes = a.test(e.href)) } return o } function f(e) { e = u(e); var t = i.exec(e); return { protocol: t[1] ? t[1].toLowerCase() : "", slashes: !!t[2], rest: t[3] } } function h(e, t, n) { if (e = u(e), !(this instanceof h)) return new h(e, t, n); var a, i, s, l, d, m, v = c.slice(), g = typeof t, y = this, b = 0; for ("object" !== g && "string" !== g && (n = t, t = null), n && "function" != typeof n && (n = o.parse), t = p(t), a = !(i = f(e || "")).protocol && !i.slashes, y.slashes = i.slashes || a && t.slashes, y.protocol = i.protocol || t.protocol || "", e = i.rest, i.slashes || (v[3] = [/(.*)/, "pathname"]); b < v.length; b++)"function" != typeof (l = v[b]) ? (s = l[0], m = l[1], s != s ? y[m] = e : "string" == typeof s ? ~(d = e.indexOf(s)) && ("number" == typeof l[2] ? (y[m] = e.slice(0, d), e = e.slice(d + l[2])) : (y[m] = e.slice(d), e = e.slice(0, d))) : (d = s.exec(e)) && (y[m] = d[1], e = e.slice(0, d.index)), y[m] = y[m] || a && l[3] && t[m] || "", l[4] && (y[m] = y[m].toLowerCase())) : e = l(e); n && (y.query = n(y.query)), a && t.slashes && "/" !== y.pathname.charAt(0) && ("" !== y.pathname || "" !== t.pathname) && (y.pathname = function (e, t) { if ("" === e) return t; for (var n = (t || "/").split("/").slice(0, -1).concat(e.split("/")), r = n.length, o = n[r - 1], a = !1, i = 0; r--;)"." === n[r] ? n.splice(r, 1) : ".." === n[r] ? (n.splice(r, 1), i++) : i && (0 === r && (a = !0), n.splice(r, 1), i--); return a && n.unshift(""), "." !== o && ".." !== o || n.push(""), n.join("/") }(y.pathname, t.pathname)), r(y.port, y.protocol) || (y.host = y.hostname, y.port = ""), y.username = y.password = "", y.auth && (l = y.auth.split(":"), y.username = l[0] || "", y.password = l[1] || ""), y.origin = y.protocol && y.host && "file:" !== y.protocol ? y.protocol + "//" + y.host : "null", y.href = y.toString() } h.prototype = { set: function (e, t, n) { var a = this; switch (e) { case "query": "string" == typeof t && t.length && (t = (n || o.parse)(t)), a[e] = t; break; case "port": a[e] = t, r(t, a.protocol) ? t && (a.host = a.hostname + ":" + t) : (a.host = a.hostname, a[e] = ""); break; case "hostname": a[e] = t, a.port && (t += ":" + a.port), a.host = t; break; case "host": a[e] = t, /:\d+$/.test(t) ? (t = t.split(":"), a.port = t.pop(), a.hostname = t.join(":")) : (a.hostname = t, a.port = ""); break; case "protocol": a.protocol = t.toLowerCase(), a.slashes = !n; break; case "pathname": case "hash": if (t) { var i = "pathname" === e ? "/" : "#"; a[e] = t.charAt(0) !== i ? i + t : t } else a[e] = t; break; default: a[e] = t }for (var s = 0; s < c.length; s++) { var u = c[s]; u[4] && (a[u[1]] = a[u[1]].toLowerCase()) } return a.origin = a.protocol && a.host && "file:" !== a.protocol ? a.protocol + "//" + a.host : "null", a.href = a.toString(), a }, toString: function (e) { e && "function" == typeof e || (e = o.stringify); var t, n = this, r = n.protocol; r && ":" !== r.charAt(r.length - 1) && (r += ":"); var a = r + (n.slashes ? "//" : ""); return n.username && (a += n.username, n.password && (a += ":" + n.password), a += "@"), a += n.host + n.pathname, (t = "object" == typeof n.query ? e(n.query) : n.query) && (a += "?" !== t.charAt(0) ? "?" + t : t), n.hash && (a += n.hash), a } }, h.extractProtocol = f, h.location = p, h.trimLeft = u, h.qs = o, e.exports = h }).call(this, n(55)) }, function (e, t) { e.exports = !0 }, function (e, t, n) { "use strict"; var r = n(363).charAt, o = n(82), a = n(236), i = "String Iterator", s = o.set, u = o.getterFor(i); a(String, "String", (function (e) { s(this, { type: i, string: String(e), index: 0 }) }), (function () { var e, t = u(this), n = t.string, o = t.index; return o >= n.length ? { value: void 0, done: !0 } : (e = r(n, o), t.index += e.length, { value: e, done: !1 }) })) }, function (e, t, n) { var r = n(238), o = n(71).f, a = n(70), i = n(52), s = n(559), u = n(39)("toStringTag"); e.exports = function (e, t, n, c) { if (e) { var l = n ? e : e.prototype; i(l, u) || o(l, u, { configurable: !0, value: t }), c && !r && a(l, "toString", s) } } }, function (e, t, n) { "use strict"; e.exports = function (e) { if ("function" != typeof e) throw new TypeError(e + " is not a function"); return e } }, function (e, t, n) { e.exports = n(636) }, function (e, t, n) { e.exports = n(869) }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "UPDATE_LAYOUT", (function () { return o })), n.d(t, "UPDATE_FILTER", (function () { return a })), n.d(t, "UPDATE_MODE", (function () { return i })), n.d(t, "SHOW", (function () { return s })), n.d(t, "updateLayout", (function () { return u })), n.d(t, "updateFilter", (function () { return c })), n.d(t, "show", (function () { return l })), n.d(t, "changeMode", (function () { return p })); var r = n(5), o = "layout_update_layout", a = "layout_update_filter", i = "layout_update_mode", s = "layout_show"; function u(e) { return { type: o, payload: e } } function c(e) { return { type: a, payload: e } } function l(e) { var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; return e = Object(r.w)(e), { type: s, payload: { thing: e, shown: t } } } function p(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; return e = Object(r.w)(e), { type: i, payload: { thing: e, mode: t } } } }, function (e, t, n) { var r = n(421), o = n(161), a = n(193), i = n(54), s = n(117), u = n(194), c = n(160), l = n(252), p = Object.prototype.hasOwnProperty; e.exports = function (e) { if (null == e) return !0; if (s(e) && (i(e) || "string" == typeof e || "function" == typeof e.splice || u(e) || l(e) || a(e))) return !e.length; var t = o(e); if ("[object Map]" == t || "[object Set]" == t) return !e.size; if (c(e)) return !r(e).length; for (var n in e) if (p.call(e, n)) return !1; return !0 } }, function (e, t, n) { var r = n(49), o = n(176), a = n(108), i = n(69), s = n(178), u = n(52), c = n(357), l = Object.getOwnPropertyDescriptor; t.f = r ? l : function (e, t) { if (e = i(e), t = s(t, !0), c) try { return l(e, t) } catch (e) { } if (u(e, t)) return a(!o.f.call(e, t), e[t]) } }, function (e, t) { e.exports = function (e, t) { return { enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t } } }, function (e, t, n) { var r = n(80); e.exports = function (e, t, n) { if (r(e), void 0 === t) return e; switch (n) { case 0: return function () { return e.call(t) }; case 1: return function (n) { return e.call(t, n) }; case 2: return function (n, r) { return e.call(t, n, r) }; case 3: return function (n, r, o) { return e.call(t, n, r, o) } }return function () { return e.apply(t, arguments) } } }, function (e, t, n) { var r, o = n(53), a = n(237), i = n(231), s = n(152), u = n(369), c = n(228), l = n(180), p = l("IE_PROTO"), f = function () { }, h = function (e) { return "